]> git.wh0rd.org Git - tt-rss.git/commitdiff
feed browser: add access to archived feeds
authorAndrew Dolgov <fox@bah.org.ru>
Mon, 11 Jan 2010 12:40:35 +0000 (15:40 +0300)
committerAndrew Dolgov <fox@bah.org.ru>
Mon, 11 Jan 2010 12:40:35 +0000 (15:40 +0300)
functions.js
modules/backend-rpc.php
modules/pref-feeds.php
prefs.js
tt-rss.js

index 3c7971558e5eecc61fcc5bc262fbb7092b689e2e..5228995cd6b26194cbbad1a21fa7b64bb47ccf75 100644 (file)
@@ -2051,18 +2051,9 @@ function getSelectedFeedsFromBrowser() {
 function updateFeedBrowser() {
        try {
 
-               var query = "?op=rpc&subop=feedBrowser";
+               var options = Form.serialize("feed_browser");
 
-               var search = $("feed_browser_search");
-               var limit = $("feed_browser_limit");
-
-               if (limit) {
-                       query = query + "&limit=" + limit[limit.selectedIndex].value;
-               }
-
-               if (search) {
-                       query = query + "&search=" + param_escape(search.value);
-               }
+               var query = "?op=rpc&subop=feedBrowser&" + options;
 
                //notify_progress("Loading, please wait...", true);
 
@@ -2094,10 +2085,10 @@ function updateFeedBrowser() {
 
                        } });
 
-
        } catch (e) {
                exception_error("updateFeedBrowser", e);
        }
+
 }
 
 function browseFeeds(limit) {
index 8b125212756c432187a6491764fd2825f034b750..87178935c0518678647b77b803fdcc3fe72ed47e 100644 (file)
 
                        $search = db_escape_string($_REQUEST["search"]);
                        $limit = db_escape_string($_REQUEST["limit"]);
+                       $mode = db_escape_string($_REQUEST["mode"]);
 
                        print "<rpc-reply>";
                        print "<content>";
                        print "<![CDATA[";
-                       $ctr = print_feed_browser($link, $search, $limit);
+                       $ctr = print_feed_browser($link, $search, $limit, $mode);
                        print "]]>";
                        print "</content>";
                        print "<num-results value=\"$ctr\"/>";
index 4c9ed19a9a959ad7cdffccf5fb55337597ed1f44..a3f1a472f60d551c8cd6dd406a2388ac54fb8e48 100644 (file)
@@ -13,6 +13,7 @@
 
                $subop = $_REQUEST["subop"];
                $quiet = $_REQUEST["quiet"];
+               $mode = $_REQUEST["mode"];
 
                if ($subop == "massSubscribe") {
                        $ids = split(",", db_escape_string($_REQUEST["ids"]));
                        $subscribed = array();
 
                        foreach ($ids as $id) {
-                               $result = db_query($link, "SELECT feed_url,title FROM ttrss_feeds
-                                       WHERE id = '$id'");
 
+                               if ($mode == 1) {
+                                       $result = db_query($link, "SELECT feed_url,title FROM ttrss_feeds
+                                               WHERE id = '$id'");
+                               } else if ($mode == 2) {
+                                       $result = db_query($link, "SELECT id,feed_url,title FROM ttrss_archived_feeds
+                                               WHERE id = '$id' AND owner_uid = " . $_SESSION["uid"]);
+                                       $orig_id = db_escape_string(db_fetch_result($result, 0, "id"));
+                               }
+       
                                $feed_url = db_escape_string(db_fetch_result($result, 0, "feed_url"));
                                $title = db_escape_string(db_fetch_result($result, 0, "title"));
-
+       
                                $title_orig = db_fetch_result($result, 0, "title");
-
+       
                                $result = db_query($link, "SELECT id FROM ttrss_feeds WHERE
-                                       feed_url = '$feed_url' AND owner_uid = " . $_SESSION["uid"]);
-
+                                               feed_url = '$feed_url' AND owner_uid = " . $_SESSION["uid"]);
+       
                                if (db_num_rows($result) == 0) {                        
-                                       $result = db_query($link,
-                                               "INSERT INTO ttrss_feeds (owner_uid,feed_url,title,cat_id) 
-                                               VALUES ('".$_SESSION["uid"]."', '$feed_url', '$title', NULL)");
-
+                                       if ($mode == 1) {
+                                               $result = db_query($link,
+                                                       "INSERT INTO ttrss_feeds (owner_uid,feed_url,title,cat_id) 
+                                                       VALUES ('".$_SESSION["uid"]."', '$feed_url', '$title', NULL)");
+                                       } else if ($mode == 2) {
+                                               $result = db_query($link,
+                                                       "INSERT INTO ttrss_feeds (id,owner_uid,feed_url,title,cat_id) 
+                                                       VALUES ('$orig_id','".$_SESSION["uid"]."', '$feed_url', '$title', NULL)");
+                                       }
                                        array_push($subscribed, $title_orig);
                                }
                        }
 
                        //print "<p>".__("Showing top 25 registered feeds, sorted by popularity:")."</p>";
 
+                       print "<form onsubmit='return false;' display='inline' name='feed_browser' id='feed_browser'>";
+
                        print "
                                <div style='float : right'>
                                <img style='display : none' 
                                        id='feed_browser_spinner' src='images/indicator_white.gif'>
-                               <input id=\"feed_browser_search\" size=\"20\" type=\"search\"
+                               <input name=\"search\" size=\"20\" type=\"search\"
                                onfocus=\"javascript:disableHotkeys();\" 
                                onblur=\"javascript:enableHotkeys();\"
                                onchange=\"javascript:updateFeedBrowser()\" value=\"$browser_search\">
                                onclick=\"javascript:updateFeedBrowser()\" value=\"".__('Search')."\">
                        </div>";
 
-                       print __('Top')." <select id=\"feed_browser_limit\">";
+                       print " <select name=\"mode\" onchange=\"updateFeedBrowser()\">
+                               <option value='1'>" . __('Popular feeds') . "</option>
+                               <option value='2'>" . __('Feed archive') . "</option>
+                               </select> ";
+
+                       print __("limit:");
+
+                       print " <select name=\"limit\">";
 
                        foreach (array(25, 50, 100, 200) as $l) {
                                $issel = ($l == $limit) ? "selected" : "";
                                print "<option $issel>$l</option>";
                        }
                        
-                       print "</select>
+                       print "</select> ";
+
+                       print "
                                <input type=\"submit\" class=\"button\"
                                        onclick=\"updateFeedBrowser()\" value=\"".__('Show')."\">";
 
                if (ENABLE_FEED_BROWSER && !SINGLE_USER_MODE) {
                        print " <input type=\"submit\" class=\"button\"
                                id=\"top25_feeds_btn\"
-                               onclick=\"javascript:browseFeeds()\" value=\"".__('More Feeds')."\">";
+                               onclick=\"javascript:browseFeeds()\" value=\"".__('More feeds')."\">";
                }
 
                $feeds_sort = db_escape_string($_REQUEST["sort"]);
 
        }
 
-       function print_feed_browser($link, $search, $limit) {
+       function print_feed_browser($link, $search, $limit, $mode = 1) {
 
                        $owner_uid = $_SESSION["uid"];
 
                                $search_qpart = "";
                        }
 
-                       $result = db_query($link, "SELECT feed_url, subscribers FROM
-                               ttrss_feedbrowser_cache WHERE (SELECT COUNT(id) = 0 FROM ttrss_feeds AS tf
-                               WHERE tf.feed_url = ttrss_feedbrowser_cache.feed_url
-                               AND owner_uid = '$owner_uid') $search_qpart 
-                               ORDER BY subscribers DESC LIMIT $limit");
+                       if ($mode == 1) {
+                               $result = db_query($link, "SELECT feed_url, subscribers FROM
+                                       ttrss_feedbrowser_cache WHERE (SELECT COUNT(id) = 0 FROM ttrss_feeds AS tf
+                                       WHERE tf.feed_url = ttrss_feedbrowser_cache.feed_url
+                                       AND owner_uid = '$owner_uid') $search_qpart 
+                                       ORDER BY subscribers DESC LIMIT $limit");
+                       } else if ($mode == 2) {
+                               $result = db_query($link, "SELECT * FROM
+                                       ttrss_archived_feeds WHERE 
+                                       (SELECT COUNT(*) FROM ttrss_feeds 
+                                               WHERE ttrss_feeds.feed_url = ttrss_archived_feeds.feed_url AND
+                                                       owner_uid = '$owner_uid') = 0   AND                                     
+                                       owner_uid = '$owner_uid' $search_qpart 
+                                       ORDER BY id DESC LIMIT $limit");
+                       }
 
                        $feedctr = 0;
                        
                        while ($line = db_fetch_assoc($result)) {
-                               $feed_url = $line["feed_url"];
-                               $subscribers = $line["subscribers"];
-
-                               $det_result = db_query($link, "SELECT site_url,title,id 
-                                       FROM ttrss_feeds WHERE feed_url = '$feed_url' LIMIT 1");
 
-                               $details = db_fetch_assoc($det_result);
-                       
-                               $icon_file = ICONS_DIR . "/" . $details["id"] . ".ico";
-
-                               if (file_exists($icon_file) && filesize($icon_file) > 0) {
-                                               $feed_icon = "<img class=\"tinyFeedIcon\"       src=\"" . ICONS_URL . 
-                                                       "/".$details["id"].".ico\">";
-                               } else {
-                                       $feed_icon = "<img class=\"tinyFeedIcon\" src=\"images/blank_icon.gif\">";
-                               }
+                               if ($mode == 1) {
 
-                               $check_box = "<input onclick='toggleSelectListRow(this)' class='feedBrowseCB' 
-                                       type=\"checkbox\" id=\"FBCHK-" . $details["id"] . "\">";
+                                       $feed_url = $line["feed_url"];
+                                       $subscribers = $line["subscribers"];
+       
+                                       $det_result = db_query($link, "SELECT site_url,title,id 
+                                               FROM ttrss_feeds WHERE feed_url = '$feed_url' LIMIT 1");
+       
+                                       $details = db_fetch_assoc($det_result);
+                               
+                                       $icon_file = ICONS_DIR . "/" . $details["id"] . ".ico";
+       
+                                       if (file_exists($icon_file) && filesize($icon_file) > 0) {
+                                                       $feed_icon = "<img class=\"tinyFeedIcon\"       src=\"" . ICONS_URL . 
+                                                               "/".$details["id"].".ico\">";
+                                       } else {
+                                               $feed_icon = "<img class=\"tinyFeedIcon\" src=\"images/blank_icon.gif\">";
+                                       }
+       
+                                       $check_box = "<input onclick='toggleSelectListRow(this)' class='feedBrowseCB' 
+                                               type=\"checkbox\" id=\"FBCHK-" . $details["id"] . "\">";
+       
+                                       $class = ($feedctr % 2) ? "even" : "odd";
+       
+                                       if ($details["site_url"]) {
+                                               $site_url = "<a target=\"_blank\" href=\"".$details["site_url"]."\">
+                                                       <img style='border-width : 0px' src='images/www.png' alt='www'></a>";
+                                       } else {
+                                               $site_url = "";
+                                       }
+       
+                                       print "<li class='$class' id=\"FBROW-".$details["id"]."\">$check_box".
+                                               "$feed_icon " . $details["title"] . 
+                                               "&nbsp;<span class='subscribers'>($subscribers)</span>
+                                               $site_url
+                                               </li>";
+       
+                               } else if ($mode == 2) {
+                                       $feed_url = $line["feed_url"];
+       
+                                       $check_box = "<input onclick='toggleSelectListRow(this)' class='feedBrowseCB' 
+                                               type=\"checkbox\" id=\"FBCHK-" . $line["id"] . "\">";
+       
+                                       $class = ($feedctr % 2) ? "even" : "odd";
+       
+                                       if ($line["site_url"]) {
+                                               $site_url = "<a target=\"_blank\" href=\"".$line["site_url"]."\">
+                                                       <img style='border-width : 0px' src='images/www.png' alt='www'></a>";
+                                       } else {
+                                               $site_url = "";
+                                       }
+       
+                                       print "<li class='$class' id=\"FBROW-".$line["id"]."\">$check_box".
+                                               $line["title"] . $site_url . "</li>";
 
-                               $class = ($feedctr % 2) ? "even" : "odd";
 
-                               if ($details["site_url"]) {
-                                       $site_url = "<a target=\"_blank\" href=\"".$details["site_url"]."\">
-                                               <img style='border-width : 0px' src='images/www.png' alt='www'></a>";
-                               } else {
-                                       $site_url = "";
                                }
 
-                               print "<li class='$class' id=\"FBROW-".$details["id"]."\">$check_box".
-                                       "$feed_icon " . $details["title"] . 
-                                       "&nbsp;<span class='subscribers'>($subscribers)</span>
-                                       $site_url
-                                       </li>";
-
-                                       ++$feedctr;
+                               ++$feedctr;
                        }
 
                        if ($feedctr == 0) {
index 20277a462793638ed21ad264e89067fd3445500a..36665532e315e95597e546a4c02b83a22d5d4b86 100644 (file)
--- a/prefs.js
+++ b/prefs.js
@@ -1318,11 +1318,15 @@ function feedBrowserSubscribe() {
 
                var selected = getSelectedFeedsFromBrowser();
 
+               var mode = document.forms['feed_browser'].mode;
+
+               mode = mode[mode.selectedIndex].value;
+
                if (selected.length > 0) {
                        closeInfoBox();
 
                        var query = "?op=pref-feeds&subop=massSubscribe&ids="+
-                               param_escape(selected.toString());
+                               param_escape(selected.toString()) + "&mode=" + param_escape(mode);
 
                        new Ajax.Request("backend.php", {
                                parameters: query,
index 27432be752a58ceea760faf254e919046a6df6bc..88a41afef83e5b9ef27e5f26413b0f28329ababe 100644 (file)
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -1493,13 +1493,17 @@ function feedBrowserSubscribe() {
 
                var selected = getSelectedFeedsFromBrowser();
 
+               var mode = document.forms['feed_browser'].mode;
+
+               mode = mode[mode.selectedIndex].value;
+
                if (selected.length > 0) {
                        closeInfoBox();
 
                        notify_progress("Loading, please wait...", true);
 
-                       var query =  "backend.php?op=pref-feeds&subop=massSubscribe&ids="+
-                               param_escape(selected.toString());
+                       var query = "?op=pref-feeds&subop=massSubscribe&ids="+
+                               param_escape(selected.toString()) + "&mode=" + param_escape(mode);
 
                        new Ajax.Request("backend.php", {
                                parameters: query,