]> git.proxmox.com Git - pve-manager.git/blobdiff - www/manager6/qemu/HDEdit.js
api: add proxmox-firewall to versions pkg list
[pve-manager.git] / www / manager6 / qemu / HDEdit.js
index 7e470e392d82b77067fd3d092bd8c5ccc506d35b..b78647ec80816b575f74d6da7b4fab5c0edc3bc6 100644 (file)
@@ -12,8 +12,9 @@ Ext.define('PVE.qemu.HDInputPanel', {
 
     viewModel: {
        data: {
-           isScsi: false,
+           isSCSI: false,
            isVirtIO: false,
+           isSCSISingle: false,
        },
     },
 
@@ -44,13 +45,10 @@ Ext.define('PVE.qemu.HDInputPanel', {
            'field[name=deviceid]': {
                change: 'fireIdChange',
            },
-           'field[name=iothread]': {
+           'field[name=scsiController]': {
                change: function(f, value) {
-                   if (!this.getView().insideWizard) {
-                       return;
-                   }
-                   var vmScsiType = value ? 'virtio-scsi-single': 'virtio-scsi-pci';
-                   this.lookupReference('scsiController').setValue(vmScsiType);
+                   let vm = this.getViewModel();
+                   vm.set('isSCSISingle', value === 'virtio-scsi-single');
                },
            },
        },
@@ -177,8 +175,6 @@ Ext.define('PVE.qemu.HDInputPanel', {
     initComponent: function() {
        var me = this;
 
-       var labelWidth = 140;
-
        me.drive = {};
 
        let column1 = [];
@@ -197,6 +193,7 @@ Ext.define('PVE.qemu.HDInputPanel', {
            me.scsiController = Ext.create('Ext.form.field.Display', {
                fieldLabel: gettext('SCSI Controller'),
                reference: 'scsiController',
+               name: 'scsiController',
                bind: me.insideWizard ? {
                    value: '{current.scsihw}',
                    visible: '{isSCSI}',
@@ -253,35 +250,36 @@ Ext.define('PVE.qemu.HDInputPanel', {
                reference: 'discard',
                name: 'discard',
            },
+           {
+               xtype: 'proxmoxcheckbox',
+               name: 'iothread',
+               fieldLabel: 'IO thread',
+               clearOnDisable: true,
+               bind: me.insideWizard || me.isCreate ? {
+                   disabled: '{!isVirtIO && !isSCSI}',
+                   // Checkbox.setValue handles Arrays in a different way, therefore cast to bool
+                   value: '{!!isVirtIO || (isSCSI && isSCSISingle)}',
+               } : {
+                   disabled: '{!isVirtIO && !isSCSI}',
+               },
+           },
        );
 
        advancedColumn1.push(
            {
                xtype: 'proxmoxcheckbox',
                fieldLabel: gettext('SSD emulation'),
-               labelWidth: labelWidth,
                name: 'ssd',
                clearOnDisable: true,
                bind: {
                    disabled: '{isVirtIO}',
                },
            },
-           {
-               xtype: 'proxmoxcheckbox',
-               name: 'iothread',
-               fieldLabel: 'IO thread',
-               labelWidth: labelWidth,
-               clearOnDisable: true,
-               bind: {
-                   disabled: '{!isVirtIO && !isSCSI}',
-               },
-           },
            {
                xtype: 'proxmoxcheckbox',
                name: 'readOnly', // `ro` in the config, we map in get/set values
                defaultValue: 0,
                fieldLabel: gettext('Read-only'),
-               labelWidth: labelWidth,
                clearOnDisable: true,
                bind: {
                    disabled: '{!isVirtIO && !isSCSI}',
@@ -297,7 +295,6 @@ Ext.define('PVE.qemu.HDInputPanel', {
                    tag: 'div',
                    'data-qtip': gettext('Include volume in backup job'),
                },
-               labelWidth: labelWidth,
                name: 'backup',
                bind: {
                    value: '{isIncludedInBackup}',
@@ -306,7 +303,6 @@ Ext.define('PVE.qemu.HDInputPanel', {
            {
                xtype: 'proxmoxcheckbox',
                fieldLabel: gettext('Skip replication'),
-               labelWidth: labelWidth,
                name: 'noreplicate',
            },
            {
@@ -315,7 +311,6 @@ Ext.define('PVE.qemu.HDInputPanel', {
                fieldLabel: gettext('Async IO'),
                allowBlank: false,
                value: '__default__',
-               labelWidth: labelWidth,
                comboItems: [
                    ['__default__', Proxmox.Utils.defaultText + ' (io_uring)'],
                    ['io_uring', 'io_uring'],
@@ -325,6 +320,8 @@ Ext.define('PVE.qemu.HDInputPanel', {
            },
        );
 
+       let labelWidth = 140;
+
        let bwColumn1 = [
            {
                xtype: 'numberfield',