scroll handler: fix loadMoreHeadlines() not being called

This commit is contained in:
Andrew Dolgov 2018-12-01 10:19:45 +03:00
parent 8d190d539b
commit b87b4287b7
2 changed files with 33 additions and 37 deletions

View File

@ -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) {

View File

@ -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 = "<span class='loading'><img src='images/indicator_tiny.gif'> " +
__("Loading, please wait...") + "</span>";
@ -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]");