diff --git a/src/assets/styles/bmc/custom/_forms.scss b/src/assets/styles/bmc/custom/_forms.scss index d70a7df0a8..27558b4069 100644 --- a/src/assets/styles/bmc/custom/_forms.scss +++ b/src/assets/styles/bmc/custom/_forms.scss @@ -135,6 +135,7 @@ div[role='group'] { color: $gray-900 !important; } } + margin-bottom: 1rem !important; } .form-check-input:focus ~ .form-check-label::before { @@ -189,4 +190,4 @@ div[role='group'] { inset 0 0 0 3px $primary, inset 0 0 0 5px $white; } -} \ No newline at end of file +} diff --git a/src/router/routes.js b/src/router/routes.js index 2bfe168162..730c3c96e8 100644 --- a/src/router/routes.js +++ b/src/router/routes.js @@ -34,6 +34,7 @@ import DeconfigurationRecords from '../views/Logs/DeconfigurationRecords/Deconfi import ServerPowerOperations from '@/views/Operations/ServerPowerOperations'; import Ldap from '../views/SecurityAndAccess/Ldap/Ldap.vue'; import EventLogs from '@/views/Logs/EventLogs'; +import FieldCoreOverride from '@/views/ResourceManagement/FieldCoreOverride'; const roles = { administrator: 'Administrator', @@ -256,6 +257,14 @@ export const routes = [ title: i18n.global.t('appPageTitle.capacityOnDemand'), }, }, + { + path: '/resource-management/field-core-override', + name: 'field-core-override', + component: FieldCoreOverride, + meta: { + title: i18n.global.t('appPageTitle.fieldCoreOverride'), + }, + }, { path: '/resource-management/memory', name: 'memory', @@ -288,14 +297,14 @@ export const routes = [ title: i18n.global.t('appPageTitle.pageNotFound'), }, }, - { - path: '/security-and-access/ldap', - name: 'ldap', - component: Ldap, - meta: { - title: i18n.global.t('appPageTitle.ldap'), - }, + { + path: '/security-and-access/ldap', + name: 'ldap', + component: Ldap, + meta: { + title: i18n.global.t('appPageTitle.ldap'), }, + }, { path: '/notices', name: 'notices', diff --git a/src/store/index.js b/src/store/index.js index 95b591c62c..dd424d6dde 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -33,6 +33,7 @@ import HardwareDeconfigurationStore from './modules/Settings/HardwareDeconfigura import DeconfigurationRecordsStore from './modules/Logs/DeconfigurationRecordsStore.js'; import NetworkSettingsStore from './modules/Operations/NetworkSettingsStore.js'; import LdapStore from './modules/SecurityAndAccess/LdapStore.js'; +import FieldCoreOverrideStore from './modules/ResourceManagement/FieldCoreOverrideStore.js'; // ... (export use other stores) export { EventLogStore, @@ -68,5 +69,6 @@ export { HardwareDeconfigurationStore, DeconfigurationRecordsStore, NetworkSettingsStore, - LdapStore + LdapStore, + FieldCoreOverrideStore, }; diff --git a/src/store/modules/ResourceManagement/FieldCoreOverrideStore.js b/src/store/modules/ResourceManagement/FieldCoreOverrideStore.js index 18cb1cace4..749001fbf2 100644 --- a/src/store/modules/ResourceManagement/FieldCoreOverrideStore.js +++ b/src/store/modules/ResourceManagement/FieldCoreOverrideStore.js @@ -1,39 +1,40 @@ import api from '@/store/api'; import i18n from '@/i18n'; +import { defineStore } from 'pinia'; -const FieldCoreOverrideStore = { - namespaced: true, - state: { +const FieldCoreOverrideStore = defineStore('fieldCoreOverride', { + state: () => ({ fieldCoreOverridePending: 0, fieldCoreOverrideCurrent: 0, - }, + }), getters: { - isPending: (state) => - state.fieldCoreOverrideCurrent !== state.fieldCoreOverridePending, - configuredCores: (state, getters) => - getters.isPending + isPendingGetter(state) { + return state.fieldCoreOverrideCurrent !== state.fieldCoreOverridePending; + }, + configuredCoresGetter(state) { + return this.isPendingGetter ? state.fieldCoreOverridePending - : state.fieldCoreOverrideCurrent, - isEnabled: (state, getters) => - getters.isPending + : state.fieldCoreOverrideCurrent; + }, + isEnabledGetter(state) { + return this.isPendingGetter ? state.fieldCoreOverridePending > 0 - : state.fieldCoreOverrideCurrent > 0, - }, - mutations: { - setBiosAttributes: (state, data) => { - state.fieldCoreOverridePending = data?.hb_field_core_override; - state.fieldCoreOverrideCurrent = data?.hb_field_core_override_current; + : state.fieldCoreOverrideCurrent > 0; }, }, actions: { - async getBiosAttributes({ commit }) { + setBiosAttributes(data) { + this.fieldCoreOverridePending = data?.hb_field_core_override; + this.fieldCoreOverrideCurrent = data?.hb_field_core_override_current; + }, + async getBiosAttributes() { return await api .get('/redfish/v1/Systems/system/Bios') .then(({ data }) => { - commit('setBiosAttributes', data?.Attributes || {}); + this.setBiosAttributes(data?.Attributes || {}); }); }, - async setFieldCoreOverride({ dispatch }, coreOverride) { + async setFieldCoreOverride(coreOverride) { const data = { Attributes: { hb_field_core_override: +coreOverride, @@ -42,19 +43,21 @@ const FieldCoreOverrideStore = { return await api .patch('/redfish/v1/Systems/system/Bios/Settings', data) .then(() => { - dispatch('getBiosAttributes'); - return i18n.t( - 'pageFieldCoreOverride.toast.configurationChangeSuccess', + this.getBiosAttributes(); + return i18n.global.t( + 'pageFieldCoreOverride.toast.configurationChangeSuccess' ); }) .catch((error) => { console.log('Field core override', error); throw new Error( - i18n.t('pageFieldCoreOverride.toast.configurationChangeError'), + i18n.global.t( + 'pageFieldCoreOverride.toast.configurationChangeError' + ) ); }); }, }, -}; +}); export default FieldCoreOverrideStore; diff --git a/src/views/ResourceManagement/FieldCoreOverride/FieldCoreOverride.vue b/src/views/ResourceManagement/FieldCoreOverride/FieldCoreOverride.vue index 9ee318f4b7..c6502180f5 100644 --- a/src/views/ResourceManagement/FieldCoreOverride/FieldCoreOverride.vue +++ b/src/views/ResourceManagement/FieldCoreOverride/FieldCoreOverride.vue @@ -1,60 +1,53 @@ - diff --git a/src/views/ResourceManagement/FieldCoreOverride/FieldCoreOverrideConfiguration.vue b/src/views/ResourceManagement/FieldCoreOverride/FieldCoreOverrideConfiguration.vue index 90444cf8f4..f955db3f12 100644 --- a/src/views/ResourceManagement/FieldCoreOverride/FieldCoreOverrideConfiguration.vue +++ b/src/views/ResourceManagement/FieldCoreOverride/FieldCoreOverrideConfiguration.vue @@ -1,26 +1,26 @@