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 @@
{{ 'terminal.upload.title' | tr:{ name: selected.name } }}
-
{{ uploadProgress.current | prettyByteSize }} (total {{ uploadProgress.total | prettyByteSize }})
+
{{ uploadProgress.current | prettyDecimalSize }} (total {{ uploadProgress.total | prettyDecimalSize }})
diff --git a/src/views/app.html b/src/views/app.html
index c6859ffa1..1680689d4 100644
--- a/src/views/app.html
+++ b/src/views/app.html
@@ -924,7 +924,7 @@
- {{ mailbox.usage | prettyByteSize }} / {{ mailbox.limit | prettyByteSize }}
+ {{ mailbox.usage | prettyDecimalSize }} / {{ mailbox.limit | prettyDecimalSize }}
diff --git a/src/views/emails.html b/src/views/emails.html
index 2cccde43a..df41a2884 100644
--- a/src/views/emails.html
+++ b/src/views/emails.html
@@ -57,7 +57,7 @@
- {{ 'emails.domains.stats' | tr:{ mailboxCount: domain.mailboxCount, usage: (domain.usage | prettyByteSize) } }}
+ {{ 'emails.domains.stats' | tr:{ mailboxCount: domain.mailboxCount, usage: (domain.usage | prettyDecimalSize) } }}
{{ 'emails.domains.outbound' | tr }}
{{ 'emails.domains.disabled' | tr }}
@@ -310,7 +310,7 @@
{{ 'emails.settings.maxMailSize' | tr }}
-
{{ maxEmailSize.currentSize | prettyDiskSize }}
+
{{ maxEmailSize.currentSize | prettyDecimalSize }}
{{ 'emails.settings.acl' | tr }}
diff --git a/src/views/services.html b/src/views/services.html
index e4008e167..64631f761 100644
--- a/src/views/services.html
+++ b/src/views/services.html
@@ -109,7 +109,7 @@
- {{ service.config.memoryLimit | prettyByteSize }}
+ {{ service.config.memoryLimit | prettyBinarySize }}
@@ -137,7 +137,7 @@
- {{ service.config.memoryLimit | prettyByteSize }}
+ {{ service.config.memoryLimit | prettyBinarySize }}
diff --git a/src/views/system.html b/src/views/system.html
index ae3f2f2f9..4043b18b0 100644
--- a/src/views/system.html
+++ b/src/views/system.html
@@ -92,4 +92,4 @@
-
\ No newline at end of file
+