}
-function viewfeed(feed, subop, is_cat, offset, background, infscrol_req) {
+function viewfeed(feed, subop, is_cat, offset, background, infscroll_req) {
try {
if (is_cat == undefined)
is_cat = false;
if (subop == undefined) subop = '';
if (offset == undefined) offset = 0;
if (background == undefined) background = false;
- if (infscrol_req == undefined) infscrol_req = false;
+ if (infscroll_req == undefined) infscroll_req = false;
last_requested_article = 0;
var cached_headlines = false;
- if (feed == getActiveFeedId())
+ if (feed == getActiveFeedId()) {
cache_delete("feed:" + feed + ":" + is_cat);
- else
+ } else {
cached_headlines = cache_get("feed:" + feed + ":" + is_cat);
- if (offset == 0)
+ // switching to a different feed, we might as well catchup stuff visible
+ // in headlines buffer (if any)
+ if (!background && getInitParam("cdm_auto_catchup") == 1 && parseInt(getActiveFeedId()) > 0) {
+
+ $$("#headlines-frame > div[id*=RROW][class*=Unread]").each(
+ function(child) {
+ var hf = $("headlines-frame");
+
+ if (hf.scrollTop + hf.offsetHeight >=
+ child.offsetTop + child.offsetHeight) {
+
+ var id = child.id.replace("RROW-", "");
+
+ if (catchup_id_batch.indexOf(id) == -1)
+ catchup_id_batch.push(id);
+
+ }
+
+ if (catchup_id_batch.length > 0) {
+ window.clearTimeout(catchup_timeout_id);
+
+ if (!_infscroll_request_sent) {
+ catchup_timeout_id = window.setTimeout('catchupBatchedArticles()',
+ 2000);
+ }
+ }
+
+ });
+ }
+ }
+
+ if (offset == 0 && !background)
dijit.byId("content-tabs").selectChild(
dijit.byId("content-tabs").getChildren()[0]);
- var force_nocache = false;
-
if (!background) {
if (getActiveFeedId() != feed || offset == 0) {
active_post_id = 0;
parameters: query,
onComplete: function(transport) {
setFeedExpandoIcon(feed, is_cat, 'images/blank_icon.gif');
- headlines_callback2(transport, offset, background, infscrol_req);
+ headlines_callback2(transport, offset, background, infscroll_req);
} });
} catch (e) {
function parse_counters(elems, scheduled_call) {
try {
-
- var feeds_found = 0;
-
for (var l = 0; l < elems.length; l++) {
- var id = elems[l].id
+ var id = elems[l].id;
var kind = elems[l].kind;
- var ctr = parseInt(elems[l].counter)
+ var ctr = parseInt(elems[l].counter);
var error = elems[l].error;
var has_img = elems[l].has_img;
var updated = elems[l].updated;
- var title = elems[l].title;
if (id == "global-unread") {
global_unread = ctr;
continue;
}
- var treeItem;
-
// TODO: enable new content notification for categories
if (!activeFeedIsCat() && id == getActiveFeedId()
}
}
+function catchupFeed(feed, is_cat) {
+ try {
+ var str = __("Mark all articles in %s as read?");
+ var fn = getFeedName(getActiveFeedId(), activeFeedIsCat());
+
+ str = str.replace("%s", fn);
+
+ if (getInitParam("confirm_feed_catchup") == 1 && !confirm(str)) {
+ return;
+ }
+
+ var catchup_query = "?op=rpc&subop=catchupFeed&feed_id=" +
+ feed + "&is_cat=" + is_cat;
+
+ notify_progress("Loading, please wait...", true);
+
+ new Ajax.Request("backend.php", {
+ parameters: catchup_query,
+ onComplete: function(transport) {
+ handle_rpc_json(transport);
+ notify("");
+ } });
+
+ } catch (e) {
+ exception_error("catchupFeed", e);
+ }
+}