This is an automated email from the ASF dual-hosted git repository.
weizhou 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 f24b1757a0b ui: donot filter edge zones while registering
directdownload iso (#10865)
f24b1757a0b is described below
commit f24b1757a0b920d88470033bdf4bd658717a8d20
Author: Abhishek Kumar <[email protected]>
AuthorDate: Wed Sep 3 15:16:10 2025 +0530
ui: donot filter edge zones while registering directdownload iso (#10865)
Fixes #10766
Signed-off-by: Abhishek Kumar <[email protected]>
---
ui/src/views/image/RegisterOrUploadIso.vue | 45 ++++++++++++++++++++----------
1 file changed, 31 insertions(+), 14 deletions(-)
diff --git a/ui/src/views/image/RegisterOrUploadIso.vue
b/ui/src/views/image/RegisterOrUploadIso.vue
index 871a8482e99..37ae369727f 100644
--- a/ui/src/views/image/RegisterOrUploadIso.vue
+++ b/ui/src/views/image/RegisterOrUploadIso.vue
@@ -85,7 +85,7 @@
<template #label>
<tooltip-label :title="$t('label.directdownload')"
:tooltip="apiParams.directdownload.description"/>
</template>
- <a-switch v-model:checked="form.directdownload"/>
+ <a-switch v-model:checked="form.directdownload"
@change="handleDirectDownloadChange"/>
</a-form-item>
<a-form-item ref="checksum" name="checksum">
@@ -110,7 +110,7 @@
}"
:loading="zoneLoading"
:placeholder="apiParams.zoneid.description">
- <a-select-option :value="opt.id" v-for="opt in zones"
:key="opt.id" :label="opt.name || opt.description">
+ <a-select-option :value="opt.id" v-for="opt in zoneList"
:key="opt.id" :label="opt.name || opt.description">
<span>
<resource-icon v-if="opt.icon" :image="opt.icon.base64image"
size="1x" style="margin-right: 5px"/>
<global-outlined v-else style="margin-right: 5px" />
@@ -361,17 +361,18 @@ export default {
},
created () {
this.initForm()
- this.zones = []
- if (this.$store.getters.userInfo.roletype === 'Admin' && this.currentForm
=== 'Create') {
- this.zones = [
- {
- id: '-1',
- name: this.$t('label.all.zone')
- }
- ]
- }
+ this.initZones()
this.fetchData()
},
+ computed: {
+ zoneList () {
+ let filteredZones = this.zones
+ if (!this.form.directdownload) {
+ filteredZones = this.zones.filter(zone => zone.type !== 'Edge')
+ }
+ return filteredZones
+ }
+ },
methods: {
initForm () {
this.formRef = ref()
@@ -390,6 +391,17 @@ export default {
ostypeid: [{ required: true, message: this.$t('message.error.select')
}]
})
},
+ initZones () {
+ this.zones = []
+ if (this.$store.getters.userInfo.roletype === 'Admin' &&
this.currentForm === 'Create') {
+ this.zones = [
+ {
+ id: '-1',
+ name: this.$t('label.all.zone')
+ }
+ ]
+ }
+ },
fetchData () {
this.fetchZoneData()
this.fetchOsType()
@@ -412,11 +424,10 @@ export default {
const listZones = json.listzonesresponse.zone
if (listZones) {
this.zones = this.zones.concat(listZones)
- this.zones = this.zones.filter(zone => zone.type !== 'Edge')
}
}).finally(() => {
this.zoneLoading = false
- this.form.zoneid = (this.zones[0].id ? this.zones[0].id : '')
+ this.form.zoneid = this.zoneList?.[0]?.id || ''
})
},
fetchOsType () {
@@ -467,6 +478,12 @@ export default {
this.fileList = newFileList
this.form.file = undefined
},
+ handleDirectDownloadChange () {
+ if (this.form.zoneid && this.zoneList.find(entry => entry.id ===
this.form.zoneid)) {
+ return
+ }
+ this.form.zoneid = this.zoneList?.[0]?.id || ''
+ },
beforeUpload (file) {
this.fileList = [file]
this.form.file = file
@@ -531,7 +548,7 @@ export default {
}
switch (key) {
case 'zoneid':
- var zone = this.zones.filter(zone => zone.id === input)
+ var zone = this.zoneList.filter(zone => zone.id === input)
params[key] = zone[0].id
break
case 'ostypeid':