From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pve-devel-bounces@lists.proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9])
	by lore.proxmox.com (Postfix) with ESMTPS id 98C671FF15E
	for <inbox@lore.proxmox.com>; Fri, 26 Jul 2024 16:05:04 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id CB04A1F357;
	Fri, 26 Jul 2024 16:05:02 +0200 (CEST)
To: pve-devel@lists.proxmox.com
Date: Fri, 26 Jul 2024 16:03:44 +0200
MIME-Version: 1.0
Message-ID: <mailman.701.1722002701.331.pve-devel@lists.proxmox.com>
List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com>
List-Post: <mailto:pve-devel@lists.proxmox.com>
From: Theodor Fumics via pve-devel <pve-devel@lists.proxmox.com>
Precedence: list
Cc: Theodor Fumics <theodor.fumics@gmx.net>
X-Mailman-Version: 2.1.29
X-BeenThere: pve-devel@lists.proxmox.com
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/>
Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
Subject: [pve-devel] [PATCH manager v2] sdn: subnets: hide irrelevant fields
 depending on zone type
Content-Type: multipart/mixed; boundary="===============3895535242352143964=="
Errors-To: pve-devel-bounces@lists.proxmox.com
Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com>

--===============3895535242352143964==
Content-Type: message/rfc822
Content-Disposition: inline

Return-Path: <theodor.fumics@gmx.net>
X-Original-To: pve-devel@lists.proxmox.com
Delivered-To: pve-devel@lists.proxmox.com
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 B2238C3B17
	for <pve-devel@lists.proxmox.com>; Fri, 26 Jul 2024 16:05:01 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 843B61F2B0
	for <pve-devel@lists.proxmox.com>; Fri, 26 Jul 2024 16:04:31 +0200 (CEST)
Received: from mout.gmx.net (mout.gmx.net [212.227.15.15])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits) server-digest SHA256)
	(No client certificate requested)
	by firstgate.proxmox.com (Proxmox) with ESMTPS
	for <pve-devel@lists.proxmox.com>; Fri, 26 Jul 2024 16:04:30 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net;
	s=s31663417; t=1722002670; x=1722607470; i=theodor.fumics@gmx.net;
	bh=sJZAYir2MFbxCH/PT7eY7+xjwnh/cqQ+j2rlWyMw1e4=;
	h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:
	 MIME-Version:Content-Transfer-Encoding:cc:
	 content-transfer-encoding:content-type:date:from:message-id:
	 mime-version:reply-to:subject:to;
	b=Lpz6fCqDq0e46zUOTP7FwJME2Gmy5qh36TQ9AvrXn0sx4LVQvZJ2YMPR+ep1DGqC
	 cu5g0FlKyL0xP5R0rdwSe5xi3RMaxcoLQxC3GR5C7rwto9VXuWUpvtiVycmpovCGD
	 MVL+KpDakixzey3MSkWO2T6njYl5ld3YFkWtOL9+pHOUXpdpdbev8C3tlLXYq6AOT
	 OhnWrFxePwsSafML2dvlDx91iVoRE0uFitZPY1aznbn4VqK5uI9rP6IhaYi6f1Dgl
	 9bgI3Ol0XnGe3yTCBp3itTluzCfyQUpmYv0ylk2MlrTTtih9wYNzLgZYjXM/b2w6s
	 XplGu5jrSjBTgKkRMw==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from praktikum3.proxmox.com ([94.136.29.99]) by mail.gmx.net
 (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id
 1M2f5Z-1sZoOY4BSx-004Uw7; Fri, 26 Jul 2024 16:04:30 +0200
From: Theodor Fumics <theodor.fumics@gmx.net>
To: pve-devel@lists.proxmox.com
Subject: [PATCH manager v2] sdn: subnets: hide irrelevant fields depending on zone type
Date: Fri, 26 Jul 2024 16:03:44 +0200
Message-Id: <20240726140344.185142-1-theodor.fumics@gmx.net>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:dSMtQIFOK06DTfUhK4P4m9tXIyMjyk9nSLEivKo0xPevFYoKoH8
 OAq9NNx3m/llRVzp10smwvnXkzbEcetvwNDL0lZcB2CImeS2oSBYksL33OZhty3N7ZaPeXy
 LI/AVhVQ+bm80CBFONhbOtz/eUSyBGIJpV+lVtnd3NMQT1MDPrVBS9V4q+s9S4vE0HVA7El
 X7g19Re5QD3MDK3pyfF7w==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:4pY4YFbojVg=;eAuPEQORfi87muMhnbC0YnlmoVq
 l3OGQW8ReJS96U/pNBrpFfHKBrmFeDNMW0hP4xGRvVBvKk/KIdfzmPUjwlHjh091V6sjJQSh8
 Yz+XR5mHh43M6/r0ISiO2oid/1QH+j5EYIWdoHWlVQ3XOkytQDnvx5UKIn5NLwCp4YP73aPOl
 IxwblCg8ntEZsD5C1B2Gb6s3pBiEP7kJO81YHxNl0qM8/+C8Jwr61Anx/32MtYgFOKtZw8ssi
 3XbjANfL0su+Emt1aHCP3OfcJ7SJzQSJS7KvL34wpiBDZTJvE/OnEwKP/ssoB/hCYm/IMk0y0
 d2oo7ZfJfPiAVya2LxFv29LzFwNvlROC9ucYat8+LGvA5vgnARy1mlNvOoQYnGB7jBum0clVz
 awfq2SHzmSvW8IuXveBtPqL3Yi9bHEwnFvzgUl4ah7A2VdcFuOmQ3AX0kvcpcN4z31xLiDNcu
 HtfWTytjzWPjYB283skj8WAwFwOnRNeIYP0Yeqd1bAJaQ5H030Y0NGfR5pO+ATXFun0BMGZW7
 yd6zTtu1ZHoZJA7dGBVIICkx0YQD/dfm2BYvgn/E8ORBbcu/+TVgJ8qsJ1UnhQXARm5bicCnA
 2cDrQ2i49YEf8IEk4xmE9nQ4/+xfx/GG9OjOQgrsWV6HMhpVHsrfSfUtOmKj+UaRInTDIgNXo
 mfm2l1coSA50gR3K3Fln5D6D47UFWQizNU93C8bD3RKuiTPakK8xcXNMmAy6zN0BK8jy46S1z
 upuda8lc7Z0IU/GfHCyrFbhRhXSZhnW4Xnl9Tklp7MaVcNcN9YBd0eLRaJz6KFr/oG/hgJbZK
 hOM9S9Qu+225LadwBN3RIgCw==
X-SPAM-LEVEL: Spam detection results:  0
	AWL                     0.001 Adjusted score from AWL reputation of From: address
	BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
	DKIM_SIGNED               0.1 Message has a DKIM or DK signature, not necessarily valid
	DKIM_VALID               -0.1 Message has at least one valid DKIM or DK signature
	DKIM_VALID_AU            -0.1 Message has a valid DKIM or DK signature from author's domain
	DKIM_VALID_EF            -0.1 Message has a valid DKIM or DK signature from envelope-from domain
	DMARC_PASS               -0.1 DMARC pass policy
	FREEMAIL_FROM           0.001 Sender email is commonly abused enduser mail provider
	RCVD_IN_DNSWL_LOW        -0.7 Sender listed at https://www.dnswl.org/, low trust
	RCVD_IN_MSPIKE_H2      -0.001 Average reputation (+2)
	SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
	SPF_PASS               -0.001 SPF: sender matches SPF record

The SNAT option is only applicable to Simple and EVPN zone types.
For other zone types, this field is irrelevant and can cause confusion.
This commit hides the SNAT field when it is not applicable to the
selected zone type, improving clarity for users.

Signed-off-by: Theodor Fumics <theodor.fumics@gmx.net>
=2D--

Notes:
    Changes from v1 -> v2
    * switched var to let in SubnetEdit.js (thanks @Shannon)

 www/manager6/sdn/SubnetEdit.js | 18 ++++++++++++++++++
 www/manager6/sdn/SubnetView.js | 16 ++++++++++++++++
 www/manager6/sdn/VnetView.js   |  9 +++++++++
 3 files changed, 43 insertions(+)

diff --git a/www/manager6/sdn/SubnetEdit.js b/www/manager6/sdn/SubnetEdit.=
js
index 8fc3f52b..7e4ec458 100644
=2D-- a/www/manager6/sdn/SubnetEdit.js
+++ b/www/manager6/sdn/SubnetEdit.js
@@ -2,6 +2,8 @@ Ext.define('PVE.sdn.SubnetInputPanel', {
     extend: 'Proxmox.panel.InputPanel',
     mixins: ['Proxmox.Mixin.CBind'],

+    zoneInfo: undefined,
+
     onGetValues: function(values) {
 	let me =3D this;

@@ -38,6 +40,7 @@ Ext.define('PVE.sdn.SubnetInputPanel', {
 	},
 	{
 	    xtype: 'proxmoxcheckbox',
+	    itemId: 'snatSubnetCheckbox',
 	    name: 'snat',
 	    uncheckedValue: null,
 	    checked: false,
@@ -57,6 +60,18 @@ Ext.define('PVE.sdn.SubnetInputPanel', {
 	    },
 	},
     ],
+
+    initComponent: function() {
+	let me =3D this;
+	me.callParent();
+
+	let zoneType =3D me.zoneInfo?.type;
+
+	let showSNATCheckbox =3D ['simple', 'evpn'].includes(zoneType);
+
+	let snatCheckbox =3D me.down('#snatSubnetCheckbox');
+	snatCheckbox.setHidden(!showSNATCheckbox);
+    },
 });

 Ext.define('PVE.sdn.SubnetDhcpRangePanel', {
@@ -243,6 +258,8 @@ Ext.define('PVE.sdn.SubnetEdit', {

     base_url: undefined,

+    zoneInfo: undefined,
+
     bodyPadding: 0,

     initComponent: function() {
@@ -261,6 +278,7 @@ Ext.define('PVE.sdn.SubnetEdit', {
 	let ipanel =3D Ext.create('PVE.sdn.SubnetInputPanel', {
 	    isCreate: me.isCreate,
 	    title: gettext('General'),
+	    zoneInfo: me.zoneInfo,
 	});

 	let dhcpPanel =3D Ext.create('PVE.sdn.SubnetDhcpRangePanel', {
diff --git a/www/manager6/sdn/SubnetView.js b/www/manager6/sdn/SubnetView.=
js
index d342f0ba..fd103d78 100644
=2D-- a/www/manager6/sdn/SubnetView.js
+++ b/www/manager6/sdn/SubnetView.js
@@ -7,6 +7,9 @@ Ext.define('PVE.sdn.SubnetView', {

     base_url: undefined,

+    zoneName: undefined,
+    zoneInfo: undefined,
+
     remove_btn: undefined,

     setBaseUrl: function(url) {
@@ -28,6 +31,18 @@ Ext.define('PVE.sdn.SubnetView', {
 	}
     },

+    loadZone: function(name) {
+	let me =3D this;
+
+	Proxmox.Utils.API2Request({
+	    url: `/cluster/sdn/zones/${name}?pending=3D1`,
+	    method: 'GET',
+	    success: function(response) {
+		me.zoneInfo =3D response?.result?.data;
+	    },
+	});
+    },
+
     initComponent: function() {
 	let me =3D this;

@@ -59,6 +74,7 @@ Ext.define('PVE.sdn.SubnetView', {
 		let win =3D Ext.create('PVE.sdn.SubnetEdit', {
 		    autoShow: true,
 		    base_url: me.base_url,
+		    zoneInfo: me.zoneInfo,
 		    type: 'subnet',
 		});
 		win.on('destroy', reload);
diff --git a/www/manager6/sdn/VnetView.js b/www/manager6/sdn/VnetView.js
index 3fd3c916..9c9dcc5b 100644
=2D-- a/www/manager6/sdn/VnetView.js
+++ b/www/manager6/sdn/VnetView.js
@@ -141,6 +141,15 @@ Ext.define('PVE.sdn.VnetView', {
 		select: function(_sm, rec) {
 		    let url =3D `/cluster/sdn/vnets/${rec.data.vnet}/subnets`;
 		    me.subnetview_panel.setBaseUrl(url);
+
+		    let zoneName;
+		    if (rec.data.pending) {
+			zoneName =3D rec.data.pending.zone;
+		    } else {
+			zoneName =3D rec.data.zone;
+		    }
+
+		    me.subnetview_panel.loadZone(zoneName);
 		},
 		deselect: function() {
 		    me.subnetview_panel.setBaseUrl(undefined);
=2D-
2.39.2



--===============3895535242352143964==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

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

--===============3895535242352143964==--