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