]> git.wh0rd.org - tt-rss.git/commitdiff
prevent cyclical scrolling in headlines if next offset requested by infscroll is...
authorAndrew Dolgov <noreply@madoka.volgo-balt.ru>
Tue, 11 Aug 2015 09:00:08 +0000 (12:00 +0300)
committerAndrew Dolgov <noreply@madoka.volgo-balt.ru>
Tue, 11 Aug 2015 09:00:08 +0000 (12:00 +0300)
a bunch of other related fixes

js/feedlist.js
js/viewfeed.js

index 05c50228400f38804d6cca5648f603dcc625f17b..ad9d8dcfa3d7b08ef186768828ea3ce79131f061 100644 (file)
@@ -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) {
index af5adeb29028a74bb60181ba27a527886872d2dc..e84ed710dbf2d608f7ccbcb6260201a9d1d51fb4 100644 (file)
@@ -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>";