summaryrefslogtreecommitdiff
path: root/js/prefs.js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2012-08-30 18:50:56 +0400
committerAndrew Dolgov <[email protected]>2012-08-31 12:13:47 +0400
commit6aff7845751e1671f436da6686209b414fdcfcc4 (patch)
tree412bfad8bdb8d23eebb84ff96ba6077e901f6d8b /js/prefs.js
parentf9ebb32ca0a84ec5553d0494cdfc628753fcb36a (diff)
implement multiple rule/action filters
Diffstat (limited to 'js/prefs.js')
-rw-r--r--js/prefs.js96
1 files changed, 51 insertions, 45 deletions
diff --git a/js/prefs.js b/js/prefs.js
index b308d011d..1fbbc55a5 100644
--- a/js/prefs.js
+++ b/js/prefs.js
@@ -136,9 +136,18 @@ function editFilter(id) {
id: "filterEditDlg",
title: __("Edit Filter"),
style: "width: 600px",
+ editRule: function(e) {
+ var li = e.parentNode;
+ var rule = li.getElementsByTagName("INPUT")[1].value;
+ addFilterRule(li, rule);
+ },
+ editAction: function(e) {
+ var li = e.parentNode;
+ var action = li.getElementsByTagName("INPUT")[1].value;
+ addFilterAction(li, action);
+ },
removeFilter: function() {
- var title = this.attr('value').reg_exp;
- var msg = __("Remove filter %s?").replace("%s", title);
+ var msg = __("Remove filter?");
if (confirm(msg)) {
this.hide();
@@ -157,57 +166,29 @@ function editFilter(id) {
} });
}
},
- test: function() {
- if (this.validate()) {
-
- if (dijit.byId("filterTestDlg"))
- dijit.byId("filterTestDlg").destroyRecursive();
-
- tdialog = new dijit.Dialog({
- id: "filterTestDlg",
- title: __("Filter Test Results"),
- style: "width: 600px",
- href: "backend.php?savemode=test&" +
- dojo.objectToQuery(dialog.attr('value')),
- });
-
- tdialog.show();
-
- }
+ addAction: function() { addFilterAction(); },
+ addRule: function() { addFilterRule(); },
+ deleteAction: function() {
+ $$("#filterDlg_Actions li.[class*=Selected]").each(function(e) { e.parentNode.removeChild(e) });
+ },
+ deleteRule: function() {
+ $$("#filterDlg_Matches li.[class*=Selected]").each(function(e) { e.parentNode.removeChild(e) });
},
execute: function() {
if (this.validate()) {
- var query = "?op=rpc&method=verifyRegexp&reg_exp=" +
- param_escape(dialog.attr('value').reg_exp);
+ notify_progress("Saving data...", true);
- notify_progress("Verifying regular expression...");
+ var query = dojo.formToQuery("filter_edit_form");
- new Ajax.Request("backend.php", {
+ console.log(query);
+
+ new Ajax.Request("backend.php", {
parameters: query,
onComplete: function(transport) {
- var reply = JSON.parse(transport.responseText);
-
- if (reply) {
- notify('');
-
- if (!reply['status']) {
- alert("Match regular expression seems to be invalid.");
- return;
- } else {
- notify_progress("Saving data...", true);
-
- console.log(dojo.objectToQuery(dialog.attr('value')));
-
- new Ajax.Request("backend.php", {
- parameters: dojo.objectToQuery(dialog.attr('value')),
- onComplete: function(transport) {
- dialog.hide();
- updateFilterList();
- }});
- }
- }
- }});
+ dialog.hide();
+ updateFilterList();
+ }});
}
},
href: query});
@@ -605,6 +586,31 @@ function editSelectedFilter() {
}
+function joinSelectedFilters() {
+ var rows = getSelectedFilters();
+
+ if (rows.length == 0) {
+ alert(__("No filters are selected."));
+ return;
+ }
+
+ var ok = confirm(__("Combine selected filters?"));
+
+ if (ok) {
+ notify_progress("Joining filters...");
+
+ var query = "?op=pref-filters&method=join&ids="+
+ param_escape(rows.toString());
+
+ console.log(query);
+
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+ updateFilterList();
+ } });
+ }
+}
function editSelectedFeed() {
var rows = getSelectedFeeds();