mirror of
https://git.proxmox.com/git/proxmox-widget-toolkit
synced 2025-10-12 19:37:31 +00:00
utils: add size unit related helpers to parse/auto-scale/format
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
1fad0e8822
commit
851ebc36cd
31
src/Utils.js
31
src/Utils.js
@ -680,6 +680,37 @@ utilities: {
|
|||||||
'PB': 1000*1000*1000*1000*1000,
|
'PB': 1000*1000*1000*1000*1000,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
parse_size_unit: function(val) {
|
||||||
|
//let m = val.match(/([.\d])+\s?([KMGTP]?)(i?)B?\s*$/i);
|
||||||
|
let m = val.match(/(\d+(?:\.\d+)?)\s?([KMGTP]?)(i?)B?\s*$/i);
|
||||||
|
let size = parseFloat(m[1]);
|
||||||
|
let scale = m[2].toUpperCase();
|
||||||
|
let binary = m[3].toLowerCase();
|
||||||
|
|
||||||
|
let unit = `${scale}${binary}B`;
|
||||||
|
let factor = Proxmox.Utils.SizeUnits[unit];
|
||||||
|
|
||||||
|
return { size, factor, unit, binary }; // for convenience return all we got
|
||||||
|
},
|
||||||
|
|
||||||
|
size_unit_to_bytes: function(val) {
|
||||||
|
let { size, factor } = Proxmox.Utils.parse_size_unit(val);
|
||||||
|
return size * factor;
|
||||||
|
},
|
||||||
|
|
||||||
|
autoscale_size_unit: function(val) {
|
||||||
|
let { size, factor, binary } = Proxmox.Utils.parse_size_unit(val);
|
||||||
|
return Proxmox.Utils.format_size(size * factor, binary !== "i");
|
||||||
|
},
|
||||||
|
|
||||||
|
size_unit_ratios: function(a, b) {
|
||||||
|
a = typeof a !== "undefined" ? a : 0;
|
||||||
|
b = typeof b !== "undefined" ? b : Infinity;
|
||||||
|
let aBytes = typeof a === "number" ? a : Proxmox.Utils.size_unit_to_bytes(a);
|
||||||
|
let bBytes = typeof b === "number" ? b : Proxmox.Utils.size_unit_to_bytes(b);
|
||||||
|
return aBytes / (bBytes || Infinity); // avoid division by zero
|
||||||
|
},
|
||||||
|
|
||||||
render_upid: function(value, metaData, record) {
|
render_upid: function(value, metaData, record) {
|
||||||
let task = record.data;
|
let task = record.data;
|
||||||
let type = task.type || task.worker_type;
|
let type = task.type || task.worker_type;
|
||||||
|
Loading…
Reference in New Issue
Block a user