diff options
author | moisseev <moiseev@mezonplus.ru> | 2020-08-08 20:59:27 +0300 |
---|---|---|
committer | moisseev <moiseev@mezonplus.ru> | 2020-08-08 20:59:27 +0300 |
commit | 1b34085ec52494c59b203908a4976d05aaa0f28f (patch) | |
tree | d968edb1a28c53c827b8a19a4a3024848f20ea2f /interface | |
parent | cb776ef73e9043843480db683392cba4636feb51 (diff) | |
download | rspamd-1b34085ec52494c59b203908a4976d05aaa0f28f.tar.gz rspamd-1b34085ec52494c59b203908a4976d05aaa0f28f.zip |
[WebUI] Add Bayesian statistics info
Diffstat (limited to 'interface')
-rw-r--r-- | interface/css/rspamd.css | 32 | ||||
-rw-r--r-- | interface/index.html | 23 | ||||
-rw-r--r-- | 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) { |