Browse Source

[WebUI] Add control to invert action filter

to scan results and history tables

Issue: #4098
tags/3.7.2
moisseev 6 months ago
parent
commit
c290eece13
2 changed files with 28 additions and 5 deletions
  1. 1
    0
      .eslintrc.json
  2. 27
    5
      interface/js/app/rspamd.js

+ 1
- 0
.eslintrc.json View File

@@ -49,6 +49,7 @@
"padded-blocks": "off",
"prefer-arrow-callback": "off",
"prefer-destructuring": "off",
"prefer-named-capture-group": "off",
"prefer-object-has-own": "off",
"prefer-spread": "off",
"prefer-template": "off",

+ 27
- 5
interface/js/app/rspamd.js View File

@@ -792,13 +792,29 @@ function ($, visibility, NProgress, stickyTabs, tab_stat, tab_graph, tab_config,
},
$create: function () {
this._super();
var self = this, $form_grp = $("<div/>", {
class: "form-group"
const self = this, $form_grp = $("<div/>", {
class: "form-group d-inline-flex align-items-center"
}).append($("<label/>", {
class: "sr-only",
text: "Action"
})).prependTo(self.$form);

$("<div/>", {
class: "form-check form-check-inline",
title: "Invert action match."
}).append(
self.$not = $("<input/>", {
type: "checkbox",
class: "form-check-input",
id: "not_" + table
}).on("change", {self: self}, self._onStatusDropdownChanged),
$("<label/>", {
class: "form-check-label",
for: "not_" + table,
text: "not"
})
).appendTo($form_grp);

self.$action = $("<select/>", {
class: "form-select"
}).on("change", {
@@ -813,13 +829,19 @@ function ($, visibility, NProgress, stickyTabs, tab_stat, tab_graph, tab_config,
});
},
_onStatusDropdownChanged: function (e) {
var self = e.data.self, selected = $(this).val();
const self = e.data.self;
const selected = self.$action.val();
if (selected !== self.def) {
const not = self.$not.is(":checked");
let query = null;

if (selected === "reject") {
self.addFilter("action", "reject -soft", ["action"]);
query = not ? "-reject OR soft" : "reject -soft";
} else {
self.addFilter("action", selected, ["action"]);
query = not ? selected.replace(/(\b\w+\b)/g, "-$1") : selected;
}

self.addFilter("action", query, ["action"]);
} else {
self.removeFilter("action");
}

Loading…
Cancel
Save