diff options
-rwxr-xr-x | classes/pref/filters.php | 35 | ||||
-rw-r--r-- | js/CommonDialogs.js | 2 | ||||
-rw-r--r-- | js/CommonFilters.js | 22 | ||||
-rw-r--r-- | js/PrefFilterTree.js | 4 |
4 files changed, 24 insertions, 39 deletions
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() { + ?> + <div> + <img id='prefFilterLoadingIndicator' src='images/indicator_tiny.gif'> + <span id='prefFilterProgressMsg'>Looking for articles...</span> + </div> - if (isset($_REQUEST["offset"])) return $this->testFilterDo(); - - //print __("Articles matching this filter:"); - - print "<div><img id='prefFilterLoadingIndicator' src='images/indicator_tiny.gif'> <span id='prefFilterProgressMsg'>Looking for articles...</span></div>"; - - print "<ul class='panel panel-scrollable list list-unstyled' id='prefFilterTestResultList'>"; - print "</ul>"; - - print "<footer class='text-center'>"; - print "<button dojoType='dijit.form.Button' onclick=\"dijit.byId('filterTestDlg').hide()\">". - __('Close this window')."</button>"; - print "</footer>"; + <ul class='panel panel-scrollable list list-unstyled' id='prefFilterTestResultList'></ul> + <footer class='text-center'> + <button dojoType='dijit.form.Button' onclick="dijit.byId('filterTestDlg').hide()"><?php echo __('Close this window') ?></button> + </footer> + <?php } private function getfilterrules_list($filter_id) { @@ -600,10 +597,6 @@ class Pref_Filters extends Handler_Protected { } function editSave() { - if (clean($_REQUEST["savemode"] && $_REQUEST["savemode"]) == "test") { - return $this->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); |