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