1import IconDashboard from '@carbon/icons-vue/es/dashboard/16'; 2import IconTextLinkAnalysis from '@carbon/icons-vue/es/text-link--analysis/16'; 3import 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'; 6import IconSecurity from '@carbon/icons-vue/es/security/16'; 7import IconChevronUp from '@carbon/icons-vue/es/chevron--up/16'; 8import IconDataBase from '@carbon/icons-vue/es/data--base--alt/16'; 9 10const AppNavigationMixin = { 11 components: { 12 iconOverview: IconDashboard, 13 iconLogs: IconTextLinkAnalysis, 14 iconHealth: IconDataCheck, 15 iconControl: IconSettingsAdjust, 16 iconSettings: IconSettings, 17 iconSecurityAndAccess: IconSecurity, 18 iconExpand: IconChevronUp, 19 iconResourceManagement: IconDataBase, 20 }, 21 data() { 22 return { 23 navigationItems: [ 24 { 25 id: 'overview', 26 label: this.$t('appNavigation.overview'), 27 route: '/', 28 icon: 'iconOverview', 29 }, 30 { 31 id: 'logs', 32 label: this.$t('appNavigation.logs'), 33 icon: 'iconLogs', 34 children: [ 35 { 36 id: 'event-logs', 37 label: this.$t('appNavigation.eventLogs'), 38 route: '/logs/event-logs', 39 }, 40 { 41 id: 'post-code-logs', 42 label: this.$t('appNavigation.postCodeLogs'), 43 route: '/logs/post-code-logs', 44 }, 45 ], 46 }, 47 { 48 id: 'hardware-status', 49 label: this.$t('appNavigation.hardwareStatus'), 50 icon: 'iconHealth', 51 children: [ 52 { 53 id: 'inventory', 54 label: this.$t('appNavigation.inventory'), 55 route: '/hardware-status/inventory', 56 }, 57 { 58 id: 'sensors', 59 label: this.$t('appNavigation.sensors'), 60 route: '/hardware-status/sensors', 61 }, 62 ], 63 }, 64 { 65 id: 'operations', 66 label: this.$t('appNavigation.operations'), 67 icon: 'iconControl', 68 children: [ 69 { 70 id: 'factory-reset', 71 label: this.$t('appNavigation.factoryReset'), 72 route: '/operations/factory-reset', 73 }, 74 { 75 id: 'kvm', 76 label: this.$t('appNavigation.kvm'), 77 route: '/operations/kvm', 78 }, 79 { 80 id: 'key-clear', 81 label: this.$t('appNavigation.keyClear'), 82 route: '/operations/key-clear', 83 }, 84 { 85 id: 'firmware', 86 label: this.$t('appNavigation.firmware'), 87 route: '/operations/firmware', 88 }, 89 { 90 id: 'reboot-bmc', 91 label: this.$t('appNavigation.rebootBmc'), 92 route: '/operations/reboot-bmc', 93 }, 94 { 95 id: 'serial-over-lan', 96 label: this.$t('appNavigation.serialOverLan'), 97 route: '/operations/serial-over-lan', 98 }, 99 { 100 id: 'server-power-operations', 101 label: this.$t('appNavigation.serverPowerOperations'), 102 route: '/operations/server-power-operations', 103 }, 104 { 105 id: 'virtual-media', 106 label: this.$t('appNavigation.virtualMedia'), 107 route: '/operations/virtual-media', 108 }, 109 ], 110 }, 111 { 112 id: 'settings', 113 label: this.$t('appNavigation.settings'), 114 icon: 'iconSettings', 115 children: [ 116 { 117 id: 'date-time', 118 label: this.$t('appNavigation.dateTime'), 119 route: '/settings/date-time', 120 }, 121 { 122 id: 'network', 123 label: this.$t('appNavigation.network'), 124 route: '/settings/network', 125 }, 126 { 127 id: 'power-restore-policy', 128 label: this.$t('appNavigation.powerRestorePolicy'), 129 route: '/settings/power-restore-policy', 130 }, 131 ], 132 }, 133 { 134 id: 'security-and-access', 135 label: this.$t('appNavigation.securityAndAccess'), 136 icon: 'iconSecurityAndAccess', 137 children: [ 138 { 139 id: 'sessions', 140 label: this.$t('appNavigation.sessions'), 141 route: '/security-and-access/sessions', 142 }, 143 { 144 id: 'ldap', 145 label: this.$t('appNavigation.ldap'), 146 route: '/security-and-access/ldap', 147 }, 148 { 149 id: 'user-management', 150 label: this.$t('appNavigation.userManagement'), 151 route: '/security-and-access/user-management', 152 }, 153 { 154 id: 'policies', 155 label: this.$t('appNavigation.policies'), 156 route: '/security-and-access/policies', 157 }, 158 { 159 id: 'certificates', 160 label: this.$t('appNavigation.certificates'), 161 route: '/security-and-access/certificates', 162 }, 163 ], 164 }, 165 { 166 id: 'resource-management', 167 label: this.$t('appNavigation.resourceManagement'), 168 icon: 'iconResourceManagement', 169 children: [ 170 { 171 id: 'power', 172 label: this.$t('appNavigation.power'), 173 route: '/resource-management/power', 174 }, 175 ], 176 }, 177 ], 178 }; 179 }, 180}; 181 182export default AppNavigationMixin; 183