* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.