diff --git a/ui/src/config/section/compute.js b/ui/src/config/section/compute.js
index 44e49eefc90..8219dca8971 100644
--- a/ui/src/config/section/compute.js
+++ b/ui/src/config/section/compute.js
@@ -439,7 +439,7 @@ export default {
         },
         {
           api: 'stopKubernetesCluster',
-          icon: 'stop',
+          icon: 'poweroff',
           label: 'label.kubernetes.cluster.stop',
           dataView: true,
           show: (record) => { return !['Stopped'].includes(record.state) }
diff --git a/ui/src/config/section/infra/ilbvms.js b/ui/src/config/section/infra/ilbvms.js
index 01a6ce74832..8b2434e3c40 100644
--- a/ui/src/config/section/infra/ilbvms.js
+++ b/ui/src/config/section/infra/ilbvms.js
@@ -34,7 +34,7 @@ export default {
     },
     {
       api: 'stopInternalLoadBalancerVM',
-      icon: 'stop',
+      icon: 'poweroff',
       label: 'label.action.stop.router',
       dataView: true,
       args: ['forced'],
diff --git a/ui/src/config/section/infra/routers.js b/ui/src/config/section/infra/routers.js
index fcb82545c5e..8a0eba8b592 100644
--- a/ui/src/config/section/infra/routers.js
+++ b/ui/src/config/section/infra/routers.js
@@ -34,7 +34,7 @@ export default {
     },
     {
       api: 'stopRouter',
-      icon: 'stop',
+      icon: 'poweroff',
       label: 'label.action.stop.router',
       message: 'message.action.stop.router',
       dataView: true,
diff --git a/ui/src/config/section/infra/systemVms.js b/ui/src/config/section/infra/systemVms.js
index 1d0b5cd3d2e..f5b74a45d5c 100644
--- a/ui/src/config/section/infra/systemVms.js
+++ b/ui/src/config/section/infra/systemVms.js
@@ -33,7 +33,7 @@ export default {
     },
     {
       api: 'stopSystemVm',
-      icon: 'stop',
+      icon: 'poweroff',
       label: 'label.action.stop.systemvm',
       message: 'message.action.stop.systemvm',
       dataView: true,
diff --git a/ui/src/views/AutogenView.vue b/ui/src/views/AutogenView.vue
index 9ade5aa9eb4..9f8731051db 100644
--- a/ui/src/views/AutogenView.vue
+++ b/ui/src/views/AutogenView.vue
@@ -87,7 +87,7 @@
           :closable="true"
           style="top: 20px;"
           @cancel="closeAction"
-          :confirmLoading="currentAction.loading"
+          :confirmLoading="actionLoading"
           :footer="null"
           centered
           width="auto"
@@ -110,7 +110,7 @@
         style="top: 20px;"
         @ok="handleSubmit"
         @cancel="closeAction"
-        :confirmLoading="currentAction.loading"
+        :confirmLoading="actionLoading"
         centered
       >
         
@@ -123,7 +123,7 @@
             
           
         
-        
+        
           
             
               
@@ -338,6 +338,7 @@ export default {
       apiName: '',
       docBase: config.docBase,
       loading: false,
+      actionLoading: false,
       columns: [],
       items: [],
       itemCount: 0,
@@ -588,7 +589,7 @@ export default {
       this.fetchData()
     },
     closeAction () {
-      this.currentAction.loading = false
+      this.actionLoading = false
       this.showAction = false
       this.currentAction = {}
     },
@@ -643,7 +644,7 @@ export default {
           this.listUuidOpts(param)
         }
       }
-      this.currentAction.loading = false
+      this.actionLoading = false
       if (action.dataView && ['copy', 'edit'].includes(action.icon)) {
         this.fillEditFormFieldValues()
       }
@@ -756,7 +757,6 @@ export default {
       this.form.validateFields((err, values) => {
         console.log(values)
         if (!err) {
-          this.currentAction.loading = true
           const params = {}
           if ('id' in this.resource && this.currentAction.params.map(i => { return i.name }).includes('id')) {
             params.id = this.resource.id
@@ -812,6 +812,7 @@ export default {
           const resourceName = params.displayname || params.displaytext || params.name || params.hostname || params.username || params.ipaddress || params.virtualmachinename || this.resource.name
 
           var hasJobId = false
+          this.actionLoading = true
           api(this.currentAction.api, params).then(json => {
             for (const obj in json) {
               if (obj.includes('response')) {
@@ -822,7 +823,11 @@ export default {
                     hasJobId = true
                     break
                   } else {
-                    this.$message.success(this.$t(this.currentAction.label) + (resourceName ? ' - ' + resourceName : ''))
+                    this.$message.success({
+                      content: this.$t(this.currentAction.label) + (resourceName ? ' - ' + resourceName : ''),
+                      key: this.currentAction.label + resourceName,
+                      duration: 2
+                    })
                   }
                 }
                 break
@@ -839,6 +844,7 @@ export default {
             console.log(error)
             this.$notifyError(error)
           }).finally(f => {
+            this.actionLoading = false
             this.closeAction()
           })
         }
diff --git a/ui/src/views/network/VpcTab.vue b/ui/src/views/network/VpcTab.vue
index d66105befb4..17091fb0a63 100644
--- a/ui/src/views/network/VpcTab.vue
+++ b/ui/src/views/network/VpcTab.vue
@@ -132,7 +132,7 @@
               
               
+                v-if="$store.getters.apis.createPrivateGateway && $store.getters.apis.createPrivateGateway.params.filter(x => x.name === 'bypassvlanoverlapcheck').length > 0" >