|
|
|
@ -18,12 +18,11 @@ define('topicList', ['forum/infinitescroll', 'handleBack', 'topicSelect'], funct
|
|
|
|
|
|
|
|
|
|
$(window).on('action:ajaxify.start', function () {
|
|
|
|
|
TopicList.removeListeners();
|
|
|
|
|
loadTopicsCallback = null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
TopicList.init = function (template, cb) {
|
|
|
|
|
templateName = template;
|
|
|
|
|
loadTopicsCallback = cb;
|
|
|
|
|
loadTopicsCallback = cb || loadTopicsAfter;
|
|
|
|
|
|
|
|
|
|
TopicList.watchForNewPosts();
|
|
|
|
|
|
|
|
|
@ -33,8 +32,13 @@ define('topicList', ['forum/infinitescroll', 'handleBack', 'topicSelect'], funct
|
|
|
|
|
infinitescroll.init(TopicList.loadMoreTopics);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
handleBack.init(function (after, cb) {
|
|
|
|
|
loadTopicsAfter(after, 1, cb);
|
|
|
|
|
handleBack.init(function (after, handleBackCallback) {
|
|
|
|
|
loadTopicsCallback(after, 1, function (data, loadCallback) {
|
|
|
|
|
TopicList.onTopicsLoaded(templateName, data.topics, ajaxify.data.showSelect, 1, function () {
|
|
|
|
|
handleBackCallback();
|
|
|
|
|
loadCallback();
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if ($('body').height() <= $(window).height() && $('[component="category"]').children().length >= 20) {
|
|
|
|
@ -202,14 +206,8 @@ define('topicList', ['forum/infinitescroll', 'handleBack', 'topicSelect'], funct
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var loadFn = loadTopicsCallback || loadTopicsAfter;
|
|
|
|
|
loadFn(after, direction, function (data, done) {
|
|
|
|
|
if (data.topics && data.topics.length) {
|
|
|
|
|
TopicList.onTopicsLoaded(templateName, data.topics, ajaxify.data.showSelect, direction, done);
|
|
|
|
|
} else {
|
|
|
|
|
done();
|
|
|
|
|
$('#load-more-btn').hide();
|
|
|
|
|
}
|
|
|
|
|
loadTopicsCallback(after, direction, function (data, done) {
|
|
|
|
|
TopicList.onTopicsLoaded(templateName, data.topics, ajaxify.data.showSelect, direction, done);
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
@ -229,12 +227,21 @@ define('topicList', ['forum/infinitescroll', 'handleBack', 'topicSelect'], funct
|
|
|
|
|
}, callback);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TopicList.onTopicsLoaded = function (templateName, topics, showSelect, direction, callback) {
|
|
|
|
|
topics = topics.filter(function (topic) {
|
|
|
|
|
function filterTopicsOnDom(topics) {
|
|
|
|
|
return topics.filter(function (topic) {
|
|
|
|
|
return !$('[component="category/topic"][data-tid="' + topic.tid + '"]').length;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TopicList.onTopicsLoaded = function (templateName, topics, showSelect, direction, callback) {
|
|
|
|
|
if (!topics || !topics.length) {
|
|
|
|
|
$('#load-more-btn').hide();
|
|
|
|
|
return callback();
|
|
|
|
|
}
|
|
|
|
|
topics = filterTopicsOnDom(topics);
|
|
|
|
|
|
|
|
|
|
if (!topics.length) {
|
|
|
|
|
$('#load-more-btn').hide();
|
|
|
|
|
return callback();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|