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