diff --git a/www/manager6/controller/StorageEdit.js b/www/manager6/controller/StorageEdit.js index 4246d363..cb73b776 100644 --- a/www/manager6/controller/StorageEdit.js +++ b/www/manager6/controller/StorageEdit.js @@ -4,6 +4,12 @@ Ext.define('PVE.controller.StorageEdit', { control: { 'field[name=content]': { change: function(field, value) { + const hasImages = Ext.Array.contains(value, 'images'); + const prealloc = field.up('form').getForm().findField('preallocation'); + if (prealloc) { + prealloc.setDisabled(!hasImages); + } + var hasBackups = Ext.Array.contains(value, 'backup'); var maxfiles = this.lookupReference('maxfiles'); if (!maxfiles) { diff --git a/www/manager6/storage/Base.js b/www/manager6/storage/Base.js index f339e8cd..e5bee0c1 100644 --- a/www/manager6/storage/Base.js +++ b/www/manager6/storage/Base.js @@ -51,6 +51,26 @@ Ext.define('PVE.panel.StorageBase', { }, ); + const qemuImgStorageTypes = ['dir', 'btrfs', 'nfs', 'cifs', 'glusterfs']; + + if (qemuImgStorageTypes.includes(me.type)) { + const preallocSelector = { + xtype: 'pvePreallocationSelector', + name: 'preallocation', + fieldLabel: gettext('Preallocation'), + allowBlank: false, + value: '__default__', + }; + + me.advancedColumn1 = me.advancedColumn1 || []; + me.advancedColumn2 = me.advancedColumn2 || []; + if (me.advancedColumn2.length < me.advancedColumn1.length) { + me.advancedColumn2.unshift(preallocSelector); + } else { + me.advancedColumn1.unshift(preallocSelector); + } + } + me.callParent(); }, }); diff --git a/www/manager6/storage/NFSEdit.js b/www/manager6/storage/NFSEdit.js index faa41732..202c7de0 100644 --- a/www/manager6/storage/NFSEdit.js +++ b/www/manager6/storage/NFSEdit.js @@ -143,7 +143,7 @@ Ext.define('PVE.storage.NFSInputPanel', { }, ]; - me.advancedColumn1 = [ + me.advancedColumn2 = [ { xtype: 'proxmoxKVComboBox', fieldLabel: gettext('NFS Version'),