blob: e20b0ef4f87155e0a10c94dca215209edaf59259 [file] [log] [blame]
Derick Montague828dda92021-06-28 15:52:22 -05001import IconDashboard from '@carbon/icons-vue/es/dashboard/16';
2import IconTextLinkAnalysis from '@carbon/icons-vue/es/text-link--analysis/16';
MichalX Szopinski842b5db2020-11-24 13:12:50 +01003import IconDataCheck from '@carbon/icons-vue/es/data--check/16';
4import IconSettingsAdjust from '@carbon/icons-vue/es/settings--adjust/16';
5import IconSettings from '@carbon/icons-vue/es/settings/16';
Sandeepa Singhb4406162021-07-26 15:05:39 +05306import IconSecurity from '@carbon/icons-vue/es/security/16';
MichalX Szopinski842b5db2020-11-24 13:12:50 +01007import IconChevronUp from '@carbon/icons-vue/es/chevron--up/16';
Sandeepa Singh6dba4be2021-07-28 15:25:14 +05308import IconDataBase from '@carbon/icons-vue/es/data--base--alt/16';
Surya V603cfbf2024-07-11 15:19:46 +05309import i18n from '@/i18n';
MichalX Szopinski842b5db2020-11-24 13:12:50 +010010
Damian Celicoaeb19812022-11-24 02:00:53 +010011const roles = {
12 administrator: 'Administrator',
13 operator: 'Operator',
14 readonly: 'ReadOnly',
15 noaccess: 'NoAccess',
16};
17
MichalX Szopinski842b5db2020-11-24 13:12:50 +010018const AppNavigationMixin = {
19 components: {
Derick Montague828dda92021-06-28 15:52:22 -050020 iconOverview: IconDashboard,
21 iconLogs: IconTextLinkAnalysis,
MichalX Szopinski842b5db2020-11-24 13:12:50 +010022 iconHealth: IconDataCheck,
23 iconControl: IconSettingsAdjust,
Sandeepa Singhf67f7692021-07-19 18:04:18 +053024 iconSettings: IconSettings,
Sandeepa Singhb4406162021-07-26 15:05:39 +053025 iconSecurityAndAccess: IconSecurity,
MichalX Szopinski842b5db2020-11-24 13:12:50 +010026 iconExpand: IconChevronUp,
Sandeepa Singh6dba4be2021-07-28 15:25:14 +053027 iconResourceManagement: IconDataBase,
MichalX Szopinski842b5db2020-11-24 13:12:50 +010028 },
29 data() {
30 return {
31 navigationItems: [
32 {
33 id: 'overview',
Surya V603cfbf2024-07-11 15:19:46 +053034 label: i18n.global.t('appNavigation.overview'),
MichalX Szopinski842b5db2020-11-24 13:12:50 +010035 route: '/',
36 icon: 'iconOverview',
37 },
38 {
Derick Montague828dda92021-06-28 15:52:22 -050039 id: 'logs',
Surya V603cfbf2024-07-11 15:19:46 +053040 label: i18n.global.t('appNavigation.logs'),
Derick Montague828dda92021-06-28 15:52:22 -050041 icon: 'iconLogs',
MichalX Szopinski842b5db2020-11-24 13:12:50 +010042 children: [
43 {
44 id: 'event-logs',
Surya V603cfbf2024-07-11 15:19:46 +053045 label: i18n.global.t('appNavigation.eventLogs'),
Derick Montague828dda92021-06-28 15:52:22 -050046 route: '/logs/event-logs',
MichalX Szopinski842b5db2020-11-24 13:12:50 +010047 },
MichalX Szopinski2a2e1022021-11-05 15:54:29 +010048 {
49 id: 'post-code-logs',
Surya V603cfbf2024-07-11 15:19:46 +053050 label: i18n.global.t('appNavigation.postCodeLogs'),
MichalX Szopinski2a2e1022021-11-05 15:54:29 +010051 route: '/logs/post-code-logs',
52 },
Derick Montague828dda92021-06-28 15:52:22 -050053 ],
54 },
55 {
Sandeepa Singh7affc522021-07-06 16:29:10 +053056 id: 'hardware-status',
Surya V603cfbf2024-07-11 15:19:46 +053057 label: i18n.global.t('appNavigation.hardwareStatus'),
Derick Montague828dda92021-06-28 15:52:22 -050058 icon: 'iconHealth',
59 children: [
MichalX Szopinski842b5db2020-11-24 13:12:50 +010060 {
Sandeepa Singh7affc522021-07-06 16:29:10 +053061 id: 'inventory',
Surya V603cfbf2024-07-11 15:19:46 +053062 label: i18n.global.t('appNavigation.inventory'),
Sandeepa Singh7affc522021-07-06 16:29:10 +053063 route: '/hardware-status/inventory',
MichalX Szopinski842b5db2020-11-24 13:12:50 +010064 },
65 {
66 id: 'sensors',
Surya V603cfbf2024-07-11 15:19:46 +053067 label: i18n.global.t('appNavigation.sensors'),
Sandeepa Singh7affc522021-07-06 16:29:10 +053068 route: '/hardware-status/sensors',
MichalX Szopinski842b5db2020-11-24 13:12:50 +010069 },
70 ],
71 },
72 {
Sandeepa Singh68cbbe92021-07-14 16:02:22 +053073 id: 'operations',
Surya V603cfbf2024-07-11 15:19:46 +053074 label: i18n.global.t('appNavigation.operations'),
MichalX Szopinski842b5db2020-11-24 13:12:50 +010075 icon: 'iconControl',
76 children: [
77 {
78 id: 'kvm',
Surya V603cfbf2024-07-11 15:19:46 +053079 label: i18n.global.t('appNavigation.kvm'),
Sandeepa Singh68cbbe92021-07-14 16:02:22 +053080 route: '/operations/kvm',
81 },
82 {
83 id: 'firmware',
Surya V603cfbf2024-07-11 15:19:46 +053084 label: i18n.global.t('appNavigation.firmware'),
Sandeepa Singh68cbbe92021-07-14 16:02:22 +053085 route: '/operations/firmware',
MichalX Szopinski842b5db2020-11-24 13:12:50 +010086 },
87 {
MichalX Szopinski842b5db2020-11-24 13:12:50 +010088 id: 'reboot-bmc',
Surya V603cfbf2024-07-11 15:19:46 +053089 label: i18n.global.t('appNavigation.rebootBmc'),
Sandeepa Singh68cbbe92021-07-14 16:02:22 +053090 route: '/operations/reboot-bmc',
MichalX Szopinski842b5db2020-11-24 13:12:50 +010091 },
92 {
93 id: 'serial-over-lan',
Surya V603cfbf2024-07-11 15:19:46 +053094 label: i18n.global.t('appNavigation.serialOverLan'),
Sandeepa Singh68cbbe92021-07-14 16:02:22 +053095 route: '/operations/serial-over-lan',
Damian Celicoaeb19812022-11-24 02:00:53 +010096 exclusiveToRoles: [roles.administrator],
MichalX Szopinski842b5db2020-11-24 13:12:50 +010097 },
98 {
99 id: 'server-power-operations',
Surya V603cfbf2024-07-11 15:19:46 +0530100 label: i18n.global.t('appNavigation.serverPowerOperations'),
Sandeepa Singh68cbbe92021-07-14 16:02:22 +0530101 route: '/operations/server-power-operations',
MichalX Szopinski842b5db2020-11-24 13:12:50 +0100102 },
103 {
104 id: 'virtual-media',
Surya V603cfbf2024-07-11 15:19:46 +0530105 label: i18n.global.t('appNavigation.virtualMedia'),
Sandeepa Singh68cbbe92021-07-14 16:02:22 +0530106 route: '/operations/virtual-media',
Damian Celicoaeb19812022-11-24 02:00:53 +0100107 exclusiveToRoles: [roles.administrator],
MichalX Szopinski842b5db2020-11-24 13:12:50 +0100108 },
109 ],
110 },
111 {
Sandeepa Singhf67f7692021-07-19 18:04:18 +0530112 id: 'settings',
Surya V603cfbf2024-07-11 15:19:46 +0530113 label: i18n.global.t('appNavigation.settings'),
Sandeepa Singhf67f7692021-07-19 18:04:18 +0530114 icon: 'iconSettings',
MichalX Szopinski842b5db2020-11-24 13:12:50 +0100115 children: [
116 {
Sandeepa Singhf67f7692021-07-19 18:04:18 +0530117 id: 'date-time',
Surya V603cfbf2024-07-11 15:19:46 +0530118 label: i18n.global.t('appNavigation.dateTime'),
Sandeepa Singhf67f7692021-07-19 18:04:18 +0530119 route: '/settings/date-time',
MichalX Szopinski842b5db2020-11-24 13:12:50 +0100120 },
121 {
Sandeepa Singhf67f7692021-07-19 18:04:18 +0530122 id: 'network',
Surya V603cfbf2024-07-11 15:19:46 +0530123 label: i18n.global.t('appNavigation.network'),
Sandeepa Singhf67f7692021-07-19 18:04:18 +0530124 route: '/settings/network',
MichalX Szopinski842b5db2020-11-24 13:12:50 +0100125 },
MichalX Szopinski842b5db2020-11-24 13:12:50 +0100126 ],
127 },
128 {
Sandeepa Singhb4406162021-07-26 15:05:39 +0530129 id: 'security-and-access',
Surya V603cfbf2024-07-11 15:19:46 +0530130 label: i18n.global.t('appNavigation.securityAndAccess'),
Sandeepa Singhb4406162021-07-26 15:05:39 +0530131 icon: 'iconSecurityAndAccess',
MichalX Szopinski842b5db2020-11-24 13:12:50 +0100132 children: [
133 {
Sandeepa Singhb4406162021-07-26 15:05:39 +0530134 id: 'sessions',
Surya V603cfbf2024-07-11 15:19:46 +0530135 label: i18n.global.t('appNavigation.sessions'),
Sandeepa Singhb4406162021-07-26 15:05:39 +0530136 route: '/security-and-access/sessions',
MichalX Szopinskid6752692021-03-01 13:59:55 +0100137 },
138 {
Sandeepa Singhb4406162021-07-26 15:05:39 +0530139 id: 'user-management',
Surya V603cfbf2024-07-11 15:19:46 +0530140 label: i18n.global.t('appNavigation.userManagement'),
Sandeepa Singhb4406162021-07-26 15:05:39 +0530141 route: '/security-and-access/user-management',
MichalX Szopinski842b5db2020-11-24 13:12:50 +0100142 },
143 {
Sandeepa Singhb4406162021-07-26 15:05:39 +0530144 id: 'policies',
Surya V603cfbf2024-07-11 15:19:46 +0530145 label: i18n.global.t('appNavigation.policies'),
Sandeepa Singhb4406162021-07-26 15:05:39 +0530146 route: '/security-and-access/policies',
147 },
148 {
149 id: 'certificates',
Surya V603cfbf2024-07-11 15:19:46 +0530150 label: i18n.global.t('appNavigation.certificates'),
Sandeepa Singhb4406162021-07-26 15:05:39 +0530151 route: '/security-and-access/certificates',
MichalX Szopinski842b5db2020-11-24 13:12:50 +0100152 },
153 ],
154 },
Sandeepa Singh6dba4be2021-07-28 15:25:14 +0530155 {
156 id: 'resource-management',
Surya V603cfbf2024-07-11 15:19:46 +0530157 label: i18n.global.t('appNavigation.resourceManagement'),
Sandeepa Singh6dba4be2021-07-28 15:25:14 +0530158 icon: 'iconResourceManagement',
159 children: [
160 {
161 id: 'power',
Surya V603cfbf2024-07-11 15:19:46 +0530162 label: i18n.global.t('appNavigation.power'),
Sandeepa Singh6dba4be2021-07-28 15:25:14 +0530163 route: '/resource-management/power',
164 },
165 ],
166 },
MichalX Szopinski842b5db2020-11-24 13:12:50 +0100167 ],
168 };
169 },
170};
171
172export default AppNavigationMixin;