diff options
Diffstat (limited to 'js/viewfeed.js')
-rwxr-xr-x | js/viewfeed.js | 54 |
1 files changed, 17 insertions, 37 deletions
diff --git a/js/viewfeed.js b/js/viewfeed.js index f40caca50..bc6ed32da 100755 --- a/js/viewfeed.js +++ b/js/viewfeed.js @@ -5,28 +5,20 @@ let _active_article_id = 0; let vgroup_last_feed = false; let post_under_pointer = false; -let last_requested_article = 0; - let catchup_id_batch = []; //let catchup_timeout_id = false; //let cids_requested = []; let loaded_article_ids = []; -let _last_headlines_update = 0; let current_first_id = 0; let last_search_query; -let _catchup_request_sent = false; - let has_storage = 'sessionStorage' in window && window['sessionStorage'] !== null; -function headlines_callback2(transport, offset, background, infscroll_req) { +function headlines_callback2(transport, offset) { const reply = handle_rpc_json(transport); - console.log("headlines_callback2 [offset=" + offset + "] B:" + background + " I:" + infscroll_req); - - if (background) - return; + console.log("headlines_callback2, offset=", offset); let is_cat = false; let feed_id = false; @@ -41,7 +33,7 @@ function headlines_callback2(transport, offset, background, infscroll_req) { return; try { - if (infscroll_req == false) { + if (offset == 0) { $("headlines-frame").scrollTop = 0; Element.hide("floatingTitle"); @@ -56,18 +48,14 @@ function headlines_callback2(transport, offset, background, infscroll_req) { $("headlines-frame").addClassName(isCombinedMode() ? "cdm" : "normal"); const headlines_count = reply['headlines-info']['count']; + infscroll_disabled = parseInt(headlines_count) != 30; - vgroup_last_feed = reply['headlines-info']['vgroup_last_feed']; - - if (parseInt(headlines_count) < 30) { - _infscroll_disable = 1; - } else { - _infscroll_disable = 0; - } + console.log('received', headlines_count, 'headlines, infscroll disabled=', infscroll_disabled); + vgroup_last_feed = reply['headlines-info']['vgroup_last_feed']; current_first_id = reply['headlines']['first_id']; - if (infscroll_req == false) { + if (offset == 0) { loaded_article_ids = []; dojo.html.set($("headlines-toolbar"), @@ -96,7 +84,7 @@ function headlines_callback2(transport, offset, background, infscroll_req) { initHeadlinesMenu(); - if (_infscroll_disable) + if (infscroll_disabled) hsp.innerHTML = "<a href='#' onclick='openNextUnreadFeed()'>" + __("Click to open next unread feed.") + "</a>"; @@ -107,8 +95,6 @@ function headlines_callback2(transport, offset, background, infscroll_req) { } } else if (headlines_count > 0 && feed_id == getActiveFeedId() && is_cat == activeFeedIsCat()) { - console.log("adding some more headlines: " + headlines_count); - const c = dijit.byId("headlines-frame"); //const ids = getSelectedArticleIds2(); @@ -134,7 +120,7 @@ function headlines_callback2(transport, offset, background, infscroll_req) { if (!hsp) hsp = new Element("DIV", {"id": "headlines-spacer"}); c.domNode.appendChild(hsp); - if (headlines_count < 30) _infscroll_disable = true; + if (headlines_count < 30) infscroll_disabled = true; /* console.log("restore selected ids: " + ids); @@ -144,7 +130,7 @@ function headlines_callback2(transport, offset, background, infscroll_req) { initHeadlinesMenu(); - if (_infscroll_disable) { + if (infscroll_disabled) { hsp.innerHTML = "<a href='#' onclick='openNextUnreadFeed()'>" + __("Click to open next unread feed.") + "</a>"; } @@ -175,20 +161,19 @@ function headlines_callback2(transport, offset, background, infscroll_req) { "</div>"); } - _infscroll_request_sent = 0; - _last_headlines_update = new Date().getTime(); + infscroll_in_progress = 0; // this is used to auto-catchup articles if needed after infscroll request has finished, // unpack visible articles, etc headlinesScrollHandler(); // if we have some more space in the buffer, why not try to fill it - if (!_infscroll_disable && $("headlines-spacer") && + if (!infscroll_disabled && $("headlines-spacer") && $("headlines-spacer").offsetTop < $("headlines-frame").offsetHeight) { window.setTimeout(function() { loadMoreHeadlines(); - }, 250); + }, 500); } notify(""); @@ -933,7 +918,7 @@ function headlinesScrollHandler(/* event */) { } } - if (!_infscroll_disable) { + if (!infscroll_disabled) { const hsp = $("headlines-spacer"); const container = $("headlines-frame"); @@ -944,11 +929,10 @@ function headlinesScrollHandler(/* event */) { loadMoreHeadlines(); return; - } } - if (getInitParam("cdm_auto_catchup") == 1 && !_infscroll_request_sent) { + if (getInitParam("cdm_auto_catchup") == 1) { let rows = $$("#headlines-frame > div[id*=RROW][class*=Unread]"); @@ -966,7 +950,7 @@ function headlinesScrollHandler(/* event */) { } } - if (_infscroll_disable) { + if (infscroll_disabled) { const row = $$("#headlines-frame div[id*=RROW]").last(); if (row && $("headlines-frame").scrollTop > @@ -994,20 +978,16 @@ function openNextUnreadFeed() { function catchupBatchedArticles(callback) { console.log("catchupBatchedArticles, size=", catchup_id_batch.length); - if (catchup_id_batch.length > 0 /* && !_infscroll_request_sent */ && !_catchup_request_sent) { + if (catchup_id_batch.length > 0) { // make a copy of the array const batch = catchup_id_batch.slice(); const query = { op: "rpc", method: "catchupSelected", cmode: 0, ids: batch.toString() }; - _catchup_request_sent = true; - xhrPost("backend.php", query, (transport) => { const reply = handle_rpc_json(transport); - _catchup_request_sent = false; - if (reply) { const batch = reply.ids; |