mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2025-12-13 22:45:56 +00:00
catchup in category view mode jumps to the next unread category
This commit is contained in:
47
feedlist.js
47
feedlist.js
@@ -135,22 +135,41 @@ function viewfeed(feed, subop, is_cat, subop_param, skip_history, offset) {
|
|||||||
|
|
||||||
if (subop == "MarkAllRead") {
|
if (subop == "MarkAllRead") {
|
||||||
|
|
||||||
var feedlist = document.getElementById('feedList');
|
|
||||||
|
|
||||||
var next_unread_feed = getRelativeFeedId(feedlist,
|
|
||||||
feed, "next", true);
|
|
||||||
|
|
||||||
if (!next_unread_feed) {
|
|
||||||
next_unread_feed = getRelativeFeedId(feedlist,
|
|
||||||
-3, "next", true);
|
|
||||||
}
|
|
||||||
|
|
||||||
var show_next_feed = getInitParam("on_catchup_show_next_feed") == "1";
|
var show_next_feed = getInitParam("on_catchup_show_next_feed") == "1";
|
||||||
|
|
||||||
if (next_unread_feed && show_next_feed && !activeFeedIsCat()) {
|
if (show_next_feed) {
|
||||||
query = query + "&nuf=" + param_escape(next_unread_feed);
|
|
||||||
//setActiveFeedId(next_unread_feed);
|
if (!activeFeedIsCat()) {
|
||||||
feed = next_unread_feed;
|
|
||||||
|
var feedlist = document.getElementById('feedList');
|
||||||
|
|
||||||
|
var next_unread_feed = getRelativeFeedId(feedlist,
|
||||||
|
feed, "next", true);
|
||||||
|
|
||||||
|
if (!next_unread_feed) {
|
||||||
|
next_unread_feed = getRelativeFeedId(feedlist,
|
||||||
|
-3, "next", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (next_unread_feed) {
|
||||||
|
query = query + "&nuf=" + param_escape(next_unread_feed);
|
||||||
|
//setActiveFeedId(next_unread_feed);
|
||||||
|
feed = next_unread_feed;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
|
||||||
|
var next_unread_feed = getNextUnreadCat(feed);
|
||||||
|
|
||||||
|
/* we don't need to specify that our next feed is actually
|
||||||
|
a category, because we're in the is_cat mode by definition
|
||||||
|
already */
|
||||||
|
|
||||||
|
if (next_unread_feed && show_next_feed) {
|
||||||
|
query = query + "&nuf=" + param_escape(next_unread_feed);
|
||||||
|
feed = next_unread_feed;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
34
functions.js
34
functions.js
@@ -1035,6 +1035,40 @@ function toggleSelectRow(sender) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getNextUnreadCat(id) {
|
||||||
|
try {
|
||||||
|
var rows = document.getElementById("feedList").getElementsByTagName("LI");
|
||||||
|
var feeds = new Array();
|
||||||
|
|
||||||
|
var unread_only = true;
|
||||||
|
var is_cat = true;
|
||||||
|
|
||||||
|
for (var i = 0; i < rows.length; i++) {
|
||||||
|
if (rows[i].id.match("FCAT-")) {
|
||||||
|
if (rows[i].id == "FCAT-" + id && is_cat || (Element.visible(rows[i]) && Element.visible(rows[i].parentNode))) {
|
||||||
|
|
||||||
|
var cat_id = parseInt(rows[i].id.replace("FCAT-", ""));
|
||||||
|
|
||||||
|
if (cat_id >= 0) {
|
||||||
|
if (!unread_only || get_cat_unread(cat_id) > 0) {
|
||||||
|
feeds.push(cat_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var idx = feeds.indexOf(id);
|
||||||
|
if (idx != -1 && idx < feeds.length) {
|
||||||
|
return feeds[idx+1];
|
||||||
|
} else {
|
||||||
|
return feeds.shift();
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (e) {
|
||||||
|
exception_error("getNextUnreadCat", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function getRelativeFeedId2(id, is_cat, direction, unread_only) {
|
function getRelativeFeedId2(id, is_cat, direction, unread_only) {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ function headlines_callback2(transport, active_feed_id, is_cat, feed_cur_page) {
|
|||||||
if (is_cat != undefined) {
|
if (is_cat != undefined) {
|
||||||
active_feed_is_cat = is_cat;
|
active_feed_is_cat = is_cat;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!is_cat) {
|
if (!is_cat) {
|
||||||
var feedr = document.getElementById("FEEDR-" + active_feed_id);
|
var feedr = document.getElementById("FEEDR-" + active_feed_id);
|
||||||
if (feedr && !feedr.className.match("Selected")) {
|
if (feedr && !feedr.className.match("Selected")) {
|
||||||
|
|||||||
Reference in New Issue
Block a user