Pagination for javascript/nodejs
var pagination = require('pagination');
var paginator = pagination.create('search', {prelink:'/', current: 1, rowsPerPage: 200, totalResult: 10020});
console.log(paginator.render());
var pagination = require('pagination');
var paginator = new pagination.SearchPaginator({prelink:'/', current: 10, rowsPerPage: 200, totalResult: 10020});
console.log(paginator.render());
// output (without newlines)
<div class="paginator">
<a href="/?page=9" class="paginator-previous">Previous</a>
<a href="/?page=8" class="paginator-page paginator-page-first">8</a>
<a href="/?page=9" class="paginator-page">9</a>
<a href="/?page=10" class="paginator-current">10</a>
<a href="/?page=11" class="paginator-page">11</a>
<a href="/?page=12" class="paginator-page paginator-page-last">12</a>
<a href="/?page=11" class="paginator-next">Next</a>
</div>
var pagination = require('pagination');
var paginator = new pagination.ItemPaginator({prelink:'/', current: 3, rowsPerPage: 200, totalResult: 10020});
console.log(paginator.render());
// output (without newlines)
<div class="paginator">
<span class="paginator-current-report">Results 401 - 600 of 10020</span>
<a href="/?page=1" class="paginator-first">First</a>
<a href="/?page=2" class="paginator-previous">Previous</a>
<a href="/?page=4" class="paginator-next">Next</a>
<a href="/?page=51" class="paginator-last">Last</a>
</div>
var pagination = require('pagination');
var paginator = new pagination.SearchPaginator({prelink:'/', current: 3, rowsPerPage: 200, totalResult: 10020});
console.log(paginator.getPaginationData());
// output
{ prelink: '/',
current: 3,
previous: 2,
next: 4,
first: 1,
last: 51,
range: [ 1, 2, 3, 4, 5 ],
fromResult: 401,
toResult: 600,
totalResult: 10020,
pageCount: 51 }
<html>
<head>
<script src="../lib/pagination.js"></script>
</head>
<body>
<div id="paging"></div>
<script type="text/javascript">
(function() {
var paginator = new pagination.ItemPaginator({prelink:'/', current: 3, rowsPerPage: 200, totalResult: 10020});
var html = paginator.render();
var paginator = pagination.create('search', {prelink:'/', current: 1, rowsPerPage: 200, totalResult: 10020});
html += paginator.render();
document.getElementById("paging").innerHTML = html;
})();
</script>
</body>
</html>
Object to pass to paginator classes (second argument when using create function)
Number of total items in result set
Link to append the page-param
Number of items per page, default to 10
Number of links to create in page range, default to 5. This value will be ignored when using item pagination.
Indicate which page is the current one. Page always starts with 1.
To indicate if the result from CURRENT_PAGE_REPORT translation can be cached or not. Default is false. The cache is global and will be the same for all instances which have specified translationCacheKey as bellow.
For supporting multiple versions of translation of CURRENT_PAGE_REPORT. It can use for multilanguages or different formats. Default is "en"
For translations of FIRST, NEXT, ... Simple example
var translations = {
'PREVIOUS' : 'Voorgaand',
'NEXT' : 'Volgende',
'FIRST' : 'Eerst',
'LAST' : 'Laatste',
'CURRENT_PAGE_REPORT' : 'Resulten {FromResult} - {ToResult} van {TotalResult}'
};
var item = new ItemPaginator({
prelink : '/',
pageLinks : 5,
current : 5,
totalResult : 100,
translator : function(str) {
return translations[str];
}
});