This is an automated email from the ASF dual-hosted git repository. dahn pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/main by this push: new 525c2c6fe93 Show in which primary storage volumes are allocated in instance details page and volume migration pop-ups (#8835) 525c2c6fe93 is described below commit 525c2c6fe932eec7982e9966fcfca6e52345635a Author: Fabricio Duarte <fabricio.duarte...@gmail.com> AuthorDate: Thu Jun 13 02:44:47 2024 -0300 Show in which primary storage volumes are allocated in instance details page and volume migration pop-ups (#8835) --- ui/public/locales/en.json | 4 +++- ui/public/locales/pt_BR.json | 4 +++- .../InstanceVolumesStoragePoolSelectListView.vue | 7 ++++++- ui/src/components/view/VolumesTab.vue | 22 ++++++++++++++++++++-- ui/src/views/storage/MigrateVolume.vue | 2 +- 5 files changed, 33 insertions(+), 6 deletions(-) diff --git a/ui/public/locales/en.json b/ui/public/locales/en.json index 86a74384cb7..bd3e6e6a54c 100644 --- a/ui/public/locales/en.json +++ b/ui/public/locales/en.json @@ -595,6 +595,7 @@ "label.crosszones": "Cross zones", "label.currency": "Currency", "label.current": "Current", +"label.current.storage": "Current storage", "label.currentpassword": "Current password", "label.custom": "Custom", "label.customconstrained": "Custom constrained", @@ -1916,6 +1917,7 @@ "label.select.tier": "Select Network Tier", "label.select.zones": "Select zones", "label.select.2fa.provider": "Select the provider", +"label.selected.storage": "Selected storage", "label.self": "Mine", "label.selfexecutable": "Self", "label.semanticversion": "Semantic version", @@ -3082,7 +3084,7 @@ "message.migrate.resource.to.ss": "Please confirm that you want to migrate this resource to another secondary storage.", "message.migrate.router.confirm": "Please confirm the host you wish to migrate the router to:", "message.migrate.systemvm.confirm": "Please confirm the host you wish to migrate the system VM to:", -"message.migrate.volume": "Please confirm that you want to migrate this volume to another primary storage.", +"message.migrate.volume": "Please confirm that you want to migrate the volume \"{volume}\" from \"{storage}\" to another primary storage.", "message.migrate.volume.failed": "Migrating volume failed.", "message.migrate.volume.pool.auto.assign": "Primary storage for the volume will be automatically chosen based on the suitability and Instance destination", "message.migrate.volume.processing": "Migrating volume...", diff --git a/ui/public/locales/pt_BR.json b/ui/public/locales/pt_BR.json index 9d64cc27150..54481775a09 100644 --- a/ui/public/locales/pt_BR.json +++ b/ui/public/locales/pt_BR.json @@ -445,6 +445,7 @@ "label.crosszones": "Inter zonas", "label.currency": "Moeda", "label.current": "Atual", +"label.current.storage": "Armazenamento atual", "label.currentpassword": "Senha antiga", "label.custom": "Customizado", "label.customconstrained": "Customizado limitado", @@ -1442,6 +1443,7 @@ "label.select.projects": "Selecionar projetos", "label.select.tier": "Selecionar camada", "label.select.zones": "Selecionar zonas", +"label.selected.storage": "Armazenamento selecionado", "label.self": "Meus", "label.selfexecutable": "Auto", "label.semanticversion": "Vers\u00e3o sem\u00e2ntica", @@ -2235,7 +2237,7 @@ "message.migrate.instance.to.ps": "Por favor confirme que voc\u00ea deseja migrar a inst\u00e2ncia para outro armazenamento prim\u00e1rio.", "message.migrate.router.confirm": "Por favor confirme o host que voc\u00ea deseja migrar o roteador para:", "message.migrate.systemvm.confirm": "Por favor confirme o host para o qual voc\u00ea deseja migrar a VM de sistema:", -"message.migrate.volume": "Por favor confirme que voc\u00ea deseja migrar o volume para outro armazenamento prim\u00e1rio.", +"message.migrate.volume": "Por favor confirme que voc\u00ea deseja migrar o volume \"{volume}\" do armazenamento prim\u00e1rio \"{storage}\" para outro.", "message.migrate.volume.failed": "Falha ao migrar volume", "message.migrate.volume.processing": "Migrando volume...", "message.migrating.failed": "Falha na migra\u00e7\u00e3o", diff --git a/ui/src/components/view/InstanceVolumesStoragePoolSelectListView.vue b/ui/src/components/view/InstanceVolumesStoragePoolSelectListView.vue index 77f1b495d71..77f3e8f91f4 100644 --- a/ui/src/components/view/InstanceVolumesStoragePoolSelectListView.vue +++ b/ui/src/components/view/InstanceVolumesStoragePoolSelectListView.vue @@ -101,9 +101,14 @@ export default { key: 'size', title: this.$t('label.size') }, + { + key: 'storage', + title: this.$t('label.current.storage'), + dataIndex: 'storage' + }, { key: 'selectedstorage', - title: this.$t('label.storage') + title: this.$t('label.selected.storage') }, { key: 'select', diff --git a/ui/src/components/view/VolumesTab.vue b/ui/src/components/view/VolumesTab.vue index e9165b1b3bd..7805e5b8d87 100644 --- a/ui/src/components/view/VolumesTab.vue +++ b/ui/src/components/view/VolumesTab.vue @@ -19,7 +19,7 @@ <a-table class="table" size="small" - :columns="volumeColumns" + :columns="columns" :dataSource="volumes" :rowKey="item => item.id" :pagination="false" @@ -40,6 +40,10 @@ <template v-if="column.key === 'size'"> {{ parseFloat(record.size / (1024.0 * 1024.0 * 1024.0)).toFixed(2) }} GB </template> + <template v-if="column.key === 'storage'"> + <router-link v-if="record.storageid" :to="{ path: '/storagepool/' + record.storageid }">{{ text }}</router-link> + <span v-else>{{ text }}</span> + </template> </template> </a-table> </template> @@ -64,11 +68,20 @@ export default { } }, inject: ['parentFetchData'], + computed: { + columns () { + if (this.volumes?.[0]) { + return this.allColumns.filter(col => col.dataIndex in this.volumes[0]) + } + return this.allColumns.filter(col => this.defaultColumns.includes(col.dataIndex)) + } + }, data () { return { vm: {}, volumes: [], - volumeColumns: [ + defaultColumns: ['name', 'state', 'type', 'size'], + allColumns: [ { key: 'name', title: this.$t('label.name'), @@ -87,6 +100,11 @@ export default { key: 'size', title: this.$t('label.size'), dataIndex: 'size' + }, + { + key: 'storage', + title: this.$t('label.storage'), + dataIndex: 'storage' } ] } diff --git a/ui/src/views/storage/MigrateVolume.vue b/ui/src/views/storage/MigrateVolume.vue index 761fe02b187..a1ce4f71bd1 100644 --- a/ui/src/views/storage/MigrateVolume.vue +++ b/ui/src/views/storage/MigrateVolume.vue @@ -19,7 +19,7 @@ <a-form class="form" layout="vertical" v-ctrl-enter="handleKeyboardSubmit"> <a-alert class="top-spaced" type="warning"> <template #message> - <span v-html="$t('message.migrate.volume')" /> + <span v-html="$t('message.migrate.volume', { volume: resource.name, storage: resource.storage })" /> </template> </a-alert> <a-form-item style="margin-top: 10px;">