function($) {
var interface = {};
+ function unix_time_format(tm) {
+
+ }
+
+ function process_history_v2(data) {
+ var items = [];
+
+ $.each(data.rows, function (i, item) {
+
+ });
+
+ return items;
+ }
+
+ function process_history_legacy(data) {
+ var items = [];
+
+ $.each(data, function (i, item) {
+ var action;
+
+ if (item.action === 'clean' || item.action === 'no action') {
+ action = 'label-success';
+ } else if (item.action === 'rewrite subject' || item.action === 'add header' || item.action === 'probable spam') {
+ action = 'label-warning';
+ } else if (item.action === 'spam' || item.action === 'reject') {
+ action = 'label-danger';
+ } else {
+ action = 'label-info';
+ }
+
+ var score;
+ if (item.score < item.required_score) {
+ score = 'label-success';
+ } else {
+ score = 'label-danger';
+ }
+
+ items.push(
+ '<tr><td data-order="' + item.unix_time + '">' + item.time + '</td>' +
+ '<td data-order="' + item.id + '"><div class="cell-overflow" tabindex="1" title="' + item.id + '">' + item.id + '</div></td>' +
+ '<td data-order="' + item.ip + '"><div class="cell-overflow" tabindex="1" title="' + item.ip + '">' + item.ip + '</div></td>' +
+ '<td data-order="' + item.action + '"><span class="label ' + action + '">' + item.action + '</span></td>' +
+ '<td data-order="' + item.score + '"><span class="label ' + score + '">' + item.score.toFixed(2) + ' / ' + item.required_score.toFixed(2) + '</span></td>' +
+ '<td data-order="' + item.symbols + '"><div class="cell-overflow" tabindex="1" title="' + item.symbols + '">' + item.symbols + '</div></td>' +
+ '<td data-order="' + item.size + '">' + item.size + '</td>' +
+ '<td data-order="' + item.scan_time + '">' + item.scan_time.toFixed(3) + '</td>' +
+ '<td data-order="' + item.user + '"><div class="cell-overflow" tabindex="1" "title="' + item.user + '">' + item.user + '</div></td></tr>');
+ });
+
+ return items;
+ }
+
+ var process_functions = {
+ "2": process_history_v2,
+ "legacy": process_history_legacy
+ }
+
+ function process_history_data(data) {
+ var pf = process_functions.legacy;
+
+ if (data.version) {
+ var strkey = data.version.toString();
+ if (process_functions[strkey]) {
+ pf = process_functions[strkey];
+ }
+ }
+
+ return pf(data);
+ }
+
interface.getHistory = function (rspamd, tables) {
if (tables.history !== undefined) {
var history_length = document.getElementsByName('historyLog_length')[0];
$('#historyLog').children('tbody').remove();
}
- var items = [];
$.ajax({
dataType: 'json',
url: 'history',
rspamd.alertMessage('alert-error', 'Cannot receive history');
},
success: function (data) {
- $.each(data, function (i, item) {
- var action;
-
- if (item.action === 'clean' || item.action === 'no action') {
- action = 'label-success';
- } else if (item.action === 'rewrite subject' || item.action === 'add header' || item.action === 'probable spam') {
- action = 'label-warning';
- } else if (item.action === 'spam' || item.action === 'reject') {
- action = 'label-danger';
- } else {
- action = 'label-info';
- }
-
- var score;
- if (item.score < item.required_score) {
- score = 'label-success';
- } else {
- score = 'label-danger';
- }
+ var items = process_history_data(data);
- items.push(
- '<tr><td data-order="' + item.unix_time + '">' + item.time + '</td>' +
- '<td data-order="' + item.id + '"><div class="cell-overflow" tabindex="1" title="' + item.id + '">' + item.id + '</div></td>' +
- '<td data-order="' + item.ip + '"><div class="cell-overflow" tabindex="1" title="' + item.ip + '">' + item.ip + '</div></td>' +
- '<td data-order="' + item.action + '"><span class="label ' + action + '">' + item.action + '</span></td>' +
- '<td data-order="' + item.score + '"><span class="label ' + score + '">' + item.score.toFixed(2) + ' / ' + item.required_score.toFixed(2) + '</span></td>' +
- '<td data-order="' + item.symbols + '"><div class="cell-overflow" tabindex="1" title="' + item.symbols + '">' + item.symbols + '</div></td>' +
- '<td data-order="' + item.size + '">' + item.size + '</td>' +
- '<td data-order="' + item.scan_time + '">' + item.scan_time.toFixed(3) + '</td>' +
- '<td data-order="' + item.user + '"><div class="cell-overflow" tabindex="1" "title="' + item.user + '">' + item.user + '</div></td></tr>');
- });
$('<tbody/>', {
html: items.join('')
}).insertAfter('#historyLog thead');