import AppLayout from '@/layouts/AppLayout.vue'; import ChangePassword from '@/views/ChangePassword'; import Sessions from '@/views/SecurityAndAccess/Sessions'; import ConsoleLayout from '@/layouts/ConsoleLayout.vue'; import DateTime from '@/views/Settings/DateTime'; import EventLogs from '@/views/Logs/EventLogs'; import Firmware from '@/views/Operations/Firmware'; import Inventory from '@/views/HardwareStatus/Inventory'; import Kvm from '@/views/Operations/Kvm'; import KvmConsole from '@/views/Operations/Kvm/KvmConsole'; import UserManagement from '@/views/SecurityAndAccess/UserManagement'; import Login from '@/views/Login'; import LoginLayout from '@/layouts/LoginLayout'; import Network from '@/views/Settings/Network'; import Overview from '@/views/Overview'; import PageNotFound from '@/views/PageNotFound'; import PostCodeLogs from '@/views/Logs/PostCodeLogs'; import ProfileSettings from '@/views/ProfileSettings'; import RebootBmc from '@/views/Operations/RebootBmc'; import Policies from '@/views/SecurityAndAccess/Policies'; import Sensors from '@/views/HardwareStatus/Sensors'; import SerialOverLan from '@/views/Operations/SerialOverLan'; import SerialOverLanConsole from '@/views/Operations/SerialOverLan/SerialOverLanConsole'; import ServerPowerOperations from '@/views/Operations/ServerPowerOperations'; import Certificates from '@/views/SecurityAndAccess/Certificates'; import VirtualMedia from '@/views/Operations/VirtualMedia'; import Power from '@/views/ResourceManagement/Power'; import i18n from '@/i18n'; const roles = { administrator: 'Administrator', operator: 'Operator', readonly: 'ReadOnly', noaccess: 'NoAccess', }; const routes = [ { path: '/login', component: LoginLayout, children: [ { path: '', name: 'login', component: Login, meta: { title: i18n.t('appPageTitle.login'), }, }, { path: '/change-password', name: 'change-password', component: ChangePassword, meta: { title: i18n.t('appPageTitle.changePassword'), requiresAuth: true, }, }, ], }, { path: '/console', component: ConsoleLayout, meta: { requiresAuth: true, }, children: [ { path: 'serial-over-lan-console', name: 'serial-over-lan-console', component: SerialOverLanConsole, meta: { title: i18n.t('appPageTitle.serialOverLan'), }, }, { path: 'kvm', name: 'kvm-console', component: KvmConsole, meta: { title: i18n.t('appPageTitle.kvm'), }, }, ], }, { path: '/', meta: { requiresAuth: true, }, component: AppLayout, children: [ { path: '', name: 'overview', component: Overview, meta: { title: i18n.t('appPageTitle.overview'), }, }, { path: '/profile-settings', name: 'profile-settings', component: ProfileSettings, meta: { title: i18n.t('appPageTitle.profileSettings'), }, }, { path: '/logs/event-logs', name: 'event-logs', component: EventLogs, meta: { title: i18n.t('appPageTitle.eventLogs'), }, }, { path: '/logs/post-code-logs', name: 'post-code-logs', component: PostCodeLogs, meta: { title: i18n.t('appPageTitle.postCodeLogs'), }, }, { path: '/hardware-status/inventory', name: 'inventory', component: Inventory, meta: { title: i18n.t('appPageTitle.inventory'), }, }, { path: '/hardware-status/sensors', name: 'sensors', component: Sensors, meta: { title: i18n.t('appPageTitle.sensors'), }, }, { path: '/security-and-access/sessions', name: 'sessions', component: Sessions, meta: { title: i18n.t('appPageTitle.sessions'), }, }, { path: '/security-and-access/user-management', name: 'user-management', component: UserManagement, meta: { title: i18n.t('appPageTitle.userManagement'), }, }, { path: '/security-and-access/policies', name: 'policies', component: Policies, meta: { title: i18n.t('appPageTitle.policies'), }, }, { path: '/security-and-access/certificates', name: 'certificates', component: Certificates, meta: { title: i18n.t('appPageTitle.certificates'), }, }, { path: '/settings/date-time', name: 'date-time', component: DateTime, meta: { title: i18n.t('appPageTitle.dateTime'), }, }, { path: '/operations/kvm', name: 'kvm', component: Kvm, meta: { title: i18n.t('appPageTitle.kvm'), }, }, { path: '/operations/firmware', name: 'firmware', component: Firmware, meta: { title: i18n.t('appPageTitle.firmware'), }, }, { path: '/settings/network', name: 'network', component: Network, meta: { title: i18n.t('appPageTitle.network'), }, }, { path: '/resource-management/power', name: 'power', component: Power, meta: { title: i18n.t('appPageTitle.power'), }, }, { path: '/operations/reboot-bmc', name: 'reboot-bmc', component: RebootBmc, meta: { title: i18n.t('appPageTitle.rebootBmc'), }, }, { path: '/operations/serial-over-lan', name: 'serial-over-lan', component: SerialOverLan, meta: { title: i18n.t('appPageTitle.serialOverLan'), exclusiveToRoles: [roles.administrator], }, }, { path: '/operations/server-power-operations', name: 'server-power-operations', component: ServerPowerOperations, meta: { title: i18n.t('appPageTitle.serverPowerOperations'), }, }, { path: '/operations/virtual-media', name: 'virtual-media', component: VirtualMedia, meta: { title: i18n.t('appPageTitle.virtualMedia'), exclusiveToRoles: [roles.administrator], }, }, { path: '*', name: 'page-not-found', component: PageNotFound, meta: { title: i18n.t('appPageTitle.pageNotFound'), }, }, ], }, ]; export default routes;