blob: ed84e17a4941c0154b0c6ae5abed20d22912055d [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';
Yoshie Muranaka0214fed2020-09-03 13:25:50 -07003import 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';
Yoshie Muranaka0214fed2020-09-03 13:25:50 -07007import 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';
Yoshie Muranaka0214fed2020-09-03 13:25:50 -07009
10const AppNavigationMixin = {
11 components: {
Derick Montague828dda92021-06-28 15:52:22 -050012 iconOverview: IconDashboard,
13 iconLogs: IconTextLinkAnalysis,
Yoshie Muranaka0214fed2020-09-03 13:25:50 -070014 iconHealth: IconDataCheck,
15 iconControl: IconSettingsAdjust,
Sandeepa Singhf67f7692021-07-19 18:04:18 +053016 iconSettings: IconSettings,
Sandeepa Singhb4406162021-07-26 15:05:39 +053017 iconSecurityAndAccess: IconSecurity,
Derick Montague602e98a2020-10-21 16:20:00 -050018 iconExpand: IconChevronUp,
Sandeepa Singh6dba4be2021-07-28 15:25:14 +053019 iconResourceManagement: IconDataBase,
Yoshie Muranaka0214fed2020-09-03 13:25:50 -070020 },
21 data() {
22 return {
23 navigationItems: [
24 {
25 id: 'overview',
26 label: this.$t('appNavigation.overview'),
27 route: '/',
Derick Montague602e98a2020-10-21 16:20:00 -050028 icon: 'iconOverview',
Yoshie Muranaka0214fed2020-09-03 13:25:50 -070029 },
30 {
Derick Montague828dda92021-06-28 15:52:22 -050031 id: 'logs',
32 label: this.$t('appNavigation.logs'),
33 icon: 'iconLogs',
Yoshie Muranaka0214fed2020-09-03 13:25:50 -070034 children: [
35 {
Yoshie Muranaka22d4d522020-12-03 10:58:35 -080036 id: 'dumps',
37 label: this.$t('appNavigation.dumps'),
Derick Montague828dda92021-06-28 15:52:22 -050038 route: '/logs/dumps',
Yoshie Muranaka22d4d522020-12-03 10:58:35 -080039 },
40 {
Yoshie Muranaka0214fed2020-09-03 13:25:50 -070041 id: 'event-logs',
42 label: this.$t('appNavigation.eventLogs'),
Derick Montague828dda92021-06-28 15:52:22 -050043 route: '/logs/event-logs',
Yoshie Muranaka0214fed2020-09-03 13:25:50 -070044 },
Yoshie Muranaka0214fed2020-09-03 13:25:50 -070045 {
Sandeepa Singh06d53862021-05-24 13:51:09 +053046 id: 'post-code-logs',
47 label: this.$t('appNavigation.postCodeLogs'),
Sandeepa Singh7affc522021-07-06 16:29:10 +053048 route: '/logs/post-code-logs',
49 },
50 ],
51 },
52 {
53 id: 'hardware-status',
54 label: this.$t('appNavigation.hardwareStatus'),
55 icon: 'iconHealth',
56 children: [
57 {
58 id: 'inventory',
59 label: this.$t('appNavigation.inventory'),
60 route: '/hardware-status/inventory',
Sandeepa Singh06d53862021-05-24 13:51:09 +053061 },
62 {
Yoshie Muranaka0214fed2020-09-03 13:25:50 -070063 id: 'sensors',
64 label: this.$t('appNavigation.sensors'),
Sandeepa Singh7affc522021-07-06 16:29:10 +053065 route: '/hardware-status/sensors',
Derick Montague602e98a2020-10-21 16:20:00 -050066 },
67 ],
Yoshie Muranaka0214fed2020-09-03 13:25:50 -070068 },
69 {
Sandeepa Singh68cbbe92021-07-14 16:02:22 +053070 id: 'operations',
71 label: this.$t('appNavigation.operations'),
Yoshie Muranaka0214fed2020-09-03 13:25:50 -070072 icon: 'iconControl',
Sandeepa Singh05887b52022-01-10 19:19:36 +053073 children: this.operationsNavigationItems(),
Yoshie Muranaka0214fed2020-09-03 13:25:50 -070074 },
75 {
Sandeepa Singhf67f7692021-07-19 18:04:18 +053076 id: 'settings',
77 label: this.$t('appNavigation.settings'),
78 icon: 'iconSettings',
Yoshie Muranaka0214fed2020-09-03 13:25:50 -070079 children: [
80 {
Sandeepa Singhf67f7692021-07-19 18:04:18 +053081 id: 'date-time',
82 label: this.$t('appNavigation.dateTime'),
83 route: '/settings/date-time',
Yoshie Muranaka0214fed2020-09-03 13:25:50 -070084 },
85 {
Sandeepa Singhf67f7692021-07-19 18:04:18 +053086 id: 'network',
87 label: this.$t('appNavigation.network'),
88 route: '/settings/network',
89 },
90 {
91 id: 'power-restore-policy',
92 label: this.$t('appNavigation.powerRestorePolicy'),
93 route: '/settings/power-restore-policy',
Yoshie Muranaka0214fed2020-09-03 13:25:50 -070094 },
Derick Montague602e98a2020-10-21 16:20:00 -050095 ],
Yoshie Muranaka0214fed2020-09-03 13:25:50 -070096 },
97 {
Sandeepa Singhb4406162021-07-26 15:05:39 +053098 id: 'security-and-access',
99 label: this.$t('appNavigation.securityAndAccess'),
100 icon: 'iconSecurityAndAccess',
Yoshie Muranaka0214fed2020-09-03 13:25:50 -0700101 children: [
102 {
Sandeepa Singhb4406162021-07-26 15:05:39 +0530103 id: 'sessions',
104 label: this.$t('appNavigation.sessions'),
105 route: '/security-and-access/sessions',
Yoshie Muranakaca22a422021-01-04 14:13:34 -0800106 },
107 {
Yoshie Muranaka0214fed2020-09-03 13:25:50 -0700108 id: 'ldap',
109 label: this.$t('appNavigation.ldap'),
Sandeepa Singhb4406162021-07-26 15:05:39 +0530110 route: '/security-and-access/ldap',
Yoshie Muranaka0214fed2020-09-03 13:25:50 -0700111 },
112 {
Sandeepa Singhb4406162021-07-26 15:05:39 +0530113 id: 'user-management',
114 label: this.$t('appNavigation.userManagement'),
115 route: '/security-and-access/user-management',
Yoshie Muranaka0214fed2020-09-03 13:25:50 -0700116 },
117 {
Sandeepa Singhb4406162021-07-26 15:05:39 +0530118 id: 'policies',
119 label: this.$t('appNavigation.policies'),
120 route: '/security-and-access/policies',
121 },
122 {
123 id: 'certificates',
124 label: this.$t('appNavigation.certificates'),
125 route: '/security-and-access/certificates',
Derick Montague602e98a2020-10-21 16:20:00 -0500126 },
127 ],
128 },
Sandeepa Singh6dba4be2021-07-28 15:25:14 +0530129 {
130 id: 'resource-management',
131 label: this.$t('appNavigation.resourceManagement'),
132 icon: 'iconResourceManagement',
133 children: [
134 {
135 id: 'power',
136 label: this.$t('appNavigation.power'),
137 route: '/resource-management/power',
138 },
139 ],
140 },
Derick Montague602e98a2020-10-21 16:20:00 -0500141 ],
Yoshie Muranaka0214fed2020-09-03 13:25:50 -0700142 };
Derick Montague602e98a2020-10-21 16:20:00 -0500143 },
Sandeepa Singh05887b52022-01-10 19:19:36 +0530144 methods: {
145 operationsNavigationItems() {
146 const username = this.$store.getters['global/username'];
147 let operationNavigationItems = [
148 {
149 id: 'factory-reset',
150 label: this.$t('appNavigation.factoryReset'),
151 route: '/operations/factory-reset',
152 },
153 {
154 id: 'firmware',
155 label: this.$t('appNavigation.firmware'),
156 route: '/operations/firmware',
157 },
158 {
159 id: 'reboot-bmc',
160 label: this.$t('appNavigation.rebootBmc'),
161 route: '/operations/reboot-bmc',
162 },
163 {
164 id: 'serial-over-lan',
165 label: this.$t('appNavigation.serialOverLan'),
166 route: '/operations/serial-over-lan',
167 },
168 {
169 id: 'server-power-operations',
170 label: this.$t('appNavigation.serverPowerOperations'),
171 route: '/operations/server-power-operations',
172 },
173 ];
174 let pageKeyClear = {
175 id: 'key-clear',
176 label: this.$t('appNavigation.keyClear'),
177 route: '/operations/key-clear',
178 };
179 if (username === 'service' || username === 'admin') {
180 operationNavigationItems.splice(2, 0, pageKeyClear);
181 }
182 return operationNavigationItems;
183 },
184 },
Yoshie Muranaka0214fed2020-09-03 13:25:50 -0700185};
186
187export default AppNavigationMixin;