From 25a1063ac75e2e7cee7646c5c99a11ccef63a46b Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Thu, 22 Nov 2018 11:35:46 +0100 Subject: [PATCH] gui: let users add PCI devices this enables the gui part to enable the user to add a pci device via the gui we disable the button after 4 devices, since that is the maximum in the backend Signed-off-by: Dominik Csapak --- www/manager6/qemu/HardwareView.js | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/www/manager6/qemu/HardwareView.js b/www/manager6/qemu/HardwareView.js index fdfe80f1..ca825798 100644 --- a/www/manager6/qemu/HardwareView.js +++ b/www/manager6/qemu/HardwareView.js @@ -219,6 +219,7 @@ Ext.define('PVE.qemu.HardwareView', { order: i, tdCls: 'pve-itype-icon-pci', never_delete: caps.nodes['Sys.Console'] ? false : true, + editor: caps.nodes['Sys.Console'] ? 'PVE.qemu.PCIEdit' : undefined, header: gettext('PCI Device') + ' (' + confid + ')' }; } @@ -501,11 +502,14 @@ Ext.define('PVE.qemu.HardwareView', { // see that there is already one efidisk_menuitem.setDisabled(me.rstore.getData().map.efidisk0 !== undefined); // en/disable usb add button - var count = 0; + var usbcount = 0; + var pcicount = 0; var hasCloudInit = false; me.rstore.getData().items.forEach(function(item){ if (/^usb\d+/.test(item.id)) { - count++; + usbcount++; + } else if (/^hostpci\d+/.test(item.id)) { + pcicount++; } if (!hasCloudInit && /vm-.*-cloudinit/.test(item.data.value)) { hasCloudInit = true; @@ -515,7 +519,8 @@ Ext.define('PVE.qemu.HardwareView', { // heuristic only for disabling some stuff, the backend has the final word. var noSysConsolePerm = !caps.nodes['Sys.Console']; - me.down('#addusb').setDisabled(noSysConsolePerm || (count >= 5)); + me.down('#addusb').setDisabled(noSysConsolePerm || (usbcount >= 5)); + me.down('#addpci').setDisabled(noSysConsolePerm || (pcicount >= 4)); me.down('#addci').setDisabled(noSysConsolePerm || hasCloudInit); if (!rec) { @@ -618,6 +623,20 @@ Ext.define('PVE.qemu.HardwareView', { win.show(); } }, + { + text: gettext('PCI Device'), + itemId: 'addpci', + iconCls: 'pve-itype-icon-pci', + disabled: !caps.nodes['Sys.Console'], + handler: function() { + var win = Ext.create('PVE.qemu.PCIEdit', { + url: '/api2/extjs/' + baseurl, + pveSelNode: me.pveSelNode + }); + win.on('destroy', reload); + win.show(); + } + }, { text: gettext('Serial Port'), itemId: 'addserial',