From 16270276cf27620d72974eb7e71f089ea8bc3bd5 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 20 Apr 2011 13:32:40 +0400 Subject: [PATCH] implement search in pref-feeds (closes #332) --- modules/pref-feeds.php | 24 +++++++++++++++++++----- prefs.js | 7 ++++++- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/modules/pref-feeds.php b/modules/pref-feeds.php index c95e039cd..f496c782f 100644 --- a/modules/pref-feeds.php +++ b/modules/pref-feeds.php @@ -36,6 +36,10 @@ if ($subop == "getfeedtree") { + $search = $_SESSION["prefs_feed_search"]; + + if ($search) $search_qpart = " AND LOWER(title) LIKE LOWER('%$search%')"; + $root = array(); $root['id'] = 'root'; $root['name'] = __('Feeds'); @@ -59,7 +63,7 @@ ".SUBSTRING_FOR_DATE."(last_updated,1,19) AS last_updated FROM ttrss_feeds WHERE cat_id = '".$line['id']."' AND owner_uid = ".$_SESSION["uid"]. - " ORDER BY order_id, title"); + "$search_qpart ORDER BY order_id, title"); while ($feed_line = db_fetch_assoc($feed_result)) { $feed = array(); @@ -75,7 +79,8 @@ array_push($cat['items'], $feed); } - array_push($root['items'], $cat); + if (count($cat['items']) > 0) + array_push($root['items'], $cat); } /* Uncategorized is a special case */ @@ -91,7 +96,7 @@ ".SUBSTRING_FOR_DATE."(last_updated,1,19) AS last_updated FROM ttrss_feeds WHERE cat_id IS NULL AND owner_uid = ".$_SESSION["uid"]. - " ORDER BY order_id, title"); + "$search_qpart ORDER BY order_id, title"); while ($feed_line = db_fetch_assoc($feed_result)) { $feed = array(); @@ -107,13 +112,15 @@ array_push($cat['items'], $feed); } - array_push($root['items'], $cat); + if (count($cat['items']) > 0) + array_push($root['items'], $cat); + } else { $feed_result = db_query($link, "SELECT id, title, last_error, ".SUBSTRING_FOR_DATE."(last_updated,1,19) AS last_updated FROM ttrss_feeds WHERE owner_uid = ".$_SESSION["uid"]. - " ORDER BY order_id, title"); + "$search_qpart ORDER BY order_id, title"); while ($feed_line = db_fetch_assoc($feed_result)) { $feed = array(); @@ -1304,6 +1311,13 @@ print "
"; + print "
+ + +
"; + print "
". "" . __('Select').""; print "
"; diff --git a/prefs.js b/prefs.js index f0a9de5db..c13f0e0d4 100644 --- a/prefs.js +++ b/prefs.js @@ -64,8 +64,13 @@ function notify_callback2(transport) { } function updateFeedList(sort_key) { + + var user_search = $("feed_search"); + var search = ""; + if (user_search) { search = user_search.value; } + new Ajax.Request("backend.php", { - parameters: "?op=pref-feeds", + parameters: "?op=pref-feeds&search=" + param_escape(search), onComplete: function(transport) { feedlist_callback2(transport); } });