From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id C1A1F9C9B9 for ; Wed, 22 Nov 2023 18:41:06 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id A940D1CCD1 for ; Wed, 22 Nov 2023 18:41:06 +0100 (CET) Received: from lana.proxmox.com (unknown [94.136.29.99]) by firstgate.proxmox.com (Proxmox) with ESMTP for ; Wed, 22 Nov 2023 18:41:05 +0100 (CET) Received: by lana.proxmox.com (Postfix, from userid 10043) id DF1242C29F5; Wed, 22 Nov 2023 18:41:05 +0100 (CET) From: Stefan Hanreich To: pve-devel@lists.proxmox.com Date: Wed, 22 Nov 2023 18:41:05 +0100 Message-Id: <20231122174105.621179-1-s.hanreich@proxmox.com> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.430 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment KAM_LAZY_DOMAIN_SECURITY 1 Sending domain does not have any anti-forgery methods RDNS_NONE 0.793 Delivered to internal network by a host with no rDNS SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_NONE 0.001 SPF: sender does not publish an SPF Record T_SCC_BODY_TEXT_LINE -0.01 - Subject: [pve-devel] [PATCH pve-manager] sdn: adapt edit panels for new API endpoints X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Nov 2023 17:41:06 -0000 PUT endpoints have changed so they work like the other SectionConfig endpoints. Reflect those changes in the UI. Signed-off-by: Stefan Hanreich --- www/manager6/sdn/SubnetEdit.js | 23 ++++++++++------- www/manager6/sdn/VnetEdit.js | 18 +++++++++----- www/manager6/sdn/zones/Base.js | 2 +- www/manager6/sdn/zones/EvpnEdit.js | 37 ++++++++-------------------- www/manager6/sdn/zones/SimpleEdit.js | 3 ++- 5 files changed, 39 insertions(+), 44 deletions(-) diff --git a/www/manager6/sdn/SubnetEdit.js b/www/manager6/sdn/SubnetEdit.js index 8851b013a..8fc3f52b0 100644 --- a/www/manager6/sdn/SubnetEdit.js +++ b/www/manager6/sdn/SubnetEdit.js @@ -11,13 +11,6 @@ Ext.define('PVE.sdn.SubnetInputPanel', { delete values.cidr; } - if (!values.gateway) { - delete values.gateway; - } - if (!values.snat) { - delete values.snat; - } - return values; }, @@ -33,18 +26,25 @@ Ext.define('PVE.sdn.SubnetInputPanel', { fieldLabel: gettext('Subnet'), }, { - xtype: 'textfield', + xtype: 'proxmoxtextfield', name: 'gateway', vtype: 'IP64Address', fieldLabel: gettext('Gateway'), allowBlank: true, + skipEmptyText: true, + cbind: { + deleteEmpty: "{!isCreate}", + }, }, { xtype: 'proxmoxcheckbox', name: 'snat', - uncheckedValue: 0, + uncheckedValue: null, checked: false, fieldLabel: 'SNAT', + cbind: { + deleteEmpty: "{!isCreate}", + }, }, { xtype: 'proxmoxtextfield', @@ -52,6 +52,9 @@ Ext.define('PVE.sdn.SubnetInputPanel', { skipEmptyText: true, fieldLabel: gettext('DNS Zone Prefix'), allowBlank: true, + cbind: { + deleteEmpty: "{!isCreate}", + }, }, ], }); @@ -101,6 +104,8 @@ Ext.define('PVE.sdn.SubnetDhcpRangePanel', { if (value.length) { data[me.getName()] = value; + } else if (!me.isCreate) { + data.delete = me.getName(); } return data; diff --git a/www/manager6/sdn/VnetEdit.js b/www/manager6/sdn/VnetEdit.js index 0f55595f8..cdd83ed40 100644 --- a/www/manager6/sdn/VnetEdit.js +++ b/www/manager6/sdn/VnetEdit.js @@ -9,10 +9,6 @@ Ext.define('PVE.sdn.VnetInputPanel', { values.type = 'vnet'; } - if (!values.vlanaware) { - delete values.vlanaware; - } - return values; }, @@ -29,10 +25,14 @@ Ext.define('PVE.sdn.VnetInputPanel', { fieldLabel: gettext('Name'), }, { - xtype: 'textfield', + xtype: 'proxmoxtextfield', name: 'alias', fieldLabel: gettext('Alias'), allowBlank: true, + skipEmptyText: true, + cbind: { + deleteEmpty: "{!isCreate}", + }, }, { xtype: 'pveSDNZoneSelector', @@ -48,13 +48,19 @@ Ext.define('PVE.sdn.VnetInputPanel', { maxValue: 16777216, fieldLabel: gettext('Tag'), allowBlank: true, + cbind: { + deleteEmpty: "{!isCreate}", + }, }, { xtype: 'proxmoxcheckbox', name: 'vlanaware', - uncheckedValue: 0, + uncheckedValue: null, checked: false, fieldLabel: gettext('VLAN Aware'), + cbind: { + deleteEmpty: "{!isCreate}", + }, }, ], }); diff --git a/www/manager6/sdn/zones/Base.js b/www/manager6/sdn/zones/Base.js index db9b47b18..2eecb101a 100644 --- a/www/manager6/sdn/zones/Base.js +++ b/www/manager6/sdn/zones/Base.js @@ -34,9 +34,9 @@ Ext.define('PVE.panel.SDNZoneBase', { minValue: 100, maxValue: 65000, fieldLabel: 'MTU', - skipEmptyText: true, allowBlank: true, emptyText: 'auto', + deleteEmpty: !me.isCreate, }, { xtype: 'pveNodeSelector', diff --git a/www/manager6/sdn/zones/EvpnEdit.js b/www/manager6/sdn/zones/EvpnEdit.js index cac1ef4d5..a08faef2d 100644 --- a/www/manager6/sdn/zones/EvpnEdit.js +++ b/www/manager6/sdn/zones/EvpnEdit.js @@ -8,30 +8,8 @@ Ext.define('PVE.sdn.zones.EvpnInputPanel', { if (me.isCreate) { values.type = me.type; - } else { - delete values.zone; } - if (!values.mac) { - delete values.mac; - } - - if (values['advertise-subnets'] === 0) { - delete values['advertise-subnets']; - } - - if (values['exitnodes-local-routing'] === 0) { - delete values['exitnodes-local-routing']; - } - - if (values['disable-arp-nd-suppression'] === 0) { - delete values['disable-arp-nd-suppression']; - } - - if (values['exitnodes-primary'] === '') { - delete values['exitnodes-primary']; - } - return values; }, @@ -55,12 +33,13 @@ Ext.define('PVE.sdn.zones.EvpnInputPanel', { allowBlank: false, }, { - xtype: 'textfield', + xtype: 'proxmoxtextfield', name: 'mac', fieldLabel: gettext('VNet MAC Address'), vtype: 'MacAddress', allowBlank: true, emptyText: 'auto', + deleteEmpty: !me.isCreate, }, { xtype: 'pveNodeSelector', @@ -79,29 +58,33 @@ Ext.define('PVE.sdn.zones.EvpnInputPanel', { { xtype: 'proxmoxcheckbox', name: 'exitnodes-local-routing', - uncheckedValue: 0, + uncheckedValue: null, checked: false, fieldLabel: gettext('Exit Nodes Local Routing'), + deleteEmpty: !me.isCreate, }, { xtype: 'proxmoxcheckbox', name: 'advertise-subnets', - uncheckedValue: 0, + uncheckedValue: null, checked: false, fieldLabel: gettext('Advertise Subnets'), + deleteEmpty: !me.isCreate, }, { xtype: 'proxmoxcheckbox', name: 'disable-arp-nd-suppression', - uncheckedValue: 0, + uncheckedValue: null, checked: false, fieldLabel: gettext('Disable ARP-nd Suppression'), + deleteEmpty: !me.isCreate, }, { - xtype: 'textfield', + xtype: 'proxmoxtextfield', name: 'rt-import', fieldLabel: gettext('Route Target Import'), allowBlank: true, + deleteEmpty: !me.isCreate, }, ]; diff --git a/www/manager6/sdn/zones/SimpleEdit.js b/www/manager6/sdn/zones/SimpleEdit.js index 7a6f1d0d9..89bd0031f 100644 --- a/www/manager6/sdn/zones/SimpleEdit.js +++ b/www/manager6/sdn/zones/SimpleEdit.js @@ -24,9 +24,10 @@ Ext.define('PVE.sdn.zones.SimpleInputPanel', { xtype: 'proxmoxcheckbox', name: 'dhcp', inputValue: 'dnsmasq', - uncheckedValue: undefined, + uncheckedValue: null, checked: false, fieldLabel: gettext('automatic DHCP'), + deleteEmpty: !me.isCreate, }, ]; -- 2.39.2