summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2015-08-11 12:00:08 +0300
committerAndrew Dolgov <[email protected]>2015-08-11 12:00:08 +0300
commiteaec06f950439db7d2ae0c7e25e915639e2ae281 (patch)
tree9f6c9e53cbe9932348261a8c7a6a268922e675ca
parent95b493d68d7cb189b51b0bee4c69c7338be36283 (diff)
prevent cyclical scrolling in headlines if next offset requested by infscroll is zero
a bunch of other related fixes
-rw-r--r--js/feedlist.js4
-rw-r--r--js/viewfeed.js23
2 files changed, 18 insertions, 9 deletions
diff --git a/js/feedlist.js b/js/feedlist.js
index 05c502284..ad9d8dcfa 100644
--- a/js/feedlist.js
+++ b/js/feedlist.js
@@ -72,12 +72,12 @@ function viewfeed(feed, method, is_cat, offset, background, infscroll_req, can_w
if (!background) {
_viewfeed_last = get_timestamp();
- if (getActiveFeedId() != feed || offset == 0) {
+ if (getActiveFeedId() != feed || !infscroll_req) {
setActiveArticleId(0);
_infscroll_disable = 0;
}
- if (offset != 0 && !method) {
+ if (infscroll_req && !method) {
var timestamp = get_timestamp();
if (_infscroll_request_sent && _infscroll_request_sent + 30 > timestamp) {
diff --git a/js/viewfeed.js b/js/viewfeed.js
index af5adeb29..e84ed710d 100644
--- a/js/viewfeed.js
+++ b/js/viewfeed.js
@@ -565,8 +565,10 @@ function moveToPost(mode, noscroll, noexpand) {
}
}
+ console.log("cur: " + getActiveArticleId() + " next: " + next_id);
+
if (mode == "next") {
- if (next_id || getActiveArticleId()) {
+ if (next_id /*|| getActiveArticleId()*/) {
if (isCdmMode()) {
var article = $("RROW-" + getActiveArticleId());
@@ -690,6 +692,8 @@ function toggleUnread(id, cmode, effect) {
var row = $("RROW-" + id);
if (row) {
+ var tmpClassName = row.className;
+
if (cmode == undefined || cmode == 2) {
if (row.hasClassName("Unread")) {
row.removeClassName("Unread");
@@ -713,11 +717,14 @@ function toggleUnread(id, cmode, effect) {
// notify_progress("Loading, please wait...");
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- handle_rpc_json(transport);
- } });
+ if (tmpClassName != row.className) {
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function (transport) {
+ handle_rpc_json(transport);
+ }
+ });
+ }
}
@@ -1204,6 +1211,8 @@ function cdmScrollToArticleId(id, force) {
}
function setActiveArticleId(id) {
+ console.log("setActiveArticleId:" + id);
+
_active_article_id = id;
PluginHost.run(PluginHost.HOOK_ARTICLE_SET_ACTIVE, _active_article_id);
}
@@ -1281,7 +1290,7 @@ function headlines_scroll_handler(e) {
}
if (!_infscroll_disable) {
- if (hsp && hsp.offsetTop - 100 <= e.scrollTop + e.offsetHeight) {
+ if (hsp && hsp.offsetTop - 250 <= e.scrollTop + e.offsetHeight) {
hsp.innerHTML = "<span class='loading'><img src='images/indicator_tiny.gif'> " +
__("Loading, please wait...") + "</span>";