]> git.wh0rd.org - tt-rss.git/commitdiff
implement search in pref-feeds (closes #332)
authorAndrew Dolgov <fox@madoka.volgo-balt.ru>
Wed, 20 Apr 2011 09:32:40 +0000 (13:32 +0400)
committerAndrew Dolgov <fox@madoka.volgo-balt.ru>
Wed, 20 Apr 2011 09:32:40 +0000 (13:32 +0400)
modules/pref-feeds.php
prefs.js

index c95e039cde917ba51d4c545cb52c4e94dca4f7ca..f496c782f278cbf154447cf24a918a93d35edbea 100644 (file)
 
                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();
                                        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();
 
                print "<div dojoType=\"dijit.Toolbar\">";
 
+               print "<div style='float : right; padding-right : 4px;'>
+                       <input dojoType=\"dijit.form.TextBox\" id=\"feed_search\" size=\"20\" type=\"search\"
+                               onchange=\"updateFeedList()\" value=\"$feed_search\">
+                       <button dojoType=\"dijit.form.Button\" onclick=\"updateFeedList()\">".
+                               __('Search')."</button>
+                       </div>";
+
                print "<div dojoType=\"dijit.form.DropDownButton\">".
                                "<span>" . __('Select')."</span>";
                print "<div dojoType=\"dijit.Menu\" style=\"display: none;\">";
index f0a9de5dbaf47dca8d72a5cbb3607fb98cfdc677..c13f0e0d41339a9c4350ef83efe10200ca5d05d2 100644 (file)
--- 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);
                } });