From 0a11d23534509ada5f3e88b2f5694219eb46f7f4 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 23 Aug 2012 09:17:30 +0400 Subject: [PATCH] catchupBatchedArticles: create local copy of the batch to work with --- js/viewfeed.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/js/viewfeed.js b/js/viewfeed.js index 7c21e1085..4bb56ddfa 100644 --- a/js/viewfeed.js +++ b/js/viewfeed.js @@ -97,10 +97,11 @@ function headlines_callback2(transport, offset, background, infscroll_req) { } else { if (headlines_count > 0 && feed_id == getActiveFeedId() && is_cat == activeFeedIsCat()) { - console.log("adding some more headlines..."); + console.log("adding some more headlines: " + headlines_count); var c = dijit.byId("headlines-frame"); var ids = getSelectedArticleIds2(); + var num_added = 0; $("headlines-tmp").innerHTML = reply['headlines']['content']; @@ -113,6 +114,7 @@ function headlines_callback2(transport, offset, background, infscroll_req) { if ($$("#headlines-frame DIV[id="+row.id+"]").length == 0) { row.style.display = 'none'; c.domNode.appendChild(row); + ++num_added; } else { row.parentNode.removeChild(row); } @@ -126,6 +128,8 @@ function headlines_callback2(transport, offset, background, infscroll_req) { c.domNode.appendChild(hsp); } + console.log("added " + num_added + " headlines"); + console.log("restore selected ids: " + ids); for (var i = 0; i < ids.length; i++) { @@ -1159,20 +1163,24 @@ function catchupBatchedArticles() { try { if (catchup_id_batch.length > 0 && !_infscroll_request_sent) { + // make a copy of the array + var batch = catchup_id_batch.slice(); var query = "?op=rpc&method=catchupSelected" + - "&cmode=0&ids=" + param_escape(catchup_id_batch.toString()); + "&cmode=0&ids=" + param_escape(batch.toString()); + + console.log(query); new Ajax.Request("backend.php", { parameters: query, onComplete: function(transport) { handle_rpc_json(transport); - catchup_id_batch.each(function(id) { + batch.each(function(id) { var elem = $("RROW-" + id); if (elem) elem.removeClassName("Unread"); + catchup_id_batch.remove(id); }); - catchup_id_batch = []; } }); }