gui: Restrict shown decimals and restrict size of header columns (#4973)
This commit is contained in:
@@ -195,3 +195,52 @@ function buildTree(children) {
|
||||
|
||||
return root.children;
|
||||
}
|
||||
|
||||
// unitPrefixed converts the input such that it returns a string representation
|
||||
// <1000 (<1024) with the metric unit prefix suffixed. I.e. when calling this with
|
||||
// binary == true, you need to suffix an additon 'i'. The "biggest" prefix used
|
||||
// is 'T', numbers > 1000T are just returned as such big numbers. If ever deemed
|
||||
// useful 'P' can be added easily.
|
||||
function unitPrefixed(input, binary) {
|
||||
if (input === undefined || isNaN(input)) {
|
||||
return '0 ';
|
||||
}
|
||||
factor = 1000;
|
||||
i = '';
|
||||
if (binary) {
|
||||
factor = 1024;
|
||||
i = 'i'
|
||||
}
|
||||
if (input > factor * factor * factor * factor * 1000) {
|
||||
// Don't show any decimals for more than 4 digits
|
||||
input /= factor * factor * factor * factor;
|
||||
return input.toLocaleString(undefined, {maximumFractionDigits: 0}) + ' T' + i;
|
||||
}
|
||||
// Show 3 significant digits (e.g. 123T or 2.54T)
|
||||
if (input > factor * factor * factor * factor) {
|
||||
input /= factor * factor * factor * factor;
|
||||
return input.toLocaleString(undefined, {maximumSignificantDigits: 3}) + ' T' + i;
|
||||
}
|
||||
if (input > factor * factor * factor) {
|
||||
input /= factor * factor * factor;
|
||||
if (binary && input >= 1000) {
|
||||
return input.toLocaleString(undefined, {maximumFractionDigits: 0}) + ' G' + i;
|
||||
}
|
||||
return input.toLocaleString(undefined, {maximumSignificantDigits: 3}) + ' G' + i;
|
||||
}
|
||||
if (input > factor * factor) {
|
||||
input /= factor * factor;
|
||||
if (binary && input >= 1000) {
|
||||
return input.toLocaleString(undefined, {maximumFractionDigits: 0}) + ' M' + i;
|
||||
}
|
||||
return input.toLocaleString(undefined, {maximumSignificantDigits: 3}) + ' M' + i;
|
||||
}
|
||||
if (input > factor) {
|
||||
input /= factor;
|
||||
if (binary && input >= 1000) {
|
||||
return input.toLocaleString(undefined, {maximumFractionDigits: 0}) + ' k' + i;
|
||||
}
|
||||
return input.toLocaleString(undefined, {maximumSignificantDigits: 3}) + ' k' + i;
|
||||
}
|
||||
return Math.round(input).toLocaleString() + ' ';
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user