* [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