jquery-tablesorter 1.24.5 → 1.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/jquery-tablesorter/version.rb +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.js +85 -85
- data/vendor/assets/javascripts/jquery-tablesorter/beta-testing/widget-reorder.js +17 -18
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.combined.js +128 -101
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.js +70 -58
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.widgets.js +58 -43
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-extract.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-iso8601.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-month.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-range.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-two-digit-year.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-weekday.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-duration.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-feet-inch-fraction.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-file-type.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-ignore-articles.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-image.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-input-select.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-leading-zeros.js +1 -0
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-named-numbers.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-network.js +4 -4
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-roman.js +5 -5
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-alignChar.js +15 -15
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-build-table.js +28 -18
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-chart.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-columnSelector.js +22 -18
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-cssStickyHeaders.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-formatter-html5.js +34 -31
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-formatter-jui.js +46 -46
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-formatter-select2.js +10 -10
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-type-insideRange.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter.js +17 -13
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-formatter.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-grouping.js +14 -15
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-headerTitles.js +8 -9
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-lazyload.js +35 -35
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-math.js +8 -9
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-output.js +7 -6
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-pager.js +60 -56
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-print.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-reflow.js +11 -11
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-repeatheaders.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-resizable.js +3 -3
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-saveSort.js +23 -12
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-scroller.js +3 -4
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-sort2Hash.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-sortTbodies.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-staticRow.js +7 -7
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-stickyHeaders.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-storage.js +5 -6
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-uitheme.js +7 -6
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-vertical-group.js +10 -12
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-view.js +3 -3
- metadata +2 -2
@@ -4,8 +4,8 @@
|
|
4
4
|
*/
|
5
5
|
/*jshint browser:true, jquery:true, unused:false */
|
6
6
|
/*global jQuery: false */
|
7
|
-
;(function($){
|
8
|
-
|
7
|
+
;(function($) {
|
8
|
+
'use strict';
|
9
9
|
|
10
10
|
$.tablesorter.addWidget({
|
11
11
|
id: 'reorder',
|
@@ -22,14 +22,13 @@ $.tablesorter.addWidget({
|
|
22
22
|
init: function(table, thisWidget, c, wo) {
|
23
23
|
var i, timer, $helper, $bar, clickOffset,
|
24
24
|
lastIndx = -1,
|
25
|
-
ts = $.tablesorter,
|
26
25
|
endIndex = -1,
|
27
26
|
startIndex = -1,
|
28
27
|
t = wo.reorder_blocked.split(' '),
|
29
28
|
noReorderLeft = t[0] || 'reorder-block-left',
|
30
29
|
noReorderLast = t[1] || 'reorder-block-end',
|
31
30
|
lastOffset = c.$headers.not('.' + noReorderLeft).first(),
|
32
|
-
offsets = c.$headers.map(function(
|
31
|
+
offsets = c.$headers.map(function() {
|
33
32
|
var s, $t = $(this);
|
34
33
|
if ($t.hasClass(noReorderLeft)) {
|
35
34
|
s = lastOffset;
|
@@ -40,7 +39,7 @@ $.tablesorter.addWidget({
|
|
40
39
|
return $t.offset().left;
|
41
40
|
}).get(),
|
42
41
|
len = offsets.length,
|
43
|
-
startReorder = function(e, $th){
|
42
|
+
startReorder = function(e, $th) {
|
44
43
|
var p = $th.position(),
|
45
44
|
r = $th.parent().position(),
|
46
45
|
i = startIndex = $th.index();
|
@@ -68,7 +67,7 @@ $.tablesorter.addWidget({
|
|
68
67
|
positionBar(e);
|
69
68
|
lastIndx = endIndex;
|
70
69
|
},
|
71
|
-
positionBar = function(e){
|
70
|
+
positionBar = function(e) {
|
72
71
|
for (i = 0; i <= len; i++) {
|
73
72
|
if ( i > 0 && e.pageX < offsets[i-1] + (offsets[i] - offsets[i-1])/2 && !c.$headers.eq(i).hasClass(noReorderLeft) ) {
|
74
73
|
endIndex = i - 1;
|
@@ -87,7 +86,7 @@ $.tablesorter.addWidget({
|
|
87
86
|
$bar.css('left', offsets[len]);
|
88
87
|
}
|
89
88
|
},
|
90
|
-
finishReorder = function(){
|
89
|
+
finishReorder = function() {
|
91
90
|
$helper.remove();
|
92
91
|
$bar.remove();
|
93
92
|
// finish reorder
|
@@ -95,7 +94,7 @@ $.tablesorter.addWidget({
|
|
95
94
|
rows = c.$table.find('tr'),
|
96
95
|
cols;
|
97
96
|
startIndex = -1; // stop mousemove updates
|
98
|
-
if ( s > -1 && endIndex > -1 && s
|
97
|
+
if ( s > -1 && endIndex > -1 && s !== endIndex && s + 1 !== endIndex ) {
|
99
98
|
adj = endIndex !== 0;
|
100
99
|
if (c.debug) {
|
101
100
|
console.log( 'Inserting column ' + s + (adj ? ' after' : ' before') + ' column ' + (endIndex - adj ? 1 : 0) );
|
@@ -123,10 +122,10 @@ $.tablesorter.addWidget({
|
|
123
122
|
}
|
124
123
|
endIndex = -1;
|
125
124
|
},
|
126
|
-
mdown = function(e, el){
|
125
|
+
mdown = function(e, el) {
|
127
126
|
var $t = $(el), evt = e;
|
128
127
|
if ($t.hasClass(wo.reorder_noReorder)) { return; }
|
129
|
-
timer = setTimeout(function(){
|
128
|
+
timer = setTimeout(function() {
|
130
129
|
$t.addClass('tablesorter-reorder');
|
131
130
|
startReorder(evt, $t);
|
132
131
|
}, wo.reorder_delay);
|
@@ -140,13 +139,13 @@ $.tablesorter.addWidget({
|
|
140
139
|
offsets.push( c.$table.offset().left + c.$table.outerWidth() );
|
141
140
|
}
|
142
141
|
|
143
|
-
c.$headers.not('.' + wo.reorder_noReorder).bind('mousedown.reorder', function(e){
|
142
|
+
c.$headers.not('.' + wo.reorder_noReorder).bind('mousedown.reorder', function(e) {
|
144
143
|
mdown(e, this);
|
145
144
|
});
|
146
145
|
|
147
146
|
$(document)
|
148
|
-
.bind('mousemove.reorder', function(e){
|
149
|
-
if (startIndex !== -1){
|
147
|
+
.bind('mousemove.reorder', function(e) {
|
148
|
+
if (startIndex !== -1) {
|
150
149
|
var c = { left : e.pageX - clickOffset[0] };
|
151
150
|
endIndex = -1;
|
152
151
|
if (/y/.test(wo.reorder_axis)) {
|
@@ -157,9 +156,9 @@ $.tablesorter.addWidget({
|
|
157
156
|
}
|
158
157
|
})
|
159
158
|
.add( c.$headers )
|
160
|
-
.bind('mouseup.reorder', function(){
|
159
|
+
.bind('mouseup.reorder', function() {
|
161
160
|
clearTimeout(timer);
|
162
|
-
if (startIndex !== -1 && endIndex !== -1){
|
161
|
+
if (startIndex !== -1 && endIndex !== -1) {
|
163
162
|
finishReorder();
|
164
163
|
} else {
|
165
164
|
startIndex = -1;
|
@@ -167,8 +166,8 @@ $.tablesorter.addWidget({
|
|
167
166
|
});
|
168
167
|
|
169
168
|
// has sticky headers?
|
170
|
-
c.$table.bind('stickyHeadersInit', function(){
|
171
|
-
wo.$sticky.find('thead').children().not('.' + wo.reorder_noReorder).bind('mousedown.reorder', function(e){
|
169
|
+
c.$table.bind('stickyHeadersInit', function() {
|
170
|
+
wo.$sticky.find('thead').children().not('.' + wo.reorder_noReorder).bind('mousedown.reorder', function(e) {
|
172
171
|
mdown(e, this);
|
173
172
|
});
|
174
173
|
});
|
@@ -177,6 +176,6 @@ $.tablesorter.addWidget({
|
|
177
176
|
});
|
178
177
|
|
179
178
|
// add mouse coordinates
|
180
|
-
$x = $('#main h1:last'); $(document).mousemove(function(e){ $x.html( e.pageX ); });
|
179
|
+
$x = $('#main h1:last'); $(document).mousemove(function(e) { $x.html( e.pageX ); });
|
181
180
|
|
182
181
|
})(jQuery);
|
@@ -4,7 +4,7 @@
|
|
4
4
|
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██
|
5
5
|
█████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
|
6
6
|
*/
|
7
|
-
/*! tablesorter (FORK) - updated 2018-
|
7
|
+
/*! tablesorter (FORK) - updated 2018-03-19 (v2.30.1)*/
|
8
8
|
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
9
9
|
(function(factory) {
|
10
10
|
if (typeof define === 'function' && define.amd) {
|
@@ -16,7 +16,7 @@
|
|
16
16
|
}
|
17
17
|
}(function(jQuery) {
|
18
18
|
|
19
|
-
/*! TableSorter (FORK) v2.
|
19
|
+
/*! TableSorter (FORK) v2.30.1 *//*
|
20
20
|
* Client-side table sorting with ease!
|
21
21
|
* @requires jQuery v1.2.6+
|
22
22
|
*
|
@@ -40,7 +40,7 @@
|
|
40
40
|
'use strict';
|
41
41
|
var ts = $.tablesorter = {
|
42
42
|
|
43
|
-
version : '2.
|
43
|
+
version : '2.30.1',
|
44
44
|
|
45
45
|
parsers : [],
|
46
46
|
widgets : [],
|
@@ -52,8 +52,8 @@
|
|
52
52
|
showProcessing : false, // show an indeterminate timer icon in the header when the table is sorted or filtered.
|
53
53
|
|
54
54
|
headerTemplate : '{content}',// header layout template (HTML ok); {content} = innerHTML, {icon} = <i/> // class from cssIcon
|
55
|
-
onRenderTemplate : null, // function( index, template ){ return template; }, // template is a string
|
56
|
-
onRenderHeader : null, // function( index ){}, // nothing to return
|
55
|
+
onRenderTemplate : null, // function( index, template ) { return template; }, // template is a string
|
56
|
+
onRenderHeader : null, // function( index ) {}, // nothing to return
|
57
57
|
|
58
58
|
// *** functionality
|
59
59
|
cancelSelection : true, // prevent text selection in the header
|
@@ -82,7 +82,7 @@
|
|
82
82
|
emptyTo : 'bottom', // sort empty cell to bottom, top, none, zero, emptyMax, emptyMin
|
83
83
|
stringTo : 'max', // sort strings in numerical column as max, min, top, bottom, zero
|
84
84
|
duplicateSpan : true, // colspan cells in the tbody will have duplicated content in the cache for each spanned column
|
85
|
-
textExtraction : 'basic', // text extraction method/function - function( node, table, cellIndex ){}
|
85
|
+
textExtraction : 'basic', // text extraction method/function - function( node, table, cellIndex ) {}
|
86
86
|
textAttribute : 'data-text',// data-attribute that contains alternate cell text (used in default textExtraction function)
|
87
87
|
textSorter : null, // choose overall or specific column sorter function( a, b, direction, table, columnIndex ) [alt: ts.sortText]
|
88
88
|
numberSorter : null, // choose overall numeric sorter function( a, b, direction, maxColumnValue )
|
@@ -96,7 +96,7 @@
|
|
96
96
|
},
|
97
97
|
|
98
98
|
// *** callbacks
|
99
|
-
initialized : null, // function( table ){},
|
99
|
+
initialized : null, // function( table ) {},
|
100
100
|
|
101
101
|
// *** extra css class names
|
102
102
|
tableClass : '',
|
@@ -234,7 +234,7 @@
|
|
234
234
|
setup : function( table, c ) {
|
235
235
|
// if no thead or tbody, or tablesorter is already present, quit
|
236
236
|
if ( !table || !table.tHead || table.tBodies.length === 0 || table.hasInitialized === true ) {
|
237
|
-
if (
|
237
|
+
if ( ts.debug(c, 'core') ) {
|
238
238
|
if ( table.hasInitialized ) {
|
239
239
|
console.warn( 'Stopping initialization. Tablesorter has already been initialized' );
|
240
240
|
} else {
|
@@ -255,7 +255,7 @@
|
|
255
255
|
table.config = c;
|
256
256
|
// save the settings where they read
|
257
257
|
$.data( table, 'tablesorter', c );
|
258
|
-
if (
|
258
|
+
if ( ts.debug(c, 'core') ) {
|
259
259
|
console[ console.group ? 'group' : 'log' ]( 'Initializing tablesorter v' + ts.version );
|
260
260
|
$.data( table, 'startoveralltimer', new Date() );
|
261
261
|
}
|
@@ -316,7 +316,10 @@
|
|
316
316
|
ts.setupParsers( c );
|
317
317
|
// start total row count at zero
|
318
318
|
c.totalRows = 0;
|
319
|
-
|
319
|
+
// only validate options while debugging. See #1528
|
320
|
+
if (c.debug) {
|
321
|
+
ts.validateOptions( c );
|
322
|
+
}
|
320
323
|
// build the cache for the tbody cells
|
321
324
|
// delayInit will delay building the cache until the user starts a sort
|
322
325
|
if ( !c.delayInit ) { ts.buildCache( c ); }
|
@@ -361,9 +364,9 @@
|
|
361
364
|
// initialized
|
362
365
|
table.hasInitialized = true;
|
363
366
|
table.isProcessing = false;
|
364
|
-
if (
|
367
|
+
if ( ts.debug(c, 'core') ) {
|
365
368
|
console.log( 'Overall initialization time:' + ts.benchmark( $.data( table, 'startoveralltimer' ) ) );
|
366
|
-
if (
|
369
|
+
if ( ts.debug(c, 'core') && console.groupEnd ) { console.groupEnd(); }
|
367
370
|
}
|
368
371
|
$table.triggerHandler( 'tablesorter-initialized', table );
|
369
372
|
if ( typeof c.initialized === 'function' ) {
|
@@ -560,7 +563,7 @@
|
|
560
563
|
c.headerList = [];
|
561
564
|
c.headerContent = [];
|
562
565
|
c.sortVars = [];
|
563
|
-
if (
|
566
|
+
if ( ts.debug(c, 'core') ) {
|
564
567
|
timer = new Date();
|
565
568
|
}
|
566
569
|
// children tr in tfoot - see issue #196 & #547
|
@@ -655,7 +658,7 @@
|
|
655
658
|
});
|
656
659
|
// enable/disable sorting
|
657
660
|
ts.updateHeader( c );
|
658
|
-
if (
|
661
|
+
if ( ts.debug(c, 'core') ) {
|
659
662
|
console.log( 'Built headers:' + ts.benchmark( timer ) );
|
660
663
|
console.log( c.$headers );
|
661
664
|
}
|
@@ -678,14 +681,15 @@
|
|
678
681
|
noParser, parser, extractor, time, tbody, len,
|
679
682
|
table = c.table,
|
680
683
|
tbodyIndex = 0,
|
681
|
-
debug =
|
684
|
+
debug = ts.debug(c, 'core'),
|
685
|
+
debugOutput = {};
|
682
686
|
// update table bodies in case we start with an empty table
|
683
687
|
c.$tbodies = c.$table.children( 'tbody:not(.' + c.cssInfoBlock + ')' );
|
684
688
|
tbody = typeof $tbodies === 'undefined' ? c.$tbodies : $tbodies;
|
685
689
|
len = tbody.length;
|
686
690
|
if ( len === 0 ) {
|
687
|
-
return
|
688
|
-
} else if (
|
691
|
+
return debug ? console.warn( 'Warning: *Empty table!* Not building a parser cache' ) : '';
|
692
|
+
} else if ( debug ) {
|
689
693
|
time = new Date();
|
690
694
|
console[ console.group ? 'group' : 'log' ]( 'Detecting parsers for each column' );
|
691
695
|
}
|
@@ -727,8 +731,8 @@
|
|
727
731
|
if ( !parser ) {
|
728
732
|
parser = ts.detectParserForColumn( c, rows, -1, colIndex );
|
729
733
|
}
|
730
|
-
if (
|
731
|
-
|
734
|
+
if ( debug ) {
|
735
|
+
debugOutput[ '(' + colIndex + ') ' + header.text() ] = {
|
732
736
|
parser : parser.id,
|
733
737
|
extractor : extractor ? extractor.id : 'none',
|
734
738
|
string : c.strings[ colIndex ],
|
@@ -754,9 +758,9 @@
|
|
754
758
|
}
|
755
759
|
tbodyIndex += ( list.parsers.length ) ? len : 1;
|
756
760
|
}
|
757
|
-
if (
|
758
|
-
if ( !ts.isEmptyObject(
|
759
|
-
console[ console.table ? 'table' : 'log' ](
|
761
|
+
if ( debug ) {
|
762
|
+
if ( !ts.isEmptyObject( debugOutput ) ) {
|
763
|
+
console[ console.table ? 'table' : 'log' ]( debugOutput );
|
760
764
|
} else {
|
761
765
|
console.warn( ' No parsers detected!' );
|
762
766
|
}
|
@@ -782,7 +786,7 @@
|
|
782
786
|
},
|
783
787
|
|
784
788
|
getParserById : function( name ) {
|
785
|
-
/*jshint eqeqeq:false */
|
789
|
+
/*jshint eqeqeq:false */ // eslint-disable-next-line eqeqeq
|
786
790
|
if ( name == 'false' ) { return false; }
|
787
791
|
var indx,
|
788
792
|
len = ts.parsers.length;
|
@@ -799,6 +803,7 @@
|
|
799
803
|
indx = ts.parsers.length,
|
800
804
|
node = false,
|
801
805
|
nodeValue = '',
|
806
|
+
debug = ts.debug(c, 'core'),
|
802
807
|
keepLooking = true;
|
803
808
|
while ( nodeValue === '' && keepLooking ) {
|
804
809
|
rowIndex++;
|
@@ -809,7 +814,7 @@
|
|
809
814
|
node = rows[ rowIndex ].cells[ cellIndex ];
|
810
815
|
nodeValue = ts.getElementText( c, node, cellIndex );
|
811
816
|
$node = $( node );
|
812
|
-
if (
|
817
|
+
if ( debug ) {
|
813
818
|
console.log( 'Checking if value was empty on row ' + rowIndex + ', column: ' +
|
814
819
|
cellIndex + ': "' + nodeValue + '"' );
|
815
820
|
}
|
@@ -891,7 +896,8 @@
|
|
891
896
|
cols, $cells, cell, cacheTime, totalRows, rowData, prevRowData,
|
892
897
|
colMax, span, cacheIndex, hasParser, max, len, index,
|
893
898
|
table = c.table,
|
894
|
-
parsers = c.parsers
|
899
|
+
parsers = c.parsers,
|
900
|
+
debug = ts.debug(c, 'core');
|
895
901
|
// update tbody variable
|
896
902
|
c.$tbodies = c.$table.children( 'tbody:not(.' + c.cssInfoBlock + ')' );
|
897
903
|
$tbody = typeof $tbodies === 'undefined' ? c.$tbodies : $tbodies,
|
@@ -899,9 +905,9 @@
|
|
899
905
|
c.totalRows = 0;
|
900
906
|
// if no parsers found, return - it's an empty table.
|
901
907
|
if ( !parsers ) {
|
902
|
-
return
|
908
|
+
return debug ? console.warn( 'Warning: *Empty table!* Not building a cache' ) : '';
|
903
909
|
}
|
904
|
-
if (
|
910
|
+
if ( debug ) {
|
905
911
|
cacheTime = new Date();
|
906
912
|
}
|
907
913
|
// processing icon
|
@@ -970,7 +976,7 @@
|
|
970
976
|
cell = $row[ 0 ].cells[ colIndex ];
|
971
977
|
if ( cell && cacheIndex < c.columns ) {
|
972
978
|
hasParser = typeof parsers[ cacheIndex ] !== 'undefined';
|
973
|
-
if ( !hasParser &&
|
979
|
+
if ( !hasParser && debug ) {
|
974
980
|
console.warn( 'No parser found for row: ' + rowIndex + ', column: ' + colIndex +
|
975
981
|
'; cell containing: "' + $(cell).text() + '"; does it have a header?' );
|
976
982
|
}
|
@@ -1018,7 +1024,7 @@
|
|
1018
1024
|
if ( c.showProcessing ) {
|
1019
1025
|
ts.isProcessing( table ); // remove processing icon
|
1020
1026
|
}
|
1021
|
-
if (
|
1027
|
+
if ( debug ) {
|
1022
1028
|
len = Math.min( 5, c.cache[ 0 ].normalized.length );
|
1023
1029
|
console[ console.group ? 'group' : 'log' ]( 'Building cache for ' + c.totalRows +
|
1024
1030
|
' rows (showing ' + len + ' rows in log) and ' + c.columns + ' columns' +
|
@@ -1049,7 +1055,7 @@
|
|
1049
1055
|
data = { raw : [], parsed: [], $cell: [] },
|
1050
1056
|
c = table.config;
|
1051
1057
|
if ( ts.isEmptyObject( c ) ) {
|
1052
|
-
if (
|
1058
|
+
if ( ts.debug(c, 'core') ) {
|
1053
1059
|
console.warn( 'No cache found - aborting getColumnText function!' );
|
1054
1060
|
}
|
1055
1061
|
} else {
|
@@ -1143,8 +1149,8 @@
|
|
1143
1149
|
// direction = 2 means reset!
|
1144
1150
|
if ( list[ indx ][ 1 ] !== 2 ) {
|
1145
1151
|
// multicolumn sorting updating - see #1005
|
1146
|
-
// .not(function(){}) needs jQuery 1.4
|
1147
|
-
// filter(function(i, el){}) <- el is undefined in jQuery v1.2.6
|
1152
|
+
// .not(function() {}) needs jQuery 1.4
|
1153
|
+
// filter(function(i, el) {}) <- el is undefined in jQuery v1.2.6
|
1148
1154
|
$sorted = c.$headers.filter( function( i ) {
|
1149
1155
|
// only include headers that are in the sortList (this includes colspans)
|
1150
1156
|
var include = true,
|
@@ -1393,7 +1399,7 @@
|
|
1393
1399
|
ts.resortComplete( c, callback );
|
1394
1400
|
}
|
1395
1401
|
} else {
|
1396
|
-
if (
|
1402
|
+
if ( ts.debug(c, 'core') ) {
|
1397
1403
|
console.error( 'updateCell aborted, tbody missing or not within the indicated table' );
|
1398
1404
|
}
|
1399
1405
|
c.table.isUpdating = false;
|
@@ -1416,7 +1422,7 @@
|
|
1416
1422
|
// row contained in the table?
|
1417
1423
|
( ts.getClosest( $row, 'table' )[ 0 ] !== c.table )
|
1418
1424
|
) {
|
1419
|
-
if (
|
1425
|
+
if ( ts.debug(c, 'core') ) {
|
1420
1426
|
console.error( 'addRows method requires (1) a jQuery selector reference to rows that have already ' +
|
1421
1427
|
'been added to the table, or (2) row HTML string to be added to a table with only one tbody' );
|
1422
1428
|
}
|
@@ -1488,7 +1494,6 @@
|
|
1488
1494
|
appendCache : function( c, init ) {
|
1489
1495
|
var parsed, totalRows, $tbody, $curTbody, rowIndex, tbodyIndex, appendTime,
|
1490
1496
|
table = c.table,
|
1491
|
-
wo = c.widgetOptions,
|
1492
1497
|
$tbodies = c.$tbodies,
|
1493
1498
|
rows = [],
|
1494
1499
|
cache = c.cache;
|
@@ -1498,7 +1503,7 @@
|
|
1498
1503
|
return c.appender ? c.appender( table, rows ) :
|
1499
1504
|
table.isUpdating ? c.$table.triggerHandler( 'updateComplete', table ) : ''; // Fixes #532
|
1500
1505
|
}
|
1501
|
-
if (
|
1506
|
+
if ( ts.debug(c, 'core') ) {
|
1502
1507
|
appendTime = new Date();
|
1503
1508
|
}
|
1504
1509
|
for ( tbodyIndex = 0; tbodyIndex < $tbodies.length; tbodyIndex++ ) {
|
@@ -1511,7 +1516,7 @@
|
|
1511
1516
|
for ( rowIndex = 0; rowIndex < totalRows; rowIndex++ ) {
|
1512
1517
|
rows[rows.length] = parsed[ rowIndex ][ c.columns ].$row;
|
1513
1518
|
// removeRows used by the pager plugin; don't render if using ajax - fixes #411
|
1514
|
-
if ( !c.appender || ( c.pager &&
|
1519
|
+
if ( !c.appender || ( c.pager && !c.pager.removeRows && !c.pager.ajax ) ) {
|
1515
1520
|
$curTbody.append( parsed[ rowIndex ][ c.columns ].$row );
|
1516
1521
|
}
|
1517
1522
|
}
|
@@ -1522,7 +1527,7 @@
|
|
1522
1527
|
if ( c.appender ) {
|
1523
1528
|
c.appender( table, rows );
|
1524
1529
|
}
|
1525
|
-
if (
|
1530
|
+
if ( ts.debug(c, 'core') ) {
|
1526
1531
|
console.log( 'Rebuilt table' + ts.benchmark( appendTime ) );
|
1527
1532
|
}
|
1528
1533
|
// apply table widgets; but not before ajax completes
|
@@ -1553,7 +1558,7 @@
|
|
1553
1558
|
initSort : function( c, cell, event ) {
|
1554
1559
|
if ( c.table.isUpdating ) {
|
1555
1560
|
// let any updates complete before initializing a sort
|
1556
|
-
return setTimeout( function(){
|
1561
|
+
return setTimeout( function() {
|
1557
1562
|
ts.initSort( c, cell, event );
|
1558
1563
|
}, 50 );
|
1559
1564
|
}
|
@@ -1704,7 +1709,7 @@
|
|
1704
1709
|
// empty table - fixes #206/#346
|
1705
1710
|
return;
|
1706
1711
|
}
|
1707
|
-
if (
|
1712
|
+
if ( ts.debug(c, 'core') ) { sortTime = new Date(); }
|
1708
1713
|
// cache textSorter to optimize speed
|
1709
1714
|
if ( typeof textSorter === 'object' ) {
|
1710
1715
|
colMax = c.columns;
|
@@ -1766,7 +1771,7 @@
|
|
1766
1771
|
return a[ c.columns ].order - b[ c.columns ].order;
|
1767
1772
|
});
|
1768
1773
|
}
|
1769
|
-
if (
|
1774
|
+
if ( ts.debug(c, 'core') ) {
|
1770
1775
|
console.log( 'Applying sort ' + sortList.toString() + ts.benchmark( sortTime ) );
|
1771
1776
|
}
|
1772
1777
|
},
|
@@ -2019,6 +2024,7 @@
|
|
2019
2024
|
var applied, time, name,
|
2020
2025
|
c = table.config,
|
2021
2026
|
wo = c.widgetOptions,
|
2027
|
+
debug = ts.debug(c, 'core'),
|
2022
2028
|
widget = ts.getWidgetById( id );
|
2023
2029
|
if ( widget ) {
|
2024
2030
|
name = widget.id;
|
@@ -2027,7 +2033,7 @@
|
|
2027
2033
|
if ( $.inArray( name, c.widgets ) < 0 ) {
|
2028
2034
|
c.widgets[ c.widgets.length ] = name;
|
2029
2035
|
}
|
2030
|
-
if (
|
2036
|
+
if ( debug ) { time = new Date(); }
|
2031
2037
|
|
2032
2038
|
if ( init || !( c.widgetInit[ name ] ) ) {
|
2033
2039
|
// set init flag first to prevent calling init more than once (e.g. pager)
|
@@ -2038,7 +2044,7 @@
|
|
2038
2044
|
}
|
2039
2045
|
if ( typeof widget.init === 'function' ) {
|
2040
2046
|
applied = true;
|
2041
|
-
if (
|
2047
|
+
if ( debug ) {
|
2042
2048
|
console[ console.group ? 'group' : 'log' ]( 'Initializing ' + name + ' widget' );
|
2043
2049
|
}
|
2044
2050
|
widget.init( table, widget, c, wo );
|
@@ -2046,12 +2052,12 @@
|
|
2046
2052
|
}
|
2047
2053
|
if ( !init && typeof widget.format === 'function' ) {
|
2048
2054
|
applied = true;
|
2049
|
-
if (
|
2055
|
+
if ( debug ) {
|
2050
2056
|
console[ console.group ? 'group' : 'log' ]( 'Updating ' + name + ' widget' );
|
2051
2057
|
}
|
2052
2058
|
widget.format( table, c, wo, false );
|
2053
2059
|
}
|
2054
|
-
if (
|
2060
|
+
if ( debug ) {
|
2055
2061
|
if ( applied ) {
|
2056
2062
|
console.log( 'Completed ' + ( init ? 'initializing ' : 'applying ' ) + name + ' widget' + ts.benchmark( time ) );
|
2057
2063
|
if ( console.groupEnd ) { console.groupEnd(); }
|
@@ -2064,12 +2070,13 @@
|
|
2064
2070
|
table = $( table )[ 0 ]; // in case this is called externally
|
2065
2071
|
var indx, len, names, widget, time,
|
2066
2072
|
c = table.config,
|
2073
|
+
debug = ts.debug(c, 'core'),
|
2067
2074
|
widgets = [];
|
2068
2075
|
// prevent numerous consecutive widget applications
|
2069
2076
|
if ( init !== false && table.hasInitialized && ( table.isApplyingWidgets || table.isUpdating ) ) {
|
2070
2077
|
return;
|
2071
2078
|
}
|
2072
|
-
if (
|
2079
|
+
if ( debug ) { time = new Date(); }
|
2073
2080
|
ts.addWidgetFromClass( table );
|
2074
2081
|
// prevent "tablesorter-ready" from firing multiple times in a row
|
2075
2082
|
clearTimeout( c.timerReady );
|
@@ -2088,7 +2095,7 @@
|
|
2088
2095
|
// set priority to 10 if not defined
|
2089
2096
|
if ( !widget.priority ) { widget.priority = 10; }
|
2090
2097
|
widgets[ indx ] = widget;
|
2091
|
-
} else if (
|
2098
|
+
} else if ( debug ) {
|
2092
2099
|
console.warn( '"' + names[ indx ] + '" was enabled, but the widget code has not been loaded!' );
|
2093
2100
|
}
|
2094
2101
|
}
|
@@ -2098,7 +2105,7 @@
|
|
2098
2105
|
});
|
2099
2106
|
// add/update selected widgets
|
2100
2107
|
len = widgets.length;
|
2101
|
-
if (
|
2108
|
+
if ( debug ) {
|
2102
2109
|
console[ console.group ? 'group' : 'log' ]( 'Start ' + ( init ? 'initializing' : 'applying' ) + ' widgets' );
|
2103
2110
|
}
|
2104
2111
|
for ( indx = 0; indx < len; indx++ ) {
|
@@ -2107,7 +2114,7 @@
|
|
2107
2114
|
ts.applyWidgetId( table, widget.id, init );
|
2108
2115
|
}
|
2109
2116
|
}
|
2110
|
-
if (
|
2117
|
+
if ( debug && console.groupEnd ) { console.groupEnd(); }
|
2111
2118
|
}
|
2112
2119
|
c.timerReady = setTimeout( function() {
|
2113
2120
|
table.isApplyingWidgets = false;
|
@@ -2117,7 +2124,7 @@
|
|
2117
2124
|
if ( !init && typeof callback === 'function' ) {
|
2118
2125
|
callback( table );
|
2119
2126
|
}
|
2120
|
-
if (
|
2127
|
+
if ( debug ) {
|
2121
2128
|
widget = c.widgets.length;
|
2122
2129
|
console.log( 'Completed ' +
|
2123
2130
|
( init === true ? 'initializing ' : 'applying ' ) + widget +
|
@@ -2154,7 +2161,7 @@
|
|
2154
2161
|
c.widgets.splice( indx, 1 );
|
2155
2162
|
}
|
2156
2163
|
if ( widget && widget.remove ) {
|
2157
|
-
if (
|
2164
|
+
if ( ts.debug(c, 'core') ) {
|
2158
2165
|
console.log( ( refreshing ? 'Refreshing' : 'Removing' ) + ' "' + name[ index ] + '" widget' );
|
2159
2166
|
}
|
2160
2167
|
widget.remove( table, c, c.widgetOptions, refreshing );
|
@@ -2208,6 +2215,12 @@
|
|
2208
2215
|
log : function() {
|
2209
2216
|
console.log( arguments );
|
2210
2217
|
},
|
2218
|
+
debug : function(c, name) {
|
2219
|
+
return c && (
|
2220
|
+
c.debug === true ||
|
2221
|
+
typeof c.debug === 'string' && c.debug.indexOf(name) > -1
|
2222
|
+
);
|
2223
|
+
},
|
2211
2224
|
|
2212
2225
|
// $.isEmptyObject from jQuery v1.4
|
2213
2226
|
isEmptyObject : function( obj ) {
|
@@ -2513,7 +2526,7 @@
|
|
2513
2526
|
ignore = 'headers sortForce sortList sortAppend widgets'.split( ' ' ),
|
2514
2527
|
orig = c.originalSettings;
|
2515
2528
|
if ( orig ) {
|
2516
|
-
if (
|
2529
|
+
if ( ts.debug(c, 'core') ) {
|
2517
2530
|
timer = new Date();
|
2518
2531
|
}
|
2519
2532
|
for ( setting in orig ) {
|
@@ -2529,7 +2542,7 @@
|
|
2529
2542
|
}
|
2530
2543
|
}
|
2531
2544
|
}
|
2532
|
-
if (
|
2545
|
+
if ( ts.debug(c, 'core') ) {
|
2533
2546
|
console.log( 'validate options time:' + ts.benchmark( timer ) );
|
2534
2547
|
}
|
2535
2548
|
}
|
@@ -2560,7 +2573,6 @@
|
|
2560
2573
|
var events,
|
2561
2574
|
$t = $( table ),
|
2562
2575
|
c = table.config,
|
2563
|
-
debug = c.debug,
|
2564
2576
|
$h = $t.find( 'thead:first' ),
|
2565
2577
|
$r = $h.find( 'tr.' + ts.css.headerRow ).removeClass( ts.css.headerRow + ' ' + c.cssHeaderRow ),
|
2566
2578
|
$f = $t.find( 'tfoot:first > tr' ).children( 'th, td' );
|
@@ -2598,7 +2610,7 @@
|
|
2598
2610
|
if ( typeof callback === 'function' ) {
|
2599
2611
|
callback( table );
|
2600
2612
|
}
|
2601
|
-
if ( debug ) {
|
2613
|
+
if ( ts.debug(c, 'core') ) {
|
2602
2614
|
console.log( 'tablesorter has been removed' );
|
2603
2615
|
}
|
2604
2616
|
}
|
@@ -2715,7 +2727,7 @@
|
|
2715
2727
|
is : function( str ) {
|
2716
2728
|
return ts.regex.isoDate.test( str );
|
2717
2729
|
},
|
2718
|
-
format : function( str
|
2730
|
+
format : function( str ) {
|
2719
2731
|
var date = str ? new Date( str.replace( ts.regex.dash, '/' ) ) : str;
|
2720
2732
|
return date instanceof Date && isFinite( date ) ? date.getTime() : str;
|
2721
2733
|
},
|
@@ -2758,7 +2770,7 @@
|
|
2758
2770
|
// Jan 01, 2013 12:34:56 PM or 01 Jan 2013
|
2759
2771
|
return ts.regex.usLongDateTest1.test( str ) || ts.regex.usLongDateTest2.test( str );
|
2760
2772
|
},
|
2761
|
-
format : function( str
|
2773
|
+
format : function( str ) {
|
2762
2774
|
var date = str ? new Date( str.replace( ts.regex.dateReplace, '$1 $2' ) ) : str;
|
2763
2775
|
return date instanceof Date && isFinite( date ) ? date.getTime() : str;
|
2764
2776
|
},
|
@@ -2819,7 +2831,7 @@
|
|
2819
2831
|
is : function( str ) {
|
2820
2832
|
return ts.regex.timeTest.test( str );
|
2821
2833
|
},
|
2822
|
-
format : function( str
|
2834
|
+
format : function( str ) {
|
2823
2835
|
// isolate time... ignore month, day and year
|
2824
2836
|
var temp,
|
2825
2837
|
timePart = ( str || '' ).match( ts.regex.timeMatch ),
|
@@ -2886,7 +2898,7 @@
|
|
2886
2898
|
var tbodyIndex, $tbody,
|
2887
2899
|
$tbodies = c.$tbodies,
|
2888
2900
|
toRemove = ( wo.zebra || [ 'even', 'odd' ] ).join( ' ' );
|
2889
|
-
for ( tbodyIndex = 0; tbodyIndex < $tbodies.length; tbodyIndex++ ){
|
2901
|
+
for ( tbodyIndex = 0; tbodyIndex < $tbodies.length; tbodyIndex++ ) {
|
2890
2902
|
$tbody = ts.processTbody( table, $tbodies.eq( tbodyIndex ), true ); // remove tbody
|
2891
2903
|
$tbody.children().removeClass( toRemove );
|
2892
2904
|
ts.processTbody( table, $tbody, false ); // restore tbody
|
@@ -2896,7 +2908,7 @@
|
|
2896
2908
|
|
2897
2909
|
})( jQuery );
|
2898
2910
|
|
2899
|
-
/*! Widget: storage - updated
|
2911
|
+
/*! Widget: storage - updated 2018-03-18 (v2.30.0) */
|
2900
2912
|
/*global JSON:false */
|
2901
2913
|
;(function ($, window, document) {
|
2902
2914
|
'use strict';
|
@@ -2942,6 +2954,7 @@
|
|
2942
2954
|
values = {},
|
2943
2955
|
c = table.config,
|
2944
2956
|
wo = c && c.widgetOptions,
|
2957
|
+
debug = ts.debug(c, 'storage'),
|
2945
2958
|
storageType = (
|
2946
2959
|
( options && options.storageType ) || ( wo && wo.storage_storageType )
|
2947
2960
|
).toString().charAt(0).toLowerCase(),
|
@@ -2970,14 +2983,12 @@
|
|
2970
2983
|
hasStorage = true;
|
2971
2984
|
window[storageType].removeItem('_tmptest');
|
2972
2985
|
} catch (error) {
|
2973
|
-
|
2974
|
-
console.warn( storageType + ' is not supported in this browser' );
|
2975
|
-
}
|
2986
|
+
console.warn( storageType + ' is not supported in this browser' );
|
2976
2987
|
}
|
2977
2988
|
}
|
2978
2989
|
}
|
2979
|
-
if (
|
2980
|
-
console.log('Storage
|
2990
|
+
if (debug) {
|
2991
|
+
console.log('Storage >> Using', hasStorage ? storageType : 'cookies');
|
2981
2992
|
}
|
2982
2993
|
// *** get value ***
|
2983
2994
|
if ($.parseJSON) {
|
@@ -3013,7 +3024,7 @@
|
|
3013
3024
|
|
3014
3025
|
})(jQuery, window, document);
|
3015
3026
|
|
3016
|
-
/*! Widget: uitheme - updated
|
3027
|
+
/*! Widget: uitheme - updated 2018-03-18 (v2.30.0) */
|
3017
3028
|
;(function ($) {
|
3018
3029
|
'use strict';
|
3019
3030
|
var ts = $.tablesorter || {};
|
@@ -3078,8 +3089,9 @@
|
|
3078
3089
|
theme = c.theme || 'jui',
|
3079
3090
|
themes = themesAll[theme] || {},
|
3080
3091
|
remove = $.trim( [ themes.sortNone, themes.sortDesc, themes.sortAsc, themes.active ].join( ' ' ) ),
|
3081
|
-
iconRmv = $.trim( [ themes.iconSortNone, themes.iconSortDesc, themes.iconSortAsc ].join( ' ' ) )
|
3082
|
-
|
3092
|
+
iconRmv = $.trim( [ themes.iconSortNone, themes.iconSortDesc, themes.iconSortAsc ].join( ' ' ) ),
|
3093
|
+
debug = ts.debug(c, 'uitheme');
|
3094
|
+
if (debug) { time = new Date(); }
|
3083
3095
|
// initialization code - run once
|
3084
3096
|
if (!$table.hasClass('tablesorter-' + theme) || c.theme !== c.appliedTheme || !wo.uitheme_applied) {
|
3085
3097
|
wo.uitheme_applied = true;
|
@@ -3124,7 +3136,7 @@
|
|
3124
3136
|
$(this)[ event.type === 'mouseenter' ? 'addClass' : 'removeClass' ](themes.hover || '');
|
3125
3137
|
});
|
3126
3138
|
|
3127
|
-
$headers.each(function(){
|
3139
|
+
$headers.each(function() {
|
3128
3140
|
var $this = $(this);
|
3129
3141
|
if (!$this.find('.' + ts.css.wrapper).length) {
|
3130
3142
|
// Firefox needs this inner div to position the icon & resizer correctly
|
@@ -3182,8 +3194,8 @@
|
|
3182
3194
|
}
|
3183
3195
|
}
|
3184
3196
|
}
|
3185
|
-
if (
|
3186
|
-
console.log('
|
3197
|
+
if (debug) {
|
3198
|
+
console.log('uitheme >> Applied ' + theme + ' theme' + ts.benchmark(time));
|
3187
3199
|
}
|
3188
3200
|
},
|
3189
3201
|
remove: function(table, c, wo, refreshing) {
|
@@ -3288,7 +3300,7 @@
|
|
3288
3300
|
|
3289
3301
|
})(jQuery);
|
3290
3302
|
|
3291
|
-
/*! Widget: filter - updated 2018-
|
3303
|
+
/*! Widget: filter - updated 2018-03-18 (v2.30.0) *//*
|
3292
3304
|
* Requires tablesorter v2.8+ and jQuery 1.7+
|
3293
3305
|
* by Rob Garrison
|
3294
3306
|
*/
|
@@ -3570,6 +3582,7 @@
|
|
3570
3582
|
if ( tsfRegex.exact.test( data.iFilter ) ) {
|
3571
3583
|
var txt = data.iFilter.replace( tsfRegex.exact, '' ),
|
3572
3584
|
filter = tsf.parseFilter( c, txt, data ) || '';
|
3585
|
+
// eslint-disable-next-line eqeqeq
|
3573
3586
|
return data.anyMatch ? $.inArray( filter, data.rowArray ) >= 0 : filter == data.iExact;
|
3574
3587
|
}
|
3575
3588
|
return null;
|
@@ -3743,7 +3756,7 @@
|
|
3743
3756
|
c.lastCombinedFilter = null;
|
3744
3757
|
c.lastSearch = [];
|
3745
3758
|
// update filterFormatters after update (& small delay) - Fixes #1237
|
3746
|
-
setTimeout(function(){
|
3759
|
+
setTimeout(function() {
|
3747
3760
|
c.$table.triggerHandler( 'filterFomatterUpdate' );
|
3748
3761
|
}, 100);
|
3749
3762
|
}
|
@@ -3837,7 +3850,7 @@
|
|
3837
3850
|
|
3838
3851
|
// show processing icon
|
3839
3852
|
if ( c.showProcessing ) {
|
3840
|
-
txt = 'filterStart filterEnd '.split( ' ' ).join( c.namespace + 'filter ' );
|
3853
|
+
txt = 'filterStart filterEnd '.split( ' ' ).join( c.namespace + 'filter-sp ' );
|
3841
3854
|
c.$table
|
3842
3855
|
.unbind( txt.replace( ts.regex.spaces, ' ' ) )
|
3843
3856
|
.bind( txt, function( event, columns ) {
|
@@ -3916,6 +3929,9 @@
|
|
3916
3929
|
c.lastSearch = c.$table.data( 'lastSearch' );
|
3917
3930
|
c.$table.triggerHandler( 'filterInit', c );
|
3918
3931
|
tsf.findRows( c.table, c.lastSearch || [] );
|
3932
|
+
if (ts.debug(c, 'filter')) {
|
3933
|
+
console.log('Filter >> Widget initialized');
|
3934
|
+
}
|
3919
3935
|
};
|
3920
3936
|
if ( $.isEmptyObject( wo.filter_formatter ) ) {
|
3921
3937
|
completed();
|
@@ -4616,6 +4632,7 @@
|
|
4616
4632
|
storedFilters = $.extend( [], filters ),
|
4617
4633
|
c = table.config,
|
4618
4634
|
wo = c.widgetOptions,
|
4635
|
+
debug = ts.debug(c, 'filter'),
|
4619
4636
|
// data object passed to filters; anyMatch is a flag for the filters
|
4620
4637
|
data = {
|
4621
4638
|
anyMatch: false,
|
@@ -4632,7 +4649,6 @@
|
|
4632
4649
|
defaultColFilter : [],
|
4633
4650
|
defaultAnyFilter : ts.getColumnData( table, wo.filter_defaultFilter, c.columns, true ) || ''
|
4634
4651
|
};
|
4635
|
-
|
4636
4652
|
// parse columns after formatter, in case the class is added at that point
|
4637
4653
|
data.parsed = [];
|
4638
4654
|
for ( columnIndex = 0; columnIndex < c.columns; columnIndex++ ) {
|
@@ -4654,8 +4670,8 @@
|
|
4654
4670
|
( ts.getColumnData( table, wo.filter_excludeFilter, columnIndex, true ) || '' ).split( /\s+/ );
|
4655
4671
|
}
|
4656
4672
|
|
4657
|
-
if (
|
4658
|
-
console.log( 'Filter
|
4673
|
+
if ( debug ) {
|
4674
|
+
console.log( 'Filter >> Starting filter widget search', filters );
|
4659
4675
|
time = new Date();
|
4660
4676
|
}
|
4661
4677
|
// filtered rows count
|
@@ -4753,8 +4769,8 @@
|
|
4753
4769
|
notFiltered = $rows.not( '.' + wo.filter_filteredRow ).length;
|
4754
4770
|
// can't search when all rows are hidden - this happens when looking for exact matches
|
4755
4771
|
if ( searchFiltered && notFiltered === 0 ) { searchFiltered = false; }
|
4756
|
-
if (
|
4757
|
-
console.log( 'Filter
|
4772
|
+
if ( debug ) {
|
4773
|
+
console.log( 'Filter >> Searching through ' +
|
4758
4774
|
( searchFiltered && notFiltered < len ? notFiltered : 'all' ) + ' rows' );
|
4759
4775
|
}
|
4760
4776
|
if ( data.anyMatchFlag ) {
|
@@ -4857,8 +4873,8 @@
|
|
4857
4873
|
if ( wo.filter_saveFilters && ts.storage ) {
|
4858
4874
|
ts.storage( table, 'tablesorter-filters', tsf.processFilters( storedFilters, true ) );
|
4859
4875
|
}
|
4860
|
-
if (
|
4861
|
-
console.log( '
|
4876
|
+
if ( debug ) {
|
4877
|
+
console.log( 'Filter >> Completed search' + ts.benchmark(time) );
|
4862
4878
|
}
|
4863
4879
|
if ( wo.filter_initialized ) {
|
4864
4880
|
c.$table.triggerHandler( 'filterBeforeEnd', c );
|
@@ -5073,13 +5089,13 @@
|
|
5073
5089
|
options += '<option';
|
5074
5090
|
for ( val in option ) {
|
5075
5091
|
if ( option.hasOwnProperty( val ) && val !== 'text' ) {
|
5076
|
-
options += ' ' + val + '="' + option[ val ] + '"';
|
5092
|
+
options += ' ' + val + '="' + option[ val ].replace( tsfRegex.quote, '"' ) + '"';
|
5077
5093
|
}
|
5078
5094
|
}
|
5079
5095
|
if ( !option.value ) {
|
5080
|
-
options += ' value="' + option.text + '"';
|
5096
|
+
options += ' value="' + option.text.replace( tsfRegex.quote, '"' ) + '"';
|
5081
5097
|
}
|
5082
|
-
options += '>' + option.text + '</option>';
|
5098
|
+
options += '>' + option.text.replace( tsfRegex.quote, '"' ) + '</option>';
|
5083
5099
|
// above code is needed in jQuery < v1.8
|
5084
5100
|
|
5085
5101
|
// make sure we don't turn an object into a string (objects without a "text" property)
|
@@ -5363,7 +5379,7 @@
|
|
5363
5379
|
$stickyThead = $stickyTable.children('thead:first'),
|
5364
5380
|
$stickyCells,
|
5365
5381
|
laststate = '',
|
5366
|
-
setWidth = function($orig, $clone){
|
5382
|
+
setWidth = function($orig, $clone) {
|
5367
5383
|
var index, width, border, $cell, $this,
|
5368
5384
|
$cells = $orig.filter(':visible'),
|
5369
5385
|
len = $cells.length;
|
@@ -5504,7 +5520,7 @@
|
|
5504
5520
|
});
|
5505
5521
|
c.$table
|
5506
5522
|
.unbind('stickyHeadersUpdate' + namespace)
|
5507
|
-
.bind('stickyHeadersUpdate' + namespace, function(){
|
5523
|
+
.bind('stickyHeadersUpdate' + namespace, function() {
|
5508
5524
|
scrollSticky( true );
|
5509
5525
|
});
|
5510
5526
|
|
@@ -5580,7 +5596,7 @@
|
|
5580
5596
|
});
|
5581
5597
|
|
5582
5598
|
// Add extra scroller css
|
5583
|
-
$(function(){
|
5599
|
+
$(function() {
|
5584
5600
|
var s = '<style>' +
|
5585
5601
|
'body.' + ts.css.resizableNoSelect + ' { -ms-user-select: none; -moz-user-select: -moz-none;' +
|
5586
5602
|
'-khtml-user-select: none; -webkit-user-select: none; user-select: none; }' +
|
@@ -5725,7 +5741,7 @@
|
|
5725
5741
|
|
5726
5742
|
if ( ts.hasWidget( c.table, 'scroller' ) ) {
|
5727
5743
|
tableHeight = 0;
|
5728
|
-
c.$table.closest( '.' + ts.css.scrollerWrap ).children().each(function(){
|
5744
|
+
c.$table.closest( '.' + ts.css.scrollerWrap ).children().each(function() {
|
5729
5745
|
var $this = $(this);
|
5730
5746
|
// center table has a max-height set
|
5731
5747
|
tableHeight += $this.filter('[style*="height"]').length ? $this.height() : $this.children('table').height();
|
@@ -5947,7 +5963,7 @@
|
|
5947
5963
|
});
|
5948
5964
|
|
5949
5965
|
ts.resizableReset = function( table, refreshing ) {
|
5950
|
-
$( table ).each(function(){
|
5966
|
+
$( table ).each(function() {
|
5951
5967
|
var index, $t,
|
5952
5968
|
c = this.config,
|
5953
5969
|
wo = c && c.widgetOptions,
|
@@ -5981,7 +5997,7 @@
|
|
5981
5997
|
|
5982
5998
|
})( jQuery, window );
|
5983
5999
|
|
5984
|
-
/*! Widget: saveSort - updated
|
6000
|
+
/*! Widget: saveSort - updated 2018-03-19 (v2.30.1) *//*
|
5985
6001
|
* Requires tablesorter v2.16+
|
5986
6002
|
* by Rob Garrison
|
5987
6003
|
*/
|
@@ -5989,6 +6005,15 @@
|
|
5989
6005
|
'use strict';
|
5990
6006
|
var ts = $.tablesorter || {};
|
5991
6007
|
|
6008
|
+
function getStoredSortList(c) {
|
6009
|
+
var stored = ts.storage( c.table, 'tablesorter-savesort' );
|
6010
|
+
return (stored && stored.hasOwnProperty('sortList') && $.isArray(stored.sortList)) ? stored.sortList : [];
|
6011
|
+
}
|
6012
|
+
|
6013
|
+
function sortListChanged(c, sortList) {
|
6014
|
+
return (sortList || getStoredSortList(c)).join(',') !== c.sortList.join(',');
|
6015
|
+
}
|
6016
|
+
|
5992
6017
|
// this widget saves the last sort only if the
|
5993
6018
|
// saveSort widget option is true AND the
|
5994
6019
|
// $.tablesorter.storage function is included
|
@@ -6004,18 +6029,19 @@
|
|
6004
6029
|
thisWidget.format(table, c, wo, true);
|
6005
6030
|
},
|
6006
6031
|
format: function(table, c, wo, init) {
|
6007
|
-
var
|
6032
|
+
var time,
|
6008
6033
|
$table = c.$table,
|
6009
6034
|
saveSort = wo.saveSort !== false, // make saveSort active/inactive; default to true
|
6010
|
-
sortList = { 'sortList' : c.sortList }
|
6011
|
-
|
6035
|
+
sortList = { 'sortList' : c.sortList },
|
6036
|
+
debug = ts.debug(c, 'saveSort');
|
6037
|
+
if (debug) {
|
6012
6038
|
time = new Date();
|
6013
6039
|
}
|
6014
6040
|
if ($table.hasClass('hasSaveSort')) {
|
6015
|
-
if (saveSort && table.hasInitialized && ts.storage) {
|
6041
|
+
if (saveSort && table.hasInitialized && ts.storage && sortListChanged(c)) {
|
6016
6042
|
ts.storage( table, 'tablesorter-savesort', sortList );
|
6017
|
-
if (
|
6018
|
-
console.log('saveSort
|
6043
|
+
if (debug) {
|
6044
|
+
console.log('saveSort >> Saving last sort: ' + c.sortList + ts.benchmark(time));
|
6019
6045
|
}
|
6020
6046
|
}
|
6021
6047
|
} else {
|
@@ -6024,10 +6050,9 @@
|
|
6024
6050
|
sortList = '';
|
6025
6051
|
// get data
|
6026
6052
|
if (ts.storage) {
|
6027
|
-
|
6028
|
-
|
6029
|
-
|
6030
|
-
console.log('saveSort: Last sort loaded: "' + sortList + '"' + ts.benchmark(time));
|
6053
|
+
sortList = getStoredSortList(c);
|
6054
|
+
if (debug) {
|
6055
|
+
console.log('saveSort >> Last sort loaded: "' + sortList + '"' + ts.benchmark(time));
|
6031
6056
|
}
|
6032
6057
|
$table.bind('saveSortReset', function(event) {
|
6033
6058
|
event.stopPropagation();
|
@@ -6040,7 +6065,9 @@
|
|
6040
6065
|
c.sortList = sortList;
|
6041
6066
|
} else if (table.hasInitialized && sortList && sortList.length > 0) {
|
6042
6067
|
// update sort change
|
6043
|
-
|
6068
|
+
if (sortListChanged(c, sortList)) {
|
6069
|
+
ts.sortOn(c, sortList);
|
6070
|
+
}
|
6044
6071
|
}
|
6045
6072
|
}
|
6046
6073
|
},
|