From b76b69aacde3f548471c8caae5bc8f402b094bfd Mon Sep 17 00:00:00 2001 From: Monviech <79600909+Monviech@users.noreply.github.com> Date: Tue, 6 Aug 2024 09:07:02 +0200 Subject: [PATCH] dashboard: BaseWidget - Improve _formatBytes function, remove nested if statements, always return size+unit, implement additional null check. (#7729) --- src/opnsense/www/js/widgets/BaseWidget.js | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/opnsense/www/js/widgets/BaseWidget.js b/src/opnsense/www/js/widgets/BaseWidget.js index 773fa39f2..569a0f9b3 100644 --- a/src/opnsense/www/js/widgets/BaseWidget.js +++ b/src/opnsense/www/js/widgets/BaseWidget.js @@ -239,17 +239,18 @@ export default class BaseWidget { } _formatBytes(value, decimals = 2) { - if (!isNaN(value) && value > 0) { - let fileSizeTypes = ["", "K", "M", "G", "T", "P", "E", "Z", "Y"]; - let ndx = Math.floor(Math.log(value) / Math.log(1000) ); - if (ndx > 0) { - return (value / Math.pow(1000, ndx)).toFixed(2) + ' ' + fileSizeTypes[ndx]; - } else { - return value.toFixed(2); - } - } else { + if (isNaN(value) || value === null || value < 0) { return ""; } + + const fileSizeTypes = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"]; + const ndx = Math.floor(Math.log(value) / Math.log(1000)); + + if (ndx === 0) { + return value.toFixed(decimals) + ' ' + fileSizeTypes[0]; + } + + return (value / Math.pow(1000, ndx)).toFixed(decimals) + ' ' + fileSizeTypes[ndx]; } sanitizeSelector(selector) {