fixed #649 - Once you hit the end, infinite loader will stop for good. If infinite loader is active when the browser hits the bottom, updateHeader will not assume 100%.

v1.18.x
Julian Lam 11 years ago
parent 962955f06a
commit d8c4609ee0

@ -957,7 +957,8 @@ define(['composer'], function(composer) {
}); });
setTimeout(function() { setTimeout(function() {
if (scrollTop + windowHeight == jQuery(document).height()) { console.log(infiniteLoaderActive);
if (scrollTop + windowHeight == jQuery(document).height() && !infiniteLoaderActive) {
pagination.innerHTML = Topic.postCount + ' out of ' + Topic.postCount; pagination.innerHTML = Topic.postCount + ' out of ' + Topic.postCount;
progressBar.width('100%'); progressBar.width('100%');
} }
@ -1099,32 +1100,35 @@ define(['composer'], function(composer) {
return; return;
} }
infiniteLoaderActive = true;
if (indicatorEl.attr('done') === '0') { if (indicatorEl.attr('done') === '0') {
infiniteLoaderActive = true;
indicatorEl.fadeIn(); indicatorEl.fadeIn();
}
socket.emit('topics.loadMore', { socket.emit('topics.loadMore', {
tid: tid, tid: tid,
after: parseInt($('#post-container .post-row.infiniteloaded').last().attr('data-index'), 10) + 1 after: parseInt($('#post-container .post-row.infiniteloaded').last().attr('data-index'), 10) + 1
}, function (err, data) { }, function (err, data) {
if(err) { if(err) {
return app.alertError(err.message); return app.alertError(err.message);
} }
infiniteLoaderActive = false; infiniteLoaderActive = false;
if (data && data.posts && data.posts.length) { if (data && data.posts && data.posts.length) {
indicatorEl.attr('done', '0'); indicatorEl.attr('done', '0');
createNewPosts(data, true); createNewPosts(data, true);
} else { } else {
indicatorEl.attr('done', '1'); indicatorEl.attr('done', '1');
} updateHeader();
indicatorEl.fadeOut(); }
if (callback) {
callback(data.posts); indicatorEl.fadeOut();
}
}); if (callback) {
callback(data.posts);
}
});
}
} }
return Topic; return Topic;

@ -204,7 +204,9 @@ SocketTopics.loadMore = function(socket, data, callback) {
end = start + 9; end = start + 9;
topics.getTopicPosts(data.tid, start, end, socket.uid, function(err, posts) { topics.getTopicPosts(data.tid, start, end, socket.uid, function(err, posts) {
callback(err, {posts: posts}); setTimeout(function() {
callback(err, {posts: posts});
}, 2500);
}); });
}; };

Loading…
Cancel
Save