diff --git a/ui/public/locales/en.json b/ui/public/locales/en.json index 99bf2cf7aef9..67fa615e8303 100644 --- a/ui/public/locales/en.json +++ b/ui/public/locales/en.json @@ -145,6 +145,7 @@ "label.action.download.iso": "Download ISO", "label.action.download.snapshot": "Download Snapshot", "label.action.download.template": "Download Template", +"label.action.download.screenshot": "Download Validation Screenshot", "label.action.download.volume": "Download Volume", "label.action.edit.account": "Edit Account", "label.action.edit.domain": "Edit Domain", @@ -3161,6 +3162,7 @@ "message.action.discover.gpu.devices": "Please confirm that you want to discover GPU devices.", "message.action.download.iso": "Please confirm that you want to download this ISO.", "message.action.download.snapshot": "Please confirm that you want to download this Snapshot.", +"message.action.download.screenshot": "Please confirm that you want to download this screenshot", "message.action.download.template": "Please confirm that you want to download this Template.", "message.action.edit.backup.repository": "Please confirm that you want to update the backup repository.", "message.action.edit.nfs.mount.options": "Changes to NFS mount options will only take affect on cancelling maintenance mode which will cause the storage pool to be remounted on all KVM hosts with the new mount options.", @@ -3567,6 +3569,8 @@ "message.success.clone.network.offering": "Successfully cloned network offering:", "message.disk.usage.info.data.points": "Each data point represents the difference in read/write data since the last data point.", "message.disk.usage.info.sum.of.disks": "The disk usage shown is made up of the sum of read/write data from all the disks in the Instance.", +"message.download.screenshot": "Please click on the link to download the validation screenshot:

{url}", +"message.download.screenshot.failed": "Failed to download screenshot. Please, contact an administrator.", "message.download.volume": "Please click the link to download the volume:

00000", "message.download.volume.confirm": "Please confirm that you want to download this volume.", "message.edit.acl.failed": "Failed to edit ACL rule", diff --git a/ui/public/locales/pt_BR.json b/ui/public/locales/pt_BR.json index 8fba779b1d12..6944cd82e825 100644 --- a/ui/public/locales/pt_BR.json +++ b/ui/public/locales/pt_BR.json @@ -129,6 +129,7 @@ "label.action.disable.zone": "Desativar zona", "label.action.download.iso": "Baixar ISO", "label.action.download.snapshot": "Baixar snapshot", +"label.action.download.screenshot": "Baixar captura de tela de valida\u00e7\u00e3o", "label.action.download.template": "Baixar template", "label.action.download.volume": "Baixar disco", "label.action.edit.account": "Editar conta", @@ -2758,6 +2759,7 @@ "message.action.disable.zone": "Confirma a desativa\u00e7\u00e3o da zona.", "message.action.download.iso": "Por favor confirme que voc\u00ea deseja baixar esta ISO.", "message.action.download.snapshot": "Por favor confirme que voc\u00ea deseja baixar esta snapshot.", +"message.action.download.screenshot": "Por favor, confirme que voc\u00ea deseja baixar esta captura de tela.", "message.action.download.template": "Por favor confirme que voc\u00ea deseja baixar este template.", "message.action.edit.nfs.mount.options": "Altera\u00e7\u00f5es nas op\u00e7\u00f5es de montagem NFS s\u00f3 ter\u00e3o efeito ao cancelar o modo de manuten\u00e7\u00e3o, o que far\u00e1 com que o pool de armazenamento seja remontado em todos os hosts KVM com as novas op\u00e7\u00f5es de montagem.", "message.action.enable.cluster": "Confirma a ativa\u00e7\u00e3o do cluster.", @@ -3102,6 +3104,8 @@ "message.disk.offering.created": "Oferta de disco criada:", "message.disk.usage.info.data.points": "Cada ponto no gr\u00e1fico representa a diferen\u00e7a de dados lidos/escritos desde a \u00faltima coleta de estat\u00edstica realizada (o ponto anterior)", "message.disk.usage.info.sum.of.disks": "O uso de disco apresentado \u00e9 composto pela soma de dados lidos/escritos por todos os discos da VM", +"message.download.screenshot": "A captura de tela de valida\u00e7\u00e3o encontra-se disponível em:

{url}", +"message.download.screenshot.failed": "Falha ao baixar a captura de tela. Por favor, contate um administrador.", "message.download.volume": "Clique 00000 para baixar o disco", "message.download.volume.confirm": "Por favor confirme que voc\u00ea quer baixar este volume", "message.drs.plan.description": "O n\u00famero m\u00e1ximo de migra\u00e7\u00f5es ao vivo permitidas para DRS. Configure DRS na aba de configura\u00e7\u00f5es antes de gerar um plano ou para ativar o DRS autom\u00e1tico para o cluster.", diff --git a/ui/src/config/section/storage.js b/ui/src/config/section/storage.js index 75bdfd4d5fa6..39160a4cf365 100644 --- a/ui/src/config/section/storage.js +++ b/ui/src/config/section/storage.js @@ -19,6 +19,7 @@ import { shallowRef, defineAsyncComponent } from 'vue' import store from '@/store' import { isZoneCreated } from '@/utils/zone' import { isAdmin } from '@/role' +import { i18n } from '@/locales' export default { name: 'storage', @@ -507,6 +508,30 @@ export default { } ], actions: [ + { + api: 'downloadValidationScreenshot', + icon: 'picture-outlined', + label: 'label.action.download.screenshot', + message: 'message.action.download.screenshot', + dataView: true, + show: (record) => { + return record.status === 'BackedUp' && !['NotValidated', 'Validating', 'UnableToValidate'].includes(record.validationstatus) + }, + args: ['backupid'], + mapping: { + backupid: { + value: (record) => { return record.id } + } + }, + response: (result) => { + const state = result?.downloadvalidationscreenshotresponse?.state + const url = result?.downloadvalidationscreenshotresponse?.url + if (state !== 'DOWNLOAD_URL_CREATED' || !url) { + return i18n.global.t('message.download.screenshot.failed') + } + return i18n.global.t('message.download.screenshot', { url: `${url}` }) + } + }, { api: 'restoreBackup', icon: 'sync-outlined',