From bed6ed8f1b3ea656a81209ad45fb24a17f9afe21 Mon Sep 17 00:00:00 2001 From: Vedangi Mittal Date: Tue, 25 Feb 2025 14:04:26 +0530 Subject: [PATCH] Implemented Overview page - Implemented Overview page - Jira story: https://jsw.ibm.com/browse/PFEBMC-2381 Signed-off-by: Vedangi Mittal --- src/store/index.js | 4 +- src/store/modules/Logs/DumpsStore.js | 76 ++++++------ src/store/modules/Settings/NetworkStore.js | 3 +- src/views/Overview/ModalAssetTag.vue | 132 ++++++++++---------- src/views/Overview/Overview.vue | 65 ++++++++-- src/views/Overview/OverviewCard.vue | 8 +- src/views/Overview/OverviewDumps.vue | 45 ++++--- src/views/Overview/OverviewEvents.vue | 28 +++-- src/views/Overview/OverviewFirmware.vue | 51 ++++---- src/views/Overview/OverviewInventory.vue | 34 ++++-- src/views/Overview/OverviewNetwork.vue | 42 +++---- src/views/Overview/OverviewPower.vue | 72 ++++++++--- src/views/Overview/OverviewQuickLinks.vue | 41 +++++-- src/views/Overview/OverviewServer.vue | 135 +++++++++++++++++---- 14 files changed, 470 insertions(+), 266 deletions(-) diff --git a/src/store/index.js b/src/store/index.js index 95b591c62c..9dc01597f9 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 DumpsStore from './modules/Logs/DumpsStore.js'; // ... (export use other stores) export { EventLogStore, @@ -68,5 +69,6 @@ export { HardwareDeconfigurationStore, DeconfigurationRecordsStore, NetworkSettingsStore, - LdapStore + LdapStore, + DumpsStore }; diff --git a/src/store/modules/Logs/DumpsStore.js b/src/store/modules/Logs/DumpsStore.js index 70da56da15..3bc0d678c8 100644 --- a/src/store/modules/Logs/DumpsStore.js +++ b/src/store/modules/Logs/DumpsStore.js @@ -1,26 +1,14 @@ import api, { getResponseCount } from '@/store/api'; import i18n from '@/i18n'; import { REGEX_MAPPINGS } from '@/utilities/GlobalConstants'; +import { defineStore } from 'pinia'; -const DumpsStore = { - namespaced: true, - state: { +export const DumpsStore = defineStore('dumps', { + state: () => ({ allDumps: [], - }, + }), getters: { - allDumps: (state) => state.allDumps, - }, - mutations: { - setAllDumps: (state, dumps) => { - state.allDumps = dumps.map((dump) => ({ - data: dump.AdditionalDataURI, - dateTime: new Date(dump.Created), - dumpType: dump.Name, - id: dump.Id, - location: dump['@odata.id'], - size: dump.AdditionalDataSizeBytes, - })); - }, + allDumpsGetter: (state) => state.allDumps, }, actions: { async getBmcDumpEntries() { @@ -43,14 +31,21 @@ const DumpsStore = { .then((response) => api.get(response.data.Entries['@odata.id'])) .catch((error) => console.log(error)); }, - async getAllDumps({ commit, dispatch }) { + async getAllDumps() { return await api - .all([dispatch('getBmcDumpEntries'), dispatch('getSystemDumpEntries')]) + .all([this.getBmcDumpEntries(), this.getSystemDumpEntries()]) .then((response) => { const bmcDumpEntries = response[0].data?.Members || []; const systemDumpEntries = response[1].data?.Members || []; const allDumps = [...bmcDumpEntries, ...systemDumpEntries]; - commit('setAllDumps', allDumps); + this.allDumps = allDumps.map((dump) => ({ + data: dump.AdditionalDataURI, + dateTime: new Date(dump.Created), + dumpType: dump.Name, + id: dump.Id, + location: dump['@odata.id'], + size: dump.AdditionalDataSizeBytes, + })); }) .catch((error) => console.log(error)); }, @@ -68,10 +63,10 @@ const DumpsStore = { error.response.data.error?.['@Message.ExtendedInfo'][0].MessageId; const message = REGEX_MAPPINGS.resourceInStandby.test(messageId) - ? i18n.t('pageDumps.toast.errorStartDumpAnotherInProgress', { + ? i18n.global.t('pageDumps.toast.errorStartDumpAnotherInProgress', { dump: dumpType, }) - : i18n.t('pageDumps.toast.errorStartBmcDump'); + : i18n.global.t('pageDumps.toast.errorStartBmcDump'); throw new Error(message); }); @@ -115,21 +110,21 @@ const DumpsStore = { error.response?.data?.error?.code, ) ) { - throw new Error(i18n.t('pageDumps.toast.errorPhypInStandby')); + throw new Error(i18n.global.t('pageDumps.toast.errorPhypInStandby')); } switch (true) { case REGEX_MAPPINGS.actionParameterUnknown.test(errorMsg): throw new Error( - i18n.t('pageDumps.toast.errorStartResourceDumpInvalidSelector'), + i18n.global.t('pageDumps.toast.errorStartResourceDumpInvalidSelector'), ); case REGEX_MAPPINGS.resourceAtUriUnauthorized.test(errorMsg): throw new Error( - i18n.t('pageDumps.toast.errorStartResourceDumpInvalidPassword'), + i18n.global.t('pageDumps.toast.errorStartResourceDumpInvalidPassword'), ); case REGEX_MAPPINGS.insufficientPrivilege.test(errorMsg): - throw new Error(i18n.t('global.toast.unAuthDescription')); + throw new Error(i18n.global.t('global.toast.unAuthDescription')); default: - throw new Error(i18n.t('pageDumps.toast.errorStartResourceDump')); + throw new Error(i18n.global.t('pageDumps.toast.errorStartResourceDump')); } }); }, @@ -150,22 +145,22 @@ const DumpsStore = { switch (true) { case REGEX_MAPPINGS.resourceInUse.test(errorMsg): throw new Error( - i18n.t('pageDumps.toast.errorStartDumpAnotherInProgress', { + i18n.global.t('pageDumps.toast.errorStartDumpAnotherInProgress', { dump: dumpType, }), ); case REGEX_MAPPINGS.resourceInStandby.test(errorMsg): throw new Error( - i18n.t('pageDumps.toast.errorStartDumpResourceInStandby', { + i18n.global.t('pageDumps.toast.errorStartDumpResourceInStandby', { dump: dumpType, }), ); default: - throw new Error(i18n.t('pageDumps.toast.errorStartSystemDump')); + throw new Error(i18n.global.t('pageDumps.toast.errorStartSystemDump')); } }); }, - async deleteDumps({ dispatch }, dumps) { + async deleteDumps(dumps) { const promises = dumps.map(({ location }) => api.delete(location).catch((error) => { console.log(error); @@ -175,7 +170,7 @@ const DumpsStore = { return await api .all(promises) .then((response) => { - dispatch('getAllDumps'); + this.getAllDumps(); return response; }) .then( @@ -184,7 +179,7 @@ const DumpsStore = { const toastMessages = []; if (successCount) { - const message = i18n.tc( + const message = i18n.global.t( 'pageDumps.toast.successDeleteDump', successCount, ); @@ -192,7 +187,7 @@ const DumpsStore = { } if (errorCount) { - const message = i18n.tc( + const message = i18n.global.t( 'pageDumps.toast.errorDeleteDump', errorCount, ); @@ -203,24 +198,25 @@ const DumpsStore = { }), ); }, - async deleteAllDumps({ commit, state }) { - const totalDumpCount = state.allDumps.length; + async deleteAllDumps() { + const totalDumpCount = this.allDumps.length; return await api .post( '/redfish/v1/Managers/bmc/LogServices/Dump/Actions/LogService.ClearLog', ) .then(() => { - commit('setAllDumps', []); - return i18n.tc('pageDumps.toast.successDeleteDump', totalDumpCount); + this.allDumps = []; + return i18n.global.t('pageDumps.toast.successDeleteDump', totalDumpCount); }) .catch((error) => { console.log(error); throw new Error( - i18n.tc('pageDumps.toast.errorDeleteDump', totalDumpCount), + i18n.global.t('pageDumps.toast.errorDeleteDump', totalDumpCount), ); }); }, }, -}; +} +); export default DumpsStore; diff --git a/src/store/modules/Settings/NetworkStore.js b/src/store/modules/Settings/NetworkStore.js index 6d6813f8b2..968432e0c2 100644 --- a/src/store/modules/Settings/NetworkStore.js +++ b/src/store/modules/Settings/NetworkStore.js @@ -24,7 +24,7 @@ export const NetworkStore = defineStore('network', { isTableBusyGetter: (state) => state.isTableBusy, }, actions: { - setNetworkSettings: (data) => { + async setNetworkSettings(data) { this.networkSettings = data.map(({ data }) => { const { DHCPv4, @@ -89,7 +89,6 @@ export const NetworkStore = defineStore('network', { const ethernetData = ethernetInterfaces.map( (ethernetInterface) => ethernetInterface.data ); - this.setNetworkSettings(ethernetInterfaces); let currentInterfaceIndex = 0; if (this.selectedInterfaceIndex) { diff --git a/src/views/Overview/ModalAssetTag.vue b/src/views/Overview/ModalAssetTag.vue index cd78b260fc..5f21da152b 100644 --- a/src/views/Overview/ModalAssetTag.vue +++ b/src/views/Overview/ModalAssetTag.vue @@ -1,14 +1,14 @@