[pve-devel] [PATCH manager 4/5] fix #143: add disk/mem percent sort
Dominik Csapak
d.csapak at proxmox.com
Fri Apr 15 15:26:28 CEST 2016
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 <d.csapak at proxmox.com>
---
www/manager6/Utils.js | 14 +++++++-------
www/manager6/data/ResourceStore.js | 29 ++++++++++++++++++++++++++---
www/manager6/form/NodeSelector.js | 4 ++--
3 files changed, 35 insertions(+), 12 deletions(-)
diff --git a/www/manager6/Utils.js b/www/manager6/Utils.js
index cd61c24..9c6dd8d 100644
--- a/www/manager6/Utils.js
+++ b/www/manager6/Utils.js
@@ -888,9 +888,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) {
@@ -917,14 +915,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 4c409de..538f860 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 2a7f013..8c69430 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.1.4
More information about the pve-devel
mailing list