extends the download iso prompt with a "compression algorithm" drop down
under advanced. User can configure there if a decompression algorithm
should be used from the storage backend. The compression algorithm will
be automatically guessed when calling query_url_metadata

Signed-off-by: Philipp Hufnagl <p.hufn...@proxmox.com>
---
 www/manager6/Makefile                       |  1 +
 www/manager6/form/DecompressionSelector.js  | 13 +++++++++++++
 www/manager6/window/DownloadUrlToStorage.js | 13 ++++++++++++-
 3 files changed, 26 insertions(+), 1 deletion(-)
 create mode 100644 www/manager6/form/DecompressionSelector.js

diff --git a/www/manager6/Makefile b/www/manager6/Makefile
index 59a5d8a7..5dfc8215 100644
--- a/www/manager6/Makefile
+++ b/www/manager6/Makefile
@@ -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                            \
diff --git a/www/manager6/form/DecompressionSelector.js 
b/www/manager6/form/DecompressionSelector.js
new file mode 100644
index 00000000..abd19316
--- /dev/null
+++ b/www/manager6/form/DecompressionSelector.js
@@ -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'],
+    ],
+});
diff --git a/www/manager6/window/DownloadUrlToStorage.js 
b/www/manager6/window/DownloadUrlToStorage.js
index 90320da4..08a6412c 100644
--- a/www/manager6/window/DownloadUrlToStorage.js
+++ b/www/manager6/window/DownloadUrlToStorage.js
@@ -84,6 +84,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 +204,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 +235,6 @@ Ext.define('PVE.window.DownloadUrlToStorage', {
        if (!me.storage) {
            throw "no storage ID specified";
        }
-
        me.callParent();
     },
 });
-- 
2.39.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to