xref: /openbmc/webui-vue/src/components/AppNavigation/AppNavigationMixin.js (revision 6b1a15736e939b591e787ae293745649dbb504ed)
1828dda9bSDerick Montagueimport IconDashboard from '@carbon/icons-vue/es/dashboard/16';
2828dda9bSDerick Montagueimport IconTextLinkAnalysis from '@carbon/icons-vue/es/text-link--analysis/16';
3d329ec84SYoshie Muranakaimport IconDataCheck from '@carbon/icons-vue/es/data--check/16';
4d329ec84SYoshie Muranakaimport IconSettingsAdjust from '@carbon/icons-vue/es/settings--adjust/16';
5d329ec84SYoshie Muranakaimport IconSettings from '@carbon/icons-vue/es/settings/16';
6b440616cSSandeepa Singhimport IconSecurity from '@carbon/icons-vue/es/security/16';
7d329ec84SYoshie Muranakaimport IconChevronUp from '@carbon/icons-vue/es/chevron--up/16';
86dba4be6SSandeepa Singhimport IconDataBase from '@carbon/icons-vue/es/data--base--alt/16';
9883a0d59SEd Tanousimport i18n from '@/i18n';
10aeb19816SDamian Celicoconst roles = {
11aeb19816SDamian Celico  administrator: 'Administrator',
12aeb19816SDamian Celico  operator: 'Operator',
13aeb19816SDamian Celico  readonly: 'ReadOnly',
14aeb19816SDamian Celico  noaccess: 'NoAccess',
15aeb19816SDamian Celico};
16d329ec84SYoshie Muranaka
17d329ec84SYoshie Muranakaconst AppNavigationMixin = {
18d329ec84SYoshie Muranaka  components: {
19828dda9bSDerick Montague    iconOverview: IconDashboard,
20828dda9bSDerick Montague    iconLogs: IconTextLinkAnalysis,
21d329ec84SYoshie Muranaka    iconHealth: IconDataCheck,
22d329ec84SYoshie Muranaka    iconControl: IconSettingsAdjust,
23f67f769fSSandeepa Singh    iconSettings: IconSettings,
24b440616cSSandeepa Singh    iconSecurityAndAccess: IconSecurity,
25602e98aaSDerick Montague    iconExpand: IconChevronUp,
266dba4be6SSandeepa Singh    iconResourceManagement: IconDataBase,
27d329ec84SYoshie Muranaka  },
28d329ec84SYoshie Muranaka  data() {
29d329ec84SYoshie Muranaka    return {
30d329ec84SYoshie Muranaka      navigationItems: [
31d329ec84SYoshie Muranaka        {
32d329ec84SYoshie Muranaka          id: 'overview',
33883a0d59SEd Tanous          label: i18n.global.t('appNavigation.overview'),
34d329ec84SYoshie Muranaka          route: '/',
35602e98aaSDerick Montague          icon: 'iconOverview',
36d329ec84SYoshie Muranaka        },
37d329ec84SYoshie Muranaka        {
38828dda9bSDerick Montague          id: 'logs',
39883a0d59SEd Tanous          label: i18n.global.t('appNavigation.logs'),
40828dda9bSDerick Montague          icon: 'iconLogs',
41d329ec84SYoshie Muranaka          children: [
42d329ec84SYoshie Muranaka            {
43d329ec84SYoshie Muranaka              id: 'event-logs',
44883a0d59SEd Tanous              label: i18n.global.t('appNavigation.eventLogs'),
45828dda9bSDerick Montague              route: '/logs/event-logs',
46d329ec84SYoshie Muranaka            },
47d329ec84SYoshie Muranaka            {
4806d53863SSandeepa Singh              id: 'post-code-logs',
49883a0d59SEd Tanous              label: i18n.global.t('appNavigation.postCodeLogs'),
507affc529SSandeepa Singh              route: '/logs/post-code-logs',
517affc529SSandeepa Singh            },
52*6b1a1573SPaul Fertser            {
53*6b1a1573SPaul Fertser              id: 'dumps',
54*6b1a1573SPaul Fertser              label: i18n.global.t('appNavigation.dumps'),
55*6b1a1573SPaul Fertser              route: '/logs/dumps',
56*6b1a1573SPaul Fertser            },
577affc529SSandeepa Singh          ],
587affc529SSandeepa Singh        },
597affc529SSandeepa Singh        {
607affc529SSandeepa Singh          id: 'hardware-status',
61883a0d59SEd Tanous          label: i18n.global.t('appNavigation.hardwareStatus'),
627affc529SSandeepa Singh          icon: 'iconHealth',
637affc529SSandeepa Singh          children: [
647affc529SSandeepa Singh            {
657affc529SSandeepa Singh              id: 'inventory',
66883a0d59SEd Tanous              label: i18n.global.t('appNavigation.inventory'),
677affc529SSandeepa Singh              route: '/hardware-status/inventory',
6806d53863SSandeepa Singh            },
6906d53863SSandeepa Singh            {
70d329ec84SYoshie Muranaka              id: 'sensors',
71883a0d59SEd Tanous              label: i18n.global.t('appNavigation.sensors'),
727affc529SSandeepa Singh              route: '/hardware-status/sensors',
73602e98aaSDerick Montague            },
74602e98aaSDerick Montague          ],
75d329ec84SYoshie Muranaka        },
76d329ec84SYoshie Muranaka        {
7768cbbe90SSandeepa Singh          id: 'operations',
78883a0d59SEd Tanous          label: i18n.global.t('appNavigation.operations'),
79d329ec84SYoshie Muranaka          icon: 'iconControl',
80d329ec84SYoshie Muranaka          children: [
81d329ec84SYoshie Muranaka            {
82da9f0a6eSDerick Montague              id: 'factory-reset',
83883a0d59SEd Tanous              label: i18n.global.t('appNavigation.factoryReset'),
8468cbbe90SSandeepa Singh              route: '/operations/factory-reset',
85da9f0a6eSDerick Montague            },
86da9f0a6eSDerick Montague            {
87d329ec84SYoshie Muranaka              id: 'kvm',
88883a0d59SEd Tanous              label: i18n.global.t('appNavigation.kvm'),
8968cbbe90SSandeepa Singh              route: '/operations/kvm',
9068cbbe90SSandeepa Singh            },
9168cbbe90SSandeepa Singh            {
9205887b50SSandeepa Singh              id: 'key-clear',
93883a0d59SEd Tanous              label: i18n.global.t('appNavigation.keyClear'),
9405887b50SSandeepa Singh              route: '/operations/key-clear',
9505887b50SSandeepa Singh            },
9605887b50SSandeepa Singh            {
9768cbbe90SSandeepa Singh              id: 'firmware',
98883a0d59SEd Tanous              label: i18n.global.t('appNavigation.firmware'),
9968cbbe90SSandeepa Singh              route: '/operations/firmware',
100d329ec84SYoshie Muranaka            },
101d329ec84SYoshie Muranaka            {
102d329ec84SYoshie Muranaka              id: 'reboot-bmc',
103883a0d59SEd Tanous              label: i18n.global.t('appNavigation.rebootBmc'),
10468cbbe90SSandeepa Singh              route: '/operations/reboot-bmc',
105d329ec84SYoshie Muranaka            },
106d329ec84SYoshie Muranaka            {
107d329ec84SYoshie Muranaka              id: 'serial-over-lan',
108883a0d59SEd Tanous              label: i18n.global.t('appNavigation.serialOverLan'),
10968cbbe90SSandeepa Singh              route: '/operations/serial-over-lan',
110aeb19816SDamian Celico              exclusiveToRoles: [roles.administrator],
111d329ec84SYoshie Muranaka            },
112d329ec84SYoshie Muranaka            {
113d329ec84SYoshie Muranaka              id: 'server-power-operations',
114883a0d59SEd Tanous              label: i18n.global.t('appNavigation.serverPowerOperations'),
11568cbbe90SSandeepa Singh              route: '/operations/server-power-operations',
116d329ec84SYoshie Muranaka            },
117d329ec84SYoshie Muranaka            {
118d329ec84SYoshie Muranaka              id: 'virtual-media',
119883a0d59SEd Tanous              label: i18n.global.t('appNavigation.virtualMedia'),
12068cbbe90SSandeepa Singh              route: '/operations/virtual-media',
121aeb19816SDamian Celico              exclusiveToRoles: [roles.administrator],
122602e98aaSDerick Montague            },
123602e98aaSDerick Montague          ],
124d329ec84SYoshie Muranaka        },
125d329ec84SYoshie Muranaka        {
126f67f769fSSandeepa Singh          id: 'settings',
127883a0d59SEd Tanous          label: i18n.global.t('appNavigation.settings'),
128f67f769fSSandeepa Singh          icon: 'iconSettings',
129d329ec84SYoshie Muranaka          children: [
130d329ec84SYoshie Muranaka            {
131f67f769fSSandeepa Singh              id: 'date-time',
132883a0d59SEd Tanous              label: i18n.global.t('appNavigation.dateTime'),
133f67f769fSSandeepa Singh              route: '/settings/date-time',
134d329ec84SYoshie Muranaka            },
135d329ec84SYoshie Muranaka            {
136f67f769fSSandeepa Singh              id: 'network',
137883a0d59SEd Tanous              label: i18n.global.t('appNavigation.network'),
138f67f769fSSandeepa Singh              route: '/settings/network',
139f67f769fSSandeepa Singh            },
140f67f769fSSandeepa Singh            {
141f67f769fSSandeepa Singh              id: 'power-restore-policy',
142883a0d59SEd Tanous              label: i18n.global.t('appNavigation.powerRestorePolicy'),
143f67f769fSSandeepa Singh              route: '/settings/power-restore-policy',
144d329ec84SYoshie Muranaka            },
1457c1cfe7eSKonstantin Aladyshev            {
1467c1cfe7eSKonstantin Aladyshev              id: 'snmp-alerts',
147883a0d59SEd Tanous              label: i18n.global.t('appNavigation.snmpAlerts'),
1487c1cfe7eSKonstantin Aladyshev              route: '/settings/snmp-alerts',
1497c1cfe7eSKonstantin Aladyshev            },
150602e98aaSDerick Montague          ],
151d329ec84SYoshie Muranaka        },
152d329ec84SYoshie Muranaka        {
153b440616cSSandeepa Singh          id: 'security-and-access',
154883a0d59SEd Tanous          label: i18n.global.t('appNavigation.securityAndAccess'),
155b440616cSSandeepa Singh          icon: 'iconSecurityAndAccess',
156d329ec84SYoshie Muranaka          children: [
157d329ec84SYoshie Muranaka            {
158b440616cSSandeepa Singh              id: 'sessions',
159883a0d59SEd Tanous              label: i18n.global.t('appNavigation.sessions'),
160b440616cSSandeepa Singh              route: '/security-and-access/sessions',
16134efde29SSukanya Pandey            },
16234efde29SSukanya Pandey            {
163d329ec84SYoshie Muranaka              id: 'ldap',
164883a0d59SEd Tanous              label: i18n.global.t('appNavigation.ldap'),
165b440616cSSandeepa Singh              route: '/security-and-access/ldap',
166d329ec84SYoshie Muranaka            },
167d329ec84SYoshie Muranaka            {
168b440616cSSandeepa Singh              id: 'user-management',
169883a0d59SEd Tanous              label: i18n.global.t('appNavigation.userManagement'),
170b440616cSSandeepa Singh              route: '/security-and-access/user-management',
171d329ec84SYoshie Muranaka            },
172d329ec84SYoshie Muranaka            {
173b440616cSSandeepa Singh              id: 'policies',
174883a0d59SEd Tanous              label: i18n.global.t('appNavigation.policies'),
175b440616cSSandeepa Singh              route: '/security-and-access/policies',
176b440616cSSandeepa Singh            },
177b440616cSSandeepa Singh            {
178b440616cSSandeepa Singh              id: 'certificates',
179883a0d59SEd Tanous              label: i18n.global.t('appNavigation.certificates'),
180b440616cSSandeepa Singh              route: '/security-and-access/certificates',
181602e98aaSDerick Montague            },
182602e98aaSDerick Montague          ],
183602e98aaSDerick Montague        },
1846dba4be6SSandeepa Singh        {
1856dba4be6SSandeepa Singh          id: 'resource-management',
186883a0d59SEd Tanous          label: i18n.global.t('appNavigation.resourceManagement'),
1876dba4be6SSandeepa Singh          icon: 'iconResourceManagement',
1886dba4be6SSandeepa Singh          children: [
1896dba4be6SSandeepa Singh            {
1906dba4be6SSandeepa Singh              id: 'power',
191883a0d59SEd Tanous              label: i18n.global.t('appNavigation.power'),
1926dba4be6SSandeepa Singh              route: '/resource-management/power',
1936dba4be6SSandeepa Singh            },
1946dba4be6SSandeepa Singh          ],
1956dba4be6SSandeepa Singh        },
196602e98aaSDerick Montague      ],
197d329ec84SYoshie Muranaka    };
198602e98aaSDerick Montague  },
199d329ec84SYoshie Muranaka};
200d329ec84SYoshie Muranaka
201d329ec84SYoshie Muranakaexport default AppNavigationMixin;
202