From 25f4bac3f3ef5294980ac5389843b7b645d90304 Mon Sep 17 00:00:00 2001 From: "Andrey V.Kosteltsev" Date: Thu, 9 Jun 2022 18:07:17 +0300 Subject: IBS: env: fonts, styles, components, routers, store --- src/env/assets/fonts/Inter/Inter-Black.woff2 | Bin 0 -> 105860 bytes src/env/assets/fonts/Inter/Inter-BlackItalic.woff2 | Bin 0 -> 111572 bytes src/env/assets/fonts/Inter/Inter-Bold.woff2 | Bin 0 -> 108176 bytes src/env/assets/fonts/Inter/Inter-BoldItalic.woff2 | Bin 0 -> 113768 bytes src/env/assets/fonts/Inter/Inter-ExtraBold.woff2 | Bin 0 -> 108392 bytes .../assets/fonts/Inter/Inter-ExtraBoldItalic.woff2 | Bin 0 -> 113760 bytes src/env/assets/fonts/Inter/Inter-ExtraLight.woff2 | Bin 0 -> 107360 bytes .../fonts/Inter/Inter-ExtraLightItalic.woff2 | Bin 0 -> 113004 bytes src/env/assets/fonts/Inter/Inter-Italic.woff2 | Bin 0 -> 110428 bytes src/env/assets/fonts/Inter/Inter-Light.woff2 | Bin 0 -> 107560 bytes src/env/assets/fonts/Inter/Inter-LightItalic.woff2 | Bin 0 -> 112844 bytes src/env/assets/fonts/Inter/Inter-Medium.woff2 | Bin 0 -> 108116 bytes .../assets/fonts/Inter/Inter-MediumItalic.woff2 | Bin 0 -> 114304 bytes src/env/assets/fonts/Inter/Inter-Regular.woff2 | Bin 0 -> 104068 bytes src/env/assets/fonts/Inter/Inter-SemiBold.woff2 | Bin 0 -> 108300 bytes .../assets/fonts/Inter/Inter-SemiBoldItalic.woff2 | Bin 0 -> 113864 bytes src/env/assets/fonts/Inter/Inter-Thin.woff2 | Bin 0 -> 104572 bytes src/env/assets/fonts/Inter/Inter-ThinItalic.woff2 | Bin 0 -> 110552 bytes src/env/assets/styles/_ibs.scss | 42 +++ src/env/components/AppNavigation/ibs.js | 182 +++++++++++++ src/env/router/ibs.js | 286 +++++++++++++++++++++ src/env/store/ibs.js | 10 + 22 files changed, 520 insertions(+) create mode 100644 src/env/assets/fonts/Inter/Inter-Black.woff2 create mode 100644 src/env/assets/fonts/Inter/Inter-BlackItalic.woff2 create mode 100644 src/env/assets/fonts/Inter/Inter-Bold.woff2 create mode 100644 src/env/assets/fonts/Inter/Inter-BoldItalic.woff2 create mode 100644 src/env/assets/fonts/Inter/Inter-ExtraBold.woff2 create mode 100644 src/env/assets/fonts/Inter/Inter-ExtraBoldItalic.woff2 create mode 100644 src/env/assets/fonts/Inter/Inter-ExtraLight.woff2 create mode 100644 src/env/assets/fonts/Inter/Inter-ExtraLightItalic.woff2 create mode 100644 src/env/assets/fonts/Inter/Inter-Italic.woff2 create mode 100644 src/env/assets/fonts/Inter/Inter-Light.woff2 create mode 100644 src/env/assets/fonts/Inter/Inter-LightItalic.woff2 create mode 100644 src/env/assets/fonts/Inter/Inter-Medium.woff2 create mode 100644 src/env/assets/fonts/Inter/Inter-MediumItalic.woff2 create mode 100644 src/env/assets/fonts/Inter/Inter-Regular.woff2 create mode 100644 src/env/assets/fonts/Inter/Inter-SemiBold.woff2 create mode 100644 src/env/assets/fonts/Inter/Inter-SemiBoldItalic.woff2 create mode 100644 src/env/assets/fonts/Inter/Inter-Thin.woff2 create mode 100644 src/env/assets/fonts/Inter/Inter-ThinItalic.woff2 create mode 100644 src/env/assets/styles/_ibs.scss create mode 100644 src/env/components/AppNavigation/ibs.js create mode 100644 src/env/router/ibs.js create mode 100644 src/env/store/ibs.js diff --git a/src/env/assets/fonts/Inter/Inter-Black.woff2 b/src/env/assets/fonts/Inter/Inter-Black.woff2 new file mode 100644 index 00000000..0c0ce2a0 Binary files /dev/null and b/src/env/assets/fonts/Inter/Inter-Black.woff2 differ diff --git a/src/env/assets/fonts/Inter/Inter-BlackItalic.woff2 b/src/env/assets/fonts/Inter/Inter-BlackItalic.woff2 new file mode 100644 index 00000000..f8b95db3 Binary files /dev/null and b/src/env/assets/fonts/Inter/Inter-BlackItalic.woff2 differ diff --git a/src/env/assets/fonts/Inter/Inter-Bold.woff2 b/src/env/assets/fonts/Inter/Inter-Bold.woff2 new file mode 100644 index 00000000..0e3afead Binary files /dev/null and b/src/env/assets/fonts/Inter/Inter-Bold.woff2 differ diff --git a/src/env/assets/fonts/Inter/Inter-BoldItalic.woff2 b/src/env/assets/fonts/Inter/Inter-BoldItalic.woff2 new file mode 100644 index 00000000..b222b218 Binary files /dev/null and b/src/env/assets/fonts/Inter/Inter-BoldItalic.woff2 differ diff --git a/src/env/assets/fonts/Inter/Inter-ExtraBold.woff2 b/src/env/assets/fonts/Inter/Inter-ExtraBold.woff2 new file mode 100644 index 00000000..6ae29e8e Binary files /dev/null and b/src/env/assets/fonts/Inter/Inter-ExtraBold.woff2 differ diff --git a/src/env/assets/fonts/Inter/Inter-ExtraBoldItalic.woff2 b/src/env/assets/fonts/Inter/Inter-ExtraBoldItalic.woff2 new file mode 100644 index 00000000..90d7f7f9 Binary files /dev/null and b/src/env/assets/fonts/Inter/Inter-ExtraBoldItalic.woff2 differ diff --git a/src/env/assets/fonts/Inter/Inter-ExtraLight.woff2 b/src/env/assets/fonts/Inter/Inter-ExtraLight.woff2 new file mode 100644 index 00000000..e783e0db Binary files /dev/null and b/src/env/assets/fonts/Inter/Inter-ExtraLight.woff2 differ diff --git a/src/env/assets/fonts/Inter/Inter-ExtraLightItalic.woff2 b/src/env/assets/fonts/Inter/Inter-ExtraLightItalic.woff2 new file mode 100644 index 00000000..807436e7 Binary files /dev/null and b/src/env/assets/fonts/Inter/Inter-ExtraLightItalic.woff2 differ diff --git a/src/env/assets/fonts/Inter/Inter-Italic.woff2 b/src/env/assets/fonts/Inter/Inter-Italic.woff2 new file mode 100644 index 00000000..180c134f Binary files /dev/null and b/src/env/assets/fonts/Inter/Inter-Italic.woff2 differ diff --git a/src/env/assets/fonts/Inter/Inter-Light.woff2 b/src/env/assets/fonts/Inter/Inter-Light.woff2 new file mode 100644 index 00000000..06318982 Binary files /dev/null and b/src/env/assets/fonts/Inter/Inter-Light.woff2 differ diff --git a/src/env/assets/fonts/Inter/Inter-LightItalic.woff2 b/src/env/assets/fonts/Inter/Inter-LightItalic.woff2 new file mode 100644 index 00000000..923d3019 Binary files /dev/null and b/src/env/assets/fonts/Inter/Inter-LightItalic.woff2 differ diff --git a/src/env/assets/fonts/Inter/Inter-Medium.woff2 b/src/env/assets/fonts/Inter/Inter-Medium.woff2 new file mode 100644 index 00000000..4273a1b9 Binary files /dev/null and b/src/env/assets/fonts/Inter/Inter-Medium.woff2 differ diff --git a/src/env/assets/fonts/Inter/Inter-MediumItalic.woff2 b/src/env/assets/fonts/Inter/Inter-MediumItalic.woff2 new file mode 100644 index 00000000..ab1ae164 Binary files /dev/null and b/src/env/assets/fonts/Inter/Inter-MediumItalic.woff2 differ diff --git a/src/env/assets/fonts/Inter/Inter-Regular.woff2 b/src/env/assets/fonts/Inter/Inter-Regular.woff2 new file mode 100644 index 00000000..d65a1258 Binary files /dev/null and b/src/env/assets/fonts/Inter/Inter-Regular.woff2 differ diff --git a/src/env/assets/fonts/Inter/Inter-SemiBold.woff2 b/src/env/assets/fonts/Inter/Inter-SemiBold.woff2 new file mode 100644 index 00000000..0fbf61a3 Binary files /dev/null and b/src/env/assets/fonts/Inter/Inter-SemiBold.woff2 differ diff --git a/src/env/assets/fonts/Inter/Inter-SemiBoldItalic.woff2 b/src/env/assets/fonts/Inter/Inter-SemiBoldItalic.woff2 new file mode 100644 index 00000000..2121376f Binary files /dev/null and b/src/env/assets/fonts/Inter/Inter-SemiBoldItalic.woff2 differ diff --git a/src/env/assets/fonts/Inter/Inter-Thin.woff2 b/src/env/assets/fonts/Inter/Inter-Thin.woff2 new file mode 100644 index 00000000..a74e113b Binary files /dev/null and b/src/env/assets/fonts/Inter/Inter-Thin.woff2 differ diff --git a/src/env/assets/fonts/Inter/Inter-ThinItalic.woff2 b/src/env/assets/fonts/Inter/Inter-ThinItalic.woff2 new file mode 100644 index 00000000..3bb9d9a8 Binary files /dev/null and b/src/env/assets/fonts/Inter/Inter-ThinItalic.woff2 differ diff --git a/src/env/assets/styles/_ibs.scss b/src/env/assets/styles/_ibs.scss new file mode 100644 index 00000000..81be70a5 --- /dev/null +++ b/src/env/assets/styles/_ibs.scss @@ -0,0 +1,42 @@ +@font-face { + font-family: 'Inter'; + src: url('~@/env/assets/fonts/Inter/Inter-ExtraLight.woff2') format('woff2'); + font-weight: 200; +} +@font-face { + font-family: 'Inter'; + src: url('~@/env/assets/fonts/Inter/Inter-ExtraLightItalic.woff2') format('woff2'); + font-weight: 200; + font-style: italic; +} +@font-face { + font-family: 'Inter'; + src: url('~@/env/assets/fonts/Inter/Inter-Regular.woff2') format('woff2'); + font-weight: 400; +} +@font-face { + font-family: 'Inter'; + src: url('~@/env/assets/fonts/Inter/Inter-Italic.woff2') format('woff2'); + font-weight: 400; + font-style: italic; +} +@font-face { + font-family: 'Inter'; + src: url('~@/env/assets/fonts/Inter/Inter-Bold.woff2') format('woff2'); + font-weight: 700; +} +@font-face { + font-family: 'Inter'; + src: url('~@/env/assets/fonts/Inter/Inter-BoldItalic.woff2') format('woff2'); + font-weight: 700; + font-style: italic; +} + +// IBS uses Inter https://github.com/rsms/inter + +$font-family-base: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif; + + +$dark: #1a3e5b; + +$navbar-color: $dark; diff --git a/src/env/components/AppNavigation/ibs.js b/src/env/components/AppNavigation/ibs.js new file mode 100644 index 00000000..bbbbb1ee --- /dev/null +++ b/src/env/components/AppNavigation/ibs.js @@ -0,0 +1,182 @@ +import IconDashboard from '@carbon/icons-vue/es/dashboard/16'; +import IconTextLinkAnalysis from '@carbon/icons-vue/es/text-link--analysis/16'; +import IconDataCheck from '@carbon/icons-vue/es/data--check/16'; +import IconSettingsAdjust from '@carbon/icons-vue/es/settings--adjust/16'; +import IconSettings from '@carbon/icons-vue/es/settings/16'; +import IconSecurity from '@carbon/icons-vue/es/security/16'; +import IconChevronUp from '@carbon/icons-vue/es/chevron--up/16'; +import IconDataBase from '@carbon/icons-vue/es/data--base--alt/16'; + +const AppNavigationMixin = { + components: { + iconOverview: IconDashboard, + iconLogs: IconTextLinkAnalysis, + iconHealth: IconDataCheck, + iconControl: IconSettingsAdjust, + iconSettings: IconSettings, + iconSecurityAndAccess: IconSecurity, + iconExpand: IconChevronUp, + iconResourceManagement: IconDataBase, + }, + data() { + return { + navigationItems: [ + { + id: 'overview', + label: this.$t('appNavigation.overview'), + route: '/', + icon: 'iconOverview', + }, + { + id: 'logs', + label: this.$t('appNavigation.logs'), + icon: 'iconLogs', + children: [ + { + id: 'event-logs', + label: this.$t('appNavigation.eventLogs'), + route: '/logs/event-logs', + }, + { + id: 'post-code-logs', + label: this.$t('appNavigation.postCodeLogs'), + route: '/logs/post-code-logs', + }, + ], + }, + { + id: 'hardware-status', + label: this.$t('appNavigation.hardwareStatus'), + icon: 'iconHealth', + children: [ + { + id: 'inventory', + label: this.$t('appNavigation.inventory'), + route: '/hardware-status/inventory', + }, + { + id: 'sensors', + label: this.$t('appNavigation.sensors'), + route: '/hardware-status/sensors', + }, + ], + }, + { + id: 'operations', + label: this.$t('appNavigation.operations'), + icon: 'iconControl', + children: [ + { + id: 'factory-reset', + label: this.$t('appNavigation.factoryReset'), + route: '/operations/factory-reset', + }, + { + id: 'kvm', + label: this.$t('appNavigation.kvm'), + route: '/operations/kvm', + }, + { + id: 'key-clear', + label: this.$t('appNavigation.keyClear'), + route: '/operations/key-clear', + }, + { + id: 'firmware', + label: this.$t('appNavigation.firmware'), + route: '/operations/firmware', + }, + { + id: 'reboot-bmc', + label: this.$t('appNavigation.rebootBmc'), + route: '/operations/reboot-bmc', + }, + { + id: 'serial-over-lan', + label: this.$t('appNavigation.serialOverLan'), + route: '/operations/serial-over-lan', + }, + { + id: 'server-power-operations', + label: this.$t('appNavigation.serverPowerOperations'), + route: '/operations/server-power-operations', + }, + { + id: 'virtual-media', + label: this.$t('appNavigation.virtualMedia'), + route: '/operations/virtual-media', + }, + ], + }, + { + id: 'settings', + label: this.$t('appNavigation.settings'), + icon: 'iconSettings', + children: [ + { + id: 'date-time', + label: this.$t('appNavigation.dateTime'), + route: '/settings/date-time', + }, + { + id: 'network', + label: this.$t('appNavigation.network'), + route: '/settings/network', + }, + { + id: 'power-restore-policy', + label: this.$t('appNavigation.powerRestorePolicy'), + route: '/settings/power-restore-policy', + }, + ], + }, + { + id: 'security-and-access', + label: this.$t('appNavigation.securityAndAccess'), + icon: 'iconSecurityAndAccess', + children: [ + { + id: 'sessions', + label: this.$t('appNavigation.sessions'), + route: '/security-and-access/sessions', + }, + { + id: 'ldap', + label: this.$t('appNavigation.ldap'), + route: '/security-and-access/ldap', + }, + { + id: 'user-management', + label: this.$t('appNavigation.userManagement'), + route: '/security-and-access/user-management', + }, + { + id: 'policies', + label: this.$t('appNavigation.policies'), + route: '/security-and-access/policies', + }, + { + id: 'certificates', + label: this.$t('appNavigation.certificates'), + route: '/security-and-access/certificates', + }, + ], + }, + { + id: 'resource-management', + label: this.$t('appNavigation.resourceManagement'), + icon: 'iconResourceManagement', + children: [ + { + id: 'power', + label: this.$t('appNavigation.power'), + route: '/resource-management/power', + }, + ], + }, + ], + }; + }, +}; + +export default AppNavigationMixin; diff --git a/src/env/router/ibs.js b/src/env/router/ibs.js new file mode 100644 index 00000000..bddff895 --- /dev/null +++ b/src/env/router/ibs.js @@ -0,0 +1,286 @@ +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 FactoryReset from '@/views/Operations/FactoryReset'; +import Inventory from '@/views/HardwareStatus/Inventory'; +import Kvm from '@/views/Operations/Kvm'; +import KvmConsole from '@/views/Operations/Kvm/KvmConsole'; +import Ldap from '@/views/SecurityAndAccess/Ldap'; +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 PowerRestorePolicy from '@/views/Settings/PowerRestorePolicy'; +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 KeyClear from '@/views/Operations/KeyClear'; +import Certificates from '@/views/SecurityAndAccess/Certificates'; +import VirtualMedia from '@/views/Operations/VirtualMedia'; +import Power from '@/views/ResourceManagement/Power'; +import i18n from '@/i18n'; + +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/ldap', + name: 'ldap', + component: Ldap, + meta: { + title: i18n.t('appPageTitle.ldap'), + }, + }, + { + 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: '/settings/power-restore-policy', + name: 'power-restore-policy', + component: PowerRestorePolicy, + meta: { + title: i18n.t('appPageTitle.powerRestorePolicy'), + }, + }, + { + path: '/resource-management/power', + name: 'power', + component: Power, + meta: { + title: i18n.t('appPageTitle.power'), + }, + }, + { + path: '/operations/factory-reset', + name: 'factory-reset', + component: FactoryReset, + meta: { + title: i18n.t('appPageTitle.factoryReset'), + }, + }, + { + path: '/operations/key-clear', + name: 'key-clear', + component: KeyClear, + meta: { + title: i18n.t('appPageTitle.keyClear'), + }, + }, + { + 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'), + }, + }, + { + 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'), + }, + }, + { + path: '*', + name: 'page-not-found', + component: PageNotFound, + meta: { + title: i18n.t('appPageTitle.pageNotFound'), + }, + }, + ], + }, +]; + +export default routes; diff --git a/src/env/store/ibs.js b/src/env/store/ibs.js new file mode 100644 index 00000000..d0834c3b --- /dev/null +++ b/src/env/store/ibs.js @@ -0,0 +1,10 @@ +import store from '@/store'; +import KeyClearStore from '@/store/modules/Operations/KeyClearStore'; + +store.registerModule('key-clear', KeyClearStore); + +// Use store.registerModule() to register env specific +// store modules +// https://vuex.vuejs.org/api/#registermodule + +export default store; -- cgit v1.2.3