From 73e1cfa94c20ed2c3a9cceb1c260c4ddd8590c00 Mon Sep 17 00:00:00 2001 From: Christoph Heiss Date: Thu, 19 Jan 2023 10:56:22 +0100 Subject: [PATCH] ui: storage backup view: Update remove button on protection change 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 the loading has finished. While at it, refactor the same thing in the grid backup view as well, removing the current hack in the process. Signed-off-by: Christoph Heiss --- 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 7f7e1b62d..65340dcb1 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() { + const reload = Ext.Function.createBuffered((options) => { if (me.store) { - me.store.load(); + me.store.load(options); } }, 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 b8dc8f118..fbdf573d3 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]), + }); + }, }); }, },