From ccfbab686e5fe2c9f620ba389f69dba9f512d58d Mon Sep 17 00:00:00 2001 From: Michael Ryvkin Date: Mon, 15 Jun 2015 10:52:07 -0400 Subject: [PATCH 1/5] Added "Full Numbers - No Ellipses" pagination plug-in --- pagination/full_numbers_no_ellipses.js | 57 ++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 pagination/full_numbers_no_ellipses.js diff --git a/pagination/full_numbers_no_ellipses.js b/pagination/full_numbers_no_ellipses.js new file mode 100644 index 0000000..dc7088a --- /dev/null +++ b/pagination/full_numbers_no_ellipses.js @@ -0,0 +1,57 @@ +/** + * Plug-in offers the same functionality as `full_numbers` pagination type + * (see `pagingType` option) but without ellipses. + * + * @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' ]; +}; From 64b3620e4909411897993a97f6e901db1570e06b Mon Sep 17 00:00:00 2001 From: Michael Ryvkin Date: Mon, 15 Jun 2015 10:52:43 -0400 Subject: [PATCH 2/5] Added "Simple Numbers - No Ellipses" pagination plug-in --- pagination/simple_numbers_no_ellipses.js | 57 ++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 pagination/simple_numbers_no_ellipses.js diff --git a/pagination/simple_numbers_no_ellipses.js b/pagination/simple_numbers_no_ellipses.js new file mode 100644 index 0000000..696d364 --- /dev/null +++ b/pagination/simple_numbers_no_ellipses.js @@ -0,0 +1,57 @@ +/** + * Plug-in offers the same functionality as `simple_numbers` pagination type + * (see `pagingType` option) but without ellipses. + * + * @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.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 [ 'previous', numbers, 'next' ]; +}; From e44916145883763b5eeed6dfd15e4ee404fc9c61 Mon Sep 17 00:00:00 2001 From: Michael Ryvkin Date: Mon, 15 Jun 2015 12:24:29 -0400 Subject: [PATCH 3/5] Added reference to the article with an example --- pagination/full_numbers_no_ellipses.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pagination/full_numbers_no_ellipses.js b/pagination/full_numbers_no_ellipses.js index dc7088a..17c91da 100644 --- a/pagination/full_numbers_no_ellipses.js +++ b/pagination/full_numbers_no_ellipses.js @@ -2,6 +2,8 @@ * 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) From b06298f99308d2cd78fb11e85eadee1dd4376556 Mon Sep 17 00:00:00 2001 From: Michael Ryvkin Date: Mon, 15 Jun 2015 12:24:38 -0400 Subject: [PATCH 4/5] Added reference to the article with an example --- pagination/simple_numbers_no_ellipses.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pagination/simple_numbers_no_ellipses.js b/pagination/simple_numbers_no_ellipses.js index 696d364..ebdf44a 100644 --- a/pagination/simple_numbers_no_ellipses.js +++ b/pagination/simple_numbers_no_ellipses.js @@ -2,6 +2,8 @@ * 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) From cffe47b735efb5d6f341b73aa49334febb3811b2 Mon Sep 17 00:00:00 2001 From: Michael Ryvkin Date: Mon, 15 Jun 2015 17:09:52 -0400 Subject: [PATCH 5/5] Corrected typo --- pagination/simple_numbers_no_ellipses.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pagination/simple_numbers_no_ellipses.js b/pagination/simple_numbers_no_ellipses.js index ebdf44a..cc079ce 100644 --- a/pagination/simple_numbers_no_ellipses.js +++ b/pagination/simple_numbers_no_ellipses.js @@ -16,7 +16,7 @@ * } ); */ -$.fn.DataTable.ext.pager.full_numbers_no_ellipses = function(page, pages){ +$.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 );