Advanced Cluster Management - NGUI
[osm/NG-UI.git] / src / models / MenuModel.ts
1 /*
2  Copyright 2020 TATA ELXSI
3
4  Licensed under the Apache License, Version 2.0 (the 'License');
5  you may not use this file except in compliance with the License.
6  You may obtain a copy of the License at
7
8     http://www.apache.org/licenses/LICENSE-2.0
9
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15
16  Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
17  */
18 /**
19  * @file  Model for Commonly used information.
20  */
21 /** Constants of the Menu child active class */
22 const childActiveClass: string[] = ['active'];
23 /** Constants of the Menu Items */
24 export const MENU_ITEMS: MENUITEMS[] = [
25     {
26         liClass: 'round-edge-top-3',
27         anchorTagClass: 'link round-edge-top-3 individual',
28         clickFunction: 'nosubmenu',
29         routerLink: '/',
30         routerLinkActive: ['parentactive'],
31         routerLinkActiveOptions: true,
32         icon: 'fas fa-th-large',
33         menuName: 'PAGE.DASHBOARD.DASHBOARD',
34         isChildExists: false
35     },
36     {
37         liClass: 'header-menu',
38         anchorTagClass: 'heading text-uppercase',
39         menuName: 'PROJECT',
40         isChildExists: false
41     },
42     {
43         liClass: 'round-edge-top-3',
44         anchorTagClass: 'parentlink round-edge-top-3 me-top-5',
45         clickFunction: 'packages',
46         routerLink: '/packages',
47         routerLinkActive: ['menu-open', 'parentactive'],
48         routerLinkActiveOptions: false,
49         icon: 'fas fa-box',
50         menuName: 'PACKAGES',
51         isChildExists: true,
52         ulClass: 'sidebar-submenu',
53         childItems: [
54             {
55                 liClass: '',
56                 anchorTagClass: 'link',
57                 routerLink: '/packages/ns',
58                 routerLinkActive: childActiveClass,
59                 routerLinkActiveOptions: false,
60                 icon: 'fas fa-box-open',
61                 menuName: 'NSPACKAGES',
62                 isChildExists: false
63             },
64             {
65                 liClass: '',
66                 anchorTagClass: 'link',
67                 routerLink: '/packages/vnf',
68                 routerLinkActive: childActiveClass,
69                 routerLinkActiveOptions: false,
70                 icon: 'fas fa-box-open',
71                 menuName: 'VNFPACKAGES',
72                 isChildExists: false
73             },
74             {
75                 liClass: '',
76                 anchorTagClass: 'link',
77                 routerLink: '/packages/oka',
78                 routerLinkActive: childActiveClass,
79                 routerLinkActiveOptions: false,
80                 icon: 'fas fa-box-open',
81                 menuName: 'PAGE.K8S.OKAPACKAGES',
82                 isChildExists: false
83             },
84             {
85                 liClass: '',
86                 anchorTagClass: 'link',
87                 routerLink: '/packages/netslice',
88                 routerLinkActive: childActiveClass,
89                 routerLinkActiveOptions: false,
90                 icon: 'fas fa-layer-group',
91                 menuName: 'PAGE.DASHBOARD.NETSLICETEMPLATE',
92                 isChildExists: false
93             },
94             {
95                 liClass: '',
96                 anchorTagClass: 'link',
97                 routerLink: '/packages/nsconfigtemplate',
98                 routerLinkActive: childActiveClass,
99                 routerLinkActiveOptions: false,
100                 icon: 'fas fa-file',
101                 menuName: 'PAGE.DASHBOARD.NSCONFIGTEMPLATE',
102                 isChildExists: false
103             }
104         ]
105     },
106     {
107         liClass: 'mt-1 round-edge-bottom-3 border-bottom-none',
108         anchorTagClass: 'parentlink round-edge-bottom-3 border-bottom-none',
109         clickFunction: 'instances',
110         routerLink: '/instances',
111         routerLinkActive: ['menu-open', 'parentactive'],
112         routerLinkActiveOptions: false,
113         icon: 'fa fa-paper-plane',
114         menuName: 'INSTANCES',
115         isChildExists: true,
116         ulClass: 'sidebar-submenu',
117         childItems: [
118             {
119                 liClass: '',
120                 anchorTagClass: 'link',
121                 routerLink: '/instances/ns',
122                 routerLinkActive: childActiveClass,
123                 routerLinkActiveOptions: false,
124                 icon: 'fas fa-sitemap',
125                 menuName: 'NSINSTANCES',
126                 isChildExists: false
127             },
128             {
129                 liClass: '',
130                 anchorTagClass: 'link',
131                 routerLink: '/instances/vnf',
132                 routerLinkActive: childActiveClass,
133                 routerLinkActiveOptions: false,
134                 icon: 'fas fa-hdd',
135                 menuName: 'VNFINSTANCES',
136                 isChildExists: false
137             },
138             {
139                 liClass: '',
140                 anchorTagClass: 'link',
141                 routerLink: '/instances/pdu',
142                 routerLinkActive: childActiveClass,
143                 routerLinkActiveOptions: false,
144                 icon: 'fas fa-hdd',
145                 menuName: 'PDUINSTANCES',
146                 isChildExists: false
147             },
148             {
149                 liClass: '',
150                 anchorTagClass: 'link',
151                 routerLink: '/instances/netslice',
152                 routerLinkActive: childActiveClass,
153                 routerLinkActiveOptions: false,
154                 icon: 'fas fa-layer-group',
155                 menuName: 'PAGE.DASHBOARD.NETSLICEINSTANCE',
156                 isChildExists: false
157             },
158             {
159                 liClass: '',
160                 anchorTagClass: 'link',
161                 routerLink: '/instances/operational-view',
162                 routerLinkActive: childActiveClass,
163                 routerLinkActiveOptions: false,
164                 icon: 'fas fa-tachometer-alt',
165                 menuName: 'PAGE.OPERATIONALDASHBOARD.TITLE',
166                 isChildExists: false
167             }
168         ]
169     },
170     {
171         liClass: 'round-edge-top-3 round-edge-bottom-3 me-top-5',
172         anchorTagClass: 'link round-edge-top-3 round-edge-bottom-3 individual',
173         clickFunction: 'nosubmenu',
174         routerLink: '/sdn/details',
175         routerLinkActive: ['parentactive'],
176         routerLinkActiveOptions: true,
177         icon: 'fas fa-globe',
178         menuName: 'SDNCONTROLLER',
179         isChildExists: false
180     },
181     {
182         liClass: 'round-edge-top-3 round-edge-bottom-3 me-top-5',
183         anchorTagClass: 'link round-edge-top-3 round-edge-bottom-3 individual',
184         clickFunction: 'nosubmenu',
185         routerLink: '/vim',
186         routerLinkActive: ['parentactive'],
187         routerLinkActiveOptions: false,
188         icon: 'fas fa-server',
189         menuName: 'VIMACCOUNTS',
190         isChildExists: false
191     },
192     {
193         liClass: 'round-edge-top-3 round-edge-bottom-3 me-top-5',
194         anchorTagClass: 'parentlink round-edge-top-3 round-edge-bottom-3',
195         clickFunction: 'k8s',
196         routerLink: '/k8s',
197         routerLinkActive: ['menu-open', 'parentactive'],
198         routerLinkActiveOptions: false,
199         icon: 'fas fa-asterisk',
200         menuName: 'PAGE.K8S.MENUK8S',
201         isChildExists: true,
202         ulClass: 'sidebar-submenu',
203         childItems: [
204             {
205                 liClass: '',
206                 anchorTagClass: 'link',
207                 routerLink: '/k8s/cluster',
208                 routerLinkActive: childActiveClass,
209                 routerLinkActiveOptions: false,
210                 icon: 'fas fa-project-diagram',
211                 menuName: 'PAGE.K8S.MENUK8SCLUSTER',
212                 isChildExists: false
213             },
214             {
215                 liClass: '',
216                 anchorTagClass: 'link',
217                 routerLink: '/k8s/repo',
218                 routerLinkActive: childActiveClass,
219                 routerLinkActiveOptions: false,
220                 icon: 'fas fa-flag',
221                 menuName: 'PAGE.K8S.MENUK8SREPO',
222                 isChildExists: false
223             },
224             {
225                 liClass: '',
226                 anchorTagClass: 'link',
227                 routerLink: '/k8s/infra-config-profile',
228                 routerLinkActive: childActiveClass,
229                 routerLinkActiveOptions: false,
230                 icon: 'fas fa-list-alt',
231                 menuName: 'PAGE.K8S.INFRACONFIG',
232                 isChildExists: false
233             },
234             {
235                 liClass: '',
236                 anchorTagClass: 'link',
237                 routerLink: '/k8s/infra-controller-profile',
238                 routerLinkActive: childActiveClass,
239                 routerLinkActiveOptions: false,
240                 icon: 'fas fa-gamepad',
241                 menuName: 'PAGE.K8S.INFRACONTROLLER',
242                 isChildExists: false
243             },
244             {
245                 liClass: '',
246                 anchorTagClass: 'link',
247                 routerLink: '/k8s/app-profile',
248                 routerLinkActive: childActiveClass,
249                 routerLinkActiveOptions: false,
250                 icon: 'fas fa-film',
251                 menuName: 'PAGE.K8S.APP',
252                 isChildExists: false
253             },
254             {
255                 liClass: '',
256                 anchorTagClass: 'link',
257                 routerLink: '/k8s/resource-profile',
258                 routerLinkActive: childActiveClass,
259                 routerLinkActiveOptions: false,
260                 icon: 'fas fa-archive',
261                 menuName: 'PAGE.K8S.RESOURCE',
262                 isChildExists: false
263             },
264             {
265                 liClass: '',
266                 anchorTagClass: 'link',
267                 routerLink: '/k8s/ksu',
268                 routerLinkActive: childActiveClass,
269                 routerLinkActiveOptions: false,
270                 icon: 'fas fa-anchor',
271                 menuName: 'PAGE.K8S.KSU',
272                 isChildExists: false
273             }
274         ]
275     },
276     {
277         liClass: 'round-edge-top-3 round-edge-bottom-3 me-top-5',
278         anchorTagClass: 'link round-edge-top-3 round-edge-bottom-3 individual',
279         clickFunction: 'nosubmenu',
280         routerLink: '/repos/details',
281         routerLinkActive: ['parentactive'],
282         routerLinkActiveOptions: true,
283         icon: 'fas fa-fas fa-cloud-download-alt',
284         menuName: 'PAGE.OSMREPO.MENUOSMREPO',
285         isChildExists: false
286     },
287     {
288         liClass: 'round-edge-top-3 round-edge-bottom-3 me-top-5',
289         anchorTagClass: 'link round-edge-top-3 round-edge-bottom-3 individual',
290         clickFunction: 'nosubmenu',
291         routerLink: '/wim/details',
292         routerLinkActive: ['parentactive'],
293         routerLinkActiveOptions: true,
294         icon: 'fas fa-sitemap',
295         menuName: 'WIMACCOUNTS',
296         isChildExists: false
297     },
298     {
299         liClass: 'header-menu',
300         anchorTagClass: 'heading text-uppercase',
301         menuName: 'ADMIN',
302         isChildExists: false
303     },
304     {
305         liClass: 'mt-1 round-edge-top-3',
306         anchorTagClass: 'link round-edge-top-3 individual',
307         clickFunction: 'nosubmenu',
308         routerLink: '/projects',
309         routerLinkActive: ['parentactive'],
310         routerLinkActiveOptions: true,
311         icon: 'fas fa-folder',
312         menuName: 'PAGE.DASHBOARD.PROJECTS',
313         isChildExists: false
314     },
315     {
316         liClass: 'mt-1 mb-1',
317         anchorTagClass: 'link individual',
318         clickFunction: 'nosubmenu',
319         routerLink: '/users/details',
320         routerLinkActive: ['parentactive'],
321         routerLinkActiveOptions: true,
322         icon: 'fas fa-users',
323         menuName: 'PAGE.DASHBOARD.USERS',
324         isChildExists: false
325     },
326     {
327         liClass: 'round-edge-bottom-3',
328         anchorTagClass: 'link round-edge-bottom-3 individual',
329         clickFunction: 'nosubmenu',
330         routerLink: '/roles/details',
331         routerLinkActive: ['parentactive'],
332         routerLinkActiveOptions: true,
333         icon: 'fas fa-user-tag',
334         menuName: 'ROLES',
335         isChildExists: false
336     }
337 ];
338
339 /** Interface for Post options */
340 export interface MENUITEMS {
341     ulClass?: string;
342     liClass: string;
343     anchorTagClass: string;
344     clickFunction?: string;
345     routerLink?: string;
346     routerLinkActive?: string[];
347     routerLinkActiveOptions?: boolean;
348     icon?: string;
349     menuName: string;
350     isChildExists: boolean;
351     childItems?: MENUITEMS[];
352 }