var _infscroll_disable = 0;
var _infscroll_request_sent = 0;
var _search_query = false;
+var _viewfeed_last = 0;
var counter_timeout_id = false;
var offset = 0;
var view_mode = document.forms["main_toolbar_form"].view_mode.value;
- var num_unread = $$("#headlines-frame > div[id*=RROW][class*=Unread]").length;
+ 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 = num_unread;
+ offset = unread_in_buffer;
else
offset = num_all;
} else {
offset = num_all;
}
+ console.log("offset: " + offset);
+
viewfeed(getActiveFeedId(), '', activeFeedIsCat(), offset, false, true);
} catch (e) {
var cached_headlines = false;
- if (feed == getActiveFeedId()) {
+ if (feed == getActiveFeedId() && activeFeedIsCat() == is_cat) {
cache_delete("feed:" + feed + ":" + is_cat);
} 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
dijit.byId("content-tabs").getChildren()[0]);
if (!background) {
+ _viewfeed_last = get_timestamp();
+
if (getActiveFeedId() != feed || offset == 0) {
active_post_id = 0;
_infscroll_disable = 0;
}
if (offset != 0 && !method) {
- var date = new Date();
- var timestamp = Math.round(date.getTime() / 1000);
+ var timestamp = get_timestamp();
if (_infscroll_request_sent && _infscroll_request_sent + 30 > timestamp) {
//console.log("infscroll request in progress, aborting");
if (_search_query) {
force_nocache = true;
query = query + "&" + _search_query;
- _search_query = false;
+ //_search_query = false;
}
if (offset != 0) {
}
query += "&cat=" + is_cat;
- query += "&include_children=" + dijit.byId("include_children").attr("checked");
console.log(query);
hideOrShowFeeds(getInitParam("hide_read_feeds") == 1);
setTimeout("timeout()", 5000);
- setTimeout("precache_headlines_idle()", 3000);
+ setTimeout("precache_headlines_idle()", 15000);
} catch (e) {
exception_error("feedlist/init", e);
try {
- if (getInitParam("bw_limit") == "1") return;
+ //if (getInitParam("bw_limit") == "1") return;
var date = new Date();
var timestamp = Math.round(date.getTime() / 1000);
var error = elems[l].error;
var has_img = elems[l].has_img;
var updated = elems[l].updated;
- var child_unread = parseInt(elems[l].child_counter);
if (id == "global-unread") {
global_unread = ctr;
displayNewContentPrompt(id);
}
- if (getFeedUnread(id, (kind == "cat")) != ctr)
+ if (getFeedUnread(id, (kind == "cat")) != ctr ||
+ (kind == "cat")) {
+
cache_delete("feed:" + id + ":" + (kind == "cat"));
+ }
setFeedUnread(id, (kind == "cat"), ctr);
setFeedIcon(id, false, 'images/blank_icon.gif');
}
}
- } else {
- setCatParam(id, child_unread);
}
}
}
}
-function setCatParam(cat, value) {
- try {
- var tree = dijit.byId("feedTree");
-
- if (tree && tree.model)
- return tree.setCatParam(cat, value);
-
- } catch (e) {
- //
- }
-}
-
-
function selectFeed(feed, is_cat) {
try {
var tree = dijit.byId("feedTree");