diff --git a/src/components/filetree.html b/src/components/filetree.html index ab1cb0d80..5f80f334b 100644 --- a/src/components/filetree.html +++ b/src/components/filetree.html @@ -69,7 +69,7 @@ {{ entry.fileName }}{{ 'filemanager.list.symlink' | tr:{ target: entry.target } }} {{ entry.uid | prettyOwner }} - {{ entry.size | prettyByteSize }} + {{ entry.size | prettyDecimalSize }} {{ entry.mtime | prettyDate }} @@ -77,4 +77,4 @@ - \ No newline at end of file + diff --git a/src/filemanager.html b/src/filemanager.html index 66efd1036..fd265ece6 100644 --- a/src/filemanager.html +++ b/src/filemanager.html @@ -252,7 +252,7 @@

{{ 'filemanager.uploadingDialog.errorAlreadyExists' | tr }}

{{ 'filemanager.uploadingDialog.errorFailed' | tr }}

- {{ uploadStatus.sizeDone | prettyByteSize }} (total {{ uploadStatus.size | prettyByteSize }}) + {{ uploadStatus.sizeDone | prettyDecimalSize }} (total {{ uploadStatus.size | prettyDecimalSize }})
diff --git a/src/js/client.js b/src/js/client.js index fc812b8be..a11085a2e 100644 --- a/src/js/client.js +++ b/src/js/client.js @@ -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 () { diff --git a/src/terminal.html b/src/terminal.html index 19676d39f..389eca2b7 100644 --- a/src/terminal.html +++ b/src/terminal.html @@ -101,7 +101,7 @@