[pve-devel] [PATCH manager v4 09/15] ui: GuestSummary: remember visibility of host memory view

Aaron Lauterer a.lauterer at proxmox.com
Sat Jul 26 03:06:13 CEST 2025


by utilizing the itemclick event of a charts legend and storing it as
state.

Signed-off-by: Aaron Lauterer <a.lauterer at proxmox.com>
---

Notes:
    this could potentially be squashed with (ui: GuestSummary: memory switch
            to stacked and add hostmem)

 www/manager6/panel/GuestSummary.js | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/www/manager6/panel/GuestSummary.js b/www/manager6/panel/GuestSummary.js
index 77ec3e3f..0f0bae23 100644
--- a/www/manager6/panel/GuestSummary.js
+++ b/www/manager6/panel/GuestSummary.js
@@ -30,6 +30,9 @@ Ext.define('PVE.guest.Summary', {
         var template = !!me.pveSelNode.data.template;
         var rstore = me.statusStore;
 
+        let hideMemhostStateKey = 'pve-vm-hide-memhost';
+        let sp = Ext.state.Manager.getProvider();
+
         let memoryFields = [
             {
                 type: 'area',
@@ -43,7 +46,7 @@ Ext.define('PVE.guest.Summary', {
                 fill: false,
                 yField: 'memhost',
                 title: gettext('Host memory usage'),
-                hidden: true,
+                hidden: sp.get(hideMemhostStateKey, true),
                 style: {
                     lineWidth: 2.5,
                     opacity: 1,
@@ -108,6 +111,12 @@ Ext.define('PVE.guest.Summary', {
                     unit: 'bytes',
                     powerOfTwo: true,
                     store: rrdstore,
+                    onLegendChange: function (_legend, record, _, seriesIndex) {
+                        if (seriesIndex === 2) {
+                            // third data series is clicked -> hostmem
+                            sp.set(hideMemhostStateKey, record.data.disabled);
+                        }
+                    },
                 },
                 {
                     xtype: 'proxmoxRRDChart',
@@ -185,7 +194,6 @@ Ext.define('PVE.guest.Summary', {
             rrdstore.startUpdate();
             me.on('destroy', rrdstore.stopUpdate);
         }
-        let sp = Ext.state.Manager.getProvider();
         me.mon(sp, 'statechange', function (provider, key, value) {
             if (key !== 'summarycolumns') {
                 return;
-- 
2.39.5





More information about the pve-devel mailing list