var offset = 0;
var view_mode = document.forms["main_toolbar_form"].view_mode.value;
- var num_unread = getFeedUnread(getActiveFeedId(), activeFeedIsCat());
var unread_in_buffer = $$("#headlines-frame > div[id*=RROW][class*=Unread]").length;
var num_all = $$("#headlines-frame > div[id*=RROW]").length;
+ var num_unread = getFeedUnread(getActiveFeedId(), activeFeedIsCat());
// TODO implement marked & published
console.warn("loadMoreHeadlines: published is not implemented, falling back.");
offset = num_all;
} else if (view_mode == "unread") {
- offset = num_unread;
+ offset = unread_in_buffer;
+ } else if (_search_query) {
+ offset = num_all;
} else if (view_mode == "adaptive") {
if (num_unread > 0)
offset = unread_in_buffer;
offset = num_all;
}
+ console.log("offset: " + offset);
+
viewfeed(getActiveFeedId(), '', activeFeedIsCat(), offset, false, true);
} catch (e) {
} else {
cached_headlines = cache_get("feed:" + feed + ":" + is_cat);
+ if (_search_query) _search_query = false;
+
// switching to a different feed, we might as well catchup stuff visible
// in headlines buffer (if any)
// disabled for now because this behavior is considered confusing -fox
if (_search_query) {
force_nocache = true;
query = query + "&" + _search_query;
- _search_query = false;
+ //_search_query = false;
}
if (offset != 0) {
displayNewContentPrompt(id);
}
- if (getFeedUnread(id, (kind == "cat")) != ctr)
+ if (getFeedUnread(id, (kind == "cat")) != ctr ||
+ (kind == "cat" && getCatParam(id) != child_unread)) {
+
cache_delete("feed:" + id + ":" + (kind == "cat"));
+ }
setFeedUnread(id, (kind == "cat"), ctr);
}
}
+function getCatParam(cat) {
+ try {
+ return getFeedValue(cat, true, "child_unread");
+ } catch (e) {
+ //
+ }
+}
+
function selectFeed(feed, is_cat) {
try {
function decrementFeedCounter(feed, is_cat) {
try {
+ // we have subcats, no way to figure out if this article is
+ // actually from this category
+ if (is_cat && getCatParam(feed) > 0)
+ return;
+
var ctr = getFeedUnread(feed, is_cat);
if (ctr > 0) {