summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backend.php21
-rw-r--r--feedlist.js26
2 files changed, 31 insertions, 16 deletions
diff --git a/backend.php b/backend.php
index 9746536dd..066700dc5 100644
--- a/backend.php
+++ b/backend.php
@@ -664,6 +664,7 @@
$view_mode = db_escape_string($_GET["view"]);
$limit = db_escape_string($_GET["limit"]);
$cat_view = db_escape_string($_GET["cat"]);
+ $next_unread_feed = db_escape_string($_GET["nuf"]);
if (!$skip) $skip = 0;
@@ -688,6 +689,18 @@
type=\"text/css\" href=\"tt-rss_compact.css\"/>";
}
+ if ($subop == "ForceUpdate" && sprintf("%d", $feed) > 0) {
+ update_generic_feed($link, $feed, $cat_view);
+ }
+
+ if ($subop == "MarkAllRead") {
+ catchup_feed($link, $feed, $cat_view);
+
+ if (get_pref($link, 'ON_CATCHUP_SHOW_NEXT_FEED')) {
+ $feed = $next_unread_feed;
+ }
+ }
+
if (preg_match("/^-?[0-9][0-9]*$/", $feed) != false) {
$result = db_query($link, "SELECT rtl_content FROM ttrss_feeds
@@ -726,14 +739,6 @@
window.onload = init;
</script>";
- if ($subop == "ForceUpdate" && sprintf("%d", $feed) > 0) {
- update_generic_feed($link, $feed, $cat_view);
- }
-
- if ($subop == "MarkAllRead") {
- catchup_feed($link, $feed, $cat_view);
- }
-
$search = db_escape_string($_GET["search"]);
$search_mode = db_escape_string($_GET["smode"]);
diff --git a/feedlist.js b/feedlist.js
index 7bdf63a06..f1038d613 100644
--- a/feedlist.js
+++ b/feedlist.js
@@ -28,7 +28,7 @@ function viewCategory(cat) {
viewfeed(cat, 0, '', false, true);
}
-function viewfeed(feed, skip, subop, doc, is_cat) {
+function viewfeed(feed, skip, subop, doc, is_cat, subop_param) {
try {
if (!doc) doc = parent.document;
@@ -91,9 +91,14 @@ function viewfeed(feed, skip, subop, doc, is_cat) {
}
setActiveFeedId(feed);
+
+ var query = "backend.php?op=viewfeed&feed=" + param_escape(feed) +
+ "&skip=" + param_escape(skip) + "&subop=" + param_escape(subop) +
+ "&view=" + param_escape(view_mode) + "&limit=" + limit +
+ "&smode=" + param_escape(search_mode);
if (subop == "MarkAllRead") {
-
+
var feedr = document.getElementById("FEEDR-" + feed);
var feedctr = document.getElementById("FEEDCTR-" + feed);
@@ -105,13 +110,18 @@ function viewfeed(feed, skip, subop, doc, is_cat) {
feedr.className = feedr.className.replace("Unread", "");
}
}
+
+ var feedlist = document.getElementById('feedList');
+
+ var next_unread_feed = getRelativeFeedId(feedlist,
+ getActiveFeedId(), "next", true);
+
+ if (next_unread_feed) {
+ query = query + "&nuf=" + param_escape(next_unread_feed);
+ setActiveFeedId(next_unread_feed);
+ }
}
- var query = "backend.php?op=viewfeed&feed=" + param_escape(feed) +
- "&skip=" + param_escape(skip) + "&subop=" + param_escape(subop) +
- "&view=" + param_escape(view_mode) + "&limit=" + limit +
- "&smode=" + param_escape(search_mode);
-
if (search_query != "") {
query = query + "&search=" + param_escape(search_query);
searchbox.value = "";
@@ -137,7 +147,7 @@ function viewfeed(feed, skip, subop, doc, is_cat) {
// cleanSelectedList("feedList");
- var feedr = document.getElementById("FEEDR-" + feed);
+ var feedr = document.getElementById("FEEDR-" + getActiveFeedId());
if (feedr && !feedr.className.match("Selected")) {
feedr.className = feedr.className + "Selected";
}