]> git.wh0rd.org - tt-rss.git/blobdiff - js/viewfeed.js
only unmark articles which had been processed when automarking (for realz)
[tt-rss.git] / js / viewfeed.js
index c1163eab773e1b3d6ac22be6ceebf61de71c6c70..7813ab7ef7f3c3f90e37b61198f235538fab5891 100644 (file)
@@ -12,6 +12,7 @@ var catchup_timeout_id = false;
 
 var cids_requested = [];
 var loaded_article_ids = [];
+var _last_headlines_update = 0;
 
 var has_storage = 'sessionStorage' in window && window['sessionStorage'] !== null;
 
@@ -204,6 +205,7 @@ function headlines_callback2(transport, offset, background, infscroll_req) {
                }
 
                _infscroll_request_sent = 0;
+               _last_headlines_update = new Date().getTime();
 
                unpackVisibleHeadlines();
 
@@ -1159,7 +1161,6 @@ function postMouseOut(id) {
 
 function unpackVisibleHeadlines() {
        try {
-
                if (!isCdmMode()) return;
 
                $$("#headlines-frame > div[id*=RROW]").each(
@@ -1178,7 +1179,6 @@ function unpackVisibleHeadlines() {
                        }
                );
 
-
        } catch (e) {
                exception_error("unpackVisibleHeadlines", e);
        }
@@ -1209,6 +1209,10 @@ function headlines_scroll_handler(e) {
 
                if (getInitParam("cdm_auto_catchup") == 1) {
 
+                       // let's get DOM some time to settle down
+                       var ts = new Date().getTime();
+                       if (ts - _last_headlines_update < 100) return;
+
                        $$("#headlines-frame > div[id*=RROW][class*=Unread]").each(
                                function(child) {
                                        if (child.hasClassName("Unread") && $("headlines-frame").scrollTop >
@@ -1254,7 +1258,11 @@ function catchupBatchedArticles() {
                                onComplete: function(transport) {
                                        handle_rpc_json(transport);
 
+                                       reply = JSON.parse(transport.responseText);
+                                       var batch = reply.ids;
+
                                        batch.each(function(id) {
+                                               console.log(id);
                                                var elem = $("RROW-" + id);
                                                if (elem) elem.removeClassName("Unread");
                                                catchup_id_batch.remove(id);