diff options
-rw-r--r-- | js/main.js | 37 |
1 files changed, 13 insertions, 24 deletions
diff --git a/js/main.js b/js/main.js index c8c3ea48d..161068310 100644 --- a/js/main.js +++ b/js/main.js @@ -343,34 +343,26 @@ function updateConvItems(mode,data) { - var expanded_comments = false; - if(mode === 'update') { prev = 'threads-begin'; + $('.thread-wrapper.toplevel_item',data).each(function() { + var ident = $(this).attr('id'); + var commentWrap = $('#'+ident+' .collapsed-comments').attr('id'); + var itmId = commentWrap.replace('collapsed-comments-',''); + var isVisible = false; if($('#' + ident).length == 0 && profile_page == 1) { $('img',this).each(function() { $(this).attr('src',$(this).attr('dst')); }); - - // FIXME this doesn't work at all to prevent open comments from - // collapsing on update - but I'm leaving this experimental code here until - // I have time to dig into it again. Ideally we want to find - // the expanded comments div on the page and then expand the one we received - // over the wire (in the data variable) before placing the thread on the page, - // as then it won't blink. - - expanded_comments = false; - $('.collapsed-comments',this).each(function() { - if($('.thread-wrapper',this).is(':visible')) - expanded_comments = this; - }); + if($('#collapsed-comments-'+itmId).is(':visible')) + isVisible = true; $('#' + prev).after($(this)); - if(expanded_comments) - $(expanded_comments).show(); + if(isVisible) + showHideComments(itmId); $(".autotime").timeago(); // divgrow doesn't prevent itself from attaching a second (or 500th) // "show more" div to a content region - it also has a few other @@ -383,14 +375,11 @@ function updateConvItems(mode,data) { $(this).attr('src',$(this).attr('dst')); }); // more FIXME related to expanded comments - expanded_comments = false; - $('.collapsed-comments',this).each(function() { - if($('.thread-wrapper',this).is(':visible')) - expanded_comments = $(this); - }); + if($('#collapsed-comments-'+itmId).is(':visible')) + isVisible = true; $('#' + ident).replaceWith($(this)); - if(expanded_comments) - $(expanded_comments).show(); + if(isVisible) + showHideComments(itmId); $(".autotime").timeago(); // $("div.wall-item-body").divgrow({ initialHeight: 400 }); |