From 0d4cdc587cf0617fe878ec95ddd9985ab3714e8d Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Thu, 17 Apr 2025 14:06:39 +0530 Subject: [PATCH] ui: confirm on reset configurations Fixes #6880 Signed-off-by: Abhishek Kumar --- ui/public/locales/en.json | 1 + ui/src/components/view/ListView.vue | 2 +- ui/src/components/view/SettingsTab.vue | 2 +- ui/src/main.js | 4 +++- ui/src/utils/plugins.js | 17 ++++++++++++++++- ui/src/views/setting/ConfigurationValue.vue | 2 +- ui/tests/common/index.js | 4 +++- 7 files changed, 26 insertions(+), 6 deletions(-) diff --git a/ui/public/locales/en.json b/ui/public/locales/en.json index ea2ab491fb5b..18df4d2a7bf8 100644 --- a/ui/public/locales/en.json +++ b/ui/public/locales/en.json @@ -2672,6 +2672,7 @@ "message.confirm.remove.vmware.datacenter": "Please confirm you want to remove VMware datacenter.", "message.confirm.remove.vpc.offering": "Are you sure you want to remove this VPC offering?", "message.confirm.replace.acl.new.one": "Do you want to replace the ACL with a new one?", +"message.confirm.reset.configuration.value": "Are you sure you want reset configuration - %x?", "message.confirm.reset.network.permissions": "Are you sure you want to reset this Network permissions?", "message.confirm.scale.up.router.vm": "Do you really want to scale up the router Instance?", "message.confirm.scale.up.system.vm": "Do you really want to scale up the system VM?", diff --git a/ui/src/components/view/ListView.vue b/ui/src/components/view/ListView.vue index 8f4e58e93c73..8a685830f4a4 100644 --- a/ui/src/components/view/ListView.vue +++ b/ui/src/components/view/ListView.vue @@ -459,7 +459,7 @@ iconTwoToneColor="#52c41a" /> diff --git a/ui/src/components/view/SettingsTab.vue b/ui/src/components/view/SettingsTab.vue index cddbe56b83a9..9e2705a24ecf 100644 --- a/ui/src/components/view/SettingsTab.vue +++ b/ui/src/components/view/SettingsTab.vue @@ -66,7 +66,7 @@ iconTwoToneColor="#52c41a" /> diff --git a/ui/src/main.js b/ui/src/main.js index 2f1d892fbd86..253801b34a2e 100644 --- a/ui/src/main.js +++ b/ui/src/main.js @@ -35,7 +35,8 @@ import { resourceTypePlugin, fileSizeUtilPlugin, genericUtilPlugin, - localesPlugin + localesPlugin, + dialogUtilPlugin } from './utils/plugins' import { VueAxios } from './utils/request' import directives from './utils/directives' @@ -51,6 +52,7 @@ vueApp.use(resourceTypePlugin) vueApp.use(fileSizeUtilPlugin) vueApp.use(localesPlugin) vueApp.use(genericUtilPlugin) +vueApp.use(dialogUtilPlugin) vueApp.use(extensions) vueApp.use(directives) diff --git a/ui/src/utils/plugins.js b/ui/src/utils/plugins.js index 6beda22a8da5..7f2b2cc7f491 100644 --- a/ui/src/utils/plugins.js +++ b/ui/src/utils/plugins.js @@ -18,7 +18,7 @@ import _ from 'lodash' import { i18n } from '@/locales' import { api } from '@/api' -import { message, notification } from 'ant-design-vue' +import { message, notification, Modal } from 'ant-design-vue' import eventBus from '@/config/eventBus' import store from '@/store' import { sourceToken } from '@/utils/request' @@ -527,3 +527,18 @@ export function createPathBasedOnVmType (vmtype, virtualmachineid) { return path + virtualmachineid } + +export const dialogUtilPlugin = { + install (app) { + app.config.globalProperties.$resetConfigurationValueConfirm = function (configRecord, callback) { + Modal.confirm({ + title: i18n.global.t('label.reset.config.value'), + content: `${i18n.global.t('message.confirm.reset.configuration.value').replace('%x', configRecord.name)}`, + okText: i18n.global.t('label.yes'), + cancelText: i18n.global.t('label.no'), + okType: 'primary', + onOk: () => callback(configRecord) + }) + } + } +} diff --git a/ui/src/views/setting/ConfigurationValue.vue b/ui/src/views/setting/ConfigurationValue.vue index acee0f2eb6ae..2b90b11e34f9 100644 --- a/ui/src/views/setting/ConfigurationValue.vue +++ b/ui/src/views/setting/ConfigurationValue.vue @@ -179,7 +179,7 @@ :disabled="valueLoading" /> diff --git a/ui/tests/common/index.js b/ui/tests/common/index.js index a517fc2d08d4..d03c31a706fd 100644 --- a/ui/tests/common/index.js +++ b/ui/tests/common/index.js @@ -31,7 +31,8 @@ import { showIconPlugin, resourceTypePlugin, fileSizeUtilPlugin, - genericUtilPlugin + genericUtilPlugin, + dialogUtilPlugin } from '@/utils/plugins' function createMockRouter (newRoutes = []) { @@ -88,6 +89,7 @@ function createFactory (component, options) { resourceTypePlugin, fileSizeUtilPlugin, genericUtilPlugin, + dialogUtilPlugin, StoragePlugin ], mocks