From 728f1b97e60b2ed7a45c06508a7b86f96bced6e3 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Fri, 15 Apr 2016 15:26:28 +0200 Subject: [PATCH] fix #143: add disk/mem percent sort previously, we had a disk/memory usage column in the resource grid, whose raw data were the bytes used, but we added a renderer to display it as percentage with this, the columns sorted by bytes and not by percentage, which made the column rather confusing with this patch, we add a real percentage column (where the data is a float from 0 to 1) so it sorts correctly also make the old columns show the used size in B/KiB/etc. by default we still only show the percentage column since the disk usage part was always zero with qemu guests, leave it empty there Signed-off-by: Dominik Csapak --- debian/changelog.Debian | 2 ++ www/manager6/Utils.js | 14 +++++++------- www/manager6/data/ResourceStore.js | 29 ++++++++++++++++++++++++++--- www/manager6/form/NodeSelector.js | 4 ++-- 4 files changed, 37 insertions(+), 12 deletions(-) diff --git a/debian/changelog.Debian b/debian/changelog.Debian index 1d4e760e..dc8dc1d5 100644 --- a/debian/changelog.Debian +++ b/debian/changelog.Debian @@ -2,6 +2,8 @@ pve-manager (4.1-32) unstable; urgency=medium * GUI: enhace visibillity of dialog window border + * fix #143: add disk/mem percent sort + -- Proxmox Support Team Wed, 20 Apr 2016 09:21:17 +0200 pve-manager (4.1-31) unstable; urgency=medium diff --git a/www/manager6/Utils.js b/www/manager6/Utils.js index 3b7848ae..0d90f449 100644 --- a/www/manager6/Utils.js +++ b/www/manager6/Utils.js @@ -904,9 +904,7 @@ Ext.define('PVE.Utils', { statics: { return ''; } - var per = (mem * 100) / maxmem; - - return per.toFixed(1) + '%'; + return PVE.Utils.render_size(value); }, calculate_disk_usage: function(data) { @@ -933,14 +931,16 @@ Ext.define('PVE.Utils', { statics: { var disk = value; var maxdisk = record.data.maxdisk; + var type = record.data.type; - if (!(Ext.isNumeric(disk) && maxdisk)) { + if (!Ext.isNumeric(disk) || + type === 'qemu' || + maxdisk === 0 || + (type === 'lxc' && record.data.uptime === 0)) { return ''; } - var per = (disk * 100) / maxdisk; - - return per.toFixed(1) + '%'; + return PVE.Utils.render_size(value); }, render_resource_type: function(value, metaData, record, rowIndex, colIndex, store) { diff --git a/www/manager6/data/ResourceStore.js b/www/manager6/data/ResourceStore.js index 4c409def..538f860a 100644 --- a/www/manager6/data/ResourceStore.js +++ b/www/manager6/data/ResourceStore.js @@ -94,7 +94,17 @@ Ext.define('PVE.data.ResourceStore', { type: 'integer', renderer: PVE.Utils.render_disk_usage, sortable: true, - width: 100 + width: 100, + hidden: true, + }, + diskuse: { + header: gettext('Disk usage') + " %", + type: 'number', + sortable: true, + renderer: PVE.Utils.render_disk_usage_percent, + width: 100, + calculate: PVE.Utils.calculate_disk_usage, + sortType: 'asFloat', }, maxdisk: { header: gettext('Disk size'), @@ -109,6 +119,16 @@ Ext.define('PVE.data.ResourceStore', { type: 'integer', renderer: PVE.Utils.render_mem_usage, sortable: true, + hidden: true, + width: 100 + }, + memuse: { + header: gettext('Memory usage') + " %", + type: 'number', + renderer: PVE.Utils.render_mem_usage_percent, + calculate: PVE.Utils.calculate_mem_usage, + sortType: 'asFloat', + sortable: true, width: 100 }, maxmem: { @@ -205,13 +225,16 @@ Ext.define('PVE.data.ResourceStore', { var fields = []; var fieldNames = []; Ext.Object.each(field_defaults, function(key, value) { - if (!Ext.isDefined(value.convert)) { + if (!Ext.isDefined(value.convert) && !Ext.isDefined(value.calculate)) { fields.push({name: key, type: value.type}); fieldNames.push(key); } else if (key === 'text' || key === 'running') { fields.push({name: key, type: value.type, convert: value.convert}); fieldNames.push(key); - } + } else { + value.name = key; + fields.push(value); + } }); Ext.define('PVEResources', { diff --git a/www/manager6/form/NodeSelector.js b/www/manager6/form/NodeSelector.js index 2a7f0132..8c694303 100644 --- a/www/manager6/form/NodeSelector.js +++ b/www/manager6/form/NodeSelector.js @@ -43,8 +43,8 @@ Ext.define('PVE.form.NodeSelector', { flex: 1 }, { - header: gettext('Memory usage'), - renderer: PVE.Utils.render_mem_usage, + header: gettext('Memory usage') + " %", + renderer: PVE.Utils.render_mem_usage_percent, sortable: true, width: 100, dataIndex: 'mem' -- 2.39.2