From 0f87edd9f4da93c2bc42dd7a29bbef4895aca497 Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Mon, 20 Oct 2014 16:34:37 +0200 Subject: [PATCH] remove dupes when infinitescrolling, and add infinitescroll to user lists and userdirectory also --- plugins/InfiniteScroll/infinitescroll.js | 134 +++++++++++++++++++++++ 1 file changed, 134 insertions(+) diff --git a/plugins/InfiniteScroll/infinitescroll.js b/plugins/InfiniteScroll/infinitescroll.js index 6fcf098dfe..b00445ee34 100644 --- a/plugins/InfiniteScroll/infinitescroll.js +++ b/plugins/InfiniteScroll/infinitescroll.js @@ -1,3 +1,5 @@ + +// notices jQuery(document).ready(function($){ $('notices_primary').infinitescroll({ debug: false, @@ -23,5 +25,137 @@ jQuery(document).ready(function($){ SN.U.NoticeReplyTo($(this)); SN.U.NoticeWithAttachment($(this)); }); + + // moving the loaded notices out of their container + $('#infscr-loading').remove(); + var ids_to_append = Array(); var i=0; + $.each($('.infscr-pages').children('.notice'),function(){ + + // remove dupes + if($('.threaded-notices > #' + $(this).attr('id')).length > 0) { + $(this).remove(); + } + + // keep new unique notices + else { + ids_to_append[i] = $(this).attr('id'); + i++; + } + }); + var loaded_html = $('.infscr-pages').html(); + $('.infscr-pages').remove(); + + // no results + if(loaded_html == '') { + } + // append + else { + $('#notices_primary ol.notices').append(loaded_html); + } + }); }); + + +// users +jQuery(document).ready(function($){ + $('profile_list').infinitescroll({ + debug: false, + infiniteScroll : !infinite_scroll_on_next_only, + nextSelector : 'body#subscribers li.nav_next a, body#subscriptions li.nav_next a', + loadingImg : ajax_loader_url, + text : "Loading the next set of users...", + donetext : "Congratulations, you\'ve reached the end of the Internet.", + navSelector : "#pagination", + contentSelector : "#content_inner ul.profile_list", + itemSelector : "#content_inner ul.profile_list > li" + },function(){ + // Reply button and attachment magic need to be set up + // for each new notice. + // DO NOT run SN.Init.Notices() which will duplicate stuff. + $(this).find('.profile').each(function() { + SN.U.NoticeReplyTo($(this)); + SN.U.NoticeWithAttachment($(this)); + }); + + // moving the loaded notices out of their container + $('#infscr-loading').remove(); + var ids_to_append = Array(); var i=0; + $.each($('.infscr-pages').children('.profile'),function(){ + + // remove dupes + if($('.profile_list > #' + $(this).attr('id')).length > 0) { + $(this).remove(); + } + + // keep new unique notices + else { + ids_to_append[i] = $(this).attr('id'); + i++; + } + }); + var loaded_html = $('.infscr-pages').html(); + $('.infscr-pages').remove(); + + // no results + if(loaded_html == '') { + } + // append + else { + $('#content_inner ul.profile_list').append(loaded_html); + } + + }); +}); + + +// user directory +jQuery(document).ready(function($){ + $('profile_list').infinitescroll({ + debug: false, + infiniteScroll : !infinite_scroll_on_next_only, + nextSelector : 'body#userdirectory li.nav_next a', + loadingImg : ajax_loader_url, + text : "Loading the next set of users...", + donetext : "Congratulations, you\'ve reached the end of the Internet.", + navSelector : "#pagination", + contentSelector : "#profile_directory table.profile_list tbody", + itemSelector : "#profile_directory table.profile_list tbody tr" + },function(){ + // Reply button and attachment magic need to be set up + // for each new notice. + // DO NOT run SN.Init.Notices() which will duplicate stuff. + $(this).find('.profile').each(function() { + SN.U.NoticeReplyTo($(this)); + SN.U.NoticeWithAttachment($(this)); + }); + + // moving the loaded notices out of their container + $('#infscr-loading').remove(); + var ids_to_append = Array(); var i=0; + $.each($('.infscr-pages').children('.profile'),function(){ + + // remove dupes + if($('.profile_list > #' + $(this).attr('id')).length > 0) { + $(this).remove(); + } + + // keep new unique notices + else { + ids_to_append[i] = $(this).attr('id'); + i++; + } + }); + var loaded_html = $('.infscr-pages').html(); + $('.infscr-pages').remove(); + + // no results + if(loaded_html == '') { + } + // append + else { + $('#profile_directory table.profile_list tbody').append(loaded_html); + } + + }); +}); \ No newline at end of file -- 2.39.5