fix #2611: gui: use backendUnit and pretty renderer

Slightly confusing with the units:
* Backend stores values in KiB/s
* Frontend displays MiB/s (which is a good choice when considering
  current generation network speeds as opposed to huge KiB numbers IMO)
* Renderer previously showed no units, which would usually be interpreted
  as Bytes/s

So add a pretty renderer that shows units and set backendUnit to submit
correctly converted values.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
This commit is contained in:
Stefan Reiter 2020-02-25 16:32:00 +01:00 committed by Thomas Lamprecht
parent a4a86fe9b9
commit e670ffc28a

View File

@ -55,6 +55,27 @@ Ext.define('PVE.dc.OptionView', {
}; };
}, },
render_bwlimits: function(value) {
if (!value) {
return gettext("None");
}
let retval = "";
let first = true;
let parsed = PVE.Parser.parsePropertyString(value);
Ext.Object.each(parsed, (k, v) => {
if (!first) {
retval += ", ";
}
// v is in KiB/s
retval += k + ": " + Proxmox.Utils.format_size(v * 1024) + "/s";
first = false;
});
return retval;
},
initComponent : function() { initComponent : function() {
var me = this; var me = this;
@ -164,7 +185,7 @@ Ext.define('PVE.dc.OptionView', {
}] }]
}); });
me.add_inputpanel_row('bwlimit', gettext('Bandwidth Limits'), { me.add_inputpanel_row('bwlimit', gettext('Bandwidth Limits'), {
renderer: (v) => !v ? gettext('None') : v, renderer: me.render_bwlimits,
caps: caps.dc['Sys.Modify'], caps: caps.dc['Sys.Modify'],
width: 450, width: 450,
url: "/api2/extjs/cluster/options", url: "/api2/extjs/cluster/options",
@ -174,31 +195,36 @@ Ext.define('PVE.dc.OptionView', {
xtype: 'pveBandwidthField', xtype: 'pveBandwidthField',
name: 'default', name: 'default',
fieldLabel: gettext('Default'), fieldLabel: gettext('Default'),
emptyText: gettext('none') emptyText: gettext('none'),
backendUnit: "KiB"
}, },
{ {
xtype: 'pveBandwidthField', xtype: 'pveBandwidthField',
name: 'restore', name: 'restore',
fieldLabel: gettext('Backup Restore'), fieldLabel: gettext('Backup Restore'),
emptyText: gettext('default') emptyText: gettext('default'),
backendUnit: "KiB"
}, },
{ {
xtype: 'pveBandwidthField', xtype: 'pveBandwidthField',
name: 'migration', name: 'migration',
fieldLabel: gettext('Migration'), fieldLabel: gettext('Migration'),
emptyText: gettext('default') emptyText: gettext('default'),
backendUnit: "KiB"
}, },
{ {
xtype: 'pveBandwidthField', xtype: 'pveBandwidthField',
name: 'clone', name: 'clone',
fieldLabel: gettext('Clone'), fieldLabel: gettext('Clone'),
emptyText: gettext('default') emptyText: gettext('default'),
backendUnit: "KiB"
}, },
{ {
xtype: 'pveBandwidthField', xtype: 'pveBandwidthField',
name: 'move', name: 'move',
fieldLabel: gettext('Disk Move'), fieldLabel: gettext('Disk Move'),
emptyText: gettext('default') emptyText: gettext('default'),
backendUnit: "KiB"
}] }]
}); });