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

Reply via email to