summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--functions.js15
-rw-r--r--modules/backend-rpc.php3
-rw-r--r--modules/pref-feeds.php158
-rw-r--r--prefs.js6
-rw-r--r--tt-rss.js8
5 files changed, 124 insertions, 66 deletions
diff --git a/functions.js b/functions.js
index 3c7971558..5228995cd 100644
--- a/functions.js
+++ b/functions.js
@@ -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) {
diff --git a/modules/backend-rpc.php b/modules/backend-rpc.php
index 8b1252127..87178935c 100644
--- a/modules/backend-rpc.php
+++ b/modules/backend-rpc.php
@@ -556,11 +556,12 @@
$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\"/>";
diff --git a/modules/pref-feeds.php b/modules/pref-feeds.php
index 4c9ed19a9..a3f1a472f 100644
--- a/modules/pref-feeds.php
+++ b/modules/pref-feeds.php
@@ -13,6 +13,7 @@
$subop = $_REQUEST["subop"];
$quiet = $_REQUEST["quiet"];
+ $mode = $_REQUEST["mode"];
if ($subop == "massSubscribe") {
$ids = split(",", db_escape_string($_REQUEST["ids"]));
@@ -20,22 +21,34 @@
$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);
}
}
@@ -68,11 +81,13 @@
//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\">
@@ -80,14 +95,23 @@
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')."\">";
@@ -1135,7 +1159,7 @@
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"]);
@@ -1470,7 +1494,7 @@
}
- function print_feed_browser($link, $search, $limit) {
+ function print_feed_browser($link, $search, $limit, $mode = 1) {
$owner_uid = $_SESSION["uid"];
@@ -1481,51 +1505,85 @@
$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) {
diff --git a/prefs.js b/prefs.js
index 20277a462..36665532e 100644
--- 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,
diff --git a/tt-rss.js b/tt-rss.js
index 27432be75..88a41afef 100644
--- 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,