commit 1b34085: [WebUI] Add Bayesian statistics info

moisseev moiseev at mezonplus.ru
Sun Aug 9 18:28:09 UTC 2020


Author: moisseev
Date: 2020-08-08 20:59:27 +0300
URL: https://github.com/rspamd/rspamd/commit/1b34085ec52494c59b203908a4976d05aaa0f28f

[WebUI] Add Bayesian statistics info

---
 interface/css/rspamd.css  | 32 ++++++++++++++++----------------
 interface/index.html      | 23 ++++++++++++++++++++++-
 interface/js/app/stats.js | 31 +++++++++++++++++++++++++++++++
 3 files changed, 69 insertions(+), 17 deletions(-)

diff --git a/interface/css/rspamd.css b/interface/css/rspamd.css
index a0852cfa9..6394e449c 100644
--- a/interface/css/rspamd.css
+++ b/interface/css/rspamd.css
@@ -288,6 +288,22 @@ table#symbolsTable input[type="number"] {
     margin-right: 9px;
 }
 
+.status-table td:last-child {
+    border-right: none;
+}
+.status-table tr:last-child td {
+    border-bottom: none;
+}
+.status-table thead th:last-child {
+    border-right: none;
+}
+.status-table tr:last-child td:first-child {
+    border-radius: 0 0 0 calc(.25rem - 1px);
+}
+.status-table tr:last-child td:last-child {
+    border-radius: 0 0 calc(.25rem - 1px) 0;
+}
+
 /* RRD summary */
 #summary-row {
     padding-left: 80px;
@@ -486,22 +502,6 @@ table#symbolsTable input[type="number"] {
     padding: 15px;
 }
 
-#clusterTable td:last-child {
-    border-right: none;
-}
-#clusterTable tr:last-child td {
-    border-bottom: none;
-}
-#clusterTable thead th:last-child {
-    border-right: none;
-}
-#clusterTable tr:last-child td:first-child {
-    border-radius: 0 0 0 calc(.25rem - 1px);
-}
-#clusterTable tr:last-child td:last-child {
-    border-radius: 0 0 calc(.25rem - 1px) 0;
-}
-
 #modalDialog > .modal-dialog {
     /* Center the modal vertically */
     top: 50%;
diff --git a/interface/index.html b/interface/index.html
index 480fa79ad..71314e282 100644
--- a/interface/index.html
+++ b/interface/index.html
@@ -107,7 +107,7 @@
 								<span class="h6 font-weight-bolder my-2">Servers</span>
 							</div>
 								<div class="card-body p-0 table-responsive">
-									<table class="table table-sm table-hover table-bordered text-nowrap mb-0" id="clusterTable">
+									<table class="table status-table table-sm table-hover table-bordered text-nowrap mb-0" id="clusterTable">
 										<thead class="text-secondary">
 											<tr>
 												<th></th>
@@ -124,6 +124,27 @@
 									</table>
 								</div>
 						</div>
+						<div class="card bg-light shadow my-3">
+							<div class="card-header text-secondary py-2">
+								<span class="icon mr-3"><i class="fas fa-dice"></i></span>
+								<span class="h6 font-weight-bolder my-2">Bayesian statistics</span>
+							</div>
+								<div class="card-body p-0 table-responsive">
+									<table class="table status-table table-sm table-bordered text-nowrap mb-0" id="bayesTable">
+										<thead class="text-secondary">
+											<tr>
+												<th>Server name</th>
+												<th>Symbol</th>
+												<th>Type</th>
+												<th>Learns</th>
+												<th>Users</th>
+											</tr>
+										</thead>
+										<tbody>
+										</tbody>
+									</table>
+								</div>
+						</div>
 					</div>
 					<div class="col-lg-6">
 						<div class="card bg-light shadow my-3">
diff --git a/interface/js/app/stats.js b/interface/js/app/stats.js
index 57e16261e..532aec922 100644
--- a/interface/js/app/stats.js
+++ b/interface/js/app/stats.js
@@ -142,6 +142,37 @@ define(["jquery", "d3pie"],
                     $('#selSrv [value="' + key + '"]').prop("disabled", true);
                 }
             });
+
+            function addStatfiles(server, statfiles) {
+                $.each(statfiles, function (i, statfile) {
+                    var cls = "";
+                    switch (statfile.symbol) {
+                        case "BAYES_SPAM":
+                            cls = "symbol-positive";
+                            break;
+                        case "BAYES_HAM":
+                            cls = "symbol-negative";
+                            break;
+                        default:
+                    }
+                    $("#bayesTable tbody").append("<tr>" +
+                      (i === 0 ? '<td rowspan="' + statfiles.length + '">' + server + "</td>" : "") +
+                      '<td class="' + cls + '">' + statfile.symbol + "</td>" +
+                      '<td class="' + cls + '">' + statfile.type + "</td>" +
+                      '<td class="' + cls + '">' + statfile.revision + "</td>" +
+                      '<td class="' + cls + '">' + statfile.users + "</td></tr>");
+                });
+            }
+            $("#bayesTable tbody").empty();
+            if (checked_server === "All SERVERS") {
+                $.each(servers, function (server, val) {
+                    if (server !== "All SERVERS") {
+                        addStatfiles(server, val.data.statfiles);
+                    }
+                });
+            } else {
+                addStatfiles(checked_server, data.statfiles);
+            }
         }
 
         function getChart(rspamd, pie, checked_server) {


More information about the Commits mailing list