ui: confirm on reset configurations (#10745)

diff --git a/ui/public/locales/en.json b/ui/public/locales/en.json
index ea2ab49..18df4d2 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 8f4e58e..8a68583 100644
--- a/ui/src/components/view/ListView.vue
+++ b/ui/src/components/view/ListView.vue
@@ -459,7 +459,7 @@
           iconTwoToneColor="#52c41a" />
         <tooltip-button
           :tooltip="$t('label.reset.config.value')"
-          @onClick="resetConfig(record)"
+          @onClick="$resetConfigurationValueConfirm(item, resetConfig)"
           v-if="editableValueKey !== record.key"
           icon="reload-outlined"
           :disabled="!('updateConfiguration' in $store.getters.apis)" />
diff --git a/ui/src/components/view/SettingsTab.vue b/ui/src/components/view/SettingsTab.vue
index cddbe56..9e2705a 100644
--- a/ui/src/components/view/SettingsTab.vue
+++ b/ui/src/components/view/SettingsTab.vue
@@ -66,7 +66,7 @@
             iconTwoToneColor="#52c41a" />
           <tooltip-button
             :tooltip="$t('label.reset.config.value')"
-            @onClick="resetConfig(item)"
+            @onClick="$resetConfigurationValueConfirm(item, resetConfig)"
             v-if="editableValueKey !== index"
             icon="reload-outlined"
             :disabled="!('updateConfiguration' in $store.getters.apis)" />
diff --git a/ui/src/main.js b/ui/src/main.js
index 2f1d892..253801b 100644
--- a/ui/src/main.js
+++ b/ui/src/main.js
@@ -35,7 +35,8 @@
   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(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 6beda22..7f2b2cc 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 @@
 
   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 acee0f2..2b90b11 100644
--- a/ui/src/views/setting/ConfigurationValue.vue
+++ b/ui/src/views/setting/ConfigurationValue.vue
@@ -179,7 +179,7 @@
           :disabled="valueLoading" />
         <tooltip-button
           :tooltip="$t('label.reset.config.value')"
-          @onClick="resetConfigurationValue(configrecord)"
+          @onClick="$resetConfigurationValueConfirm(configrecord, resetConfigurationValue)"
           v-if="editableValueKey === null"
           icon="reload-outlined"
           :disabled="(!('resetConfiguration' in $store.getters.apis) || configDisabled || valueLoading)" />
diff --git a/ui/tests/common/index.js b/ui/tests/common/index.js
index a517fc2..d03c31a 100644
--- a/ui/tests/common/index.js
+++ b/ui/tests/common/index.js
@@ -31,7 +31,8 @@
   showIconPlugin,
   resourceTypePlugin,
   fileSizeUtilPlugin,
-  genericUtilPlugin
+  genericUtilPlugin,
+  dialogUtilPlugin
 } from '@/utils/plugins'
 
 function createMockRouter (newRoutes = []) {
@@ -88,6 +89,7 @@
         resourceTypePlugin,
         fileSizeUtilPlugin,
         genericUtilPlugin,
+        dialogUtilPlugin,
         StoragePlugin
       ],
       mocks