diff --git a/boards/static/js/thread_update.js b/boards/static/js/thread_update.js --- a/boards/static/js/thread_update.js +++ b/boards/static/js/thread_update.js @@ -25,6 +25,9 @@ var CLASS_POST = '.post' +var POST_ADDED = 0; +var POST_UPDATED = 1; + var wsUser = ''; var unreadPosts = 0; @@ -102,12 +105,15 @@ function getThreadDiff() { data, function(data) { var updatedPosts = data.updated; + var addedPostCount = 0; for (var i = 0; i < updatedPosts.length; i++) { var postText = updatedPosts[i]; var post = $(postText); - updatePost(post); + if (updatePost(post) == POST_ADDED) { + addedPostCount++; + } } var hasMetaUpdates = updatedPosts.length > 0; @@ -115,6 +121,9 @@ function getThreadDiff() { updateMetadataPanel(); } + updateBumplimitProgress(addedPostCount); + showNewPostsTitle(addedPostCount); + // TODO Process removed posts if any $('.metapanel').attr('data-last-update', data.last_update); }, @@ -139,8 +148,12 @@ function updatePost(postHtml) { // If the post already exists, replace it. Otherwise add as a new one. var existingPosts = threadBlock.children('.post[id=' + postId + ']'); + var type; + if (existingPosts.size() > 0) { existingPosts.replaceWith(post); + + type = POST_UPDATED; } else { post.appendTo(threadBlock); @@ -148,11 +161,12 @@ function updatePost(postHtml) { scrollToBottom(); } - updateBumplimitProgress(1); - showNewPostsTitle(1); + type = POST_ADDED; } processNewPost(post); + + return type; } /**