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