summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2008-05-17 03:52:46 +0100
committerAndrew Dolgov <[email protected]>2008-05-17 03:52:46 +0100
commit9c87d75cc0d72669a25f05d5888f055d799e9363 (patch)
tree69444b82b992c7664be0ab85decf6d11e488d53c
parent4bb023143bbc1330e9a37d60f367b23e685826c4 (diff)
filter prefs: add search
-rw-r--r--modules/pref-filters.php50
-rw-r--r--prefs.js7
2 files changed, 52 insertions, 5 deletions
diff --git a/modules/pref-filters.php b/modules/pref-filters.php
index 18c78da6c..ac71c96a2 100644
--- a/modules/pref-filters.php
+++ b/modules/pref-filters.php
@@ -219,8 +219,23 @@
$filter_types[$line["id"]] = $line["description"];
}
- print "<a class='helpLinkPic' href=\"javascript:displayHelpInfobox(2)\">
- <img src='images/sign_quest.gif'></a>";
+
+ $filter_search = db_escape_string($_GET["search"]);
+
+ if (array_key_exists("search", $_GET)) {
+ $_SESSION["prefs_filter_search"] = $filter_search;
+ } else {
+ $filter_search = $_SESSION["prefs_filter_search"];
+ }
+
+ print "<div class=\"feedEditSearch\">
+ <input id=\"filter_search\" size=\"20\" type=\"search\"
+ onchange=\"javascript:updateFilterList()\" value=\"$filter_search\">
+ <input type=\"submit\" class=\"button\"
+ onclick=\"javascript:updateFilterList()\" value=\"".__('Search')."\">&nbsp<a class='helpLinkPic' href=\"javascript:displayHelpInfobox(2)\">
+ <img src='images/sign_quest.gif'></a>
+ </div>";
+
print "<input type=\"submit\"
class=\"button\"
@@ -235,6 +250,17 @@
onclick=\"rescore_all_feeds()\"
value=\"".__('Rescore articles')."\">";
+ if ($filter_search) {
+ $filter_search = db_escape_string($filter_search);
+ $filter_search_query = "(
+ ttrss_filter_actions.description LIKE '%$filter_search%' OR
+ reg_exp LIKE '%$filter_search%' OR
+ ttrss_feeds.title LIKE '%$filter_search%' OR
+ ttrss_filter_types.description LIKE '%$filter_search%') AND";
+ } else {
+ $filter_search_query = "";
+ }
+
$result = db_query($link, "SELECT
ttrss_filters.id AS id,reg_exp,
ttrss_filter_types.name AS filter_type_name,
@@ -251,6 +277,7 @@
ttrss_feeds ON (ttrss_filters.feed_id = ttrss_feeds.id)
WHERE
filter_type = ttrss_filter_types.id AND
+ $filter_search_query
ttrss_filter_actions.id = action_id AND
ttrss_filters.owner_uid = ".$_SESSION["uid"]."
ORDER by action_description, $sort");
@@ -368,7 +395,14 @@
}
if ($lnum == 0) {
- print "<tr><td colspan=\"4\" align=\"center\">".__('No filters defined.')."</td></tr>";
+ print "<tr><td colspan=\"4\" align=\"center\">";
+ if (!$filter_search) {
+ print __('No filters defined.');
+ } else {
+ print __('No matching filters found.');
+ }
+
+ print "</td></tr>";
}
print "</table>";
@@ -389,7 +423,15 @@
} else {
- print "<p>".__('No filters defined.')."</p>";
+ print "<p>";
+
+ if (!$filter_search) {
+ print __('No filters defined.');
+ } else {
+ print __('No matching filters found.');
+ }
+
+ print "</p>";
}
}
diff --git a/prefs.js b/prefs.js
index 78ec548a9..b207ba2d5 100644
--- a/prefs.js
+++ b/prefs.js
@@ -1228,8 +1228,13 @@ function updateFilterList(sort_key) {
return
}
+ var filter_search = document.getElementById("filter_search");
+ var search = "";
+ if (filter_search) { search = filter_search.value; }
+
xmlhttp.open("GET", "backend.php?op=pref-filters&sort=" +
- param_escape(sort_key), true);
+ param_escape(sort_key) +
+ "&search=" + param_escape(search), true);
xmlhttp.onreadystatechange=filterlist_callback;
xmlhttp.send(null);