xref: /openbmc/webui-vue/src/env/components/AppNavigation/intel.js (revision ce7db82c9582c4dac04ac81d9af6b557ae7965e3)
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';
9import i18n from '@/i18n';
10
11const roles = {
12  administrator: 'Administrator',
13  operator: 'Operator',
14  readonly: 'ReadOnly',
15  noaccess: 'NoAccess',
16};
17
18const AppNavigationMixin = {
19  components: {
20    iconOverview: IconDashboard,
21    iconLogs: IconTextLinkAnalysis,
22    iconHealth: IconDataCheck,
23    iconControl: IconSettingsAdjust,
24    iconSettings: IconSettings,
25    iconSecurityAndAccess: IconSecurity,
26    iconExpand: IconChevronUp,
27    iconResourceManagement: IconDataBase,
28  },
29  data() {
30    return {
31      navigationItems: [
32        {
33          id: 'overview',
34          label: i18n.global.t('appNavigation.overview'),
35          route: '/',
36          icon: 'iconOverview',
37        },
38        {
39          id: 'logs',
40          label: i18n.global.t('appNavigation.logs'),
41          icon: 'iconLogs',
42          children: [
43            {
44              id: 'event-logs',
45              label: i18n.global.t('appNavigation.eventLogs'),
46              route: '/logs/event-logs',
47            },
48            {
49              id: 'post-code-logs',
50              label: i18n.global.t('appNavigation.postCodeLogs'),
51              route: '/logs/post-code-logs',
52            },
53          ],
54        },
55        {
56          id: 'hardware-status',
57          label: i18n.global.t('appNavigation.hardwareStatus'),
58          icon: 'iconHealth',
59          children: [
60            {
61              id: 'inventory',
62              label: i18n.global.t('appNavigation.inventory'),
63              route: '/hardware-status/inventory',
64            },
65            {
66              id: 'sensors',
67              label: i18n.global.t('appNavigation.sensors'),
68              route: '/hardware-status/sensors',
69            },
70          ],
71        },
72        {
73          id: 'operations',
74          label: i18n.global.t('appNavigation.operations'),
75          icon: 'iconControl',
76          children: [
77            {
78              id: 'kvm',
79              label: i18n.global.t('appNavigation.kvm'),
80              route: '/operations/kvm',
81            },
82            {
83              id: 'firmware',
84              label: i18n.global.t('appNavigation.firmware'),
85              route: '/operations/firmware',
86            },
87            {
88              id: 'reboot-bmc',
89              label: i18n.global.t('appNavigation.rebootBmc'),
90              route: '/operations/reboot-bmc',
91            },
92            {
93              id: 'serial-over-lan',
94              label: i18n.global.t('appNavigation.serialOverLan'),
95              route: '/operations/serial-over-lan',
96              exclusiveToRoles: [roles.administrator],
97            },
98            {
99              id: 'server-power-operations',
100              label: i18n.global.t('appNavigation.serverPowerOperations'),
101              route: '/operations/server-power-operations',
102            },
103            {
104              id: 'virtual-media',
105              label: i18n.global.t('appNavigation.virtualMedia'),
106              route: '/operations/virtual-media',
107              exclusiveToRoles: [roles.administrator],
108            },
109          ],
110        },
111        {
112          id: 'settings',
113          label: i18n.global.t('appNavigation.settings'),
114          icon: 'iconSettings',
115          children: [
116            {
117              id: 'date-time',
118              label: i18n.global.t('appNavigation.dateTime'),
119              route: '/settings/date-time',
120            },
121            {
122              id: 'network',
123              label: i18n.global.t('appNavigation.network'),
124              route: '/settings/network',
125            },
126          ],
127        },
128        {
129          id: 'security-and-access',
130          label: i18n.global.t('appNavigation.securityAndAccess'),
131          icon: 'iconSecurityAndAccess',
132          children: [
133            {
134              id: 'sessions',
135              label: i18n.global.t('appNavigation.sessions'),
136              route: '/security-and-access/sessions',
137            },
138            {
139              id: 'user-management',
140              label: i18n.global.t('appNavigation.userManagement'),
141              route: '/security-and-access/user-management',
142            },
143            {
144              id: 'policies',
145              label: i18n.global.t('appNavigation.policies'),
146              route: '/security-and-access/policies',
147            },
148            {
149              id: 'certificates',
150              label: i18n.global.t('appNavigation.certificates'),
151              route: '/security-and-access/certificates',
152            },
153          ],
154        },
155        {
156          id: 'resource-management',
157          label: i18n.global.t('appNavigation.resourceManagement'),
158          icon: 'iconResourceManagement',
159          children: [
160            {
161              id: 'power',
162              label: i18n.global.t('appNavigation.power'),
163              route: '/resource-management/power',
164            },
165          ],
166        },
167      ],
168    };
169  },
170};
171
172export default AppNavigationMixin;
173