Initial Commit - NG UI
[osm/NG-UI.git] / src / models / MenuModel.ts
diff --git a/src/models/MenuModel.ts b/src/models/MenuModel.ts
new file mode 100644 (file)
index 0000000..dd77e0d
--- /dev/null
@@ -0,0 +1,261 @@
+/*
+ Copyright 2020 TATA ELXSI
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
+ */
+/**
+ * @file  Model for Commonly used information.
+ */
+/** Constants of the Menu child active class */
+const childActiveClass: string[] = ['active'];
+/** Constants of the Menu Items */
+export const MENU_ITEMS: MENUITEMS[] = [
+    {
+        liClass: 'round-edge-top-3',
+        anchorTagClass: 'link round-edge-top-3 individual',
+        clickFunction: 'nosubmenu',
+        routerLink: '/',
+        routerLinkActive: ['parentactive'],
+        routerLinkActiveOptions: true,
+        icon: 'fas fa-th-large',
+        menuName: 'PAGE.DASHBOARD.DASHBOARD',
+        isChildExists: false
+    },
+    {
+        liClass: 'header-menu',
+        anchorTagClass: 'heading text-uppercase',
+        menuName: 'PROJECT',
+        isChildExists: false
+    },
+    {
+        liClass: 'round-edge-top-3',
+        anchorTagClass: 'parentlink round-edge-top-3 mr-top-5',
+        clickFunction: 'packages',
+        routerLink: '/packages',
+        routerLinkActive: ['menu-open', 'parentactive'],
+        routerLinkActiveOptions: false,
+        icon: 'fas fa-box',
+        menuName: 'PACKAGES',
+        isChildExists: true,
+        ulClass: 'sidebar-submenu',
+        childItems: [
+            {
+                liClass: '',
+                anchorTagClass: 'link',
+                routerLink: '/packages/ns',
+                routerLinkActive: childActiveClass,
+                routerLinkActiveOptions: false,
+                icon: 'fas fa-box-open',
+                menuName: 'NSPACKAGES',
+                isChildExists: false
+            },
+            {
+                liClass: '',
+                anchorTagClass: 'link',
+                routerLink: '/packages/vnf',
+                routerLinkActive: childActiveClass,
+                routerLinkActiveOptions: false,
+                icon: 'fas fa-box-open',
+                menuName: 'VNFPACKAGES',
+                isChildExists: false
+            },
+            {
+                liClass: '',
+                anchorTagClass: 'link',
+                routerLink: '/packages/netslice',
+                routerLinkActive: childActiveClass,
+                routerLinkActiveOptions: false,
+                icon: 'fas fa-layer-group',
+                menuName: 'PAGE.DASHBOARD.NETSLICETEMPLATE',
+                isChildExists: false
+            }
+        ]
+    },
+    {
+        liClass: 'mt-1 round-edge-bottom-3 border-bottom-none',
+        anchorTagClass: 'parentlink round-edge-bottom-3 border-bottom-none',
+        clickFunction: 'instances',
+        routerLink: '/instances',
+        routerLinkActive: ['menu-open', 'parentactive'],
+        routerLinkActiveOptions: false,
+        icon: 'fa fa-paper-plane',
+        menuName: 'INSTANCES',
+        isChildExists: true,
+        ulClass: 'sidebar-submenu',
+        childItems: [
+            {
+                liClass: '',
+                anchorTagClass: 'link',
+                routerLink: '/instances/ns',
+                routerLinkActive: childActiveClass,
+                routerLinkActiveOptions: false,
+                icon: 'fas fa-sitemap',
+                menuName: 'NSINSTANCES',
+                isChildExists: false
+            },
+            {
+                liClass: '',
+                anchorTagClass: 'link',
+                routerLink: '/instances/vnf',
+                routerLinkActive: childActiveClass,
+                routerLinkActiveOptions: false,
+                icon: 'fas fa-hdd',
+                menuName: 'VNFINSTANCES',
+                isChildExists: false
+            },
+            {
+                liClass: '',
+                anchorTagClass: 'link',
+                routerLink: '/instances/pdu',
+                routerLinkActive: childActiveClass,
+                routerLinkActiveOptions: false,
+                icon: 'fas fa-hdd',
+                menuName: 'PDUINSTANCES',
+                isChildExists: false
+            },
+            {
+                liClass: '',
+                anchorTagClass: 'link',
+                routerLink: '/instances/netslice',
+                routerLinkActive: childActiveClass,
+                routerLinkActiveOptions: false,
+                icon: 'fas fa-layer-group',
+                menuName: 'PAGE.DASHBOARD.NETSLICEINSTANCE',
+                isChildExists: false
+            }
+        ]
+    },
+    {
+        liClass: 'round-edge-top-3 round-edge-bottom-3 mr-top-5',
+        anchorTagClass: 'link round-edge-top-3 round-edge-bottom-3 individual',
+        clickFunction: 'nosubmenu',
+        routerLink: '/sdn/details',
+        routerLinkActive: ['parentactive'],
+        routerLinkActiveOptions: true,
+        icon: 'fas fa-globe',
+        menuName: 'SDNCONTROLLER',
+        isChildExists: false
+    },
+    {
+        liClass: 'round-edge-top-3 round-edge-bottom-3 mr-top-5',
+        anchorTagClass: 'link round-edge-top-3 round-edge-bottom-3 individual',
+        clickFunction: 'nosubmenu',
+        routerLink: '/vim',
+        routerLinkActive: ['parentactive'],
+        routerLinkActiveOptions: false,
+        icon: 'fas fa-server',
+        menuName: 'VIMACCOUNTS',
+        isChildExists: false
+    },
+    {
+        liClass: 'round-edge-top-3 round-edge-bottom-3 mr-top-5',
+        anchorTagClass: 'parentlink round-edge-top-3 round-edge-bottom-3',
+        clickFunction: 'k8s',
+        routerLink: '/k8s',
+        routerLinkActive: ['menu-open', 'parentactive'],
+        routerLinkActiveOptions: false,
+        icon: 'fas fa-asterisk',
+        menuName: 'PAGE.K8S.MENUK8S',
+        isChildExists: true,
+        ulClass: 'sidebar-submenu',
+        childItems: [
+            {
+                liClass: '',
+                anchorTagClass: 'link',
+                routerLink: '/k8s/cluster',
+                routerLinkActive: childActiveClass,
+                routerLinkActiveOptions: false,
+                icon: 'fas fa-project-diagram',
+                menuName: 'PAGE.K8S.MENUK8SCLUSTER',
+                isChildExists: false
+            },
+            {
+                liClass: '',
+                anchorTagClass: 'link',
+                routerLink: '/k8s/repo',
+                routerLinkActive: childActiveClass,
+                routerLinkActiveOptions: false,
+                icon: 'fas fa-flag',
+                menuName: 'PAGE.K8S.MENUK8SREPO',
+                isChildExists: false
+            }
+        ]
+    },
+    {
+        liClass: 'round-edge-top-3 round-edge-bottom-3 mr-top-5',
+        anchorTagClass: 'link round-edge-top-3 round-edge-bottom-3 individual',
+        clickFunction: 'nosubmenu',
+        routerLink: '/wim/details',
+        routerLinkActive: ['parentactive'],
+        routerLinkActiveOptions: true,
+        icon: 'fas fa-sitemap',
+        menuName: 'WIMACCOUNTS',
+        isChildExists: false
+    },
+    {
+        liClass: 'header-menu',
+        anchorTagClass: 'heading text-uppercase',
+        menuName: 'ADMIN',
+        isChildExists: false
+    },
+    {
+        liClass: 'mt-1 round-edge-top-3',
+        anchorTagClass: 'link round-edge-top-3 individual',
+        clickFunction: 'nosubmenu',
+        routerLink: '/projects',
+        routerLinkActive: ['parentactive'],
+        routerLinkActiveOptions: true,
+        icon: 'fas fa-folder',
+        menuName: 'PAGE.DASHBOARD.PROJECTS',
+        isChildExists: false
+    },
+    {
+        liClass: 'mt-1 mb-1',
+        anchorTagClass: 'link individual',
+        clickFunction: 'nosubmenu',
+        routerLink: '/users/details',
+        routerLinkActive: ['parentactive'],
+        routerLinkActiveOptions: true,
+        icon: 'fas fa-users',
+        menuName: 'PAGE.DASHBOARD.USERS',
+        isChildExists: false
+    },
+    {
+        liClass: 'round-edge-bottom-3',
+        anchorTagClass: 'link round-edge-bottom-3 individual',
+        clickFunction: 'nosubmenu',
+        routerLink: '/roles',
+        routerLinkActive: ['parentactive'],
+        routerLinkActiveOptions: true,
+        icon: 'fas fa-user-tag',
+        menuName: 'ROLES',
+        isChildExists: false
+    }
+];
+
+/** Interface for Post options */
+export interface MENUITEMS {
+    ulClass?: string;
+    liClass: string;
+    anchorTagClass: string;
+    clickFunction?: string;
+    routerLink?: string;
+    routerLinkActive?: string[];
+    routerLinkActiveOptions?: boolean;
+    icon?: string;
+    menuName: string;
+    isChildExists: boolean;
+    childItems?: MENUITEMS[];
+}