[pve-devel] [PATCH widget-toolkit 2/4] fix #3892: Network: add bridge vids field for bridge_vids
Aaron Lauterer
a.lauterer at proxmox.com
Wed Jun 14 11:34:13 CEST 2023
oops.. typo in the commit title!
3893 and not 3892!
On 6/14/23 11:30, 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.lauterer at 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'),
> + },
> + });
> 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(),
More information about the pve-devel
mailing list