You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.6 KiB
JavaScript
72 lines
1.6 KiB
JavaScript
define(['forum/recent'], function(recent) {
|
|
var Unread = {},
|
|
loadingMoreTopics = false;
|
|
|
|
Unread.init = function() {
|
|
app.enterRoom('recent_posts');
|
|
|
|
$('#new-topics-alert').on('click', function() {
|
|
$(this).addClass('hide');
|
|
});
|
|
|
|
recent.watchForNewPosts();
|
|
|
|
$('#mark-allread-btn').on('click', function() {
|
|
var btn = $(this);
|
|
socket.emit('topics.markAllRead', function(err) {
|
|
if(err) {
|
|
return app.alertError('There was an error marking topics read!');
|
|
}
|
|
|
|
btn.remove();
|
|
$('#topics-container').empty();
|
|
$('#category-no-topics').removeClass('hidden');
|
|
app.alertSuccess('All topics marked as read!');
|
|
$('#numUnreadBadge')
|
|
.removeClass('badge-important')
|
|
.addClass('badge-inverse')
|
|
.html('0');
|
|
});
|
|
});
|
|
|
|
if ($("body").height() <= $(window).height() && $('#topics-container').children().length >= 20) {
|
|
$('#load-more-btn').show();
|
|
}
|
|
|
|
$('#load-more-btn').on('click', function() {
|
|
loadMoreTopics();
|
|
});
|
|
|
|
app.enableInfiniteLoading(function() {
|
|
if(!loadingMoreTopics) {
|
|
loadMoreTopics();
|
|
}
|
|
});
|
|
|
|
function loadMoreTopics() {
|
|
if(!$('#topics-container').length) {
|
|
return;
|
|
}
|
|
|
|
loadingMoreTopics = true;
|
|
socket.emit('topics.loadMoreUnreadTopics', {
|
|
after: $('#topics-container').attr('data-nextstart')
|
|
}, function(err, data) {
|
|
if(err) {
|
|
return app.alertError(err.message);
|
|
}
|
|
|
|
if (data.topics && data.topics.length) {
|
|
recent.onTopicsLoaded('unread', data.topics);
|
|
$('#topics-container').attr('data-nextstart', data.nextStart);
|
|
} else {
|
|
$('#load-more-btn').hide();
|
|
}
|
|
|
|
loadingMoreTopics = false;
|
|
});
|
|
}
|
|
};
|
|
|
|
return Unread;
|
|
}); |