Merge pull request #198 from mpryvkin/master
Paging plug-ins: New no-ellipsis plug-ins.pull/252/head
commit
496194cc96
@ -0,0 +1,59 @@
|
|||||||
|
/**
|
||||||
|
* 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' ];
|
||||||
|
};
|
@ -0,0 +1,59 @@
|
|||||||
|
/**
|
||||||
|
* Plug-in offers the same functionality as `simple_numbers` pagination type
|
||||||
|
* (see `pagingType` option) but without ellipses.
|
||||||
|
*
|
||||||
|
* See [example](http://www.gyrocode.com/articles/jquery-datatables-pagination-without-ellipses) for demonstration.
|
||||||
|
*
|
||||||
|
* @name Simple Numbers - No Ellipses
|
||||||
|
* @summary Same pagination as 'simple_numbers' but without ellipses
|
||||||
|
* @author [Michael Ryvkin](http://www.gyrocode.com)
|
||||||
|
*
|
||||||
|
* @example
|
||||||
|
* $(document).ready(function() {
|
||||||
|
* $('#example').dataTable( {
|
||||||
|
* "pagingType": "simple_numbers_no_ellipses"
|
||||||
|
* } );
|
||||||
|
* } );
|
||||||
|
*/
|
||||||
|
|
||||||
|
$.fn.DataTable.ext.pager.simple_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 [ 'previous', numbers, 'next' ];
|
||||||
|
};
|
Loading…
Reference in new issue