fix #4849: ui: allow decompressing ISO files when downloading

The compression algorithm will be automatically detected when querying the
download URL. It can be overriden by the user using the "compression algorithm"
drop down under advanced.

Signed-off-by: Philipp Hufnagl <p.hufnagl@proxmox.com>

Reworded title and message, updated d/control for libpve-storage-perl version
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>

Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
Tested-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
Philipp Hufnagl 2023-09-21 15:09:17 +02:00 committed by Fabian Grünbichler
parent d61728e289
commit e86862bf27
4 changed files with 28 additions and 2 deletions

2
debian/control vendored
View File

@ -64,7 +64,7 @@ Depends: apt (>= 1.5~),
libpve-http-server-perl (>= 4.1-1),
libpve-notify-perl,
libpve-rs-perl (>= 0.7.1),
libpve-storage-perl (>= 7.2-12),
libpve-storage-perl (>= 8.0.3),
librados2-perl (>= 1.3-1),
libtemplate-perl,
libterm-readline-gnu-perl,

View File

@ -34,6 +34,7 @@ JSSRC= \
form/ContentTypeSelector.js \
form/ControllerSelector.js \
form/DayOfWeekSelector.js \
form/DecompressionSelector.js \
form/DiskFormatSelector.js \
form/DiskStorageSelector.js \
form/FileSelector.js \

View File

@ -0,0 +1,13 @@
Ext.define('PVE.form.DecompressionSelector', {
extend: 'Proxmox.form.KVComboBox',
alias: ['widget.pveDecompressionSelector'],
config: {
deleteEmpty: false,
},
comboItems: [
['__default__', Proxmox.Utils.NoneText],
['lzo', 'LZO'],
['gz', 'GZIP'],
['zst', 'ZSTD'],
],
});

View File

@ -66,6 +66,7 @@ Ext.define('PVE.window.DownloadUrlToStorage', {
params: {
url: queryParam.url,
'verify-certificates': queryParam['verify-certificates'],
'detect-compression': view.content === 'iso' ? 1 : 0,
},
waitMsgTarget: view,
failure: res => {
@ -84,6 +85,7 @@ Ext.define('PVE.window.DownloadUrlToStorage', {
filename: data.filename || "",
size: (data.size && Proxmox.Utils.format_size(data.size)) || gettext("Unknown"),
mimetype: data.mimetype || gettext("Unknown"),
compression: data.compression || '__default__',
});
},
});
@ -203,6 +205,17 @@ Ext.define('PVE.window.DownloadUrlToStorage', {
change: 'setQueryEnabled',
},
},
{
xtype: 'pveDecompressionSelector',
name: 'compression',
fieldLabel: gettext('Decompression algorithm'),
allowBlank: true,
hasNoneOption: true,
value: '__default__',
cbind: {
hidden: get => get('content') !== 'iso',
},
},
],
},
{
@ -223,7 +236,6 @@ Ext.define('PVE.window.DownloadUrlToStorage', {
if (!me.storage) {
throw "no storage ID specified";
}
me.callParent();
},
});