]> git.proxmox.com Git - pve-manager.git/commitdiff
ui: pci/usb map edit: improve new host mappings dialog
authorDominik Csapak <d.csapak@proxmox.com>
Wed, 21 Jun 2023 07:41:40 +0000 (09:41 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Wed, 21 Jun 2023 08:03:52 +0000 (10:03 +0200)
by disallowing nodes to be selected where a mapping already exists

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
www/manager6/window/PCIMapEdit.js
www/manager6/window/USBMapEdit.js

index 8c1a95e3216150033b83e20b66a535656cf983eb..f243362b11564cdb94e36bafc906ab8e482f50d7 100644 (file)
@@ -58,7 +58,13 @@ Ext.define('PVE.window.PCIMapEditWindow', {
            let me = this;
            let view = me.getView();
            me.originalMap = [...values.map];
-           values.map = PVE.Parser.filterPropertyStringList(values.map, (e) => e.node === view.nodename);
+           let configuredNodes = [];
+           values.map = PVE.Parser.filterPropertyStringList(values.map, (e) => {
+               configuredNodes.push(e.node);
+               return e.node === view.nodename;
+           });
+
+           me.lookup('nodeselector').disallowedNodes = configuredNodes;
            return values;
        },
 
@@ -203,6 +209,7 @@ Ext.define('PVE.window.PCIMapEditWindow', {
                    name: 'node',
                    editConfig: {
                        xtype: 'pveNodeSelector',
+                       reference: 'nodeselector',
                    },
                    cbind: {
                        editable: '{!nodename}',
index 80f8e785f267b933ef28325058d79dee790fdd65..f36f1d034b7fe9f060715535a937b3c85b0f9aeb 100644 (file)
@@ -71,13 +71,16 @@ Ext.define('PVE.window.USBMapEditWindow', {
            let me = this;
            let view = me.getView();
            me.originalMap = [...values.map];
+           let configuredNodes = [];
            PVE.Parser.filterPropertyStringList(values.map, (e) => {
+               configuredNodes.push(e.node);
                if (e.node === view.nodename) {
                    values = e;
                }
                return false;
            });
 
+           me.lookup('nodeselector').disallowedNodes = configuredNodes;
            if (values.path) {
                values.usb = 'path';
            }
@@ -145,6 +148,7 @@ Ext.define('PVE.window.USBMapEditWindow', {
                    name: 'node',
                    editConfig: {
                        xtype: 'pveNodeSelector',
+                       reference: 'nodeselector',
                    },
                    cbind: {
                        editable: '{!nodename}',