commit 5210699: [WebUI] Show message size in IEC (base 1024) units
moisseev
moiseev at mezonplus.ru
Mon Jul 29 17:51:00 UTC 2024
Author: moisseev
Date: 2023-12-30 18:06:40 +0300
URL: https://github.com/rspamd/rspamd/commit/5210699735731b5ea9851cea772e47d0191ee83d (refs/pull/4765/head)
[WebUI] Show message size in IEC (base 1024) units
---
.eslintrc.json | 3 +++
interface/js/app/history.js | 6 +++---
interface/js/app/libft.js | 22 +++++++++++++++++++---
3 files changed, 25 insertions(+), 6 deletions(-)
diff --git a/.eslintrc.json b/.eslintrc.json
index 6aa347e1d..b9dbe1679 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -10,6 +10,9 @@
"globals": {
"define": false
},
+ "parserOptions": {
+ "ecmaVersion": 2016
+ },
"plugins": [
"@stylistic"
],
diff --git a/interface/js/app/history.js b/interface/js/app/history.js
index f2b8b8e46..0d953ec1e 100644
--- a/interface/js/app/history.js
+++ b/interface/js/app/history.js
@@ -24,8 +24,8 @@
/* global FooTable */
-define(["jquery", "app/common", "app/libft", "d3", "footable"],
- ($, common, libft, d3) => {
+define(["jquery", "app/common", "app/libft", "footable"],
+ ($, common, libft) => {
"use strict";
const ui = {};
let prevVersion = null;
@@ -94,7 +94,7 @@ define(["jquery", "app/common", "app/libft", "d3", "footable"],
title: "Message size",
breakpoints: "xs sm",
style: {width: 120, maxWidth: 120},
- formatter: d3.format(".3~s")
+ formatter: libft.formatBytesIEC
}, {
name: "scan_time",
title: "Scan time",
diff --git a/interface/js/app/libft.js b/interface/js/app/libft.js
index eab3b6d3a..463ddec16 100644
--- a/interface/js/app/libft.js
+++ b/interface/js/app/libft.js
@@ -1,7 +1,7 @@
/* global FooTable */
-define(["jquery", "app/common", "d3", "footable"],
- ($, common, d3) => {
+define(["jquery", "app/common", "footable"],
+ ($, common) => {
"use strict";
const ui = {};
@@ -35,6 +35,22 @@ define(["jquery", "app/common", "d3", "footable"],
// Public functions
+ ui.formatBytesIEC = function (bytes) {
+ // FooTable represents data as text even column type is "number".
+ if (!Number.isInteger(Number(bytes)) || bytes < 0) return "NaN";
+
+ const base = 1024;
+ const exponent = Math.floor(Math.log(bytes) / Math.log(base));
+
+ if (exponent > 8) return "∞";
+
+ const value = parseFloat((bytes / (base ** exponent)).toPrecision(3));
+ let unit = "BKMGTPEZY"[exponent];
+ if (exponent) unit += "iB";
+
+ return value + " " + unit;
+ };
+
ui.columns_v2 = function (table) {
return [{
name: "id",
@@ -125,7 +141,7 @@ define(["jquery", "app/common", "d3", "footable"],
title: "Msg size",
breakpoints: "xs sm md",
style: {minwidth: 50},
- formatter: d3.format(".3~s")
+ formatter: ui.formatBytesIEC
}, {
name: "time_real",
title: "Scan time",
More information about the Commits
mailing list