remove dupes when infinitescrolling, and add infinitescroll to user lists and userdirectory also

This commit is contained in:
Hannes Mannerheim 2014-10-20 16:34:37 +02:00
parent 54e27bc30c
commit 0f87edd9f4
1 changed files with 134 additions and 0 deletions

View File

@ -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 : "<em>Loading the next set of users...</em>",
donetext : "<em>Congratulations, you\'ve reached the end of the Internet.</em>",
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 : "<em>Loading the next set of users...</em>",
donetext : "<em>Congratulations, you\'ve reached the end of the Internet.</em>",
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);
}
});
});