summaryrefslogtreecommitdiff
path: root/src/env
diff options
context:
space:
mode:
Diffstat (limited to 'src/env')
-rw-r--r--src/env/assets/styles/_sila.scss92
-rw-r--r--src/env/components/AppNavigation/sila.js182
-rw-r--r--src/env/router/sila.js286
-rw-r--r--src/env/store/sila.js10
4 files changed, 570 insertions, 0 deletions
diff --git a/src/env/assets/styles/_sila.scss b/src/env/assets/styles/_sila.scss
new file mode 100644
index 00000000..884d62b5
--- /dev/null
+++ b/src/env/assets/styles/_sila.scss
@@ -0,0 +1,92 @@
+@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-Light.woff2') format('woff2');
+ font-weight: 300;
+}
+@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-Medium.woff2') format('woff2');
+ font-weight: 500;
+}
+@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: #2c405a;
+
+$blue: #0070ff;
+$red: #e11717;
+$green: #34b233;
+$yellow: #f5bd1f;
+
+$primary: $red;
+$danger: $red;
+$success: $green;
+$warning: $yellow;
+
+$dark-hover: #3c506a;
+
+$red-hover: #FC2A2A;
+$red-active: #df2323;
+$red-disabled: #E17171;
+$red-click: #C71414;
+$red-shadow: #e1171780;
+$red-light-background: #e117170d;
+
+$gray-2: #fbfbfc;
+$gray-5: #1a3e5b0d;
+$gray-5-hover: #1427351a;
+$gray-10: #1a3e5b1a;
+$gray-20: #1a3e5b33;
+$red-40:#e1171766;
+
+$surface-secondary: #F3F4F5;
+$on-surface-secondary: #040a0f99;
+$on-surface-tretiatry: #040A0F4D;
+
+$text-primary: #0C1C29;
+$text-secondary: #0C1C29E5;
+$text-tretiatry: #0c1c2999;
+$text-quaternary: #0c1c294d;
+
+$login-page-description-color: #0c1c2999;
+
+$border-radius: 8px;
+
+$loading-color: #c11d1d;
+$navbar-color: $dark;
+
diff --git a/src/env/components/AppNavigation/sila.js b/src/env/components/AppNavigation/sila.js
new file mode 100644
index 00000000..bbbbb1ee
--- /dev/null
+++ b/src/env/components/AppNavigation/sila.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/sila.js b/src/env/router/sila.js
new file mode 100644
index 00000000..39590cfa
--- /dev/null
+++ b/src/env/router/sila.js
@@ -0,0 +1,286 @@
+import AppLayout from '@/layouts/_sila/AppLayout.vue';
+import ChangePassword from '@/views/_sila/ChangePassword';
+import Sessions from '@/views/_sila/SecurityAndAccess/Sessions';
+import ConsoleLayout from '@/layouts/_sila/ConsoleLayout.vue';
+import DateTime from '@/views/_sila/Settings/DateTime';
+import EventLogs from '@/views/_sila/Logs/EventLogs';
+import Firmware from '@/views/_sila/Operations/Firmware';
+import FactoryReset from '@/views/_sila/Operations/FactoryReset';
+import Inventory from '@/views/_sila/HardwareStatus/Inventory';
+import Kvm from '@/views/_sila/Operations/Kvm';
+import KvmConsole from '@/views/_sila/Operations/Kvm/KvmConsole';
+import Ldap from '@/views/_sila/SecurityAndAccess/Ldap';
+import UserManagement from '@/views/_sila/SecurityAndAccess/UserManagement';
+import Login from '@/views/_sila/Login';
+import LoginLayout from '@/layouts/_sila/LoginLayout';
+import Network from '@/views/_sila/Settings/Network';
+import Overview from '@/views/_sila/Overview';
+import PageNotFound from '@/views/_sila/PageNotFound';
+import PostCodeLogs from '@/views/_sila/Logs/PostCodeLogs';
+import PowerRestorePolicy from '@/views/_sila/Settings/PowerRestorePolicy';
+import ProfileSettings from '@/views/_sila/ProfileSettings';
+import RebootBmc from '@/views/_sila/Operations/RebootBmc';
+import Policies from '@/views/_sila/SecurityAndAccess/Policies';
+import Sensors from '@/views/_sila/HardwareStatus/Sensors';
+import SerialOverLan from '@/views/_sila/Operations/SerialOverLan';
+import SerialOverLanConsole from '@/views/_sila/Operations/SerialOverLan/SerialOverLanConsole';
+import ServerPowerOperations from '@/views/_sila/Operations/ServerPowerOperations';
+import KeyClear from '@/views/_sila/Operations/KeyClear';
+import Certificates from '@/views/_sila/SecurityAndAccess/Certificates';
+import VirtualMedia from '@/views/_sila/Operations/VirtualMedia';
+import Power from '@/views/_sila/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/sila.js b/src/env/store/sila.js
new file mode 100644
index 00000000..d0834c3b
--- /dev/null
+++ b/src/env/store/sila.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;