From b87b4287b720e02f3fd4ffd4b4c8642b92e5c494 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sat, 1 Dec 2018 10:19:45 +0300 Subject: scroll handler: fix loadMoreHeadlines() not being called --- js/feedlist.js | 36 +++++++++++++++--------------------- js/viewfeed.js | 34 ++++++++++++++++++---------------- 2 files changed, 33 insertions(+), 37 deletions(-) diff --git a/js/feedlist.js b/js/feedlist.js index 8ba13aea8..ec28c67ee 100644 --- a/js/feedlist.js +++ b/js/feedlist.js @@ -13,10 +13,6 @@ function resetCounterCache() { } function loadMoreHeadlines() { - console.log("loadMoreHeadlines"); - - let offset = 0; - const view_mode = document.forms["main_toolbar_form"].view_mode.value; const unread_in_buffer = $$("#headlines-frame > div[id*=RROW][class*=Unread]").length; const num_all = $$("#headlines-frame > div[id*=RROW]").length; @@ -24,27 +20,25 @@ function loadMoreHeadlines() { // TODO implement marked & published - if (view_mode == "marked") { - console.warn("loadMoreHeadlines: marked is not implemented, falling back."); - offset = num_all; - } else if (view_mode == "published") { - console.warn("loadMoreHeadlines: published is not implemented, falling back."); - offset = num_all; - } else if (view_mode == "unread") { - offset = unread_in_buffer; - } else if (_search_query) { - offset = num_all; - } else if (view_mode == "adaptive" && !(getActiveFeedId() == -1 && !activeFeedIsCat())) { - // ^ starred feed shows both unread & read articles in adaptive mode - offset = num_unread > 0 ? unread_in_buffer : num_all; - } else { - offset = num_all; + let offset = num_all; + + switch (view_mode) { + case "marked": + case "published": + console.warn("loadMoreHeadlines: ", view_mode, "not implemented"); + break; + case "unread": + offset = unread_in_buffer; + break; + case "adaptive": + if (!(getActiveFeedId() == -1 && !activeFeedIsCat())) + offset = num_unread > 0 ? unread_in_buffer : num_all; + break; } - console.log("offset: " + offset); + console.log("loadMoreHeadlines, offset=", offset); viewfeed({feed: getActiveFeedId(), is_cat: activeFeedIsCat(), offset: offset, infscroll_req: true}); - } function cleanup_memory(root) { diff --git a/js/viewfeed.js b/js/viewfeed.js index a2aac43d0..d7db88d37 100755 --- a/js/viewfeed.js +++ b/js/viewfeed.js @@ -1117,32 +1117,38 @@ function unpackVisibleHeadlines() { } } -function headlinesScrollHandler(e) { +function headlinesScrollHandler(event) { try { unpackVisibleHeadlines(); - // set topmost child in the buffer as active - if (isCombinedMode() && getInitParam("cdm_expanded") && getInitParam("cdm_auto_catchup") == 1) { - const rows = $$("#headlines-frame > div[id*=RROW]"); + if (isCombinedMode()) { + updateFloatingTitle(); - for (let i = 0; i < rows.length; i++) { - const row = rows[i]; + // set topmost child in the buffer as active + if (getInitParam("cdm_expanded") && getInitParam("cdm_auto_catchup") == 1) { - if ($("headlines-frame").scrollTop <= row.offsetTop && - row.offsetTop - $("headlines-frame").scrollTop < 100 && - row.getAttribute("data-article-id") != getActiveArticleId()) { + const rows = $$("#headlines-frame > div[id*=RROW]"); - setActiveArticleId(row.getAttribute("data-article-id")); - break; + for (let i = 0; i < rows.length; i++) { + const row = rows[i]; + + if ($("headlines-frame").scrollTop <= row.offsetTop && + row.offsetTop - $("headlines-frame").scrollTop < 100 && + row.getAttribute("data-article-id") != getActiveArticleId()) { + + setActiveArticleId(row.getAttribute("data-article-id")); + break; + } } } } if (!_infscroll_disable) { const hsp = $("headlines-spacer"); + const container = $("headlines-frame"); - if (hsp && hsp.offsetTop - 250 <= e.scrollTop + e.offsetHeight) { + if (hsp && hsp.offsetTop - 250 <= container.scrollTop + container.offsetHeight) { hsp.innerHTML = " " + __("Loading, please wait...") + ""; @@ -1153,10 +1159,6 @@ function headlinesScrollHandler(e) { } } - if (isCombinedMode()) { - updateFloatingTitle(); - } - if (getInitParam("cdm_auto_catchup") == 1) { let rows = $$("#headlines-frame > div[id*=RROW][class*=Unread]"); -- cgit v1.2.3