[pve-devel] applied: [PATCH] ui: fire config change: always pass required parameters

Thomas Lamprecht t.lamprecht at proxmox.com
Fri Mar 10 15:41:31 CET 2023


As otherwise the listeners might choke on the missing records.

For our usage it was only a problem when one changed the tree UI
options while having the Datacenter -> Summary panel open, as that
listens to the UI changes to adapt the shown gauges for e.g., memory,
storage, or CPUs, and thus actually uses the current result (unlike
we do in the store load listener).

Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
---
 www/manager6/UIOptions.js          | 4 +---
 www/manager6/data/ResourceStore.js | 9 +++++++++
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/www/manager6/UIOptions.js b/www/manager6/UIOptions.js
index cb5a1755..057c8f03 100644
--- a/www/manager6/UIOptions.js
+++ b/www/manager6/UIOptions.js
@@ -99,9 +99,7 @@ Ext.define('PVE.UIOptions', {
     },
 
     fireUIConfigChanged: function() {
-	if (!PVE.data.ResourceStore.isLoading() && PVE.data.ResourceStore.isLoaded()) {
-	    PVE.data.ResourceStore.fireEvent('load');
-	}
+	PVE.data.ResourceStore.refresh();
 	Ext.GlobalEvents.fireEvent('loadedUiOptions');
     },
 });
diff --git a/www/manager6/data/ResourceStore.js b/www/manager6/data/ResourceStore.js
index f3a5c4d8..76da3f08 100644
--- a/www/manager6/data/ResourceStore.js
+++ b/www/manager6/data/ResourceStore.js
@@ -53,6 +53,15 @@ Ext.define('PVE.data.ResourceStore', {
 	return '';
     },
 
+    refresh: function() {
+	let me = this;
+	// can only refresh if we're loaded at least once and are not currently loading
+	if (!me.isLoading() && me.isLoaded()) {
+	    let records = (me.getData().getSource() || me.getData()).getRange()
+	    me.fireEvent('load', me, records);
+	}
+    },
+
     constructor: function(config) {
 	let me = this;
 
-- 
2.39.2






More information about the pve-devel mailing list