60 lines
1.8 KiB
JavaScript
60 lines
1.8 KiB
JavaScript
/*
|
|
* 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);
|
|
}
|
|
});
|
|
}
|
|
},
|
|
});
|