jquery-tablesorter 1.23.14 → 1.23.15

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dc9475e0e21aea0b90af7bf0a33f6b75d431ea61
4
- data.tar.gz: a9e087b3c5de2ca3a2a1f36e99aa6a9d3d053482
3
+ metadata.gz: 0174cfbb069870781ff7190466a647e1c2adef6d
4
+ data.tar.gz: 1c3148a7b59d0668953057219e279d5b4c2613b1
5
5
  SHA512:
6
- metadata.gz: 11042f14240738761e9aebae6260800334d0639ad13c1c6042c91726a707db45b5cb3b8c06e60951fd4088365414623142ba2a7ebd6a1dcb4445bae42bff27dd
7
- data.tar.gz: 20a77145b237423b2afb805affc17bd0984a5bdbe4fd4d5eab1ded75f54117d190cbcf7ff759750b1356cee86f3a08e42b91e191aa07e23a41e1ecc5ed50e507
6
+ metadata.gz: 81c10902e944af29caa6b34b187a889212fabe87eb89147562cb8c2ac9472129474acd8d614e8f71eddeac3527d4d3cf73ee062dd4a3c914d621e2f1981660f4
7
+ data.tar.gz: ca0b113781b19faf0bab7b4b49a67cd93a76f1bfe89edceebe79ee28c66988009b65e3f169c7a44e947c211022a63811cb8210895803627fc42fabd023194451
@@ -1,7 +1,7 @@
1
1
  module JqueryTablesorter
2
2
  MAJOR = 1
3
3
  MINOR = 23
4
- TINY = 14
4
+ TINY = 15
5
5
 
6
6
  VERSION = [MAJOR, MINOR, TINY].compact.join('.')
7
7
  end
@@ -4,7 +4,7 @@
4
4
  ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██
5
5
  █████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
6
6
  */
7
- /*! tablesorter (FORK) - updated 06-08-2017 (v2.28.14)*/
7
+ /*! tablesorter (FORK) - updated 07-04-2017 (v2.28.15)*/
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.28.14 *//*
19
+ /*! TableSorter (FORK) v2.28.15 *//*
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.28.14',
43
+ version : '2.28.15',
44
44
 
45
45
  parsers : [],
46
46
  widgets : [],
@@ -2258,7 +2258,7 @@
2258
2258
  cells = $rows[ i ].cells;
2259
2259
  for ( j = 0; j < cells.length; j++ ) {
2260
2260
  cell = cells[ j ];
2261
- rowIndex = cell.parentNode.rowIndex;
2261
+ rowIndex = i;
2262
2262
  rowSpan = cell.rowSpan || 1;
2263
2263
  colSpan = cell.colSpan || 1;
2264
2264
  if ( typeof matrix[ rowIndex ] === 'undefined' ) {
@@ -2317,7 +2317,7 @@
2317
2317
  if ( !valid ) {
2318
2318
  $rows.each( function( indx, el ) {
2319
2319
  var cell = el.parentElement.nodeName;
2320
- if ( cells.indexOf( cell ) ) {
2320
+ if ( cells.indexOf( cell ) < 0 ) {
2321
2321
  cells.push( cell );
2322
2322
  }
2323
2323
  });
@@ -3274,7 +3274,7 @@
3274
3274
 
3275
3275
  })(jQuery);
3276
3276
 
3277
- /*! Widget: filter - updated 5/24/2017 (v2.28.11) *//*
3277
+ /*! Widget: filter - updated 7/4/2017 (v2.28.15) *//*
3278
3278
  * Requires tablesorter v2.8+ and jQuery 1.7+
3279
3279
  * by Rob Garrison
3280
3280
  */
@@ -3345,8 +3345,10 @@
3345
3345
  var tbodyIndex, $tbody,
3346
3346
  $table = c.$table,
3347
3347
  $tbodies = c.$tbodies,
3348
- events = 'addRows updateCell update updateRows updateComplete appendCache filterReset filterAndSortReset filterEnd search '
3349
- .split( ' ' ).join( c.namespace + 'filter ' );
3348
+ events = (
3349
+ 'addRows updateCell update updateRows updateComplete appendCache filterReset ' +
3350
+ 'filterAndSortReset filterFomatterUpdate filterEnd search stickyHeadersInit '
3351
+ ).split( ' ' ).join( c.namespace + 'filter ' );
3350
3352
  $table
3351
3353
  .removeClass( 'hasFilters' )
3352
3354
  // add filter namespace to all BUT search
@@ -3875,7 +3877,9 @@
3875
3877
  // so we have to work with it instead
3876
3878
  formatterUpdated: function( $cell, column ) {
3877
3879
  // prevent error if $cell is undefined - see #1056
3878
- var wo = $cell && $cell.closest( 'table' )[0].config.widgetOptions;
3880
+ var $table = $cell && $cell.closest( 'table' );
3881
+ var config = $table.length && $table[0].config,
3882
+ wo = config && config.widgetOptions;
3879
3883
  if ( wo && !wo.filter_initialized ) {
3880
3884
  // add updates by column since this function
3881
3885
  // may be called numerous times before initialization
@@ -1,4 +1,4 @@
1
- /*! TableSorter (FORK) v2.28.14 *//*
1
+ /*! TableSorter (FORK) v2.28.15 *//*
2
2
  * Client-side table sorting with ease!
3
3
  * @requires jQuery v1.2.6+
4
4
  *
@@ -22,7 +22,7 @@
22
22
  'use strict';
23
23
  var ts = $.tablesorter = {
24
24
 
25
- version : '2.28.14',
25
+ version : '2.28.15',
26
26
 
27
27
  parsers : [],
28
28
  widgets : [],
@@ -2240,7 +2240,7 @@
2240
2240
  cells = $rows[ i ].cells;
2241
2241
  for ( j = 0; j < cells.length; j++ ) {
2242
2242
  cell = cells[ j ];
2243
- rowIndex = cell.parentNode.rowIndex;
2243
+ rowIndex = i;
2244
2244
  rowSpan = cell.rowSpan || 1;
2245
2245
  colSpan = cell.colSpan || 1;
2246
2246
  if ( typeof matrix[ rowIndex ] === 'undefined' ) {
@@ -2299,7 +2299,7 @@
2299
2299
  if ( !valid ) {
2300
2300
  $rows.each( function( indx, el ) {
2301
2301
  var cell = el.parentElement.nodeName;
2302
- if ( cells.indexOf( cell ) ) {
2302
+ if ( cells.indexOf( cell ) < 0 ) {
2303
2303
  cells.push( cell );
2304
2304
  }
2305
2305
  });
@@ -4,7 +4,7 @@
4
4
  ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██
5
5
  █████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
6
6
  */
7
- /*! tablesorter (FORK) - updated 06-08-2017 (v2.28.14)*/
7
+ /*! tablesorter (FORK) - updated 07-04-2017 (v2.28.15)*/
8
8
  /* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
9
9
  (function(factory) {
10
10
  if (typeof define === 'function' && define.amd) {
@@ -408,7 +408,7 @@
408
408
 
409
409
  })(jQuery);
410
410
 
411
- /*! Widget: filter - updated 5/24/2017 (v2.28.11) *//*
411
+ /*! Widget: filter - updated 7/4/2017 (v2.28.15) *//*
412
412
  * Requires tablesorter v2.8+ and jQuery 1.7+
413
413
  * by Rob Garrison
414
414
  */
@@ -479,8 +479,10 @@
479
479
  var tbodyIndex, $tbody,
480
480
  $table = c.$table,
481
481
  $tbodies = c.$tbodies,
482
- events = 'addRows updateCell update updateRows updateComplete appendCache filterReset filterAndSortReset filterEnd search '
483
- .split( ' ' ).join( c.namespace + 'filter ' );
482
+ events = (
483
+ 'addRows updateCell update updateRows updateComplete appendCache filterReset ' +
484
+ 'filterAndSortReset filterFomatterUpdate filterEnd search stickyHeadersInit '
485
+ ).split( ' ' ).join( c.namespace + 'filter ' );
484
486
  $table
485
487
  .removeClass( 'hasFilters' )
486
488
  // add filter namespace to all BUT search
@@ -1009,7 +1011,9 @@
1009
1011
  // so we have to work with it instead
1010
1012
  formatterUpdated: function( $cell, column ) {
1011
1013
  // prevent error if $cell is undefined - see #1056
1012
- var wo = $cell && $cell.closest( 'table' )[0].config.widgetOptions;
1014
+ var $table = $cell && $cell.closest( 'table' );
1015
+ var config = $table.length && $table[0].config,
1016
+ wo = config && config.widgetOptions;
1013
1017
  if ( wo && !wo.filter_initialized ) {
1014
1018
  // add updates by column since this function
1015
1019
  // may be called numerous times before initialization
@@ -1,4 +1,4 @@
1
- /* Widget: columnSelector (responsive table widget) - updated 5/25/2017 (v2.28.12) *//*
1
+ /* Widget: columnSelector (responsive table widget) - updated 7/4/2017 (v2.28.15) *//*
2
2
  * Requires tablesorter v2.8+ and jQuery 1.7+
3
3
  * by Justin Hallett & Rob Garrison
4
4
  */
@@ -547,6 +547,11 @@
547
547
  csel.$style.remove();
548
548
  csel.$breakpoints.remove();
549
549
  $( c.namespace + 'columnselectorHasSpan' ).removeClass( wo.filter_filteredRow || 'filtered' );
550
+ c.$table.find('[data-col-span]').each(function(indx, el) {
551
+ var $el = $(el);
552
+ console.log($el, $el.attr('data-col-span'));
553
+ $el.attr('colspan', $el.attr('data-col-span'));
554
+ });
550
555
  c.$table.off('updateAll' + namespace + ' update' + namespace);
551
556
  }
552
557
 
@@ -89,18 +89,20 @@
89
89
  chkd = $cell.find('.toggle').is(':checked');
90
90
  }
91
91
  state = o.disabled || !chkd ? 'disable' : 'enable';
92
- $cell.find('.filter')
93
- // add equal to the beginning, so we filter exact numbers
94
- .val( chkd ? (compare ? compare : o.exactMatch ? '=' : '') + v : '' )
95
- .trigger( notrigger ? '' : 'search', searchType ).end()
96
- .find('.spinner').spinner(state).val(v);
97
- // update sticky header cell
98
- if ($shcell.length) {
99
- $shcell
100
- .find('.spinner').spinner(state).val(v).end()
101
- .find(compareSelect).val( compare );
102
- if (o.addToggle) {
103
- $shcell.find('.toggle')[0].checked = chkd;
92
+ if (!ts.isEmptyObject($cell.find('.spinner').data())) {
93
+ $cell.find('.filter')
94
+ // add equal to the beginning, so we filter exact numbers
95
+ .val( chkd ? (compare ? compare : o.exactMatch ? '=' : '') + v : '' )
96
+ .trigger( notrigger ? '' : 'search', searchType ).end()
97
+ .find('.spinner').spinner(state).val(v);
98
+ // update sticky header cell
99
+ if ($shcell.length) {
100
+ $shcell
101
+ .find('.spinner').spinner(state).val(v).end()
102
+ .find(compareSelect).val( compare );
103
+ if (o.addToggle) {
104
+ $shcell.find('.toggle')[0].checked = chkd;
105
+ }
104
106
  }
105
107
  }
106
108
  };
@@ -137,7 +139,7 @@
137
139
  });
138
140
 
139
141
  // update spinner from hidden input, in case of saved filters
140
- c.$table.bind('filterFomatterUpdate', function(){
142
+ c.$table.bind('filterFomatterUpdate' + c.namespace + 'filter', function(){
141
143
  var val = tsff.updateCompare($cell, $input, o)[0];
142
144
  $cell.find('.spinner').val( val );
143
145
  updateSpinner({ value: val }, true);
@@ -153,7 +155,7 @@
153
155
  }
154
156
 
155
157
  // has sticky headers?
156
- c.$table.bind('stickyHeadersInit', function(){
158
+ c.$table.bind('stickyHeadersInit' + c.namespace + 'filter', function(){
157
159
  $shcell = c.widgetOptions.$sticky.find('.tablesorter-filter-row').children().eq(indx).empty();
158
160
  if (o.addToggle) {
159
161
  $('<div class="button"><input id="stickyuispinnerbutton' + indx + '" type="checkbox" class="toggle" />' +
@@ -187,7 +189,7 @@
187
189
  });
188
190
 
189
191
  // on reset
190
- c.$table.bind('filterReset', function(){
192
+ c.$table.bind('filterReset' + c.namespace + 'filter', function(){
191
193
  if ($.isArray(o.compare)) {
192
194
  $cell.add($shcell).find(compareSelect).val( o.compare[ o.selected || 0 ] );
193
195
  }
@@ -250,24 +252,26 @@
250
252
  // add values to the handle data-value attribute so the css tooltip will work properly
251
253
  $cell.find('.ui-slider-handle').addClass('value-popup').attr('data-value', result);
252
254
  }
253
- // update the hidden input;
254
- // ****** ADD AN EQUAL SIGN TO THE BEGINNING! <- this makes the slide exactly match the number ******
255
- // when the value is at the minimum, clear the hidden input so all rows will be seen
256
-
257
- $cell.find('.filter')
258
- .val( ( compare ? compare + v : v === o.min ? '' : (o.exactMatch ? '=' : '') + v ) )
259
- .trigger( notrigger ? '' : 'search', searchType ).end()
260
- .find('.slider').slider('value', v);
261
-
262
- // update sticky header cell
263
- if ($shcell.length) {
264
- $shcell
265
- .find(compareSelect).val( compare ).end()
255
+ // prevent JS error if "resetToLoadState" or filter widget was removed for another reason
256
+ if (!ts.isEmptyObject($cell.find('.slider').data())) {
257
+ // update the hidden input;
258
+ $cell.find('.filter')
259
+ // ****** ADD AN EQUAL SIGN TO THE BEGINNING! <- this makes the slide exactly match the number ******
260
+ // when the value is at the minimum, clear the hidden input so all rows will be seen
261
+ .val( ( compare ? compare + v : v === o.min ? '' : (o.exactMatch ? '=' : '') + v ) )
262
+ .trigger( notrigger ? '' : 'search', searchType ).end()
266
263
  .find('.slider').slider('value', v);
267
- if (o.valueToHeader) {
268
- $shcell.closest('thead').find('th[data-column=' + indx + ']').find('.curvalue').html(' (' + result + ')');
269
- } else {
270
- $shcell.find('.ui-slider-handle').addClass('value-popup').attr('data-value', result);
264
+
265
+ // update sticky header cell
266
+ if ($shcell.length) {
267
+ $shcell
268
+ .find(compareSelect).val( compare ).end()
269
+ .find('.slider').slider('value', v);
270
+ if (o.valueToHeader) {
271
+ $shcell.closest('thead').find('th[data-column=' + indx + ']').find('.curvalue').html(' (' + result + ')');
272
+ } else {
273
+ $shcell.find('.ui-slider-handle').addClass('value-popup').attr('data-value', result);
274
+ }
271
275
  }
272
276
  }
273
277
 
@@ -296,7 +300,7 @@
296
300
  .slider(o);
297
301
 
298
302
  // update slider from hidden input, in case of saved filters
299
- c.$table.bind('filterFomatterUpdate', function(){
303
+ c.$table.bind('filterFomatterUpdate' + c.namespace + 'filter', function(){
300
304
  var val = tsff.updateCompare($cell, $input, o)[0];
301
305
  $cell.find('.slider').slider('value', val );
302
306
  updateSlider({ value: val }, false);
@@ -312,7 +316,7 @@
312
316
  }
313
317
 
314
318
  // on reset
315
- c.$table.bind('filterReset', function(){
319
+ c.$table.bind('filterReset' + c.namespace + 'filter', function(){
316
320
  if ($.isArray(o.compare)) {
317
321
  $cell.add($shcell).find(compareSelect).val( o.compare[ o.selected || 0 ] );
318
322
  }
@@ -322,7 +326,7 @@
322
326
  });
323
327
 
324
328
  // has sticky headers?
325
- c.$table.bind('stickyHeadersInit', function(){
329
+ c.$table.bind('stickyHeadersInit' + c.namespace + 'filter', function(){
326
330
  $shcell = c.widgetOptions.$sticky.find('.tablesorter-filter-row').children().eq(indx).empty();
327
331
 
328
332
  // add a jQuery UI slider!
@@ -401,20 +405,22 @@
401
405
  .eq(0).attr('data-value', val[0]).end() // adding value to data attribute
402
406
  .eq(1).attr('data-value', val[1]); // value popup shown via css
403
407
  }
404
- // update the hidden input
405
- $cell.find('.filter').val(range)
406
- .trigger(notrigger ? '' : 'search', searchType).end()
407
- .find('.range').slider('values', val);
408
- // update sticky header cell
409
- if ($shcell.length) {
410
- $shcell.find('.range').slider('values', val);
411
- if (o.valueToHeader) {
412
- $shcell.closest('thead').find('th[data-column=' + indx + ']').find('.currange').html(' (' + result + ')');
413
- } else {
414
- $shcell.find('.ui-slider-handle')
415
- .addClass('value-popup')
416
- .eq(0).attr('data-value', val[0]).end() // adding value to data attribute
417
- .eq(1).attr('data-value', val[1]); // value popup shown via css
408
+ if (!ts.isEmptyObject($cell.find('.range').data())) {
409
+ // update the hidden input
410
+ $cell.find('.filter').val(range)
411
+ .trigger(notrigger ? '' : 'search', searchType).end()
412
+ .find('.range').slider('values', val);
413
+ // update sticky header cell
414
+ if ($shcell.length) {
415
+ $shcell.find('.range').slider('values', val);
416
+ if (o.valueToHeader) {
417
+ $shcell.closest('thead').find('th[data-column=' + indx + ']').find('.currange').html(' (' + result + ')');
418
+ } else {
419
+ $shcell.find('.ui-slider-handle')
420
+ .addClass('value-popup')
421
+ .eq(0).attr('data-value', val[0]).end() // adding value to data attribute
422
+ .eq(1).attr('data-value', val[1]); // value popup shown via css
423
+ }
418
424
  }
419
425
  }
420
426
 
@@ -443,13 +449,13 @@
443
449
  .slider(o);
444
450
 
445
451
  // update slider from hidden input, in case of saved filters
446
- c.$table.bind('filterFomatterUpdate', function(){
452
+ c.$table.bind('filterFomatterUpdate' + c.namespace + 'filter', function(){
447
453
  getRange();
448
454
  ts.filter.formatterUpdated($cell, indx);
449
455
  });
450
456
 
451
457
  // on reset
452
- c.$table.bind('filterReset', function(){
458
+ c.$table.bind('filterReset' + c.namespace + 'filter', function(){
453
459
  $cell.find('.range').slider('values', o.values);
454
460
  setTimeout(function(){
455
461
  updateUiRange();
@@ -457,7 +463,7 @@
457
463
  });
458
464
 
459
465
  // has sticky headers?
460
- c.$table.bind('stickyHeadersInit', function(){
466
+ c.$table.bind('stickyHeadersInit' + c.namespace + 'filter', function(){
461
467
  $shcell = c.widgetOptions.$sticky.find('.tablesorter-filter-row').children().eq(indx).empty();
462
468
 
463
469
  // add a jQuery UI slider!
@@ -552,7 +558,7 @@
552
558
  $date.datepicker(o);
553
559
 
554
560
  // on reset
555
- c.$table.bind('filterReset', function(){
561
+ c.$table.bind('filterReset' + c.namespace + 'filter', function(){
556
562
  if ($.isArray(o.compare)) {
557
563
  $cell.add($shcell).find(compareSelect).val( o.compare[ o.selected || 0 ] );
558
564
  }
@@ -563,7 +569,7 @@
563
569
  });
564
570
 
565
571
  // update date compare from hidden input, in case of saved filters
566
- c.$table.bind('filterFomatterUpdate', function(){
572
+ c.$table.bind('filterFomatterUpdate' + c.namespace + 'filter', function(){
567
573
  var num, v = $input.val();
568
574
  if (/\s+-\s+/.test(v)) {
569
575
  // date range found; assume an exact match on one day
@@ -591,7 +597,7 @@
591
597
  }
592
598
 
593
599
  // has sticky headers?
594
- c.$table.bind('stickyHeadersInit', function(){
600
+ c.$table.bind('stickyHeadersInit' + c.namespace + 'filter', function(){
595
601
  $shcell = c.widgetOptions.$sticky.find('.tablesorter-filter-row').children().eq(indx).empty();
596
602
 
597
603
  // add a jQuery datepicker!
@@ -702,7 +708,7 @@
702
708
  $cell.find('.dateTo').datepicker(o);
703
709
 
704
710
  // update date compare from hidden input, in case of saved filters
705
- c.$table.bind('filterFomatterUpdate', function(){
711
+ c.$table.bind('filterFomatterUpdate' + c.namespace + 'filter', function(){
706
712
  var val = $input.val() || '',
707
713
  from = '',
708
714
  to = '';
@@ -733,7 +739,7 @@
733
739
  });
734
740
 
735
741
  // has sticky headers?
736
- c.$table.bind('stickyHeadersInit', function(){
742
+ c.$table.bind('stickyHeadersInit' + c.namespace + 'filter', function(){
737
743
  $shcell = c.widgetOptions.$sticky.find('.tablesorter-filter-row').children().eq(indx).empty();
738
744
  $shcell.append(t);
739
745
 
@@ -747,7 +753,7 @@
747
753
  });
748
754
 
749
755
  // on reset
750
- $cell.closest('table').bind('filterReset', function(){
756
+ $cell.closest('table').bind('filterReset' + c.namespace + 'filter', function(){
751
757
  $cell.add($shcell).find('.dateFrom').val('').datepicker('setDate', o.from || null );
752
758
  $cell.add($shcell).find('.dateTo').val('').datepicker('setDate', o.to || null );
753
759
  setTimeout(function(){
@@ -70,18 +70,20 @@
70
70
  if (arry) {
71
71
  v = v.split('\u0000');
72
72
  }
73
- $input
74
- // add regex, so we filter exact numbers
75
- .val(
76
- $.isArray(v) && v.length && v.join('') !== '' ?
77
- '/(' + matchPrefix + (v || []).join(matchSuffix + '|' + matchPrefix) + matchSuffix + ')/' + flags :
78
- ''
79
- )
80
- .trigger('search').end()
81
- .find('.select2').select2('val', v);
82
- // update sticky header cell
83
- if (c.widgetOptions.$sticky) {
84
- c.widgetOptions.$sticky.find('.select2col' + indx + ' .select2').select2('val', v);
73
+ if (!ts.isEmptyObject($input.find('.select2').data())) {
74
+ $input
75
+ // add regex, so we filter exact numbers
76
+ .val(
77
+ $.isArray(v) && v.length && v.join('') !== '' ?
78
+ '/(' + matchPrefix + (v || []).join(matchSuffix + '|' + matchPrefix) + matchSuffix + ')/' + flags :
79
+ ''
80
+ )
81
+ .trigger('search').end()
82
+ .find('.select2').select2('val', v);
83
+ // update sticky header cell
84
+ if (c.widgetOptions.$sticky) {
85
+ c.widgetOptions.$sticky.find('.select2col' + indx + ' .select2').select2('val', v);
86
+ }
85
87
  }
86
88
  },
87
89
 
@@ -1,4 +1,4 @@
1
- /*! Widget: filter - updated 5/24/2017 (v2.28.11) *//*
1
+ /*! Widget: filter - updated 7/4/2017 (v2.28.15) *//*
2
2
  * Requires tablesorter v2.8+ and jQuery 1.7+
3
3
  * by Rob Garrison
4
4
  */
@@ -69,8 +69,10 @@
69
69
  var tbodyIndex, $tbody,
70
70
  $table = c.$table,
71
71
  $tbodies = c.$tbodies,
72
- events = 'addRows updateCell update updateRows updateComplete appendCache filterReset filterAndSortReset filterEnd search '
73
- .split( ' ' ).join( c.namespace + 'filter ' );
72
+ events = (
73
+ 'addRows updateCell update updateRows updateComplete appendCache filterReset ' +
74
+ 'filterAndSortReset filterFomatterUpdate filterEnd search stickyHeadersInit '
75
+ ).split( ' ' ).join( c.namespace + 'filter ' );
74
76
  $table
75
77
  .removeClass( 'hasFilters' )
76
78
  // add filter namespace to all BUT search
@@ -599,7 +601,9 @@
599
601
  // so we have to work with it instead
600
602
  formatterUpdated: function( $cell, column ) {
601
603
  // prevent error if $cell is undefined - see #1056
602
- var wo = $cell && $cell.closest( 'table' )[0].config.widgetOptions;
604
+ var $table = $cell && $cell.closest( 'table' );
605
+ var config = $table.length && $table[0].config,
606
+ wo = config && config.widgetOptions;
603
607
  if ( wo && !wo.filter_initialized ) {
604
608
  // add updates by column since this function
605
609
  // may be called numerous times before initialization
@@ -1,4 +1,4 @@
1
- /*! Widget: sort2Hash (BETA) - updated 4/2/2017 (v2.28.6) */
1
+ /*! Widget: sort2Hash (BETA) - updated 7/4/2017 (v2.28.15) */
2
2
  /* Requires tablesorter v2.8+ and jQuery 1.7+
3
3
  * by Rob Garrison
4
4
  */
@@ -26,10 +26,21 @@
26
26
  filter = filter.split( wo.sort2Hash_separator );
27
27
  c.$table.one( 'tablesorter-ready', function() {
28
28
  setTimeout(function(){
29
- c.$table.one( 'filterEnd', function(){
29
+ c.$table.one( 'filterEnd', function() {
30
30
  $(this).triggerHandler( 'pageAndSize', [ page, size ] );
31
31
  });
32
- $.tablesorter.setFilters( table, filter, true );
32
+ // use the newest filter comparison code
33
+ if ( ts.filter.equalFilters ) {
34
+ temp = ts.filter.equalFilters( c, c.lastSearch, filter );
35
+ } else {
36
+ // quick n' dirty comparison... it will miss filter changes of
37
+ // the same value in a different column, see #1363
38
+ temp = ( c.lastSearch || [] ).join( '' ) !== ( filter || [] ).join( '' );
39
+ }
40
+ // don't set filters if they haven't changed
41
+ if ( !temp ) {
42
+ $.tablesorter.setFilters( table, filter, true );
43
+ }
33
44
  }, 100 );
34
45
  });
35
46
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jquery-tablesorter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.23.14
4
+ version: 1.23.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jun Lin