You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nodebb/public/src/client/pagination.js

40 lines
1004 B
JavaScript

'use strict';
define('forum/pagination', ['bootbox'], function (bootbox) {
const pagination = {};
pagination.init = function () {
$('body').on('click', '[component="pagination/select-page"]', function () {
bootbox.prompt('[[global:enter_page_number]]', function (pageNum) {
pagination.loadPage(pageNum);
});
return false;
});
};
pagination.loadPage = function (page, callback) {
callback = callback || function () {};
page = parseInt(page, 10);
if (!utils.isNumber(page) || page < 1 || page > ajaxify.data.pagination.pageCount) {
return;
}
const query = utils.params();
query.page = page;
const url = window.location.pathname + '?' + $.param(query);
ajaxify.go(url, callback);
};
pagination.nextPage = function (callback) {
pagination.loadPage(ajaxify.data.pagination.currentPage + 1, callback);
};
pagination.previousPage = function (callback) {
pagination.loadPage(ajaxify.data.pagination.currentPage - 1, callback);
};
return pagination;
});