e.g. on aarch64 it makes only sense to use virtio-scsi or
virtio-scsi-single, so hide all other values, by adding a filter on the
internal store that allows only certain values.

Default to 'x86_64' for the architecture.

By using a setter for 'nodename' and 'arch' this also works in a
context where we can bind the values to these fields, e.g. in the wizard.

To properly trigger validation, we have to check the state before and
after setting the filter, since just a filter change, does not trigger
a validity change in the form field it seems.

Signed-off-by: Dominik Csapak <[email protected]>
---
 www/manager6/form/ScsiHwSelector.js | 6 +++++-
 www/manager6/qemu/ScsiHwEdit.js     | 1 +
 www/manager6/qemu/SystemEdit.js     | 1 +
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/www/manager6/form/ScsiHwSelector.js 
b/www/manager6/form/ScsiHwSelector.js
index d35a5b3a..af751b80 100644
--- a/www/manager6/form/ScsiHwSelector.js
+++ b/www/manager6/form/ScsiHwSelector.js
@@ -1,5 +1,5 @@
 Ext.define('PVE.form.ScsiHwSelector', {
-    extend: 'Proxmox.form.KVComboBox',
+    extend: 'PVE.form.FilteredKVComboBox',
     alias: ['widget.pveScsiHwSelector'],
     comboItems: [
         ['__default__', PVE.Utils.render_scsihw('')],
@@ -10,4 +10,8 @@ Ext.define('PVE.form.ScsiHwSelector', {
         ['virtio-scsi-single', PVE.Utils.render_scsihw('virtio-scsi-single')],
         ['pvscsi', PVE.Utils.render_scsihw('pvscsi')],
     ],
+
+    allowedValuesPerCategory: PVE.qemu.Architecture.allowedScsiHw,
+
+    setDefaultDisplay: (arch) => PVE.Utils.render_scsihw('', arch),
 });
diff --git a/www/manager6/qemu/ScsiHwEdit.js b/www/manager6/qemu/ScsiHwEdit.js
index 48dcb228..a3264212 100644
--- a/www/manager6/qemu/ScsiHwEdit.js
+++ b/www/manager6/qemu/ScsiHwEdit.js
@@ -11,6 +11,7 @@ Ext.define('PVE.qemu.ScsiHwEdit', {
                 name: 'scsihw',
                 value: '__default__',
                 fieldLabel: gettext('Type'),
+                category: me.arch,
             },
         });
 
diff --git a/www/manager6/qemu/SystemEdit.js b/www/manager6/qemu/SystemEdit.js
index 2cf17e8e..bec9fef1 100644
--- a/www/manager6/qemu/SystemEdit.js
+++ b/www/manager6/qemu/SystemEdit.js
@@ -139,6 +139,7 @@ Ext.define('PVE.qemu.SystemInputPanel', {
             name: 'scsihw',
             value: '__default__',
             bind: {
+                category: '{current.architecture}',
                 value: '{current.scsihw}',
             },
             fieldLabel: gettext('SCSI Controller'),
-- 
2.47.3




Reply via email to