public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH manager v4] fix #5810: ui: show confirmation/warning dialog for sdn apply
@ 2024-11-12 13:15 Timothy Nicholson
  0 siblings, 0 replies; only message in thread
From: Timothy Nicholson @ 2024-11-12 13:15 UTC (permalink / raw)
  To: pve-devel

Signed-off-by: Timothy Nicholson <t.nicholson@proxmox.com>
---
changes since v3 [0]:
- implement conditional warning message that displays which node(s)
have pending changes. 

I'd be thankful for any feedback, as this can probably be refined in
some way.

[0]: https://lore.proxmox.com/pve-devel/20241112120255.127300-1-t.nicholson@proxmox.com/

 www/manager6/sdn/StatusView.js | 48 +++++++++++++++++++++++++++-------
 1 file changed, 39 insertions(+), 9 deletions(-)

diff --git a/www/manager6/sdn/StatusView.js b/www/manager6/sdn/StatusView.js
index 970aa919..009f5fee 100644
--- a/www/manager6/sdn/StatusView.js
+++ b/www/manager6/sdn/StatusView.js
@@ -40,16 +40,46 @@ Ext.define('PVE.sdn.StatusView', {
 	    tbar: [
 		{
 		    text: gettext('Apply'),
-		    handler: function() {
-			Proxmox.Utils.API2Request({
-			    url: '/cluster/sdn/',
-			    method: 'PUT',
-			    waitMsgTarget: me,
-			    failure: function(response, opts) {
-				Ext.Msg.alert(gettext('Error'), response.htmlStatus);
-			    },
-			});
+		    handler: async function() {
+			const applyChanges = () => {
+			    Proxmox.Utils.API2Request({
+				url: '/cluster/sdn',
+				method: 'PUT',
+				waitMsgTarget: me,
+				failure: response => Ext.Msg.alert(gettext('Error'), response.htmlStatus),
+			    });
+			};
+
+			let nodesPending = [];
+			let { result: nodesResult } = await Proxmox.Async.api2({ url: '/nodes' });
+
+			await Promise.all(nodesResult.data.map(async(node) => {
+			    let { result: networkResult } = await
+			    Proxmox.Async.api2({ url: `/nodes/${node.node}/network` });
+			    if (networkResult.changes !== undefined) {
+				nodesPending.push(node.node);
+			    }
+			}));
+
+			if (nodesPending.length > 0) {
+			    Ext.Msg.show({
+				title: gettext('Confirm'),
+				msg: `${gettext('There are pending network changes on node(s)')} [${nodesPending}]. ` +
+				     `${gettext('These will also be applied. Proceed?')}`,
+				icon: Ext.Msg.QUESTION,
+				buttons: Ext.Msg.YESNO,
+				callback: function(btn) {
+				    if (btn === 'yes') {
+					applyChanges();
+				    }
+				},
+			    });
+			} else {
+			    applyChanges();
+			}
 		    },
+
+
 		},
 	    ],
 	    viewConfig: {
-- 
2.39.5


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


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-11-12 13:15 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-11-12 13:15 [pve-devel] [PATCH manager v4] fix #5810: ui: show confirmation/warning dialog for sdn apply Timothy Nicholson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal