public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Christoph Heiss <c.heiss@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH manager] ui: storage backup view: Update remove button on protection change
Date: Wed, 18 Jan 2023 14:01:35 +0100	[thread overview]
Message-ID: <20230118130135.631553-1-c.heiss@proxmox.com> (raw)

Currently this works in the backup view for containers/VMs, but not in
the storage backup view. Implement that for the latter part too.

Uses the callback functionality of the load() method of the store to
properly update the UI as soon as loading is finished.
While at it, clean up the same thing in grid/BackupView.js to remove the
current hack.

Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
---
 FWIW, using me.store.load({..}) directly in grid/BackupView.js works
 perfectly fine too (as I would expect). But I reused reload() for now,
 to keep consistency with the rest of the file. Thus the added `args`.

 www/manager6/grid/BackupView.js    | 16 +++++++---------
 www/manager6/storage/BackupView.js |  6 +++++-
 2 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/www/manager6/grid/BackupView.js b/www/manager6/grid/BackupView.js
index 7f7e1b62..dda8a363 100644
--- a/www/manager6/grid/BackupView.js
+++ b/www/manager6/grid/BackupView.js
@@ -79,9 +79,9 @@ Ext.define('PVE.grid.BackupView', {
 	    ]);
 	};

-	var reload = Ext.Function.createBuffered(function() {
+	var reload = Ext.Function.createBuffered(function(args) {
 	    if (me.store) {
-		me.store.load();
+		me.store.load(args);
 	    }
 	}, 100);

@@ -300,20 +300,18 @@ Ext.define('PVE.grid.BackupView', {
 			handler: function(button, event, record) {
 			    let volid = record.data.volid, storage = storagesel.getValue();
 			    let url = `/api2/extjs/nodes/${nodename}/storage/${storage}/content/${volid}`;
-			    let newProtection = record.data.protected ? 0 : 1;
 			    Proxmox.Utils.API2Request({
 				url: url,
 				method: 'PUT',
 				waitMsgTarget: me,
 				params: {
-				    'protected': newProtection,
+				    'protected': record.data.protected ? 0 : 1,
 				},
 				failure: (response) => Ext.Msg.alert('Error', response.htmlStatus),
-				success: (response) => {
-				    reload();
-				    // propagate to remove button, fake for event as reload is to slow
-				    record.data.protected = newProtection; // TODO: check if writing is OK!
-				    sm.fireEvent('selectionchange', sm, [record]);
+				success: () => {
+				    reload({
+					callback: () => sm.fireEvent('selectionchange', sm, [record]),
+				    });
 				},
 			    });
 			},
diff --git a/www/manager6/storage/BackupView.js b/www/manager6/storage/BackupView.js
index b8dc8f11..fbdf573d 100644
--- a/www/manager6/storage/BackupView.js
+++ b/www/manager6/storage/BackupView.js
@@ -183,7 +183,11 @@ Ext.define('PVE.storage.BackupView', {
 			waitMsgTarget: me,
 			params: { 'protected': record.data.protected ? 0 : 1 },
 			failure: response => Ext.Msg.alert('Error', response.htmlStatus),
-			success: () => me.store.load(),
+			success: () => {
+			    me.store.load({
+				callback: () => sm.fireEvent('selectionchange', sm, [record]),
+			    });
+			},
 		    });
 		},
 	    },
--
2.34.1





             reply	other threads:[~2023-01-18 13:02 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-18 13:01 Christoph Heiss [this message]
2023-01-18 13:53 ` Thomas Lamprecht

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230118130135.631553-1-c.heiss@proxmox.com \
    --to=c.heiss@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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