From ccfbab686e5fe2c9f620ba389f69dba9f512d58d Mon Sep 17 00:00:00 2001 From: Michael Ryvkin Date: Mon, 15 Jun 2015 10:52:07 -0400 Subject: [PATCH 1/7] 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/7] 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/7] 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/7] 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/7] 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 ); From fbfc2f85fcce442a8afb9edfe9acc893a94d5ea3 Mon Sep 17 00:00:00 2001 From: Maurice Date: Tue, 23 Feb 2016 13:24:48 +0100 Subject: [PATCH 6/7] Fix - i18n: Norwegian translation was not valid JSON Added a comma to make the JSON valid. --- i18n/Norwegian.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/Norwegian.lang b/i18n/Norwegian.lang index 615f37b..26d26ef 100644 --- a/i18n/Norwegian.lang +++ b/i18n/Norwegian.lang @@ -25,7 +25,7 @@ "sPrevious": "Forrige", "sNext": "Neste", "sLast": "Siste" - } + }, "oAria": { "sSortAscending": ": aktiver for å sortere kolonnen stigende", "sSortDescending": ": aktiver for å sortere kolonnen synkende" From a51940723b8e688c999852b96fdc9ab27e24153e Mon Sep 17 00:00:00 2001 From: Alexander Date: Thu, 25 Feb 2016 11:07:11 +0300 Subject: [PATCH 7/7] Fix exception when data field is empty Treat empty fields (empty data variable) as '-1' digit. While sorting put this fields to the end/beginning. --- sorting/file-size.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sorting/file-size.js b/sorting/file-size.js index 017a5a0..f38597d 100644 --- a/sorting/file-size.js +++ b/sorting/file-size.js @@ -29,6 +29,10 @@ jQuery.fn.dataTable.ext.type.order['file-size-pre'] = function ( data ) { pb: 1000000000000000 }; - var multiplier = multipliers[matches[2].toLowerCase()]; - return parseFloat( matches[1] ) * multiplier; + if (matches) { + var multiplier = multipliers[matches[2].toLowerCase()]; + return parseFloat( matches[1] ) * multiplier; + } else { + return -1; + }; };