This is an automated email from the ASF dual-hosted git repository.

rohit pushed a commit to branch 4.20
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/4.20 by this push:
     new f3a474bb9ef UI: make a newly added Network the default one (#9708) 
(#10022)
f3a474bb9ef is described below

commit f3a474bb9ef2dfe71d1605776f1696345c718206
Author: João Jandre <[email protected]>
AuthorDate: Tue Dec 3 03:44:08 2024 -0300

    UI: make a newly added Network the default one (#9708) (#10022)
    
    * UI: Checkbox to make a newly added Network the default one in the 
Instance's Network tab
    
    * Fixed an issue that was causing exit from network tab after add-network
    
    Co-authored-by: Abhisar Sinha <[email protected]>
---
 ui/public/locales/en.json        |  1 +
 ui/src/views/network/NicsTab.vue | 32 ++++++++++++++++++++++++++++++--
 2 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/ui/public/locales/en.json b/ui/public/locales/en.json
index e2f637bd410..76334d2b504 100644
--- a/ui/public/locales/en.json
+++ b/ui/public/locales/en.json
@@ -1368,6 +1368,7 @@
 "label.maintenance": "Maintenance",
 "label.majorsequence": "Major Sequence",
 "label.make": "Make",
+"label.make.default": "Make default",
 "label.make.project.owner": "Make Account project owner",
 "label.make.user.project.owner": "Make User project owner",
 "label.makeredundant": "Make redundant",
diff --git a/ui/src/views/network/NicsTab.vue b/ui/src/views/network/NicsTab.vue
index 6346ae4d4ab..eb0fd818cfa 100644
--- a/ui/src/views/network/NicsTab.vue
+++ b/ui/src/views/network/NicsTab.vue
@@ -106,6 +106,11 @@
           </a-select>
           <p class="modal-form__label">{{ $t('label.publicip') }}:</p>
           <a-input v-model:value="addNetworkData.ip"></a-input>
+          <br>
+          <a-checkbox v-model:checked="addNetworkData.makedefault">
+            {{ $t('label.make.default') }}
+          </a-checkbox>
+          <br>
         </div>
 
         <div :span="24" class="action-button">
@@ -248,13 +253,15 @@ export default {
   data () {
     return {
       vm: {},
+      nic: {},
       showAddNetworkModal: false,
       showUpdateIpModal: false,
       showSecondaryIpModal: false,
       addNetworkData: {
         allNetworks: [],
         network: '',
-        ip: ''
+        ip: '',
+        makedefault: false
       },
       loadingNic: false,
       editIpAddressNic: '',
@@ -332,6 +339,7 @@ export default {
       this.showSecondaryIpModal = false
       this.addNetworkData.network = ''
       this.addNetworkData.ip = ''
+      this.addNetworkData.makedefault = false
       this.editIpAddressValue = ''
       this.newSecondaryIp = ''
     },
@@ -368,7 +376,19 @@ export default {
         this.$pollJob({
           jobId: response.addnictovirtualmachineresponse.jobid,
           successMessage: this.$t('message.success.add.network'),
-          successMethod: () => {
+          successMethod: async () => {
+            if (this.addNetworkData.makedefault) {
+              try {
+                this.nic = await this.getNic(params.networkid, 
params.virtualmachineid)
+                if (this.nic) {
+                  this.setAsDefault(this.nic)
+                } else {
+                  this.$notifyError('NIC data not found.')
+                }
+              } catch (error) {
+                this.$notifyError('Failed to fetch NIC data.')
+              }
+            }
             this.loadingNic = false
             this.closeModals()
           },
@@ -390,6 +410,14 @@ export default {
         this.loadingNic = false
       })
     },
+    getNic (networkid, virtualmachineid) {
+      const params = {}
+      params.virtualmachineid = virtualmachineid
+      params.networkid = networkid
+      return api('listNics', params).then(response => {
+        return response.listnicsresponse.nic[0]
+      })
+    },
     setAsDefault (item) {
       this.loadingNic = true
       api('updateDefaultNicForVirtualMachine', {

Reply via email to