diff --git a/classes/pref/filters.php b/classes/pref/filters.php index a3a0ce77f..681f197cd 100755 --- a/classes/pref/filters.php +++ b/classes/pref/filters.php @@ -3,7 +3,7 @@ class Pref_Filters extends Handler_Protected { function csrf_ignore($method) { $csrf_ignored = array("index", "getfiltertree", "edit", "newfilter", "newrule", - "newaction", "savefilterorder"); + "newaction", "savefilterorder", "testfilterdlg"); return array_search($method, $csrf_ignored) !== false; } @@ -159,22 +159,19 @@ class Pref_Filters extends Handler_Protected { print json_encode($rv); } - function testFilter() { + function testFilterDlg() { + ?> +
+   + Looking for articles... +
- if (isset($_REQUEST["offset"])) return $this->testFilterDo(); - - //print __("Articles matching this filter:"); - - print "
 Looking for articles...
"; - - print ""; - - print ""; + + + testFilter(); - } - $filter_id = clean($_REQUEST["id"]); $enabled = checkbox_to_sql_bool(clean($_REQUEST["enabled"])); $match_any_rule = checkbox_to_sql_bool(clean($_REQUEST["match_any_rule"])); @@ -714,10 +707,6 @@ class Pref_Filters extends Handler_Protected { } function add() { - if (clean($_REQUEST["savemode"] && $_REQUEST["savemode"]) == "test") { - return $this->testFilter(); - } - $enabled = checkbox_to_sql_bool(clean($_REQUEST["enabled"])); $match_any_rule = checkbox_to_sql_bool(clean($_REQUEST["match_any_rule"])); $title = clean($_REQUEST["title"]); diff --git a/js/CommonDialogs.js b/js/CommonDialogs.js index c6d476de0..6e88e93a5 100644 --- a/js/CommonDialogs.js +++ b/js/CommonDialogs.js @@ -409,7 +409,7 @@ define(["dojo/_base/declare"], function (declare) { return false; }, - editFeed: function (feed) { + editFeeed: function (feed) { if (feed <= 0) return alert(__("You can't edit this kind of feed.")); diff --git a/js/CommonFilters.js b/js/CommonFilters.js index 1538a3fb3..01ffc4a5e 100644 --- a/js/CommonFilters.js +++ b/js/CommonFilters.js @@ -183,7 +183,7 @@ define(["dojo/_base/declare"], function (declare) { rule_dlg.show(); }, - editFilterTest: function(query) { + editFilterTest: function(params) { if (dijit.byId("filterTestDlg")) dijit.byId("filterTestDlg").destroyRecursive(); @@ -195,12 +195,14 @@ define(["dojo/_base/declare"], function (declare) { results: 0, limit: 100, max_offset: 10000, - getTestResults: function (query, offset) { - const updquery = query + "&offset=" + offset + "&limit=" + test_dlg.limit; + getTestResults: function (params, offset) { + params.method = 'testFilterDo'; + params.offset = offset; + params.limit = test_dlg.limit; console.log("getTestResults:" + offset); - xhrPost("backend.php", updquery, (transport) => { + xhrPost("backend.php", params, (transport) => { try { const result = JSON.parse(transport.responseText); @@ -216,9 +218,7 @@ define(["dojo/_base/declare"], function (declare) { console.log(offset + " " + test_dlg.max_offset); for (let i = 0; i < result.length; i++) { - const tmp = new Element("table"); - tmp.innerHTML = result[i]; - dojo.parser.parse(tmp); + const tmp = dojo.create("table", { innerHTML: result[i]}); $("prefFilterTestResultList").innerHTML += tmp.innerHTML; } @@ -262,11 +262,11 @@ define(["dojo/_base/declare"], function (declare) { }); }, - href: query + href: "backend.php?op=pref-filters&method=testFilterDlg" }); dojo.connect(test_dlg, "onLoad", null, function (e) { - test_dlg.getTestResults(query, 0); + test_dlg.getTestResults(params, 0); }); test_dlg.show(); @@ -296,9 +296,7 @@ define(["dojo/_base/declare"], function (declare) { title: __("Create Filter"), style: "width: 600px", test: function () { - const query = "backend.php?" + dojo.formToQuery("filter_new_form") + "&savemode=test"; - - Filters.editFilterTest(query); + Filters.editFilterTest(dojo.formToObject("filter_new_form")); }, selectRules: function (select) { Lists.select("filterDlg_Matches", select); diff --git a/js/PrefFilterTree.js b/js/PrefFilterTree.js index a7c7464fb..5fe0714c0 100644 --- a/js/PrefFilterTree.js +++ b/js/PrefFilterTree.js @@ -149,9 +149,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree"], functio style: "width: 600px", test: function () { - const query = "backend.php?" + dojo.formToQuery("filter_edit_form") + "&savemode=test"; - - Filters.editFilterTest(query); + Filters.editFilterTest(dojo.formToObject("filter_edit_form")); }, selectRules: function (select) { Lists.select("filterDlg_Matches", select);