From: Stefan Hanreich <s.hanre...@proxmox.com>

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 | 51 +++++++++++++++++++++++++++--
 1 file changed, 49 insertions(+), 2 deletions(-)

diff --git a/www/manager6/sdn/zones/VxlanEdit.js 
b/www/manager6/sdn/zones/VxlanEdit.js
index bbf1ce8c2df0..80017b46e9ce 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,40 @@ 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