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

60 lines
1.5 KiB
JavaScript

/**
* Plug-in offers the same functionality as `full_numbers` pagination type
* (see `pagingType` option) but without ellipses.
*
* See [example](http://www.gyrocode.com/articles/jquery-datatables-pagination-without-ellipses) for demonstration.
*
* @name Full Numbers - No Ellipses
* @summary Same pagination as 'full_numbers' but without ellipses
* @author [Michael Ryvkin](http://www.gyrocode.com)
*
* @example
* $(document).ready(function() {
* $('#example').dataTable( {
* "pagingType": "full_numbers_no_ellipses"
* } );
* } );
*/
$.fn.DataTable.ext.pager.full_numbers_no_ellipses = function(page, pages){
var numbers = [];
var buttons = $.fn.DataTable.ext.pager.numbers_length;
var half = Math.floor( buttons / 2 );
var _range = function ( len, start ){
var end;
if ( typeof start === "undefined" ){
start = 0;
end = len;
} else {
end = start;
start = len;
}
var out = [];
for ( var i = start ; i < end; i++ ){ out.push(i); }
return out;
};
if ( pages <= buttons ) {
numbers = _range( 0, pages );
} else if ( page <= half ) {
numbers = _range( 0, buttons);
} else if ( page >= pages - 1 - half ) {
numbers = _range( pages - buttons, pages );
} else {
numbers = _range( page - half, page + half + 1);
}
numbers.DT_el = 'span';
return [ 'first', 'previous', numbers, 'next', 'last' ];
};