lots of cleanup, moved pagination to requirejs module
parent
aa73a10fc4
commit
ef6fd35e85
@ -0,0 +1,79 @@
|
||||
|
||||
|
||||
define(function() {
|
||||
var pagination = {};
|
||||
|
||||
pagination.currentPage = 0;
|
||||
pagination.pageCount = 0;
|
||||
pagination.loadFunction = null;
|
||||
|
||||
pagination.init = function(currentPage, pageCount, loadFunction) {
|
||||
pagination.currentPage = parseInt(currentPage, 10);
|
||||
pagination.pageCount = parseInt(pageCount, 10);
|
||||
pagination.loadFunction = loadFunction;
|
||||
|
||||
updatePageLinks();
|
||||
|
||||
$('.pagination').on('click', '.previous', function() {
|
||||
pagination.loadPage(pagination.currentPage - 1);
|
||||
});
|
||||
|
||||
$('.pagination').on('click', '.next', function() {
|
||||
pagination.loadPage(pagination.currentPage + 1);
|
||||
});
|
||||
|
||||
$('.pagination').on('click', '.page', function() {
|
||||
pagination.loadPage($(this).attr('data-page'));
|
||||
});
|
||||
}
|
||||
|
||||
pagination.recreatePaginationLinks = function(newPageCount) {
|
||||
pagination.pageCount = parseInt(newPageCount);
|
||||
|
||||
var pages = [];
|
||||
for(var i=1; i<=pagination.page; ++i) {
|
||||
pages.push({pageNumber: i});
|
||||
}
|
||||
|
||||
var html = templates.prepare(templates['topic'].blocks['pages']).parse({pages:pages});
|
||||
html = $(html);
|
||||
$('.pagination li.page').remove();
|
||||
html.insertAfter($('.pagination li.previous'));
|
||||
updatePageLinks();
|
||||
}
|
||||
|
||||
pagination.loadPage = function(page, callback) {
|
||||
page = parseInt(page, 10);
|
||||
if(page < 1 || page > pagination.pageCount) {
|
||||
return;
|
||||
}
|
||||
|
||||
pagination.loadFunction(page, function(err) {
|
||||
if(err) {
|
||||
return app.alertError(err.message);
|
||||
}
|
||||
|
||||
pagination.currentPage = parseInt(page, 10);
|
||||
updatePageLinks();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function updatePageLinks() {
|
||||
$('.pagination .next').removeClass('disabled');
|
||||
$('.pagination .previous').removeClass('disabled');
|
||||
|
||||
if(pagination.currentPage === 1) {
|
||||
$('.pagination .previous').addClass('disabled');
|
||||
}
|
||||
|
||||
if(pagination.currentPage === pagination.pageCount) {
|
||||
$('.pagination .next').addClass('disabled');
|
||||
}
|
||||
|
||||
$('.pagination .page').removeClass('active');
|
||||
$('.pagination .page[data-page="' + pagination.currentPage + '"]').addClass('active');
|
||||
}
|
||||
|
||||
return pagination;
|
||||
});
|
Loading…
Reference in New Issue