Fix SI and Decimal unit usage
SI: For 1000, it is kB, MB, GB IEC: For 1024, it is KiB, MiB, GiB JEDEC: For 1024, it is KB, MB (conflicts with SI, of course) Ultimately, what we decided is for RAM use IEC and for Disk use SI. This is what docker does and also suggested here - https://stackoverflow.com/questions/8632269/displaying-file-size-1000b-1kb-or-1024b-1kb
This commit is contained in:
+20
-6
@@ -234,20 +234,34 @@ function imageErrorHandler(elem) {
|
||||
// Shared Angular Filters
|
||||
// ----------------------------------------------
|
||||
|
||||
// binary units (non SI) 1024 based
|
||||
function prettyByteSize(size, fallback) {
|
||||
// https://en.wikipedia.org/wiki/Binary_prefix
|
||||
// binary units (IEC) 1024 based
|
||||
function prettyBinarySize(size, fallback) {
|
||||
if (!size) return fallback || 0;
|
||||
|
||||
// we can also use KB here (JEDEC)
|
||||
var i = Math.floor(Math.log(size) / Math.log(1024));
|
||||
return (size / Math.pow(1024, i)).toFixed(2) * 1 + ' ' + ['B', 'kB', 'MB', 'GB', 'TB'][i];
|
||||
return (size / Math.pow(1024, i)).toFixed(2) * 1 + ' ' + ['B', 'KiB', 'MiB', 'GiB', 'TiB'][i];
|
||||
}
|
||||
|
||||
angular.module('Application').filter('prettyByteSize', function () {
|
||||
return function (size, fallback) { return prettyByteSize(size, fallback) || '0 kb'; };
|
||||
// decimal units (SI) 1000 based
|
||||
function prettyDecimalSize(size, fallback) {
|
||||
if (!size) return fallback || 0;
|
||||
|
||||
var i = Math.floor(Math.log(size) / Math.log(1000));
|
||||
return (size / Math.pow(1000, i)).toFixed(2) * 1 + ' ' + ['B', 'kB', 'MB', 'GB', 'TB'][i];
|
||||
}
|
||||
|
||||
angular.module('Application').filter('prettyDecimalSize', function () {
|
||||
return function (size, fallback) { return prettyDecimalSize(size, fallback) || '0 kb'; };
|
||||
});
|
||||
|
||||
angular.module('Application').filter('prettyBinarySize', function () {
|
||||
return function (size, fallback) { return prettyDecimalSize(size, fallback) || '0 KiB'; };
|
||||
});
|
||||
|
||||
angular.module('Application').filter('prettyDiskSize', function () {
|
||||
return function (size, fallback) { return prettyByteSize(size, fallback) || 'Not available yet'; };
|
||||
return function (size, fallback) { return prettyDecimalSize(size, fallback) || 'Not available yet'; };
|
||||
});
|
||||
|
||||
angular.module('Application').filter('trKeyFromPeriod', function () {
|
||||
|
||||
Reference in New Issue
Block a user