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