jquery-datatables 1.10.19.1 → 1.10.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitattributes +1 -0
- data/README.md +28 -1
- data/app/assets/javascripts/datatables/dataTables.uikit.js +2 -2
- data/app/assets/javascripts/datatables/extensions/AutoFill/dataTables.autoFill.js +42 -29
- data/app/assets/javascripts/datatables/extensions/Buttons/buttons.bootstrap.js +1 -1
- data/app/assets/javascripts/datatables/extensions/Buttons/buttons.bootstrap4.js +8 -2
- data/app/assets/javascripts/datatables/extensions/Buttons/buttons.colVis.js +6 -3
- data/app/assets/javascripts/datatables/extensions/Buttons/buttons.foundation.js +5 -4
- data/app/assets/javascripts/datatables/extensions/Buttons/buttons.html5.js +58 -6
- data/app/assets/javascripts/datatables/extensions/Buttons/buttons.print.js +16 -5
- data/app/assets/javascripts/datatables/extensions/Buttons/buttons.semanticui.js +1 -1
- data/app/assets/javascripts/datatables/extensions/Buttons/dataTables.buttons.js +267 -152
- data/app/assets/javascripts/datatables/extensions/ColReorder/colReorder.foundation.js +1 -1
- data/app/assets/javascripts/datatables/extensions/ColReorder/dataTables.colReorder.js +121 -52
- data/app/assets/javascripts/datatables/extensions/FixedColumns/dataTables.fixedColumns.js +32 -5
- data/app/assets/javascripts/datatables/extensions/KeyTable/dataTables.keyTable.js +166 -63
- data/app/assets/javascripts/datatables/extensions/KeyTable/keyTable.foundation.js +1 -1
- data/app/assets/javascripts/datatables/extensions/RowGroup/dataTables.rowGroup.js +105 -53
- data/app/assets/javascripts/datatables/extensions/RowGroup/rowGroup.foundation.js +1 -1
- data/app/assets/javascripts/datatables/extensions/RowGroup/{rowGroup.semanicui.js → rowGroup.semanticui.js} +0 -0
- data/app/assets/javascripts/datatables/extensions/RowReorder/dataTables.rowReorder.js +10 -9
- data/app/assets/javascripts/datatables/extensions/RowReorder/rowReorder.foundation.js +1 -1
- data/app/assets/javascripts/datatables/extensions/Scroller/dataTables.scroller.js +519 -636
- data/app/assets/javascripts/datatables/extensions/Scroller/scroller.foundation.js +1 -1
- data/app/assets/javascripts/datatables/extensions/Select/dataTables.select.js +49 -18
- data/app/assets/javascripts/datatables/extensions/Select/select.foundation.js +1 -1
- data/app/assets/javascripts/datatables/jquery.dataTables.js +97 -60
- data/app/assets/javascripts/datatables/plugins/api/average.js +7 -6
- data/app/assets/javascripts/datatables/plugins/api/sum.js +7 -6
- data/app/assets/javascripts/datatables/plugins/pagination/ellipses.js +160 -0
- data/app/assets/javascripts/datatables/plugins/pagination/extjs.js +137 -0
- data/app/assets/javascripts/datatables/plugins/pagination/four_button.js +110 -0
- data/app/assets/javascripts/datatables/plugins/pagination/full_numbers_no_ellipses.js +59 -0
- data/app/assets/javascripts/datatables/plugins/pagination/input.js +22 -19
- data/app/assets/javascripts/datatables/plugins/pagination/scrolling.js +130 -0
- data/app/assets/javascripts/datatables/plugins/pagination/select.js +97 -0
- data/app/assets/javascripts/datatables/plugins/pagination/simple_incremental_bootstrap.js +154 -0
- data/app/assets/javascripts/datatables/plugins/pagination/simple_numbers_no_ellipses.js +59 -0
- data/app/assets/javascripts/datatables/plugins/search/dataTables.alphabetSearch.js +440 -399
- data/app/assets/javascripts/datatables/plugins/sorting/enum.js +51 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/date-dd-MMM-yyyy.js +63 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/date-de.js +125 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/date-eu.js +64 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/date-euro.js +48 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/date-uk.js +35 -12
- data/app/assets/javascripts/datatables/plugins/type-detection/datetime-moment.js +74 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/datetime-us.js +86 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/file-size.js +37 -13
- data/app/assets/javascripts/datatables/plugins/type-detection/ip-address.js +113 -11
- data/app/assets/javascripts/datatables/plugins/type-detection/numString.js +63 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/percent.js +34 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/time-elapsed-dhms.js +42 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/time.js +56 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/title-numeric.js +40 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/title-string.js +36 -0
- data/app/assets/stylesheets/datatables/extensions/AutoFill/autoFill.dataTables.scss +10 -3
- data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.bootstrap.scss +12 -3
- data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.bootstrap4.scss +13 -6
- data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.dataTables.scss +2 -0
- data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.foundation.scss +5 -1
- data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.jqueryui.scss +1 -0
- data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.semanticui.scss +2 -1
- data/app/assets/stylesheets/datatables/extensions/Buttons/common.scss +10 -0
- data/app/assets/stylesheets/datatables/extensions/Buttons/mixins.scss +42 -30
- data/app/assets/stylesheets/datatables/extensions/FixedColumns/fixedColumns.bootstrap.scss +11 -7
- data/app/assets/stylesheets/datatables/extensions/FixedColumns/fixedColumns.foundation.scss +1 -0
- data/app/assets/stylesheets/datatables/extensions/KeyTable/keyTable.dataTables.scss +13 -5
- data/app/assets/stylesheets/datatables/extensions/RowGroup/rowGroup.dataTables.scss +20 -2
- data/app/assets/stylesheets/datatables/extensions/Scroller/scroller.dataTables.scss +15 -2
- data/lib/jquery-datatables/version.rb +1 -1
- metadata +26 -12
- data/app/assets/javascripts/datatables/dataTables.bootstrap2.js +0 -162
- data/app/assets/javascripts/datatables/extensions/ColReorder/colReorder.semanicui.js +0 -38
- data/app/assets/javascripts/datatables/extensions/FixedColumns/fixedColumns.semanicui.js +0 -38
- data/app/assets/javascripts/datatables/extensions/FixedHeader/fixedHeader.semanicui.js +0 -38
- data/app/assets/javascripts/datatables/extensions/KeyTable/keyTable.semanicui.js +0 -38
- data/app/assets/javascripts/datatables/extensions/RowReorder/rowReorder.semanicui.js +0 -38
- data/app/assets/stylesheets/datatables/dataTables.bootstrap2.scss +0 -178
@@ -0,0 +1,51 @@
|
|
1
|
+
/**
|
2
|
+
* Sort data by a defined enumerated (enum) list. The options for the values in
|
3
|
+
* the enum are defined by passing the values in an array to the method
|
4
|
+
* `$.fn.dataTable.enum`. Type detection and sorting plug-ins for DataTables will
|
5
|
+
* automatically be generated and added to the table.
|
6
|
+
*
|
7
|
+
* For full details and instructions please see [this DataTables blog
|
8
|
+
* post](//datatables.net/blog/2016-06-16).
|
9
|
+
*
|
10
|
+
* @name enum
|
11
|
+
* @summary Dynamically create enum sorting options for a DataTable
|
12
|
+
* @author [SpryMedia Ltd](http://datatables.net)
|
13
|
+
*
|
14
|
+
* @example
|
15
|
+
* $.fn.dataTable.enum( [ 'High', 'Medium', 'Low' ] );
|
16
|
+
*
|
17
|
+
* $('#example').DataTable();
|
18
|
+
*/
|
19
|
+
|
20
|
+
|
21
|
+
(function ($) {
|
22
|
+
|
23
|
+
|
24
|
+
var unique = 0;
|
25
|
+
var types = $.fn.dataTable.ext.type;
|
26
|
+
|
27
|
+
// Using form $.fn.dataTable.enum breaks at least YuiCompressor since enum is
|
28
|
+
// a reserved word in JavaScript
|
29
|
+
$.fn.dataTable['enum'] = function ( arr ) {
|
30
|
+
var name = 'enum-'+(unique++);
|
31
|
+
var lookup = window.Map ? new Map() : {};
|
32
|
+
|
33
|
+
for ( var i=0, ien=arr.length ; i<ien ; i++ ) {
|
34
|
+
lookup[ arr[i] ] = i;
|
35
|
+
}
|
36
|
+
|
37
|
+
// Add type detection
|
38
|
+
types.detect.unshift( function ( d ) {
|
39
|
+
return lookup[ d ] !== undefined ?
|
40
|
+
name :
|
41
|
+
null;
|
42
|
+
} );
|
43
|
+
|
44
|
+
// Add sorting method
|
45
|
+
types.order[ name+'-pre' ] = function ( d ) {
|
46
|
+
return lookup[ d ];
|
47
|
+
};
|
48
|
+
};
|
49
|
+
|
50
|
+
|
51
|
+
})(jQuery);
|
@@ -0,0 +1,63 @@
|
|
1
|
+
/*
|
2
|
+
* Adds a new sorting option to dataTables called `date-dd-mmm-yyyy`. Also
|
3
|
+
* includes a type detection plug-in. Matches and sorts date strings in
|
4
|
+
* the format: `dd/mmm/yyyy`. For example:
|
5
|
+
*
|
6
|
+
* * 02-FEB-1978
|
7
|
+
* * 17-MAY-2013
|
8
|
+
* * 31-JAN-2014
|
9
|
+
*
|
10
|
+
* Please note that this plug-in is **deprecated*. The
|
11
|
+
* [datetime](//datatables.net/blog/2014-12-18) plug-in provides enhanced
|
12
|
+
* functionality and flexibility.
|
13
|
+
*
|
14
|
+
* @name Date (dd-mmm-yyyy)
|
15
|
+
* @summary Sort dates in the format `dd-mmm-yyyy`
|
16
|
+
* @author [Jeromy French](http://www.appliedinter.net/jeromy_works/)
|
17
|
+
* @deprecated
|
18
|
+
*
|
19
|
+
* @example
|
20
|
+
* $('#example').dataTable( {
|
21
|
+
* columnDefs: [
|
22
|
+
* { type: 'date-dd-mmm-yyyy', targets: 0 }
|
23
|
+
* ]
|
24
|
+
* } );
|
25
|
+
*/
|
26
|
+
|
27
|
+
(function () {
|
28
|
+
|
29
|
+
var customDateDDMMMYYYYToOrd = function (date) {
|
30
|
+
"use strict"; //let's avoid tom-foolery in this function
|
31
|
+
// Convert to a number YYYYMMDD which we can use to order
|
32
|
+
var dateParts = date.split(/-/);
|
33
|
+
return (dateParts[2] * 10000) + ($.inArray(dateParts[1].toUpperCase(), ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"]) * 100) + (dateParts[0]*1);
|
34
|
+
};
|
35
|
+
|
36
|
+
// This will help DataTables magic detect the "dd-MMM-yyyy" format; Unshift
|
37
|
+
// so that it's the first data type (so it takes priority over existing)
|
38
|
+
jQuery.fn.dataTableExt.aTypes.unshift(
|
39
|
+
function (sData) {
|
40
|
+
"use strict"; //let's avoid tom-foolery in this function
|
41
|
+
if (/^([0-2]?\d|3[0-1])-(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)-\d{4}/i.test(sData)) {
|
42
|
+
return 'date-dd-mmm-yyyy';
|
43
|
+
}
|
44
|
+
return null;
|
45
|
+
}
|
46
|
+
);
|
47
|
+
|
48
|
+
// define the sorts
|
49
|
+
jQuery.fn.dataTableExt.oSort['date-dd-mmm-yyyy-asc'] = function (a, b) {
|
50
|
+
"use strict"; //let's avoid tom-foolery in this function
|
51
|
+
var ordA = customDateDDMMMYYYYToOrd(a),
|
52
|
+
ordB = customDateDDMMMYYYYToOrd(b);
|
53
|
+
return (ordA < ordB) ? -1 : ((ordA > ordB) ? 1 : 0);
|
54
|
+
};
|
55
|
+
|
56
|
+
jQuery.fn.dataTableExt.oSort['date-dd-mmm-yyyy-desc'] = function (a, b) {
|
57
|
+
"use strict"; //let's avoid tom-foolery in this function
|
58
|
+
var ordA = customDateDDMMMYYYYToOrd(a),
|
59
|
+
ordB = customDateDDMMMYYYYToOrd(b);
|
60
|
+
return (ordA < ordB) ? 1 : ((ordA > ordB) ? -1 : 0);
|
61
|
+
};
|
62
|
+
|
63
|
+
})();
|
@@ -0,0 +1,125 @@
|
|
1
|
+
/**
|
2
|
+
* This sorting plug-in for DataTables will correctly sort data in date time or date
|
3
|
+
* format typically used in Germany:
|
4
|
+
* date and time:`dd.mm.YYYY HH:mm`
|
5
|
+
* just date:`dd.mm.YYYY`.
|
6
|
+
*
|
7
|
+
* Please note that this plug-in is **deprecated*. The
|
8
|
+
* [datetime](//datatables.net/blog/2014-12-18) plug-in provides enhanced
|
9
|
+
* functionality and flexibility.
|
10
|
+
*
|
11
|
+
* @name Date (dd.mm.YYYY) or date and time (dd.mm.YYYY HH:mm)
|
12
|
+
* @summary Sort date / time in the format `dd.mm.YYYY HH:mm` or `dd.mm.YYYY`.
|
13
|
+
* @author [Ronny Vedrilla](http://www.ambient-innovation.com)
|
14
|
+
* @deprecated
|
15
|
+
*
|
16
|
+
* @example
|
17
|
+
* $('#example').dataTable( {
|
18
|
+
* columnDefs: [
|
19
|
+
* { type: 'de_datetime', targets: 0 },
|
20
|
+
* { type: 'de_date', targets: 1 }
|
21
|
+
* ]
|
22
|
+
* } );
|
23
|
+
*/
|
24
|
+
|
25
|
+
jQuery.extend( jQuery.fn.dataTableExt.oSort, {
|
26
|
+
"de_datetime-asc": function ( a, b ) {
|
27
|
+
var x, y;
|
28
|
+
if (jQuery.trim(a) !== '') {
|
29
|
+
var deDatea = jQuery.trim(a).split(' ');
|
30
|
+
var deTimea = deDatea[1].split(':');
|
31
|
+
var deDatea2 = deDatea[0].split('.');
|
32
|
+
if(typeof deTimea[2] != 'undefined') {
|
33
|
+
x = (deDatea2[2] + deDatea2[1] + deDatea2[0] + deTimea[0] + deTimea[1] + deTimea[2]) * 1;
|
34
|
+
} else {
|
35
|
+
x = (deDatea2[2] + deDatea2[1] + deDatea2[0] + deTimea[0] + deTimea[1]) * 1;
|
36
|
+
}
|
37
|
+
} else {
|
38
|
+
x = -Infinity; // = l'an 1000 ...
|
39
|
+
}
|
40
|
+
|
41
|
+
if (jQuery.trim(b) !== '') {
|
42
|
+
var deDateb = jQuery.trim(b).split(' ');
|
43
|
+
var deTimeb = deDateb[1].split(':');
|
44
|
+
deDateb = deDateb[0].split('.');
|
45
|
+
if(typeof deTimeb[2] != 'undefined') {
|
46
|
+
y = (deDateb[2] + deDateb[1] + deDateb[0] + deTimeb[0] + deTimeb[1] + deTimeb[2]) * 1;
|
47
|
+
} else {
|
48
|
+
y = (deDateb[2] + deDateb[1] + deDateb[0] + deTimeb[0] + deTimeb[1]) * 1;
|
49
|
+
}
|
50
|
+
} else {
|
51
|
+
y = -Infinity;
|
52
|
+
}
|
53
|
+
var z = ((x < y) ? -1 : ((x > y) ? 1 : 0));
|
54
|
+
return z;
|
55
|
+
},
|
56
|
+
|
57
|
+
"de_datetime-desc": function ( a, b ) {
|
58
|
+
var x, y;
|
59
|
+
if (jQuery.trim(a) !== '') {
|
60
|
+
var deDatea = jQuery.trim(a).split(' ');
|
61
|
+
var deTimea = deDatea[1].split(':');
|
62
|
+
var deDatea2 = deDatea[0].split('.');
|
63
|
+
if(typeof deTimea[2] != 'undefined') {
|
64
|
+
x = (deDatea2[2] + deDatea2[1] + deDatea2[0] + deTimea[0] + deTimea[1] + deTimea[2]) * 1;
|
65
|
+
} else {
|
66
|
+
x = (deDatea2[2] + deDatea2[1] + deDatea2[0] + deTimea[0] + deTimea[1]) * 1;
|
67
|
+
}
|
68
|
+
} else {
|
69
|
+
x = Infinity;
|
70
|
+
}
|
71
|
+
|
72
|
+
if (jQuery.trim(b) !== '') {
|
73
|
+
var deDateb = jQuery.trim(b).split(' ');
|
74
|
+
var deTimeb = deDateb[1].split(':');
|
75
|
+
deDateb = deDateb[0].split('.');
|
76
|
+
if(typeof deTimeb[2] != 'undefined') {
|
77
|
+
y = (deDateb[2] + deDateb[1] + deDateb[0] + deTimeb[0] + deTimeb[1] + deTimeb[2]) * 1;
|
78
|
+
} else {
|
79
|
+
y = (deDateb[2] + deDateb[1] + deDateb[0] + deTimeb[0] + deTimeb[1]) * 1;
|
80
|
+
}
|
81
|
+
} else {
|
82
|
+
y = -Infinity;
|
83
|
+
}
|
84
|
+
var z = ((x < y) ? 1 : ((x > y) ? -1 : 0));
|
85
|
+
return z;
|
86
|
+
},
|
87
|
+
|
88
|
+
"de_date-asc": function ( a, b ) {
|
89
|
+
var x, y;
|
90
|
+
if (jQuery.trim(a) !== '') {
|
91
|
+
var deDatea = jQuery.trim(a).split('.');
|
92
|
+
x = (deDatea[2] + deDatea[1] + deDatea[0]) * 1;
|
93
|
+
} else {
|
94
|
+
x = Infinity; // = l'an 1000 ...
|
95
|
+
}
|
96
|
+
|
97
|
+
if (jQuery.trim(b) !== '') {
|
98
|
+
var deDateb = jQuery.trim(b).split('.');
|
99
|
+
y = (deDateb[2] + deDateb[1] + deDateb[0]) * 1;
|
100
|
+
} else {
|
101
|
+
y = -Infinity;
|
102
|
+
}
|
103
|
+
var z = ((x < y) ? -1 : ((x > y) ? 1 : 0));
|
104
|
+
return z;
|
105
|
+
},
|
106
|
+
|
107
|
+
"de_date-desc": function ( a, b ) {
|
108
|
+
var x, y;
|
109
|
+
if (jQuery.trim(a) !== '') {
|
110
|
+
var deDatea = jQuery.trim(a).split('.');
|
111
|
+
x = (deDatea[2] + deDatea[1] + deDatea[0]) * 1;
|
112
|
+
} else {
|
113
|
+
x = -Infinity;
|
114
|
+
}
|
115
|
+
|
116
|
+
if (jQuery.trim(b) !== '') {
|
117
|
+
var deDateb = jQuery.trim(b).split('.');
|
118
|
+
y = (deDateb[2] + deDateb[1] + deDateb[0]) * 1;
|
119
|
+
} else {
|
120
|
+
y = Infinity;
|
121
|
+
}
|
122
|
+
var z = ((x < y) ? 1 : ((x > y) ? -1 : 0));
|
123
|
+
return z;
|
124
|
+
}
|
125
|
+
} );
|
@@ -0,0 +1,64 @@
|
|
1
|
+
/**
|
2
|
+
* Similar to the Date (dd/mm/YY) data sorting plug-in, this plug-in offers
|
3
|
+
* additional flexibility with support for spaces between the values and
|
4
|
+
* either . or / notation for the separators.
|
5
|
+
*
|
6
|
+
* Please note that this plug-in is **deprecated*. The
|
7
|
+
* [datetime](//datatables.net/blog/2014-12-18) plug-in provides enhanced
|
8
|
+
* functionality and flexibility.
|
9
|
+
*
|
10
|
+
* @name Date (dd . mm[ . YYYY])
|
11
|
+
* @summary Sort dates in the format `dd/mm/YY[YY]` (with optional spaces)
|
12
|
+
* @author [Robert Sedovšek](http://galjot.si/)
|
13
|
+
* @deprecated
|
14
|
+
*
|
15
|
+
* @example
|
16
|
+
* $('#example').dataTable( {
|
17
|
+
* columnDefs: [
|
18
|
+
* { type: 'date-eu', targets: 0 }
|
19
|
+
* ]
|
20
|
+
* } );
|
21
|
+
*/
|
22
|
+
|
23
|
+
jQuery.extend( jQuery.fn.dataTableExt.oSort, {
|
24
|
+
"date-eu-pre": function ( date ) {
|
25
|
+
date = date.replace(" ", "");
|
26
|
+
|
27
|
+
if ( ! date ) {
|
28
|
+
return 0;
|
29
|
+
}
|
30
|
+
|
31
|
+
var year;
|
32
|
+
var eu_date = date.split(/[\.\-\/]/);
|
33
|
+
|
34
|
+
/*year (optional)*/
|
35
|
+
if ( eu_date[2] ) {
|
36
|
+
year = eu_date[2];
|
37
|
+
}
|
38
|
+
else {
|
39
|
+
year = 0;
|
40
|
+
}
|
41
|
+
|
42
|
+
/*month*/
|
43
|
+
var month = eu_date[1];
|
44
|
+
if ( month.length == 1 ) {
|
45
|
+
month = 0+month;
|
46
|
+
}
|
47
|
+
|
48
|
+
/*day*/
|
49
|
+
var day = eu_date[0];
|
50
|
+
if ( day.length == 1 ) {
|
51
|
+
day = 0+day;
|
52
|
+
}
|
53
|
+
|
54
|
+
return (year + month + day) * 1;
|
55
|
+
},
|
56
|
+
|
57
|
+
"date-eu-asc": function ( a, b ) {
|
58
|
+
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
|
59
|
+
},
|
60
|
+
|
61
|
+
"date-eu-desc": function ( a, b ) {
|
62
|
+
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
|
63
|
+
}
|
64
|
+
} );
|
@@ -0,0 +1,48 @@
|
|
1
|
+
/**
|
2
|
+
* This plug-in will provide date sorting for the "dd/mm/YYYY hh:ii:ss"
|
3
|
+
* formatting, which is common in France and other European countries. It can
|
4
|
+
* also be quickly adapted for other formatting as required. Furthermore, this
|
5
|
+
* date sorting plug-in allows for empty values in the column.
|
6
|
+
*
|
7
|
+
* Please note that this plug-in is **deprecated*. The
|
8
|
+
* [datetime](//datatables.net/blog/2014-12-18) plug-in provides enhanced
|
9
|
+
* functionality and flexibility.
|
10
|
+
*
|
11
|
+
* @name Date (dd/mm/YYYY hh:ii:ss)
|
12
|
+
* @summary Sort date / time in the format `dd/mm/YYYY hh:ii:ss`
|
13
|
+
* @author [Ronan Guilloux](http://coolforest.net/)
|
14
|
+
* @deprecated
|
15
|
+
*
|
16
|
+
* @example
|
17
|
+
* $('#example').dataTable( {
|
18
|
+
* columnDefs: [
|
19
|
+
* { type: 'date-euro', targets: 0 }
|
20
|
+
* ]
|
21
|
+
* } );
|
22
|
+
*/
|
23
|
+
|
24
|
+
jQuery.extend( jQuery.fn.dataTableExt.oSort, {
|
25
|
+
"date-euro-pre": function ( a ) {
|
26
|
+
var x;
|
27
|
+
|
28
|
+
if ( $.trim(a) !== '' ) {
|
29
|
+
var frDatea = $.trim(a).split(' ');
|
30
|
+
var frTimea = (undefined != frDatea[1]) ? frDatea[1].split(':') : [00,00,00];
|
31
|
+
var frDatea2 = frDatea[0].split('/');
|
32
|
+
x = (frDatea2[2] + frDatea2[1] + frDatea2[0] + frTimea[0] + frTimea[1] + ((undefined != frTimea[2]) ? frTimea[2] : 0)) * 1;
|
33
|
+
}
|
34
|
+
else {
|
35
|
+
x = Infinity;
|
36
|
+
}
|
37
|
+
|
38
|
+
return x;
|
39
|
+
},
|
40
|
+
|
41
|
+
"date-euro-asc": function ( a, b ) {
|
42
|
+
return a - b;
|
43
|
+
},
|
44
|
+
|
45
|
+
"date-euro-desc": function ( a, b ) {
|
46
|
+
return b - a;
|
47
|
+
}
|
48
|
+
} );
|
@@ -1,19 +1,42 @@
|
|
1
1
|
/**
|
2
|
-
*
|
3
|
-
*
|
2
|
+
* DataTables internal date sorting replies on `Date.parse()` which is part of
|
3
|
+
* the Javascript language, but you may wish to sort on dates which is doesn't
|
4
|
+
* recognise. The following is a plug-in for sorting dates in the format
|
5
|
+
* `dd/mm/yy`.
|
6
|
+
*
|
7
|
+
* An automatic type detection plug-in is available for this sorting plug-in.
|
4
8
|
*
|
5
|
-
*
|
6
|
-
*
|
9
|
+
* Please note that this plug-in is **deprecated*. The
|
10
|
+
* [datetime](//datatables.net/blog/2014-12-18) plug-in provides enhanced
|
11
|
+
* functionality and flexibility.
|
12
|
+
*
|
13
|
+
* @name Date (dd/mm/YY)
|
14
|
+
* @summary Sort dates in the format `dd/mm/YY`
|
7
15
|
* @author Andy McMaster
|
16
|
+
* @deprecated
|
17
|
+
*
|
18
|
+
* @example
|
19
|
+
* $('#example').dataTable( {
|
20
|
+
* columnDefs: [
|
21
|
+
* { type: 'date-uk', targets: 0 }
|
22
|
+
* ]
|
23
|
+
* } );
|
8
24
|
*/
|
9
25
|
|
10
|
-
jQuery.fn.dataTableExt.
|
11
|
-
function (
|
12
|
-
|
13
|
-
|
14
|
-
{
|
15
|
-
return 'date-uk';
|
26
|
+
jQuery.extend(jQuery.fn.dataTableExt.oSort, {
|
27
|
+
"date-uk-pre": function (a) {
|
28
|
+
if (a == null || a == "") {
|
29
|
+
return 0;
|
16
30
|
}
|
17
|
-
|
31
|
+
var ukDatea = a.split('/');
|
32
|
+
return (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
|
33
|
+
},
|
34
|
+
|
35
|
+
"date-uk-asc": function (a, b) {
|
36
|
+
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
|
37
|
+
},
|
38
|
+
|
39
|
+
"date-uk-desc": function (a, b) {
|
40
|
+
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
|
18
41
|
}
|
19
|
-
);
|
42
|
+
});
|
@@ -0,0 +1,74 @@
|
|
1
|
+
/**
|
2
|
+
* This plug-in for DataTables represents the ultimate option in extensibility
|
3
|
+
* for sorting date / time strings correctly. It uses
|
4
|
+
* [Moment.js](http://momentjs.com) to create automatic type detection and
|
5
|
+
* sorting plug-ins for DataTables based on a given format. This way, DataTables
|
6
|
+
* will automatically detect your temporal information and sort it correctly.
|
7
|
+
*
|
8
|
+
* For usage instructions, please see the DataTables blog
|
9
|
+
* post that [introduces it](//datatables.net/blog/2014-12-18).
|
10
|
+
*
|
11
|
+
* @name Ultimate Date / Time sorting
|
12
|
+
* @summary Sort date and time in any format using Moment.js
|
13
|
+
* @author [Allan Jardine](//datatables.net)
|
14
|
+
* @depends DataTables 1.10+, Moment.js 1.7+
|
15
|
+
*
|
16
|
+
* @example
|
17
|
+
* $.fn.dataTable.moment( 'HH:mm MMM D, YY' );
|
18
|
+
* $.fn.dataTable.moment( 'dddd, MMMM Do, YYYY' );
|
19
|
+
*
|
20
|
+
* $('#example').DataTable();
|
21
|
+
*/
|
22
|
+
|
23
|
+
(function (factory) {
|
24
|
+
if (typeof define === "function" && define.amd) {
|
25
|
+
define(["jquery", "moment", "datatables.net"], factory);
|
26
|
+
} else {
|
27
|
+
factory(jQuery, moment);
|
28
|
+
}
|
29
|
+
}(function ($, moment) {
|
30
|
+
|
31
|
+
$.fn.dataTable.moment = function ( format, locale, reverseEmpties ) {
|
32
|
+
var types = $.fn.dataTable.ext.type;
|
33
|
+
|
34
|
+
// Add type detection
|
35
|
+
types.detect.unshift( function ( d ) {
|
36
|
+
if ( d ) {
|
37
|
+
// Strip HTML tags and newline characters if possible
|
38
|
+
if ( d.replace ) {
|
39
|
+
d = d.replace(/(<.*?>)|(\r?\n|\r)/g, '');
|
40
|
+
}
|
41
|
+
|
42
|
+
// Strip out surrounding white space
|
43
|
+
d = $.trim( d );
|
44
|
+
}
|
45
|
+
|
46
|
+
// Null and empty values are acceptable
|
47
|
+
if ( d === '' || d === null ) {
|
48
|
+
return 'moment-'+format;
|
49
|
+
}
|
50
|
+
|
51
|
+
return moment( d, format, locale, true ).isValid() ?
|
52
|
+
'moment-'+format :
|
53
|
+
null;
|
54
|
+
} );
|
55
|
+
|
56
|
+
// Add sorting method - use an integer for the sorting
|
57
|
+
types.order[ 'moment-'+format+'-pre' ] = function ( d ) {
|
58
|
+
if ( d ) {
|
59
|
+
// Strip HTML tags and newline characters if possible
|
60
|
+
if ( d.replace ) {
|
61
|
+
d = d.replace(/(<.*?>)|(\r?\n|\r)/g, '');
|
62
|
+
}
|
63
|
+
|
64
|
+
// Strip out surrounding white space
|
65
|
+
d = $.trim( d );
|
66
|
+
}
|
67
|
+
|
68
|
+
return !moment(d, format, locale, true).isValid() ?
|
69
|
+
(reverseEmpties ? -Infinity : Infinity) :
|
70
|
+
parseInt( moment( d, format, locale, true ).format( 'x' ), 10 );
|
71
|
+
};
|
72
|
+
};
|
73
|
+
|
74
|
+
}));
|