/* * Proxmox VE - VLAN Trunks UI Plugin * Adds "Trunks" field to QEMU VM Network Device editor * * Install: place in /usr/share/pve-manager/js/ and patch index template * See install.sh for automated installation */ Ext.define('PVE.patch.QemuNetworkTrunks', { override: 'PVE.qemu.NetworkInputPanel', onGetValues: function(values) { var me = this; if (values.trunks) { me.network.trunks = values.trunks; } else { delete me.network.trunks; } delete values.trunks; return me.callParent([values]); }, initComponent: function() { var me = this; me.callParent(arguments); // Add trunks field after MTU in advanced column var mtuFields = me.query('[name=mtu]'); if (mtuFields.length > 0) { var container = mtuFields[0].ownerCt; if (container) { container.add({ xtype: 'textfield', name: 'trunks', fieldLabel: 'Trunks', emptyText: 'e.g. 100;200;300-400', allowBlank: true, regex: /^\d+(?:-\d+)?(?:;\d+(?:-\d+)?)*$/, regexText: 'VLAN IDs separated by semicolons, e.g. 100;200;300-400', }); } } // Handle "No network device" checkbox in wizard var noNetworkCb = me.down('[name=nonetwork]'); if (noNetworkCb) { var origHandler = noNetworkCb.listeners && noNetworkCb.listeners.change; noNetworkCb.on('change', function(cb, value) { var trunksField = me.down('[name=trunks]'); if (trunksField) { trunksField.setDisabled(value); } }); } }, });