mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-29 18:16:17 +01:00
pagination on posts
This commit is contained in:
@@ -230,14 +230,46 @@ SocketTopics.loadMore = function(socket, data, callback) {
|
||||
return callback(new Error('invalid data'));
|
||||
}
|
||||
|
||||
var postsPerPage = parseInt(meta.config.postsPerPage, 10);
|
||||
postsPerPage = postsPerPage ? postsPerPage : 20;
|
||||
|
||||
var start = data.after,
|
||||
end = start + 9;
|
||||
end = start + postsPerPage - 1;
|
||||
|
||||
topics.getTopicPosts(data.tid, start, end, socket.uid, function(err, posts) {
|
||||
if(err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
callback(err, {posts: posts});
|
||||
});
|
||||
};
|
||||
|
||||
SocketTopics.loadPage = function(socket, data, callback) {
|
||||
if(!data || !data.tid || !data.page || parseInt(data.page < 0)) {
|
||||
return callback(new Error('invalid data'));
|
||||
}
|
||||
|
||||
var postsPerPage = parseInt((meta.config.postsPerPage ? meta.config.postsPerPage : 20), 10);
|
||||
|
||||
topics.getPageCount(data.tid, function(err, pageCount) {
|
||||
if(err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
if(data.page > pageCount) {
|
||||
return callback(new Error('page doesn\'t exist'));
|
||||
}
|
||||
|
||||
var start = (data.page-1) * postsPerPage,
|
||||
end = start + postsPerPage - 1;
|
||||
|
||||
topics.getTopicPosts(data.tid, start, end, socket.uid, function(err, posts) {
|
||||
callback(err, {posts: posts});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
SocketTopics.loadMoreRecentTopics = function(socket, data, callback) {
|
||||
if(!data || !data.term) {
|
||||
return callback(new Error('invalid data'));
|
||||
@@ -256,4 +288,8 @@ SocketTopics.loadMoreUnreadTopics = function(socket, data, callback) {
|
||||
topics.getUnreadTopics(socket.uid, start, end, callback);
|
||||
};
|
||||
|
||||
SocketTopics.getPageCount = function(socket, tid, callback) {
|
||||
topics.getPageCount(tid, callback);
|
||||
}
|
||||
|
||||
module.exports = SocketTopics;
|
||||
Reference in New Issue
Block a user