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        },
42        {
43          id: 'hardware-status',
44          label: this.$t('appNavigation.hardwareStatus'),
45          icon: 'iconHealth',
46          children: [
47            {
48              id: 'inventory',
49              label: this.$t('appNavigation.inventory'),
50              route: '/hardware-status/inventory',
51            },
52            {
53              id: 'sensors',
54              label: this.$t('appNavigation.sensors'),
55              route: '/hardware-status/sensors',
56            },
57          ],
58        },
59        {
60          id: 'operations',
61          label: this.$t('appNavigation.operations'),
62          icon: 'iconControl',
63          children: [
64            {
65              id: 'kvm',
66              label: this.$t('appNavigation.kvm'),
67              route: '/operations/kvm',
68            },
69            {
70              id: 'firmware',
71              label: this.$t('appNavigation.firmware'),
72              route: '/operations/firmware',
73            },
74            {
75              id: 'reboot-bmc',
76              label: this.$t('appNavigation.rebootBmc'),
77              route: '/operations/reboot-bmc',
78            },
79            {
80              id: 'serial-over-lan',
81              label: this.$t('appNavigation.serialOverLan'),
82              route: '/operations/serial-over-lan',
83            },
84            {
85              id: 'server-power-operations',
86              label: this.$t('appNavigation.serverPowerOperations'),
87              route: '/operations/server-power-operations',
88            },
89            {
90              id: 'virtual-media',
91              label: this.$t('appNavigation.virtualMedia'),
92              route: '/operations/virtual-media',
93            },
94          ],
95        },
96        {
97          id: 'settings',
98          label: this.$t('appNavigation.settings'),
99          icon: 'iconSettings',
100          children: [
101            {
102              id: 'date-time',
103              label: this.$t('appNavigation.dateTime'),
104              route: '/settings/date-time',
105            },
106            {
107              id: 'network',
108              label: this.$t('appNavigation.network'),
109              route: '/settings/network',
110            },
111          ],
112        },
113        {
114          id: 'security-and-access',
115          label: this.$t('appNavigation.securityAndAccess'),
116          icon: 'iconSecurityAndAccess',
117          children: [
118            {
119              id: 'sessions',
120              label: this.$t('appNavigation.sessions'),
121              route: '/security-and-access/sessions',
122            },
123            {
124              id: 'user-management',
125              label: this.$t('appNavigation.userManagement'),
126              route: '/security-and-access/user-management',
127            },
128            {
129              id: 'policies',
130              label: this.$t('appNavigation.policies'),
131              route: '/security-and-access/policies',
132            },
133            {
134              id: 'certificates',
135              label: this.$t('appNavigation.certificates'),
136              route: '/security-and-access/certificates',
137            },
138          ],
139        },
140        {
141          id: 'resource-management',
142          label: this.$t('appNavigation.resourceManagement'),
143          icon: 'iconResourceManagement',
144          children: [
145            {
146              id: 'power',
147              label: this.$t('appNavigation.power'),
148              route: '/resource-management/power',
149            },
150          ],
151        },
152      ],
153    };
154  },
155};
156
157export default AppNavigationMixin;
158