]> git.proxmox.com Git - pve-manager.git/blobdiff - www/manager6/window/PCIMapEdit.js
ui: avoid trivial decompression widget, only used once
[pve-manager.git] / www / manager6 / window / PCIMapEdit.js
index 8c1a95e3216150033b83e20b66a535656cf983eb..d43f04eb2f7e2468cbc08955904804ac98f5c996 100644 (file)
@@ -13,8 +13,12 @@ Ext.define('PVE.window.PCIMapEditWindow', {
 
     cbindData: function(initialConfig) {
        let me = this;
-       me.isCreate = !me.name || !me.nodename;
+       me.isCreate = (!me.name || !me.nodename) && !me.entryOnly;
        me.method = me.name ? 'PUT' : 'POST';
+       me.hideMapping = !!me.entryOnly;
+       me.hideComment = me.name && !me.entryOnly;
+       me.hideNodeSelector = me.nodename || me.entryOnly;
+       me.hideNode = !me.nodename || !me.hideNodeSelector;
        return {
            name: me.name,
            nodename: me.nodename,
@@ -58,7 +62,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;
        },
 
@@ -157,8 +167,7 @@ Ext.define('PVE.window.PCIMapEditWindow', {
                    hidden: true,
                    columnWidth: 1,
                    padding: '0 0 10 0',
-                   value: 'No IOMMU detected, please activate it.' +
-                   'See Documentation for further information.',
+                   value: gettext('No IOMMU detected, please activate it. See Documentation for further information.'),
                    userCls: 'pmx-hint',
                },
                {
@@ -167,8 +176,7 @@ Ext.define('PVE.window.PCIMapEditWindow', {
                    hidden: true,
                    columnWidth: 1,
                    padding: '0 0 10 0',
-                   value: 'When multiple devices are selected, the first free one will be chosen' +
-                       ' on guest start.',
+                   value: gettext('When multiple devices are selected, the first free one will be chosen on guest start.'),
                    userCls: 'pmx-hint',
                },
                {
@@ -178,7 +186,7 @@ Ext.define('PVE.window.PCIMapEditWindow', {
                    columnWidth: 1,
                    padding: '0 0 10 0',
                    itemId: 'iommuwarning',
-                   value: 'The selected Device is not in a seperate IOMMU group, make sure this is intended.',
+                   value: gettext('A selected device is not in a separate IOMMU group, make sure this is intended.'),
                    userCls: 'pmx-hint',
                },
            ],
@@ -197,34 +205,41 @@ Ext.define('PVE.window.PCIMapEditWindow', {
                    allowBlank: false,
                },
                {
-                   xtype: 'pmxDisplayEditField',
+                   xtype: 'displayfield',
                    fieldLabel: gettext('Mapping on Node'),
                    labelWidth: 120,
                    name: 'node',
-                   editConfig: {
-                       xtype: 'pveNodeSelector',
-                   },
                    cbind: {
-                       editable: '{!nodename}',
                        value: '{nodename}',
+                       disabled: '{hideNode}',
+                       hidden: '{hideNode}',
+                   },
+                   allowBlank: false,
+               },
+               {
+                   xtype: 'pveNodeSelector',
+                   reference: 'nodeselector',
+                   fieldLabel: gettext('Mapping on Node'),
+                   labelWidth: 120,
+                   name: 'node',
+                   cbind: {
+                       disabled: '{hideNodeSelector}',
+                       hidden: '{hideNodeSelector}',
                    },
                    allowBlank: false,
                },
            ],
 
            column2: [
-               {
-                   // as spacer
-                   xtype: 'displayfield',
-               },
                {
                    xtype: 'proxmoxcheckbox',
-                   fieldLabel: gettext('Mediated Devices'),
-                   labelWidth: 120,
+                   fieldLabel: gettext('Use with Mediated Devices'),
+                   labelWidth: 200,
                    reference: 'mdev',
                    name: 'mdev',
                    cbind: {
                        deleteEmpty: '{!isCreate}',
+                       disabled: '{hideComment}',
                    },
                },
            ],
@@ -239,6 +254,8 @@ Ext.define('PVE.window.PCIMapEditWindow', {
                    name: 'map',
                    cbind: {
                        nodename: '{nodename}',
+                       disabled: '{hideMapping}',
+                       hidden: '{hideMapping}',
                    },
                    allowBlank: false,
                    onLoadCallBack: 'checkIommu',
@@ -252,6 +269,8 @@ Ext.define('PVE.window.PCIMapEditWindow', {
                    name: 'description',
                    cbind: {
                        deleteEmpty: '{!isCreate}',
+                       disabled: '{hideComment}',
+                       hidden: '{hideComment}',
                    },
                },
            ],