]> git.proxmox.com Git - pve-manager.git/blobdiff - www/manager6/window/UploadToStorage.js
ui: guest import: add ostype selector
[pve-manager.git] / www / manager6 / window / UploadToStorage.js
index 7dc5188291516d3aafb034056b09676c6015728c..3c5bba8881b63f66d306c4c1004257b15da97a0f 100644 (file)
@@ -10,7 +10,7 @@ Ext.define('PVE.window.UploadToStorage', {
 
     acceptedExtensions: {
        iso: ['.img', '.iso'],
-       vztmpl: ['.tar.gz', '.tar.xz'],
+       vztmpl: ['.tar.gz', '.tar.xz', '.tar.zst'],
     },
 
     cbindData: function(initialConfig) {
@@ -21,6 +21,7 @@ Ext.define('PVE.window.UploadToStorage', {
 
        return {
            extensions: ext.join(', '),
+           filenameRegex: RegExp('^.*(?:' + ext.join('|').replaceAll('.', '\\.') + ')$', 'i'),
        };
     },
 
@@ -68,7 +69,7 @@ Ext.define('PVE.window.UploadToStorage', {
                fd.append("checksum-algorithm", algorithmField.getValue());
 
                const checksumField = form.findField('checksum');
-               fd.append("checksum", checksumField.getValue());
+               fd.append("checksum", checksumField.getValue()?.trim());
                checksumField.setDisabled(true);
            }
 
@@ -82,7 +83,21 @@ Ext.define('PVE.window.UploadToStorage', {
 
            xhr.addEventListener("load", function(e) {
                if (xhr.status === 200) {
-                   view.close();
+                   view.hide();
+
+                   const result = JSON.parse(xhr.response);
+                   const upid = result.data;
+                   Ext.create('Proxmox.window.TaskViewer', {
+                       autoShow: true,
+                       upid: upid,
+                       taskDone: view.taskDone,
+                       listeners: {
+                           destroy: function() {
+                               view.close();
+                           },
+                       },
+                   });
+
                    return;
                }
                const err = Ext.htmlEncode(xhr.statusText);
@@ -172,6 +187,10 @@ Ext.define('PVE.window.UploadToStorage', {
                    bind: {
                        value: '{filename}',
                    },
+                   cbind: {
+                       regex: '{filenameRegex}',
+                   },
+                   regexText: gettext('Wrong file extension'),
                },
                {
                    xtype: 'displayfield',