From 85bc6aeedb52f8759eabcc2f163fb50cf0922b66 Mon Sep 17 00:00:00 2001 From: Michal Fox Date: Fri, 25 Sep 2026 07:15:08 +0200 Subject: [PATCH] fix #6874: ui: node selectors: sort memory usage by percentage The memory usage column of the node selector, used e.g. in the migration dialog, and of the HA node priority selector shows a percentage, but uses the raw 'mem' bytes as data index. Sorting by that column thus sorts by used bytes, which does not match the displayed values as soon as the nodes have a different amount of memory. Add a calculated 'memuse' field, like the resource store already has, and use it for the column. This also makes the percentage renderer receive a ratio here, like everywhere else, which allows dropping its bytes fallback in a follow-up. Signed-off-by: Michal Fox --- www/manager6/form/NodeSelector.js | 16 ++++++++++++++-- www/manager6/ha/NodePrioritySelector.js | 14 ++++++++++++-- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/www/manager6/form/NodeSelector.js b/www/manager6/form/NodeSelector.js index 37d3ee5..73d173b 100644 --- a/www/manager6/form/NodeSelector.js +++ b/www/manager6/form/NodeSelector.js @@ -16,7 +16,19 @@ Ext.define('PVE.form.NodeSelector', { valueField: 'node', displayField: 'node', store: { - fields: ['node', 'cpu', 'maxcpu', 'mem', 'maxmem', 'uptime'], + fields: [ + 'node', + 'cpu', + 'maxcpu', + 'mem', + 'maxmem', + 'uptime', + { + name: 'memuse', + type: 'number', + calculate: PVE.Utils.calculate_mem_usage, + }, + ], proxy: { type: 'proxmox', url: '/api2/json/nodes', @@ -47,7 +59,7 @@ Ext.define('PVE.form.NodeSelector', { renderer: PVE.Utils.render_mem_usage_percent, sortable: true, width: 100, - dataIndex: 'mem', + dataIndex: 'memuse', }, { header: gettext('CPU usage'), diff --git a/www/manager6/ha/NodePrioritySelector.js b/www/manager6/ha/NodePrioritySelector.js index 635374f..9e26b2e 100644 --- a/www/manager6/ha/NodePrioritySelector.js +++ b/www/manager6/ha/NodePrioritySelector.js @@ -23,7 +23,17 @@ Ext.define('PVE.forms.NodePrioritySelector', { store: { autoLoad: true, - fields: ['node', 'cpu', 'mem', 'priority'], + fields: [ + 'node', + 'cpu', + 'mem', + 'priority', + { + name: 'memuse', + type: 'number', + calculate: PVE.Utils.calculate_mem_usage, + }, + ], proxy: { type: 'proxmox', url: '/api2/json/nodes', @@ -47,7 +57,7 @@ Ext.define('PVE.forms.NodePrioritySelector', { renderer: PVE.Utils.render_mem_usage_percent, sortable: true, width: 150, - dataIndex: 'mem', + dataIndex: 'memuse', }, { header: gettext('CPU usage'),