diff --git a/pkg/base1/cockpit.js b/pkg/base1/cockpit.js index 086953d58f5..468d418054b 100644 --- a/pkg/base1/cockpit.js +++ b/pkg/base1/cockpit.js @@ -2131,7 +2131,6 @@ function full_scope(cockpit, $, po) { }; function format_units(number, suffixes, factor, separate) { - var divided = false; var quotient; var suffix = null; @@ -2147,7 +2146,6 @@ function full_scope(cockpit, $, po) { if (factor == suffixes[keys[y]][x]) { number = number / Math.pow(keys[y], x); suffix = factor; - divided = x > 0; break; } } @@ -2163,33 +2161,37 @@ function full_scope(cockpit, $, po) { if (quotient < factor) { number = quotient; suffix = suffixes[factor][i]; - divided = divisor > 1; break; } divisor *= factor; } } - var ret; - - if (!suffix) { - ret = [number.toString()]; - if (!separate) - ret = ret.join(" "); - return ret; - } - /* non-zero values should never appear zero */ if (number > 0 && number < 0.1) number = 0.1; + else if (number < 0 && number > -0.1) + number = -0.1; + + var ret; /* TODO: Make the decimal separator translatable */ - if (number === 0 || !divided) - ret = [number.toString(), suffix]; + var string_representation; + + /* only show as integer if we have a natural number */ + if (number % 1 === 0) + string_representation = number.toString(); + else + string_representation = number.toFixed(1); + + if (suffix) + ret = [string_representation, suffix]; else - ret = [number.toFixed(1), suffix]; + ret = [string_representation]; + if (!separate) ret = ret.join(" "); + return ret; } diff --git a/pkg/base1/test-format.html b/pkg/base1/test-format.html index d983af7c723..874f8b11752 100644 --- a/pkg/base1/test-format.html +++ b/pkg/base1/test-format.html @@ -58,10 +58,10 @@

    [ 2000, 1024, "2.0 KB" ], [ 1999, 1000, "2.0 KB" ], [ 1999, 1024, "2.0 KB" ], - [ 1000000, 1000, "1.0 MB" ], + [ 1000000, 1000, "1 MB" ], [ 1000000, 1024, "976.6 KB" ], [ 2000000, 1024, "1.9 MB" ], - [ 2000000, 1000, "2.0 MB" ], + [ 2000000, 1000, "2 MB" ], [ 2000000, "MB", "1.9 MB" ], [ 2000000, "KB", "1953.1 KB" ], [ 1, "KB", "0.1 KB" ], @@ -97,6 +97,8 @@

      test("format_bits_per_sec", function() { var checks = [ [ 555, "555 bps" ], + [ 555.23456789, "555.2 bps" ], + [ 555.98765432, "556.0 bps" ], [ 2555, "2.6 Kbps" ] ]; diff --git a/test/check-storage b/test/check-storage index 58624b4fe42..6ccf628b04b 100755 --- a/test/check-storage +++ b/test/check-storage @@ -837,7 +837,7 @@ class TestStorage(MachineCase): b.click("#format-disk-format") b.wait_popdown("storage_format_disk_dialog") - b.wait_in_text("#storage_detail_content", "50.0 MB Free Space") + b.wait_in_text("#storage_detail_content", "50 MB Free Space") def testHidden(self): m = self.machine