From 793a3448b29de11bd4bc93b86f51b3d5282c1bd9 Mon Sep 17 00:00:00 2001 From: Vedangi Mittal Date: Tue, 1 Apr 2025 12:38:03 +0530 Subject: [PATCH 1/3] Implemented dumps page - Implemented dumps page - Jira story - https://jsw.ibm.com/browse/PFEBMC-2376 Signed-off-by: Vedangi Mittal --- src/components/Global/TableRowAction.vue | 45 +- src/locales/en-US.json | 106 +++- src/router/routes.js | 18 + src/store/index.js | 4 +- src/store/modules/Logs/DumpsStore.js | 38 +- src/views/Logs/Dumps/Dumps.vue | 590 ++++++++++-------- src/views/Logs/Dumps/DumpsForm.vue | 414 ++++++------ .../Logs/Dumps/DumpsModalConfirmation.vue | 87 +-- .../Dumps/DumpsPartitionModalConfirmation.vue | 94 +-- 9 files changed, 797 insertions(+), 599 deletions(-) diff --git a/src/components/Global/TableRowAction.vue b/src/components/Global/TableRowAction.vue index 549f1b529f..e87f691b66 100644 --- a/src/components/Global/TableRowAction.vue +++ b/src/components/Global/TableRowAction.vue @@ -10,7 +10,7 @@ {{ $t('global.action.export') }} - {{ title }} + {{ title }} - + {{ $t('global.action.download') }} - + 3999 {{ $t('global.action.download') }} @@ -49,17 +49,16 @@ {{ title }} - {{ title }} + {{ title }} - + }); + +const dataForExport = computed(() => { + return JSON.stringify(omit(props.rowData, 'actions')); + }); +const download = computed(() => { + return `${props.exportName}.json`; + }); +const href = computed(() => { + return `data:text/json;charset=utf-8,${dataForExport.value}`; +}); + \ No newline at end of file diff --git a/src/locales/en-US.json b/src/locales/en-US.json index 16bb7c5ad0..7608a9719a 100644 --- a/src/locales/en-US.json +++ b/src/locales/en-US.json @@ -33,7 +33,7 @@ "tooltip": "Tooltip" }, "calendar": { - "dateFormat": "YYYY-MM-DD", + "dateFormat": "DD/MM/YYYY", "selectDate": "Select date", "useCursorKeysToNavigateCalendarDates": "Use cursor keys to navigate calendar dates" }, @@ -405,9 +405,13 @@ "message": "To change how date and time are displayed (either UTC or browser offset) throughout the application, visit ", "messageText": "To change how date and time are displayed (either UTC or browser offset) throughout the application, visit Profile Settings", "messageNtp": "If NTP is selected but an NTP server is not given or the given NTP server is not reachable, then time.google.com will be used.", - "messagePowerOff": "The server must be powered off to change date and time to manual or NTP." + "messagePowerOff": "The server must be powered off to change date and time to manual or NTP.", + "mfaMessage": "Changing date and time will affect MFA users." }, "configureSettings": "Configure settings", + "viewDynamicNtp": "View Dynamic NTP servers", + "dhcpNtpInfoTooltip": "This section captures the DHCP supplied NTP server details", + "staticNtp":"Static NTP servers", "form": { "date": "Date", "manual": "Manual", @@ -465,12 +469,17 @@ "processorCores": "Processor cores", "totalCores": "Total cores", "alert": { - "message": "Memory dimms and processor cores can be configured or deconfigured only when the server is powered off." + "message": "Memory dimms and processor cores can be configured or deconfigured only when the server is powered off.", + "warning": "If memory event occurred at runtime and server has not yet been rebooted then the memory resource is still in use. Once server is rebooted, the memory resource will become deconfigured and not in use." }, "toast": { "deleteReqFailed": "The delete request failed because the resource requested cannot be deleted.", "errorDisablingSetting": "Error disabling setting", - "errorEnablingSetting": "Error enabling setting" + "errorEnablingSetting": "Error enabling setting", + "errorConfiguringProcessorCore": "Error Configuring Processor Core", + "errorConfiguringDIMM": "Error Configuring Memory DIMM", + "errorDeconfiguringProcessorCore": "Error Deconfiguring Processor Core", + "errorDeconfiguringDIMM": "Error Deconfiguring Memory DIMM" }, "table": { "deconfigurationType": "Deconfiguration Type", @@ -544,9 +553,11 @@ "severityValues": { "fatal": "Fatal", "predictive": "Predictive", - "manual": "Manual" + "manual": "Manual", + "spare": "Spare" }, "toast": { + "clearAllInfo": "A core guard record was not deleted as it might be associated with Spare core. This record can only be cleared separately. | Core guard records were not deleted as it might be associated with Spare core. Each of these records can only be cleared separately.", "errorDelete": "Error deleting %{count} record. | Error deleting %{count} records.", "errorResolveEntries": "Error resolving %{count} record. | Error resolving %{count} records.", "errorStartDownload": "Error starting download.", @@ -626,6 +637,8 @@ "errorStartResourceDumpInvalidSelector": "Error initiating dump. Invalid resource selector.", "errorStartResourceDumpInvalidPassword": "Error initiating dump. Invalid password.", "errorStartSystemDump": "Error starting new System dump.", + "resourceDumpSuccess": "Resource Dump created successfully.", + "resourceDumpFailed": "Resource Dump creation failed.", "successDeleteDump": "Successfully deleted %{count} dump. | Successfully deleted %{count} dumps.", "successStartBmcDumpTitle": "BMC dump started", "successStartDump": "The dump will take some time to complete.", @@ -675,8 +688,10 @@ }, "toast": { "errorDelete": "Error deleting %{count} log. | Error deleting %{count} logs.", + "errorDeleteGuardRecord": "Log cannot be deleted as it is associated with a guard record. Please manually clear the guard or replace the part. | Logs with guard records were not deleted. Please manually clear the guard or replace the part.", "errorLogStatusUpdate": "Error updating log status.", "errorResolveLogs": "Error resolving %{count} log. | Error resolving %{count} logs.", + "errorResolveLogsGuardRecord": "Log cannot be resolved as it is associated with a guard record. Please manually clear the guard or replace the part. | Logs with guard records were not resolved. Please manually clear the guard or replace the part.", "errorUnresolveLogs": "Error unresolving %{count} log. | Error unresolving %{count} logs.", "infoStartDownload": "Download might take several minutes to complete.", "successDelete": "Successfully deleted %{count} log. | Successfully deleted %{count} logs.", @@ -822,12 +837,10 @@ "concurrentMaintenancePowerOffDesc": "Use this function to power off the power domain that includes resources that are currently in a disk unit attention state.", "concurrentMaintenancePowerOn": "Concurrent Maintenance Power On Domain (Function 69)", "concurrentMaintenancePowerOnDesc": "Use this function to power on the power domain that was powered off by using function 68.", - "disableRemoteService": "Disable Remote Service (Function 65)", - "disableRemoteServiceDesc": "Use this function to deactivate a remote service session.", + "consoleServiceFunction": "Console Service Function (Function 65)", + "consoleServiceFunctionDesc": "Use this function to initiate console recovery (IBM i 7.5, or later).", "diskUnitIOP": "Disk Unit IOP Reset/Reload (Function 67)", "diskUnitIOPDesc": "Use this function to initiate an I/O processor dump and reset/reload of an IOP that controls resources that are currently in a disk unit attention state.", - "enableRemoteService": "Enable Remote Service (Function 66)", - "enableRemoteServiceDesc": "Use this function to activate a remote service session.", "execute": "Execute", "iopControlStorageDump": "IOP Control Storage Dump (Function 70)", "iopControlStorageDumpDesc": "Use this function to initiate an I/O processor dump and reset/reload of the IOP that was designated to control the load source device when the logical partition was activated.", @@ -1115,6 +1128,7 @@ "model": "Model", "password": "Password", "serialNumber": "Serial number", + "totpTooltip": "Enter the TOTP when the user is enrolled in MFA and MFA has not been bypassed.", "uploadServiceLoginCertificate": "Upload service login certificate", "username": "Username", "alert": { @@ -1123,7 +1137,9 @@ }, "modal": { "addNewServiceLoginCertificate": "Add new service login certificate", - "certificateFile": "Certificate File" + "certificateFile": "Certificate File", + "login": "Log In", + "register": "Register" } }, "pageMemory": { @@ -1152,7 +1168,8 @@ "updateDynamicIoDrawerAttachment": "Update dynamic I/O drawer attachment", "alert": { "heading": "Applying changes", - "message": "System has to be powered off. Changes made will take effect on next reboot.", + "message1": "System has to be powered off.", + "message2": "Changes made will take effect on next reboot.", "serverMustBePoweredOffTo": "Server must be powered off to:", "updateActiveMemoryMirroring": "Update active memory mirror mode", "updateIoAdapterEnlargedCapacity": "@:pageMemory.updateIoAdapterEnlargedCapacity", @@ -1198,6 +1215,7 @@ "useDns": "Use DNS servers", "useDomainName": "Use domain name", "useNtp": "Use NTP servers", + "lldp": "LLDP", "modal": { "confirmDeleteIpv4": "Are you sure you want to delete '%{address}'?", "confirmDeleteIpv6": "Are you sure you want to delete '%{address}'?", @@ -1378,7 +1396,7 @@ "successIpmiNetworkPolicyUpdate": "Successfully updated %{policy}. The BMC normally takes about 30 seconds to change the state.", "successNextBootToast": "Applying changes to %{policy}. Changes made to %{policy} will take effect on next reboot." }, - "acfUploadEnablementConfirmText": "Caution: Enabling this setting allows unauthenticated users to upload Access Control Files (ACFs) without logging in and without pressing Function 74 on the Operator Panel. Do you want to proceed?", + "acfUploadEnablementConfirmText": "Caution: Enabling this setting removes the physical system access requirement from the process to upload an Access Control File (ACF). This would allow anyone who is authorized to request an ACF and has network access to ASMI to gain access to the admin account. Do you want to proceed?", "vtpm": "VirtualTPM", "vtpmDescription": "Enabling vTPM makes a TPM available to the guest operating system." }, @@ -1434,6 +1452,12 @@ "message3": "The system will attempt to exit Safe Mode on the next power on attempt. To reboot the server, visit", "message3Link": "server power operations" }, + "oemMode": { + "primary": "Custom mode", + "message1": "System is currently in a custom mode.", + "message2": "Change mode by selecting an option below." + }, + "nonIdlePowerSaverMode": "Idle power saver is not supported in current mode.", "delayTimeValidation": { "delayTimeRange": "Value must be between %{min} and %{max}.", "enterDelayTime": "Value cannot be less than delay time to exit.", @@ -1444,18 +1468,27 @@ "content": "Enabling any of the power saver modes will cause changes in processor frequencies, changes in processor utilization, changes in power consumption, and performance to vary.", "subTitle": "Are you sure?", "titleMaximumPerformance": "Enable maximum performance mode", - "titlePowerSaving": "Enable power saving mode", - "titleStatic": "Enable static mode" + "titleEfficiencyFavorPower": "Enable energy efficient mode", + "titlePowerSaving": "Enable maximum energy saver mode" }, "selectMode": { - "maximumPerformance": "Maximum performance", - "powerSaving": "Power saving", - "static": "Static" + "maximumPerformance": { + "primary": "Maximum performance", + "secondary": "Maximum performance" + }, + "energyEfficient": { + "primary": "Energy efficient", + "secondary": "Efficiency favor power" + }, + "maximumEnergySaver": { + "primary": "Maximum energy saver", + "secondary": "Power saver" + } }, "tableRoles": { - "descMaximumPerformance": "Processor frequency will vary. This mode allows the system to reach the maximum frequency by taking advantage of the thermal and power headroom provided by idle cores, lower workloads, and favorable environmental conditions.", - "descPowerSaving": "Processor frequency is set to a fixed minimum value, reducing the power consumption of the system while still delivering predictable performance.", - "descStatic": "Processor frequency is set to a fixed value that can run normal workloads under normal environmental conditions.", + "descMaximumPerformance": "Processor frequency will vary. This mode allows systems to reach the maximum-frequency value by taking advantage of thermal and energy headroom provided by idle cores, lower workloads, and favorable environmental conditions.", + "descEnergyEfficient": "Processor frequency will vary. This mode allows systems to reach mid-frequency values by taking advantage of thermal and energy headroom provided by idle cores, lower workloads, and favorable environmental conditions.", + "descMaximumEnergySaver": "Processors are set to a fixed low-frequency value regardless of workload and environment temperatures, reducing energy consumption while still delivering predictable performance.", "description": "Description", "setting": "Setting" }, @@ -1779,7 +1812,7 @@ "invalidVlanTagId": "VLAN ID must be in range %{min} to %{max}", "invalidIsciTargetPort": "The port value should be a positive integer between %{min} and %{max}", "chapNameRequired": "CHAP name is required when CHAP secret is specified", - "chapSecretRequired": "CHAP secret is required when CHAP name is specified", + "chapSecretRequired": "CHAP secret is required when CHAP secret is specified", "invalidFieldLength": "%{field} should not exceed %{max} characters", "invalidChapSecretLength": "CHAP secret length must be between %{min} and %{max} characters" } @@ -1855,7 +1888,12 @@ "accountPolicySettings": "Account policy settings", "addUser": "Add user", "deleteUser": "Delete user | Delete users", + "disableMfaBypassWarning": "You will be logged out if your MFA bypass value is disabled.", "editUser": "Edit user", + "enableMfaInfo": "You will be logged out after successfully enabling MFA TOTP Authentication.", + "enableMfaWarning": "You need to MFA bypass yourself to enable MFA TOTP Authentication", + "mfaTimeMatch": "To update, visit ", + "mfaTotpAuthentication": "MFA TOTP authentication", "viewPrivilegeRoleDescriptions": "View privilege role descriptions", "modal": { "accountLocked": "Account locked", @@ -1866,24 +1904,38 @@ "clickSaveToUnlockAccount": "Click \"Save\" to unlock account", "confirmUserPassword": "Confirm user password", "deleteConfirmMessage": "Are you sure you want to delete user '%{user}'? This action cannot be undone.", + "enableMfa": "Enable MFA", + "helptext": "Steps", + "helptextStep1": "1. Scan the QR code or enter the secret key into the authenticator app.", + "helptextStep2": "2. Enter the TOTP generated by the app into the TOTP field and Login.", + "helptextStep2EnableMfa": "2. Enter the TOTP generated by the app into the TOTP field and Validate.", + "hmcWarning": "MFA bypassed user must be used for HMC connection.", "manual": "Manual", "maxFailedLoginAttempts": "Max failed login attempts", + "mfaInfoAlert": "Enable/Disable MFA at system level will affect all local users of the system.", "noSpecialCharactersExceptUnderscore": "No special characters except underscore", + "otp": "TOTP", "passwordMustBeBetween": "Password must be between %{min} – %{max} characters", "passwordsDoNotMatch": "Passwords do not match", "privilege": "Privilege", + "secretKey": "Secret key", "timeoutDurationSeconds": "Timeout duration (seconds)", "unlock": "Unlock", "username": "Username", "userPassword": "User password", "userUnlockMethod": "User unlock method", + "validate": "Validate", "zeroLoginAttempts": "If `0`, then account shall never be locked." }, "table": { "administrator": "Administrator", + "clear": "Clear", + "mfaByPass": "MFA bypass", "privilege": "Privilege", "readOnly": "Read only", "serviceAgent": "Service agent", + "secretKey": "Secret key", + "secretKeyTooltip": "If the secret key is cleared, that user will be prompted to re-register the secret key during the login process.", "status": "Status", "username": "Username" }, @@ -1901,20 +1953,32 @@ "errorBatchDelete": "Error deleting %{count} user. | Error deleting %{count} users.", "errorBatchDisable": "Error disabling %{count} user. | Error disabling %{count} users.", "errorBatchEnable": "Error enabling %{count} user. | Error enabling %{count} users.", + "errorClearSecretKey": "Error clearing Secret key", "errorCreateUser": "Error creating user '%{username}'.", "errorCreateUserMaxUsers": "Error creating user '%{username}' because this system has reached the maximum amount of allowable users.", "errorCreateUserPasswordNotAccepted": "Error creating user '%{username}' because the password was not accepted.", "errorDeleteUser": "Error deleting user '%{username}'.", + "errorDisableMfa": "Error disabling Multi factor authentication.", + "errorDisableMfaBypass": "Error disabling MFA bypass.", + "errorEnableMfa": "Error enabling Multi factor authentication.", + "errorEnableMfaAuto": "Error enabling MFA TOTP Authentication. Please verify BMC time and the browser's time to successfully verify TOTP.", + "errorEnableMfaBypass": "Error enabling MFA bypass.", "errorLoadAccountSettings": "Error loading account settings", "errorLoadUsers": "Error loading users.", + "errorOtp": "Invalid TOTP", "errorSaveSettings": "Error saving account settings.", "errorUpdateUser": "Error updating user '%{username}'.", "errorUpdateUserPasswordNotAccepted": "Error updating user '%{username}' because the password was not accepted.", "successBatchDelete": "Successfully deleted %{count} user. | Successfully deleted %{count} users.", "successBatchDisable": "Successfully disabled %{count} user. | Successfully disabled %{count} users.", "successBatchEnable": "Successfully enabled %{count} user. | Successfully enabled %{count} users.", + "successClearSecretKey": "Successfully cleared Secret key", "successCreateUser": "Created user '%{username}'.", "successDeleteUser": "Deleted user '%{username}'.", + "successDisableMfa": "Successfully disabled Multi factor authentication.", + "successDisableMfaBypass": "Successfully disabled MFA bypass.", + "successEnableMfa": "Successfully enabled Multi factor authentication.", + "successEnableMfaBypass": "Successfully enabled MFA bypass.", "successSaveSettings": "Successfully saved account settings.", "successUpdateUser": "Updated user '%{username}'." } diff --git a/src/router/routes.js b/src/router/routes.js index 163fe802b2..f70e8b68ee 100644 --- a/src/router/routes.js +++ b/src/router/routes.js @@ -40,6 +40,8 @@ import EventLogs from '@/views/Logs/EventLogs'; import FieldCoreOverride from '@/views/ResourceManagement/FieldCoreOverride'; import ServiceLoginConsoles from '@/views/Operations/ServiceLoginConsoles/ServiceLoginConsoles.vue'; import ServiceLogin from '@/views/Operations/ServiceLoginConsoles'; +import Dumps from '@/views/Logs/Dumps'; +import DateTime from '@/views/Settings/DateTime/DateTime.vue' const roles = { administrator: 'Administrator', @@ -190,6 +192,14 @@ export const routes = [ title: i18n.global.t('appPageTitle.auditLogs'), }, }, + { + path: '/logs/dumps', + name: 'dumps', + component: Dumps, + meta: { + title: i18n.global.t('appPageTitle.dumps'), + }, + }, { path: '/logs/post-code-logs', name: 'post-code-logs', @@ -264,6 +274,14 @@ export const routes = [ title: i18n.global.t('appPageTitle.powerRestorePolicy'), }, }, + { + path: '/settings/date-time', + name: 'date-time', + component: DateTime, + meta: { + title: i18n.global.t('appPageTitle.dateTime'), + }, + }, { path: '/settings/hardware-deconfiguration', name: 'hardware-deconfiguration', diff --git a/src/store/index.js b/src/store/index.js index dcc869d378..9a0d1269c9 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -35,7 +35,8 @@ import NetworkSettingsStore from './modules/Operations/NetworkSettingsStore.js'; import LdapStore from './modules/SecurityAndAccess/LdapStore.js'; import DumpsStore from './modules/Logs/DumpsStore.js'; import FieldCoreOverrideStore from './modules/ResourceManagement/FieldCoreOverrideStore.js'; -import PostCodeLogsStore from './modules/Logs/PostCodeLogsStore.js' +import PostCodeLogsStore from './modules/Logs/PostCodeLogsStore.js'; +import DateTimeStore from './modules/Settings/DateTimeStore'; // ... (export use other stores) export { EventLogStore, @@ -75,4 +76,5 @@ export { LdapStore, DumpsStore, FieldCoreOverrideStore, + DateTimeStore, }; diff --git a/src/store/modules/Logs/DumpsStore.js b/src/store/modules/Logs/DumpsStore.js index 3bc0d678c8..3753359133 100644 --- a/src/store/modules/Logs/DumpsStore.js +++ b/src/store/modules/Logs/DumpsStore.js @@ -11,6 +11,9 @@ export const DumpsStore = defineStore('dumps', { allDumpsGetter: (state) => state.allDumps, }, actions: { + async getTask() { + return await api.get('/redfish/v1/TaskService/Tasks'); + }, async getBmcDumpEntries() { return api .get('/redfish/v1/') @@ -45,6 +48,14 @@ export const DumpsStore = defineStore('dumps', { id: dump.Id, location: dump['@odata.id'], size: dump.AdditionalDataSizeBytes, + actions: [ + { + value: 'download', + }, + { + value: 'delete', + }, + ], })); }) .catch((error) => console.log(error)); @@ -59,19 +70,28 @@ export const DumpsStore = defineStore('dumps', { ) .catch((error) => { console.log(error); - const messageId = + const errorMsg = error.response.data.error?.['@Message.ExtendedInfo'][0].MessageId; - const message = REGEX_MAPPINGS.resourceInStandby.test(messageId) - ? i18n.global.t('pageDumps.toast.errorStartDumpAnotherInProgress', { - dump: dumpType, - }) - : i18n.global.t('pageDumps.toast.errorStartBmcDump'); - - throw new Error(message); + switch (true) { + case REGEX_MAPPINGS.resourceInUse.test(errorMsg): + throw new Error( + i18n.global.t('pageDumps.toast.errorStartDumpAnotherInProgress', { + dump: dumpType, + }) + ); + case REGEX_MAPPINGS.resourceInStandby.test(errorMsg): + throw new Error( + i18n.global.t('pageDumps.toast.errorStartDumpResourceInStandby', { + dump: dumpType, + }) + ); + default: + throw new Error(i18n.global.t('pageDumps.toast.errorStartBmcDump')); + } }); }, - async createResourceDump(_, { resourceSelector, resourcePassword }) { + async createResourceDump({ resourceSelector, resourcePassword }) { const delay = (time) => new Promise((resolve) => setTimeout(resolve, time)); diff --git a/src/views/Logs/Dumps/Dumps.vue b/src/views/Logs/Dumps/Dumps.vue index 13bebf0567..f490dd71b7 100644 --- a/src/views/Logs/Dumps/Dumps.vue +++ b/src/views/Logs/Dumps/Dumps.vue @@ -1,8 +1,8 @@ - + - - + + - - + + - - + + - - - + + + +

+ {{ + $t('pageDumps.modal.deleteDumpConfirmation') + }} +

+
+ - + diff --git a/src/views/Logs/Dumps/DumpsForm.vue b/src/views/Logs/Dumps/DumpsForm.vue index 11f642d2ed..46edc6153c 100644 --- a/src/views/Logs/Dumps/DumpsForm.vue +++ b/src/views/Logs/Dumps/DumpsForm.vue @@ -1,7 +1,7 @@ - - - + + {{ $t('global.form.required') }} - - + + - {{ $t('pageDumps.form.initiateDump') }} - + {{ $t('pageDumps.modal.initiateSystemDumpMessage3') }}

- + {{ $t('pageDumps.modal.initiateSystemDumpMessage4') }} - - + {{ $t('global.form.required') }} - + - + - diff --git a/src/views/Logs/Dumps/DumpsPartitionModalConfirmation.vue b/src/views/Logs/Dumps/DumpsPartitionModalConfirmation.vue index 00b241bc6a..a3bbc0970b 100644 --- a/src/views/Logs/Dumps/DumpsPartitionModalConfirmation.vue +++ b/src/views/Logs/Dumps/DumpsPartitionModalConfirmation.vue @@ -1,5 +1,6 @@ - From ee707cf93d8d34b69c0eac9d447c8b1c5d3ef24e Mon Sep 17 00:00:00 2001 From: Vedangi Mittal Date: Fri, 9 May 2025 13:54:41 +0530 Subject: [PATCH 2/3] Fixed TableRowAction.vue file - Fixed TableRowAction.vue file --- src/components/Global/TableRowAction.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Global/TableRowAction.vue b/src/components/Global/TableRowAction.vue index e87f691b66..97db24455f 100644 --- a/src/components/Global/TableRowAction.vue +++ b/src/components/Global/TableRowAction.vue @@ -34,7 +34,7 @@ :title="title" > - 3999 + {{ $t('global.action.download') }} From 301af132004312d2b632abae39d796c7638b7abd Mon Sep 17 00:00:00 2001 From: Vedangi Mittal Date: Fri, 9 May 2025 13:58:35 +0530 Subject: [PATCH 3/3] Updated routes.js file - Updated routes.js file --- src/router/routes.js | 18 +++++ src/views/Logs/Dumps/Dumps.vue | 107 ++--------------------------- src/views/Logs/Dumps/DumpsForm.vue | 5 +- 3 files changed, 26 insertions(+), 104 deletions(-) diff --git a/src/router/routes.js b/src/router/routes.js index f70e8b68ee..cab3e31b90 100644 --- a/src/router/routes.js +++ b/src/router/routes.js @@ -42,6 +42,8 @@ import ServiceLoginConsoles from '@/views/Operations/ServiceLoginConsoles/Servic import ServiceLogin from '@/views/Operations/ServiceLoginConsoles'; import Dumps from '@/views/Logs/Dumps'; import DateTime from '@/views/Settings/DateTime/DateTime.vue' +import ProfileSettings from '@/views/ProfileSettings'; +import Network from '@/views/Settings/Network'; const roles = { administrator: 'Administrator', @@ -103,6 +105,14 @@ export const routes = [ title: i18n.global.t('appPageTitle.overview'), }, }, + { + path: '/profile-settings', + name: 'profile-settings', + component: ProfileSettings, + meta: { + title: i18n.global.t('appPageTitle.profileSettings'), + }, + }, { path: '/operations/virtual-media', name: 'virtual-media', @@ -290,6 +300,14 @@ export const routes = [ title: i18n.global.t('appPageTitle.deconfigurationHardware'), }, }, + { + path: '/settings/network', + name: 'network', + component: Network, + meta: { + title: i18n.global.t('appPageTitle.network'), + }, + }, { path: '/resource-management/power', name: 'power', diff --git a/src/views/Logs/Dumps/Dumps.vue b/src/views/Logs/Dumps/Dumps.vue index f490dd71b7..e8813322d5 100644 --- a/src/views/Logs/Dumps/Dumps.vue +++ b/src/views/Logs/Dumps/Dumps.vue @@ -76,12 +76,6 @@ /> - { }); const allDumps = computed(() => { return dumps.allDumpsGetter; - // return { - // ...item, - // actions: [ - // { - // value: 'download', - // // title: i18n.global.t('global.action.download'), - // }, - // { - // value: 'delete', - // // title: i18n.global.t('global.action.delete'), - // }, - // ], - // }; - // }); }); const filteredDumpsByDate = computed(() => { return getFilteredTableDataByDate( @@ -360,26 +331,6 @@ const onTableRowAction = (action, dump) => { if (action === 'delete') { openModal.value = true; dumpVal.value = dump; - // this.$bvModal - // .msgBoxConfirm(i18n.global.t('pageDumps.modal.deleteDumpConfirmation'), { - // title: i18n.global.t('pageDumps.modal.deleteDump'), - // okTitle: i18n.global.t('pageDumps.modal.deleteDump'), - // cancelTitle: i18n.global.t('global.action.cancel'), - // }) - // .then((deleteConfrimed) => { - // if (deleteConfrimed) { - // dumps.deleteDumps([dump]) - // .then((messages) => { - // messages.forEach(({ type, message }) => { - // if (type === 'success') { - // successToast(message); - // } else if (type === 'error') { - // errorToast(message); - // } - // }); - // }); - // } - // }); } }; const handleOk = () => { @@ -395,50 +346,6 @@ const handleOk = () => { }); }); }; -// const onTableBatchAction = (action) => { -// if (action === 'delete') { -// this.$bvModal -// .msgBoxConfirm( -// i18n.global.t( -// 'pageDumps.modal.deleteDumpConfirmation', -// selectedRowsList.length, -// ), -// { -// title: i18n.global.t( -// 'pageDumps.modal.deleteDump', -// selectedRowsList.length, -// ), -// okTitle: i18n.global.t( -// 'pageDumps.modal.deleteDump', -// selectedRowsList.length, -// ), -// cancelTitle: i18n.global.t('global.action.cancel'), -// }, -// ) -// .then((deleteConfrimed) => { -// if (deleteConfrimed) { -// if (this.selectedRows.length === this.dumps.length) { -// this.$store -// .dispatch('dumps/deleteAllDumps') -// .then((success) => successToast(success)) -// .catch(({ message }) => errorToast(message)); -// } else { -// this.$store -// .dispatch('dumps/deleteDumps', this.selectedRows) -// .then((messages) => { -// messages.forEach(({ type, message }) => { -// if (type === 'success') { -// successToast(message); -// } else if (type === 'error') { -// errorToast(message); -// } -// }); -// }); -// } -// } -// }); -// } -// }; const onChangeSearch = (event) => { searchFilterInput.value = event; }; diff --git a/src/views/Logs/Dumps/DumpsForm.vue b/src/views/Logs/Dumps/DumpsForm.vue index 46edc6153c..6c21a31c96 100644 --- a/src/views/Logs/Dumps/DumpsForm.vue +++ b/src/views/Logs/Dumps/DumpsForm.vue @@ -243,13 +243,12 @@ const checkIfInPhypStandby = (checkCounter = 0) => { }; const updateDumpInfo = () => { nextTick(() => { - // console.log('selectedDumpType.value after nextTick:', selectedDumpType.value); eventBus.emit('updateDumpInfo', selectedDumpType.value); }); }; const handleSubmit = () => { v$.value.$touch(); - // if (v$.value.$invalid) return; + if (v$.value.selectedDumpType.$invalid) return; const dumpType = i18n.global.t(`pageDumps.form.${selectedDumpType.value}Dump`); @@ -336,11 +335,9 @@ const isFunctionDisabled = (value) => { }; const showConfirmationModal = () => { modalConfirmation=True - // this.$bvModal.show('modal-confirmation'); }; const showPartitionDumpConfirmationModal = () => { modalPartition=True - // this.$bvModal.show('modal-partition-dump-confirmation'); }; const createSystemDump = (dumpType) => { dumps.createSystemDump(dumpType)