In preparation for disk import from an existing volume.

Signed-off-by: Fabian Ebner <[email protected]>
---
 www/manager6/form/DiskStorageSelector.js | 25 +++++++++++++++++++++---
 1 file changed, 22 insertions(+), 3 deletions(-)

diff --git a/www/manager6/form/DiskStorageSelector.js 
b/www/manager6/form/DiskStorageSelector.js
index ac6b064f..9699938e 100644
--- a/www/manager6/form/DiskStorageSelector.js
+++ b/www/manager6/form/DiskStorageSelector.js
@@ -25,8 +25,10 @@ Ext.define('PVE.form.DiskStorageSelector', {
     // hideSelection is not true
     hideSelection: undefined,
 
-    // hides the size field (e.g, for the efi disk dialog)
+    // hides and disables the size field (e.g, for the efi disk dialog)
     hideSize: false,
+    // disables the size field (e.g. when importing from existing volume)
+    disableSize: false,
 
     // hides the format field (e.g. for TPM state), always assumes 'raw'
     hideFormat: false,
@@ -75,7 +77,7 @@ Ext.define('PVE.form.DiskStorageSelector', {
            hdfilesel.setStorage(value);
        }
 
-       hdsizesel.setDisabled(select || me.hideSize);
+       hdsizesel.setDisabled(select || me.hideSize || me.disableSize);
        hdsizesel.setVisible(!select && !me.hideSize);
     },
 
@@ -103,6 +105,23 @@ Ext.define('PVE.form.DiskStorageSelector', {
        hdstorage.fireEvent('validitychange');
     },
 
+    setSize: function(size, fixed) {
+       let me = this;
+       let sizeField = me.getComponent('disksize');
+
+       me.disableSize = fixed;
+       // For import, size 0 shouldn't show as invalid, so disable first.
+       sizeField.setDisabled(fixed);
+
+       if (size === undefined || size === null) {
+           size = me.defaultSize;
+       } else {
+           size = size / Proxmox.Utils.SizeUnits.GiB;
+       }
+
+       sizeField.setValue(size);
+    },
+
     initComponent: function() {
        var me = this;
 
@@ -143,7 +162,7 @@ Ext.define('PVE.form.DiskStorageSelector', {
                name: 'disksize',
                fieldLabel: gettext('Disk size') + ' (GiB)',
                hidden: me.hideSize,
-               disabled: me.hideSize,
+               disabled: me.hideSize || me.disableSize,
                minValue: 0.001,
                maxValue: 128*1024,
                decimalPrecision: 3,
-- 
2.30.2



_______________________________________________
pve-devel mailing list
[email protected]
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to