VXLAN zones can now use fabrics instead of having to specify peers
manually. Since the network selector doesn't implement deleteEmpty,
we have to manually handle deleted properties in the VXLAN input
panel.

Signed-off-by: Stefan Hanreich <s.hanre...@proxmox.com>
---
 www/manager6/sdn/zones/VxlanEdit.js | 52 +++++++++++++++++++++++++++--
 1 file changed, 50 insertions(+), 2 deletions(-)

diff --git a/www/manager6/sdn/zones/VxlanEdit.js 
b/www/manager6/sdn/zones/VxlanEdit.js
index b556790df..575dd867f 100644
--- a/www/manager6/sdn/zones/VxlanEdit.js
+++ b/www/manager6/sdn/zones/VxlanEdit.js
@@ -8,8 +8,25 @@ Ext.define('PVE.sdn.zones.VxlanInputPanel', {
 
        if (me.isCreate) {
            values.type = me.type;
+           delete values.delete;
        } else {
            delete values.zone;
+
+           for (const [key, value] of Object.entries(values)) {
+               if (value === null || value === undefined || value === "") {
+                   delete values[key];
+
+                   if (values.delete) {
+                       if (Array.isArray(values.delete)) {
+                           values.delete.push(key);
+                       } else {
+                           values.delete = [values.delete, key];
+                       }
+                   } else {
+                       values.delete = [key];
+                   }
+               }
+           }
        }
 
        delete values.mode;
@@ -22,10 +39,41 @@ Ext.define('PVE.sdn.zones.VxlanInputPanel', {
 
        me.items = [
            {
-               xtype: 'textfield',
+               xtype: 'proxmoxtextfield',
                name: 'peers',
                fieldLabel: gettext('Peer Address List'),
-               allowBlank: false,
+               allowBlank: true,
+               deleteEmpty: true,
+           },
+           {
+               xtype: 'proxmoxNetworkSelector',
+               name: 'fabric',
+               type: 'fabric',
+               valueField: 'iface',
+               displayField: 'iface',
+               fieldLabel: 'SDN Fabric',
+               skipEmptyText: true,
+               allowBlank: true,
+               autoSelect: false,
+               emptyText: gettext('used as underlay network'),
+               nodename: 'localhost',
+               listConfig: {
+                   width: 600,
+                   columns: [
+                       {
+                           header: gettext('Fabric'),
+                           width: 90,
+                           dataIndex: 'iface',
+                       },
+                       {
+
+                           header: gettext('CIDR'),
+                           dataIndex: 'cidr',
+                           hideable: false,
+                           flex: 1,
+                       },
+                   ],
+               },
            },
        ];
 
-- 
2.39.5


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to