On June 14, 2023 11:30 am, Aaron Lauterer wrote: > The new optional bridge_vids field allows to set that property via the > GUI. Since the backend needs to support it, the field needs to be > explicitly enabled. > > For now, Proxmox VE (PVE) is the use case. > > Signed-off-by: Aaron Lauterer <a.laute...@proxmox.com> > --- > changes since v2: > > add a new option to the NodeNetworkEdit widget called 'bridge_set_vids' > which determines if the field will be added. We need to pass it through > the NetworkView widget as well. > > src/node/NetworkEdit.js | 23 +++++++++++++++++++++++ > src/node/NetworkView.js | 5 +++++ > 2 files changed, 28 insertions(+) > > diff --git a/src/node/NetworkEdit.js b/src/node/NetworkEdit.js > index bb9add3..799ca1e 100644 > --- a/src/node/NetworkEdit.js > +++ b/src/node/NetworkEdit.js > @@ -2,6 +2,9 @@ Ext.define('Proxmox.node.NetworkEdit', { > extend: 'Proxmox.window.Edit', > alias: ['widget.proxmoxNodeNetworkEdit'], > > + // Enable to show the VLAN ID field > + bridge_set_vids: false, > + > initComponent: function() { > let me = this; > > @@ -57,11 +60,28 @@ Ext.define('Proxmox.node.NetworkEdit', { > } > > if (me.iftype === 'bridge') { > + let vids = Ext.create('Ext.form.field.Text', { > + fieldLabel: gettext('Bridge VIDS'), > + name: 'bridge_vids', > + emptyText: '2-4094', > + disabled: true, > + autoEl: { > + tag: 'div', > + 'data-qtip': gettext('Space-separated list of VLANs and > ranges, for example: 2 4 100-200'), > + }, > + });
we might want to validate the format here as well to give feedback right away? > column2.push({ > xtype: 'proxmoxcheckbox', > fieldLabel: gettext('VLAN aware'), > name: 'bridge_vlan_aware', > deleteEmpty: !me.isCreate, > + listeners: { > + change: function(f, newVal) { > + if (me.bridge_set_vids) { > + vids.setDisabled(!newVal); > + } > + }, > + }, > }); > column2.push({ > xtype: 'textfield', > @@ -72,6 +92,9 @@ Ext.define('Proxmox.node.NetworkEdit', { > 'data-qtip': gettext('Space-separated list of interfaces, > for example: enp0s0 enp1s0'), > }, > }); > + if (me.bridge_set_vids) { > + advancedColumn2.push(vids); > + } > } else if (me.iftype === 'OVSBridge') { > column2.push({ > xtype: 'textfield', > diff --git a/src/node/NetworkView.js b/src/node/NetworkView.js > index 1d67ac8..c08cbfa 100644 > --- a/src/node/NetworkView.js > +++ b/src/node/NetworkView.js > @@ -33,6 +33,9 @@ Ext.define('Proxmox.node.NetworkView', { > > showApplyBtn: false, > > + // decides if VLAN IDs field for bridges is shown, depends on the > product if needed > + bridge_set_vids: false, > + > initComponent: function() { > let me = this; > > @@ -100,6 +103,7 @@ Ext.define('Proxmox.node.NetworkView', { > nodename: me.nodename, > iface: rec.data.iface, > iftype: rec.data.type, > + bridge_set_vids: me.bridge_set_vids, > listeners: { > destroy: () => reload(), > }, > @@ -170,6 +174,7 @@ Ext.define('Proxmox.node.NetworkView', { > nodename: me.nodename, > iftype: iType, > iface_default: findNextFreeInterfaceId(iDefault ?? iType), > + bridge_set_vids: me.bridge_set_vids, > onlineHelp: 'sysadmin_network_configuration', > listeners: { > destroy: () => reload(), > -- > 2.39.2 > > > > _______________________________________________ > pve-devel mailing list > pve-devel@lists.proxmox.com > https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel > > > _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel