Feature 11009 Ns Config Template as first class citizens in OSM
[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/netslice',
78                 routerLinkActive: childActiveClass,
79                 routerLinkActiveOptions: false,
80                 icon: 'fas fa-layer-group',
81                 menuName: 'PAGE.DASHBOARD.NETSLICETEMPLATE',
82                 isChildExists: false
83             },
84             {
85                 liClass: '',
86                 anchorTagClass: 'link',
87                 routerLink: '/packages/nsconfigtemplate',
88                 routerLinkActive: childActiveClass,
89                 routerLinkActiveOptions: false,
90                 icon: 'fas fa-file',
91                 menuName: 'PAGE.DASHBOARD.NSCONFIGTEMPLATE',
92                 isChildExists: false
93             }
94         ]
95     },
96     {
97         liClass: 'mt-1 round-edge-bottom-3 border-bottom-none',
98         anchorTagClass: 'parentlink round-edge-bottom-3 border-bottom-none',
99         clickFunction: 'instances',
100         routerLink: '/instances',
101         routerLinkActive: ['menu-open', 'parentactive'],
102         routerLinkActiveOptions: false,
103         icon: 'fa fa-paper-plane',
104         menuName: 'INSTANCES',
105         isChildExists: true,
106         ulClass: 'sidebar-submenu',
107         childItems: [
108             {
109                 liClass: '',
110                 anchorTagClass: 'link',
111                 routerLink: '/instances/ns',
112                 routerLinkActive: childActiveClass,
113                 routerLinkActiveOptions: false,
114                 icon: 'fas fa-sitemap',
115                 menuName: 'NSINSTANCES',
116                 isChildExists: false
117             },
118             {
119                 liClass: '',
120                 anchorTagClass: 'link',
121                 routerLink: '/instances/vnf',
122                 routerLinkActive: childActiveClass,
123                 routerLinkActiveOptions: false,
124                 icon: 'fas fa-hdd',
125                 menuName: 'VNFINSTANCES',
126                 isChildExists: false
127             },
128             {
129                 liClass: '',
130                 anchorTagClass: 'link',
131                 routerLink: '/instances/pdu',
132                 routerLinkActive: childActiveClass,
133                 routerLinkActiveOptions: false,
134                 icon: 'fas fa-hdd',
135                 menuName: 'PDUINSTANCES',
136                 isChildExists: false
137             },
138             {
139                 liClass: '',
140                 anchorTagClass: 'link',
141                 routerLink: '/instances/netslice',
142                 routerLinkActive: childActiveClass,
143                 routerLinkActiveOptions: false,
144                 icon: 'fas fa-layer-group',
145                 menuName: 'PAGE.DASHBOARD.NETSLICEINSTANCE',
146                 isChildExists: false
147             },
148             {
149                 liClass: '',
150                 anchorTagClass: 'link',
151                 routerLink: '/instances/operational-view',
152                 routerLinkActive: childActiveClass,
153                 routerLinkActiveOptions: false,
154                 icon: 'fas fa-tachometer-alt',
155                 menuName: 'PAGE.OPERATIONALDASHBOARD.TITLE',
156                 isChildExists: false
157             }
158         ]
159     },
160     {
161         liClass: 'round-edge-top-3 round-edge-bottom-3 me-top-5',
162         anchorTagClass: 'link round-edge-top-3 round-edge-bottom-3 individual',
163         clickFunction: 'nosubmenu',
164         routerLink: '/sdn/details',
165         routerLinkActive: ['parentactive'],
166         routerLinkActiveOptions: true,
167         icon: 'fas fa-globe',
168         menuName: 'SDNCONTROLLER',
169         isChildExists: false
170     },
171     {
172         liClass: 'round-edge-top-3 round-edge-bottom-3 me-top-5',
173         anchorTagClass: 'link round-edge-top-3 round-edge-bottom-3 individual',
174         clickFunction: 'nosubmenu',
175         routerLink: '/vim',
176         routerLinkActive: ['parentactive'],
177         routerLinkActiveOptions: false,
178         icon: 'fas fa-server',
179         menuName: 'VIMACCOUNTS',
180         isChildExists: false
181     },
182     {
183         liClass: 'round-edge-top-3 round-edge-bottom-3 me-top-5',
184         anchorTagClass: 'parentlink round-edge-top-3 round-edge-bottom-3',
185         clickFunction: 'k8s',
186         routerLink: '/k8s',
187         routerLinkActive: ['menu-open', 'parentactive'],
188         routerLinkActiveOptions: false,
189         icon: 'fas fa-asterisk',
190         menuName: 'PAGE.K8S.MENUK8S',
191         isChildExists: true,
192         ulClass: 'sidebar-submenu',
193         childItems: [
194             {
195                 liClass: '',
196                 anchorTagClass: 'link',
197                 routerLink: '/k8s/cluster',
198                 routerLinkActive: childActiveClass,
199                 routerLinkActiveOptions: false,
200                 icon: 'fas fa-project-diagram',
201                 menuName: 'PAGE.K8S.MENUK8SCLUSTER',
202                 isChildExists: false
203             },
204             {
205                 liClass: '',
206                 anchorTagClass: 'link',
207                 routerLink: '/k8s/repo',
208                 routerLinkActive: childActiveClass,
209                 routerLinkActiveOptions: false,
210                 icon: 'fas fa-flag',
211                 menuName: 'PAGE.K8S.MENUK8SREPO',
212                 isChildExists: false
213             }
214         ]
215     },
216     {
217         liClass: 'round-edge-top-3 round-edge-bottom-3 me-top-5',
218         anchorTagClass: 'link round-edge-top-3 round-edge-bottom-3 individual',
219         clickFunction: 'nosubmenu',
220         routerLink: '/repos/details',
221         routerLinkActive: ['parentactive'],
222         routerLinkActiveOptions: true,
223         icon: 'fas fa-fas fa-cloud-download-alt',
224         menuName: 'PAGE.OSMREPO.MENUOSMREPO',
225         isChildExists: false
226     },
227     {
228         liClass: 'round-edge-top-3 round-edge-bottom-3 me-top-5',
229         anchorTagClass: 'link round-edge-top-3 round-edge-bottom-3 individual',
230         clickFunction: 'nosubmenu',
231         routerLink: '/wim/details',
232         routerLinkActive: ['parentactive'],
233         routerLinkActiveOptions: true,
234         icon: 'fas fa-sitemap',
235         menuName: 'WIMACCOUNTS',
236         isChildExists: false
237     },
238     {
239         liClass: 'header-menu',
240         anchorTagClass: 'heading text-uppercase',
241         menuName: 'ADMIN',
242         isChildExists: false
243     },
244     {
245         liClass: 'mt-1 round-edge-top-3',
246         anchorTagClass: 'link round-edge-top-3 individual',
247         clickFunction: 'nosubmenu',
248         routerLink: '/projects',
249         routerLinkActive: ['parentactive'],
250         routerLinkActiveOptions: true,
251         icon: 'fas fa-folder',
252         menuName: 'PAGE.DASHBOARD.PROJECTS',
253         isChildExists: false
254     },
255     {
256         liClass: 'mt-1 mb-1',
257         anchorTagClass: 'link individual',
258         clickFunction: 'nosubmenu',
259         routerLink: '/users/details',
260         routerLinkActive: ['parentactive'],
261         routerLinkActiveOptions: true,
262         icon: 'fas fa-users',
263         menuName: 'PAGE.DASHBOARD.USERS',
264         isChildExists: false
265     },
266     {
267         liClass: 'round-edge-bottom-3',
268         anchorTagClass: 'link round-edge-bottom-3 individual',
269         clickFunction: 'nosubmenu',
270         routerLink: '/roles/details',
271         routerLinkActive: ['parentactive'],
272         routerLinkActiveOptions: true,
273         icon: 'fas fa-user-tag',
274         menuName: 'ROLES',
275         isChildExists: false
276     }
277 ];
278
279 /** Interface for Post options */
280 export interface MENUITEMS {
281     ulClass?: string;
282     liClass: string;
283     anchorTagClass: string;
284     clickFunction?: string;
285     routerLink?: string;
286     routerLinkActive?: string[];
287     routerLinkActiveOptions?: boolean;
288     icon?: string;
289     menuName: string;
290     isChildExists: boolean;
291     childItems?: MENUITEMS[];
292 }