mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-07-01 00:27:50 +02:00
trim pagination numberS
This commit is contained in:
@@ -33,5 +33,8 @@
|
||||
"motd.get": "Get NodeBB",
|
||||
"motd.fork": "Fork",
|
||||
"motd.like": "Like",
|
||||
"motd.follow": "Follow"
|
||||
"motd.follow": "Follow",
|
||||
|
||||
"previouspage": "Previous Page",
|
||||
"nextpage": "Next Page"
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ define(function() {
|
||||
pagination.currentPage = parseInt(currentPage, 10);
|
||||
pagination.pageCount = parseInt(pageCount, 10);
|
||||
|
||||
updatePageLinks();
|
||||
pagination.recreatePaginationLinks(pageCount);
|
||||
|
||||
$('.pagination').on('click', '.previous', function() {
|
||||
pagination.loadPage(pagination.currentPage - 1);
|
||||
@@ -25,18 +25,42 @@ define(function() {
|
||||
});
|
||||
}
|
||||
|
||||
pagination.recreatePaginationLinks = function(template, newPageCount) {
|
||||
pagination.recreatePaginationLinks = function(newPageCount) {
|
||||
pagination.pageCount = parseInt(newPageCount, 10);
|
||||
|
||||
var pages = [];
|
||||
for(var i=1; i<=pagination.pageCount; ++i) {
|
||||
pages.push({pageNumber: i});
|
||||
var pagesToShow = [1, pagination.pageCount];
|
||||
|
||||
var previous = pagination.currentPage - 1;
|
||||
var next = pagination.currentPage + 1;
|
||||
|
||||
if(previous > 1 && pagesToShow.indexOf(previous) === -1) {
|
||||
pagesToShow.push(previous);
|
||||
}
|
||||
|
||||
if(next < pagination.pageCount && pagesToShow.indexOf(next) === -1) {
|
||||
pagesToShow.push(next);
|
||||
}
|
||||
|
||||
if(pagesToShow.indexOf(pagination.currentPage) === -1) {
|
||||
pagesToShow.push(pagination.currentPage);
|
||||
}
|
||||
|
||||
pagesToShow.sort(function(a, b) {
|
||||
return parseInt(a, 10) - parseInt(b, 10);
|
||||
});
|
||||
|
||||
var html = '';
|
||||
for(var i=0; i<pagesToShow.length; ++i) {
|
||||
if(i > 0) {
|
||||
if (pagesToShow[i] - 1 !== pagesToShow[i-1]) {
|
||||
html += '<li class="disabled"><a href="#">|</a></li>';
|
||||
}
|
||||
}
|
||||
html += '<li class="page" data-page="' + pagesToShow[i] + '"><a href="#">' + pagesToShow[i] + '</a></li>';
|
||||
}
|
||||
|
||||
var html = templates.prepare(templates[template].blocks['pages']).parse({pages:pages});
|
||||
html = $(html);
|
||||
$('.pagination li.page').remove();
|
||||
html.insertAfter($('.pagination li.previous'));
|
||||
$(html).insertAfter($('.pagination li.previous'));
|
||||
updatePageLinks();
|
||||
}
|
||||
|
||||
|
||||
@@ -87,11 +87,8 @@
|
||||
<!-- IF usePagination -->
|
||||
<div class="text-center">
|
||||
<ul class="pagination">
|
||||
<li class="previous pull-left"><a href="#">← Older</a></li>
|
||||
<!-- BEGIN pages -->
|
||||
<li class="page" data-page="{pages.pageNumber}"><a href="#">{pages.pageNumber}</a></li>
|
||||
<!-- END pages -->
|
||||
<li class="next pull-right"><a href="#">Newer →</a></li>
|
||||
<li class="previous pull-left"><a href="#"><i class="fa fa-chevron-left"></i> [[global:previouspage]]</a></li>
|
||||
<li class="next pull-right"><a href="#">[[global:nextpage]] <i class="fa fa-chevron-right"></i></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- ENDIF usePagination -->
|
||||
|
||||
@@ -206,11 +206,8 @@
|
||||
<!-- IF usePagination -->
|
||||
<div class="text-center">
|
||||
<ul class="pagination">
|
||||
<li class="previous pull-left"><a href="#">← Older</a></li>
|
||||
<!-- BEGIN pages -->
|
||||
<li class="page" data-page="{pages.pageNumber}"><a href="#">{pages.pageNumber}</a></li>
|
||||
<!-- END pages -->
|
||||
<li class="next pull-right"><a href="#">Newer →</a></li>
|
||||
<li class="previous pull-left"><a href="#"><i class="fa fa-chevron-left"></i> [[global:previouspage]]</a></li>
|
||||
<li class="next pull-right"><a href="#">[[global:nextpage]] <i class="fa fa-chevron-right"></i></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- ENDIF usePagination -->
|
||||
|
||||
@@ -66,15 +66,15 @@ var db = require('./database.js'),
|
||||
});
|
||||
}
|
||||
|
||||
function getPages(next) {
|
||||
Categories.getPages(category_id, next);
|
||||
function getPageCount(next) {
|
||||
Categories.getPageCount(category_id, next);
|
||||
}
|
||||
|
||||
async.parallel([getTopicIds, getActiveUsers, getSidebars, getPages], function(err, results) {
|
||||
async.parallel([getTopicIds, getActiveUsers, getSidebars, getPageCount], function(err, results) {
|
||||
var tids = results[0],
|
||||
active_users = results[1],
|
||||
sidebars = results[2],
|
||||
pages = results[3];
|
||||
pageCount = results[3];
|
||||
|
||||
var category = {
|
||||
'category_name': categoryData.name,
|
||||
@@ -88,8 +88,7 @@ var db = require('./database.js'),
|
||||
'category_id': category_id,
|
||||
'active_users': [],
|
||||
'topics': [],
|
||||
'pages': pages,
|
||||
'pageCount': pages.length,
|
||||
'pageCount': pageCount,
|
||||
'disableSocialButtons': meta.config.disableSocialButtons !== undefined ? parseInt(meta.config.disableSocialButtons, 10) !== 0 : false,
|
||||
'sidebars': sidebars
|
||||
};
|
||||
@@ -145,19 +144,6 @@ var db = require('./database.js'),
|
||||
db.getSortedSetRevRange('categories:' + cid + ':tid', start, stop, callback);
|
||||
};
|
||||
|
||||
Categories.getPages = function(cid, callback) {
|
||||
Categories.getPageCount(cid, function(err, pageCount) {
|
||||
if(err) {
|
||||
return callback(err);
|
||||
}
|
||||
var pages = [];
|
||||
for(var i=1; i<=pageCount; ++i) {
|
||||
pages.push({pageNumber: i});
|
||||
}
|
||||
callback(null, pages);
|
||||
});
|
||||
};
|
||||
|
||||
Categories.getPageCount = function(cid, callback) {
|
||||
db.sortedSetCard('categories:' + cid + ':tid', function(err, topicCount) {
|
||||
if(err) {
|
||||
|
||||
@@ -392,19 +392,6 @@ var async = require('async'),
|
||||
});
|
||||
}
|
||||
|
||||
Topics.getPages = function(tid, callback) {
|
||||
Topics.getPageCount(tid, function(err, pageCount) {
|
||||
if(err) {
|
||||
return callback(err);
|
||||
}
|
||||
var pages = [];
|
||||
for(var i=1; i<=pageCount; ++i) {
|
||||
pages.push({pageNumber: i});
|
||||
}
|
||||
callback(null, pages);
|
||||
});
|
||||
}
|
||||
|
||||
Topics.getPageCount = function(tid, callback) {
|
||||
db.sortedSetCard('tid:' + tid + ':posts', function(err, postCount) {
|
||||
if(err) {
|
||||
@@ -794,11 +781,11 @@ var async = require('async'),
|
||||
Topics.getCategoryData(tid, next);
|
||||
}
|
||||
|
||||
function getPages(next) {
|
||||
Topics.getPages(tid, next);
|
||||
function getPageCount(next) {
|
||||
Topics.getPageCount(tid, next);
|
||||
}
|
||||
|
||||
async.parallel([getTopicData, getTopicPosts, getPrivileges, getCategoryData, getPages], function(err, results) {
|
||||
async.parallel([getTopicData, getTopicPosts, getPrivileges, getCategoryData, getPageCount], function(err, results) {
|
||||
if (err) {
|
||||
winston.error('[Topics.getTopicWithPosts] Could not retrieve topic data: ', err.message);
|
||||
return callback(err, null);
|
||||
@@ -808,7 +795,7 @@ var async = require('async'),
|
||||
topicPosts = results[1],
|
||||
privileges = results[2],
|
||||
categoryData = results[3],
|
||||
pages = results[4];
|
||||
pageCount = results[4];
|
||||
|
||||
var postsPerPage = parseInt(meta.config.postsPerPage, 10);
|
||||
postsPerPage = postsPerPage ? postsPerPage : 20;
|
||||
@@ -824,8 +811,7 @@ var async = require('async'),
|
||||
'slug': topicData.slug,
|
||||
'postcount': topicData.postcount,
|
||||
'viewcount': topicData.viewcount,
|
||||
'pages': pages,
|
||||
'pageCount': pages.length,
|
||||
'pageCount': pageCount,
|
||||
'unreplied': parseInt(topicData.postcount, 10) > 1,
|
||||
'topic_id': tid,
|
||||
'expose_tools': privileges.editable ? 1 : 0,
|
||||
|
||||
Reference in New Issue
Block a user