jquery-tablesorter 1.20.8 → 1.21.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 +33 -31
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.combined.js +39 -27
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.widgets.js +37 -25
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-input-select.js +21 -17
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-columnSelector.js +33 -21
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-formatter-jui.js +3 -3
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter.js +29 -19
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-pager.js +34 -29
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-scroller.js +4 -1
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-stickyHeaders.js +7 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f3731f02067ca05fe70bd8cffb0b88cc8609550c
|
4
|
+
data.tar.gz: 9e80942394a066cff780da926ff0a8da5a65630b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 471a7f37eda5c4a93fac02ede5f1420a3ecd473733a87966666d8ea6ff6cc8c66f4e25692b883d192ac45d5a6fde7cd45681145a685d8c64c5e7c6b12270bc99
|
7
|
+
data.tar.gz: 93cdb689d1ea90b88621a25b376d5f1daf6a4a0c21b8c71f9f7d1bb62250bae33479a1312b9e51c25dc24404bccdab3497b36d8af4c4b90f5f69cea05982ef5e
|
data/README.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Simple integration of jquery-tablesorter into the asset pipeline.
|
6
6
|
|
7
|
-
Current tablesorter version: 2.
|
7
|
+
Current tablesorter version: 2.26.0 (5/1/2016), [documentation]
|
8
8
|
|
9
9
|
Any issue associated with the js/css files, please report to [Mottie's fork].
|
10
10
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*!
|
2
2
|
* tablesorter (FORK) pager plugin
|
3
|
-
* updated
|
3
|
+
* updated 5/1/2016 (v2.26.0)
|
4
4
|
*/
|
5
5
|
/*jshint browser:true, jquery:true, unused:false */
|
6
6
|
;(function($) {
|
@@ -167,6 +167,7 @@
|
|
167
167
|
c = table.config,
|
168
168
|
namespace = c.namespace + 'pager',
|
169
169
|
sz = parsePageSize( p, p.size, 'get' ); // don't allow dividing by zero
|
170
|
+
if (sz === 'all') { sz = p.totalRows; }
|
170
171
|
if (p.countChildRows) { t[ t.length ] = c.cssChildRow; }
|
171
172
|
p.totalPages = Math.ceil( p.totalRows / sz ); // needed for "pageSize" method
|
172
173
|
c.totalRows = p.totalRows;
|
@@ -175,10 +176,10 @@
|
|
175
176
|
c.filteredRows = p.filteredRows;
|
176
177
|
p.filteredPages = Math.ceil( p.filteredRows / sz ) || 0;
|
177
178
|
if ( getTotalPages( table, p ) >= 0 ) {
|
178
|
-
t = (
|
179
|
+
t = (sz * p.page > p.filteredRows) && completed;
|
179
180
|
p.page = (t) ? p.pageReset || 0 : p.page;
|
180
|
-
p.startRow = (t) ?
|
181
|
-
p.endRow = Math.min( p.filteredRows, p.totalRows,
|
181
|
+
p.startRow = (t) ? sz * p.page + 1 : (p.filteredRows === 0 ? 0 : sz * p.page + 1);
|
182
|
+
p.endRow = Math.min( p.filteredRows, p.totalRows, sz * ( p.page + 1 ) );
|
182
183
|
$out = p.$container.find(p.cssPageDisplay);
|
183
184
|
// form the output string (can now get a new output string from the server)
|
184
185
|
s = ( p.ajaxData && p.ajaxData.output ? p.ajaxData.output || p.output : p.output )
|
@@ -216,7 +217,7 @@
|
|
216
217
|
// rebind startRow/page inputs
|
217
218
|
$out.find('.ts-startRow, .ts-page').unbind('change' + namespace).bind('change' + namespace, function(){
|
218
219
|
var v = $(this).val(),
|
219
|
-
pg = $(this).hasClass('ts-startRow') ? Math.floor( v /
|
220
|
+
pg = $(this).hasClass('ts-startRow') ? Math.floor( v / sz ) + 1 : v;
|
220
221
|
c.$table.triggerHandler('pageSet' + namespace, [ pg ]);
|
221
222
|
});
|
222
223
|
}
|
@@ -232,7 +233,7 @@
|
|
232
233
|
if (p.savePages && ts.storage) {
|
233
234
|
ts.storage(table, p.storageKey, {
|
234
235
|
page : p.page,
|
235
|
-
size : p.
|
236
|
+
size : sz === p.totalRows ? 'all' : sz
|
236
237
|
});
|
237
238
|
}
|
238
239
|
}
|
@@ -307,7 +308,8 @@
|
|
307
308
|
h = $.data(table, 'pagerSavedHeight');
|
308
309
|
if (h) {
|
309
310
|
d = h - $b.height();
|
310
|
-
if ( d > 5 && $.data(table, 'pagerLastSize') === p.size &&
|
311
|
+
if ( d > 5 && $.data(table, 'pagerLastSize') === p.size &&
|
312
|
+
$b.children('tr:visible').length < (p.size === 'all' ? p.totalRows : p.size) ) {
|
311
313
|
$b.append('<tr class="pagerSavedHeightSpacer ' + c.selectorRemove.slice(1) + '" style="height:' + d + 'px;"></tr>');
|
312
314
|
}
|
313
315
|
}
|
@@ -322,7 +324,7 @@
|
|
322
324
|
if (!$b.children('tr:visible').length) {
|
323
325
|
$b.append('<tr class="pagerSavedHeightSpacer ' + c.selectorRemove.slice(1) + '"><td> </td></tr>');
|
324
326
|
}
|
325
|
-
h = $b.children('tr').eq(0).height() * p.size;
|
327
|
+
h = $b.children('tr').eq(0).height() * (p.size === 'all' ? p.totalRows : p.size);
|
326
328
|
$.data(table, 'pagerSavedHeight', h);
|
327
329
|
fixHeight(table, p);
|
328
330
|
$.data(table, 'pagerLastSize', p.size);
|
@@ -335,8 +337,9 @@
|
|
335
337
|
c = table.config,
|
336
338
|
rows = c.$tbodies.eq(0).children('tr'),
|
337
339
|
l = rows.length,
|
338
|
-
|
339
|
-
|
340
|
+
sz = p.size === 'all' ? p.totalRows : p.size,
|
341
|
+
s = ( p.page * sz ),
|
342
|
+
e = s + sz,
|
340
343
|
f = c.widgetOptions && c.widgetOptions.filter_filteredRow || 'filtered',
|
341
344
|
last = 0, // for cache indexing
|
342
345
|
j = 0; // size counter
|
@@ -371,7 +374,7 @@
|
|
371
374
|
|
372
375
|
hideRowsSetup = function(table, p){
|
373
376
|
p.size = parsePageSize( p, p.$size.val(), 'get' );
|
374
|
-
p.$size.val(
|
377
|
+
p.$size.val( p.size );
|
375
378
|
$.data(table, 'pagerLastSize', p.size);
|
376
379
|
pagerArrows( table, p );
|
377
380
|
if ( !p.removeRows ) {
|
@@ -392,7 +395,7 @@
|
|
392
395
|
table.config.$tbodies.eq(0).empty();
|
393
396
|
|
394
397
|
// ajaxProcessing result: [ total, rows, headers ]
|
395
|
-
var i, j, t, hsh, $f, $sh, $headers, $h, icon, th, d, l, rr_count, len,
|
398
|
+
var i, j, t, hsh, $f, $sh, $headers, $h, icon, th, d, l, rr_count, len, sz,
|
396
399
|
c = table.config,
|
397
400
|
$table = c.$table,
|
398
401
|
tds = '',
|
@@ -483,9 +486,10 @@
|
|
483
486
|
if (c.showProcessing) {
|
484
487
|
ts.isProcessing(table); // remove loading icon
|
485
488
|
}
|
489
|
+
sz = parsePageSize( p, p.size, 'get' );
|
486
490
|
// make sure last pager settings are saved, prevents multiple server side calls with
|
487
491
|
// the same parameters
|
488
|
-
p.totalPages = Math.ceil( p.totalRows /
|
492
|
+
p.totalPages = sz === 'all' ? 1 : Math.ceil( p.totalRows / sz );
|
489
493
|
p.last.totalRows = p.totalRows;
|
490
494
|
p.last.currentFilters = p.currentFilters;
|
491
495
|
p.last.sortList = (c.sortList || []).join(',');
|
@@ -555,6 +559,7 @@
|
|
555
559
|
url = (p.ajaxUrl) ? p.ajaxUrl
|
556
560
|
// allow using "{page+1}" in the url string to switch to a non-zero based index
|
557
561
|
.replace(/\{page([\-+]\d+)?\}/, function(s, n){ return p.page + (n ? parseInt(n, 10) : 0); })
|
562
|
+
// this will pass "all" to server when size is set to "all"
|
558
563
|
.replace(/\{size\}/g, p.size) : '',
|
559
564
|
sortList = c.sortList,
|
560
565
|
filterList = p.currentFilters || $(table).data('lastSearch') || [],
|
@@ -598,8 +603,8 @@
|
|
598
603
|
c = table.config,
|
599
604
|
f = c.$table.hasClass('hasFilters'),
|
600
605
|
l = rows && rows.length || 0, // rows may be undefined
|
601
|
-
|
602
|
-
|
606
|
+
e = p.size === 'all' ? p.totalRows : p.size,
|
607
|
+
s = ( p.page * e );
|
603
608
|
if ( l < 1 ) {
|
604
609
|
if (c.debug) {
|
605
610
|
console.warn('Pager: >> No rows for pager to render');
|
@@ -659,7 +664,7 @@
|
|
659
664
|
$.data(table, 'pagerLastPage', p.page);
|
660
665
|
$.data(table, 'pagerLastSize', p.size);
|
661
666
|
p.page = 0;
|
662
|
-
p.size =
|
667
|
+
p.size = 'all';
|
663
668
|
p.totalPages = 1;
|
664
669
|
$(table)
|
665
670
|
.addClass('pagerDisabled')
|
@@ -777,13 +782,10 @@
|
|
777
782
|
|
778
783
|
// set to either set or get value
|
779
784
|
parsePageSize = function( p, size, mode ) {
|
780
|
-
var s = parseInt( size, 10 ) || p.size || p.settings.size || 10
|
781
|
-
// if select does not contain an "all" option, use size
|
782
|
-
setAll = p.$size.find( 'option[value="all"]' ).length ? 'all' : p.totalRows;
|
785
|
+
var s = parseInt( size, 10 ) || p.size || p.settings.size || 10;
|
783
786
|
return /all/i.test( size ) || s === p.totalRows ?
|
784
787
|
// "get" to get `p.size` or "set" to set `p.$size.val()`
|
785
|
-
( mode === 'get' ?
|
786
|
-
( mode === 'get' ? s : p.size );
|
788
|
+
'all' : ( mode === 'get' ? s : p.size );
|
787
789
|
},
|
788
790
|
|
789
791
|
parsePageNumber = function( table, p ) {
|
@@ -799,8 +801,8 @@
|
|
799
801
|
p.$size.val( parsePageSize( p, p.size, 'set' ) );
|
800
802
|
$.data(table, 'pagerLastPage', parsePageNumber( table, p ) );
|
801
803
|
$.data(table, 'pagerLastSize', p.size);
|
802
|
-
p.totalPages = Math.ceil( p.totalRows / p.size );
|
803
|
-
p.filteredPages = Math.ceil( p.filteredRows / p.size );
|
804
|
+
p.totalPages = p.size === 'all' ? 1 : Math.ceil( p.totalRows / p.size );
|
805
|
+
p.filteredPages = p.size === 'all' ? 1 : Math.ceil( p.filteredRows / p.size );
|
804
806
|
moveToPage(table, p);
|
805
807
|
},
|
806
808
|
|
@@ -872,9 +874,9 @@
|
|
872
874
|
p.isDisabled = false;
|
873
875
|
p.page = $.data(table, 'pagerLastPage') || p.page || 0;
|
874
876
|
size = p.$size.find('option[selected]').val();
|
875
|
-
p.size = $.data(table, 'pagerLastSize') || parsePageSize( p,
|
876
|
-
p.$size.val(
|
877
|
-
p.totalPages = Math.ceil( getTotalPages( table, p ) / p.size );
|
877
|
+
p.size = $.data(table, 'pagerLastSize') || parsePageSize( p, size, 'get' );
|
878
|
+
p.$size.val( p.size ); // set page size
|
879
|
+
p.totalPages = p.size === 'all' ? 1 : Math.ceil( getTotalPages( table, p ) / p.size );
|
878
880
|
// if table id exists, include page display with aria info
|
879
881
|
if ( table.id ) {
|
880
882
|
info = table.id + '_pager_info';
|
@@ -900,7 +902,7 @@
|
|
900
902
|
c.rowsCopy = rows;
|
901
903
|
p.totalRows = p.countChildRows ? c.$tbodies.eq(0).children('tr').length : rows.length;
|
902
904
|
p.size = $.data(table, 'pagerLastSize') || p.size || p.settings.size || 10;
|
903
|
-
p.totalPages = Math.ceil( p.totalRows / p.size );
|
905
|
+
p.totalPages = p.size === 'all' ? 1 : Math.ceil( p.totalRows / p.size );
|
904
906
|
renderTable(table, rows, p);
|
905
907
|
// update display here in case all rows are removed
|
906
908
|
updatePageDisplay(table, p, false);
|
@@ -911,7 +913,7 @@
|
|
911
913
|
return this.each(function() {
|
912
914
|
// check if tablesorter has initialized
|
913
915
|
if (!(this.config && this.hasInitialized)) { return; }
|
914
|
-
var t, ctrls, fxn,
|
916
|
+
var t, ctrls, fxn, size,
|
915
917
|
table = this,
|
916
918
|
c = table.config,
|
917
919
|
wo = c.widgetOptions,
|
@@ -931,10 +933,10 @@
|
|
931
933
|
if (p.savePages && ts.storage) {
|
932
934
|
t = ts.storage(table, p.storageKey) || {}; // fixes #387
|
933
935
|
p.page = isNaN(t.page) ? p.page : t.page;
|
934
|
-
p.size = ( isNaN(t.size) ? p.size : t.size ) || p.
|
936
|
+
p.size = t.size === 'all' ? t.size : ( isNaN( t.size ) ? p.size : t.size ) || p.setSize || 10;
|
935
937
|
$.data(table, 'pagerLastSize', p.size);
|
938
|
+
pager.find(p.cssPageSize).val(p.size);
|
936
939
|
}
|
937
|
-
|
938
940
|
// skipped rows
|
939
941
|
p.regexRows = new RegExp('(' + (wo.filter_filteredRow || 'filtered') + '|' + c.selectorRemove.slice(1) + '|' + c.cssChildRow + ')');
|
940
942
|
|
@@ -980,7 +982,7 @@
|
|
980
982
|
if ( !table || triggered || p.ajax ) { return; }
|
981
983
|
var $rows = c.$tbodies.eq(0).children('tr').not(c.selectorRemove);
|
982
984
|
p.totalRows = $rows.length - ( p.countChildRows ? 0 : $rows.filter('.' + c.cssChildRow).length );
|
983
|
-
p.totalPages = Math.ceil( p.totalRows / p.size );
|
985
|
+
p.totalPages = p.size === 'all' ? 1 : Math.ceil( p.totalRows / p.size );
|
984
986
|
if ($rows.length && c.rowsCopy && c.rowsCopy.length === 0) {
|
985
987
|
// make a copy of all table rows once the cache has been built
|
986
988
|
updateCache(table);
|
@@ -4,7 +4,7 @@
|
|
4
4
|
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██
|
5
5
|
█████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
|
6
6
|
*/
|
7
|
-
/*! tablesorter (FORK) - updated
|
7
|
+
/*! tablesorter (FORK) - updated 05-01-2016 (v2.26.0)*/
|
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($) {
|
18
18
|
|
19
|
-
/*! TableSorter (FORK) v2.
|
19
|
+
/*! TableSorter (FORK) v2.26.0 *//*
|
20
20
|
* Client-side table sorting with ease!
|
21
21
|
* @requires jQuery v1.2.6+
|
22
22
|
*
|
@@ -39,7 +39,7 @@
|
|
39
39
|
'use strict';
|
40
40
|
var ts = $.tablesorter = {
|
41
41
|
|
42
|
-
version : '2.
|
42
|
+
version : '2.26.0',
|
43
43
|
|
44
44
|
parsers : [],
|
45
45
|
widgets : [],
|
@@ -3104,7 +3104,7 @@
|
|
3104
3104
|
|
3105
3105
|
})(jQuery);
|
3106
3106
|
|
3107
|
-
/*! Widget: filter - updated 4/
|
3107
|
+
/*! Widget: filter - updated 4/29/2016 (v2.25.9) *//*
|
3108
3108
|
* Requires tablesorter v2.8+ and jQuery 1.7+
|
3109
3109
|
* by Rob Garrison
|
3110
3110
|
*/
|
@@ -3183,6 +3183,7 @@
|
|
3183
3183
|
.unbind( events.replace( ts.regex.spaces, ' ' ) )
|
3184
3184
|
// remove the filter row even if refreshing, because the column might have been moved
|
3185
3185
|
.find( '.' + tscss.filterRow ).remove();
|
3186
|
+
wo.filter_initialized = false;
|
3186
3187
|
if ( refreshing ) { return; }
|
3187
3188
|
for ( tbodyIndex = 0; tbodyIndex < $tbodies.length; tbodyIndex++ ) {
|
3188
3189
|
$tbody = ts.processTbody( table, $tbodies.eq( tbodyIndex ), true ); // remove tbody
|
@@ -3455,7 +3456,7 @@
|
|
3455
3456
|
return null;
|
3456
3457
|
}
|
3457
3458
|
},
|
3458
|
-
init: function( table
|
3459
|
+
init: function( table ) {
|
3459
3460
|
// filter language options
|
3460
3461
|
ts.language = $.extend( true, {}, {
|
3461
3462
|
to : 'to',
|
@@ -3463,7 +3464,9 @@
|
|
3463
3464
|
and : 'and'
|
3464
3465
|
}, ts.language );
|
3465
3466
|
|
3466
|
-
var options, string, txt, $header, column,
|
3467
|
+
var options, string, txt, $header, column, val, fxn, noSelect,
|
3468
|
+
c = table.config,
|
3469
|
+
wo = c.widgetOptions;
|
3467
3470
|
c.$table.addClass( 'hasFilters' );
|
3468
3471
|
c.lastSearch = [];
|
3469
3472
|
|
@@ -3651,22 +3654,7 @@
|
|
3651
3654
|
c.$table
|
3652
3655
|
.unbind( txt.replace( ts.regex.spaces, ' ' ) )
|
3653
3656
|
.bind( txt, function() {
|
3654
|
-
|
3655
|
-
var wo = this.config.widgetOptions;
|
3656
|
-
filters = tsf.setDefaults( table, c, wo ) || [];
|
3657
|
-
if ( filters.length ) {
|
3658
|
-
// prevent delayInit from triggering a cache build if filters are empty
|
3659
|
-
if ( !( c.delayInit && filters.join( '' ) === '' ) ) {
|
3660
|
-
ts.setFilters( table, filters, true );
|
3661
|
-
}
|
3662
|
-
}
|
3663
|
-
c.$table.triggerHandler( 'filterFomatterUpdate' );
|
3664
|
-
// trigger init after setTimeout to prevent multiple filterStart/End/Init triggers
|
3665
|
-
setTimeout( function() {
|
3666
|
-
if ( !wo.filter_initialized ) {
|
3667
|
-
tsf.filterInitComplete( c );
|
3668
|
-
}
|
3669
|
-
}, 100 );
|
3657
|
+
tsf.completeInit( this );
|
3670
3658
|
});
|
3671
3659
|
// if filter widget is added after pager has initialized; then set filter init flag
|
3672
3660
|
if ( c.pager && c.pager.initialized && !wo.filter_initialized ) {
|
@@ -3674,8 +3662,30 @@
|
|
3674
3662
|
setTimeout( function() {
|
3675
3663
|
tsf.filterInitComplete( c );
|
3676
3664
|
}, 100 );
|
3665
|
+
} else if ( !wo.filter_initialized ) {
|
3666
|
+
tsf.completeInit( table );
|
3667
|
+
}
|
3668
|
+
},
|
3669
|
+
completeInit: function( table ) {
|
3670
|
+
// redefine 'c' & 'wo' so they update properly inside this callback
|
3671
|
+
var c = table.config,
|
3672
|
+
wo = c.widgetOptions,
|
3673
|
+
filters = tsf.setDefaults( table, c, wo ) || [];
|
3674
|
+
if ( filters.length ) {
|
3675
|
+
// prevent delayInit from triggering a cache build if filters are empty
|
3676
|
+
if ( !( c.delayInit && filters.join( '' ) === '' ) ) {
|
3677
|
+
ts.setFilters( table, filters, true );
|
3678
|
+
}
|
3677
3679
|
}
|
3680
|
+
c.$table.triggerHandler( 'filterFomatterUpdate' );
|
3681
|
+
// trigger init after setTimeout to prevent multiple filterStart/End/Init triggers
|
3682
|
+
setTimeout( function() {
|
3683
|
+
if ( !wo.filter_initialized ) {
|
3684
|
+
tsf.filterInitComplete( c );
|
3685
|
+
}
|
3686
|
+
}, 100 );
|
3678
3687
|
},
|
3688
|
+
|
3679
3689
|
// $cell parameter, but not the config, is passed to the filter_formatters,
|
3680
3690
|
// so we have to work with it instead
|
3681
3691
|
formatterUpdated: function( $cell, column ) {
|
@@ -4921,7 +4931,7 @@
|
|
4921
4931
|
|
4922
4932
|
})( jQuery );
|
4923
4933
|
|
4924
|
-
/*! Widget: stickyHeaders - updated
|
4934
|
+
/*! Widget: stickyHeaders - updated 5/1/2016 (v2.26.0) *//*
|
4925
4935
|
* Requires tablesorter v2.8+ and jQuery 1.4.3+
|
4926
4936
|
* by Rob Garrison
|
4927
4937
|
*/
|
@@ -5085,12 +5095,14 @@
|
|
5085
5095
|
var offset = $table.offset(),
|
5086
5096
|
yWindow = $.isWindow( $yScroll[0] ), // $.isWindow needs jQuery 1.4.3
|
5087
5097
|
xWindow = $.isWindow( $xScroll[0] ),
|
5088
|
-
|
5089
|
-
|
5090
|
-
|
5098
|
+
attachTop = $attach.length ?
|
5099
|
+
( yWindow ? $yScroll.scrollTop() : $yScroll.offset().top ) :
|
5100
|
+
$yScroll.scrollTop(),
|
5101
|
+
captionHeight = wo.stickyHeaders_includeCaption ? 0 : $table.children( 'caption' ).height() || 0,
|
5102
|
+
scrollTop = attachTop + stickyOffset + nestedStickyTop - captionHeight,
|
5103
|
+
tableHeight = $table.height() - ($stickyWrap.height() + ($tfoot.height() || 0)) - captionHeight,
|
5091
5104
|
isVisible = ( scrollTop > offset.top ) && ( scrollTop < offset.top + tableHeight ) ? 'visible' : 'hidden',
|
5092
5105
|
cssSettings = { visibility : isVisible };
|
5093
|
-
|
5094
5106
|
if ($attach.length) {
|
5095
5107
|
cssSettings.top = yWindow ? scrollTop - $attach.offset().top : $attach.scrollTop();
|
5096
5108
|
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! TableSorter (FORK) v2.
|
1
|
+
/*! TableSorter (FORK) v2.26.0 *//*
|
2
2
|
* Client-side table sorting with ease!
|
3
3
|
* @requires jQuery v1.2.6+
|
4
4
|
*
|
@@ -21,7 +21,7 @@
|
|
21
21
|
'use strict';
|
22
22
|
var ts = $.tablesorter = {
|
23
23
|
|
24
|
-
version : '2.
|
24
|
+
version : '2.26.0',
|
25
25
|
|
26
26
|
parsers : [],
|
27
27
|
widgets : [],
|
@@ -4,7 +4,7 @@
|
|
4
4
|
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██
|
5
5
|
█████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
|
6
6
|
*/
|
7
|
-
/*! tablesorter (FORK) - updated
|
7
|
+
/*! tablesorter (FORK) - updated 05-01-2016 (v2.26.0)*/
|
8
8
|
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
9
9
|
(function(factory) {
|
10
10
|
if (typeof define === 'function' && define.amd) {
|
@@ -372,7 +372,7 @@
|
|
372
372
|
|
373
373
|
})(jQuery);
|
374
374
|
|
375
|
-
/*! Widget: filter - updated 4/
|
375
|
+
/*! Widget: filter - updated 4/29/2016 (v2.25.9) *//*
|
376
376
|
* Requires tablesorter v2.8+ and jQuery 1.7+
|
377
377
|
* by Rob Garrison
|
378
378
|
*/
|
@@ -451,6 +451,7 @@
|
|
451
451
|
.unbind( events.replace( ts.regex.spaces, ' ' ) )
|
452
452
|
// remove the filter row even if refreshing, because the column might have been moved
|
453
453
|
.find( '.' + tscss.filterRow ).remove();
|
454
|
+
wo.filter_initialized = false;
|
454
455
|
if ( refreshing ) { return; }
|
455
456
|
for ( tbodyIndex = 0; tbodyIndex < $tbodies.length; tbodyIndex++ ) {
|
456
457
|
$tbody = ts.processTbody( table, $tbodies.eq( tbodyIndex ), true ); // remove tbody
|
@@ -723,7 +724,7 @@
|
|
723
724
|
return null;
|
724
725
|
}
|
725
726
|
},
|
726
|
-
init: function( table
|
727
|
+
init: function( table ) {
|
727
728
|
// filter language options
|
728
729
|
ts.language = $.extend( true, {}, {
|
729
730
|
to : 'to',
|
@@ -731,7 +732,9 @@
|
|
731
732
|
and : 'and'
|
732
733
|
}, ts.language );
|
733
734
|
|
734
|
-
var options, string, txt, $header, column,
|
735
|
+
var options, string, txt, $header, column, val, fxn, noSelect,
|
736
|
+
c = table.config,
|
737
|
+
wo = c.widgetOptions;
|
735
738
|
c.$table.addClass( 'hasFilters' );
|
736
739
|
c.lastSearch = [];
|
737
740
|
|
@@ -919,22 +922,7 @@
|
|
919
922
|
c.$table
|
920
923
|
.unbind( txt.replace( ts.regex.spaces, ' ' ) )
|
921
924
|
.bind( txt, function() {
|
922
|
-
|
923
|
-
var wo = this.config.widgetOptions;
|
924
|
-
filters = tsf.setDefaults( table, c, wo ) || [];
|
925
|
-
if ( filters.length ) {
|
926
|
-
// prevent delayInit from triggering a cache build if filters are empty
|
927
|
-
if ( !( c.delayInit && filters.join( '' ) === '' ) ) {
|
928
|
-
ts.setFilters( table, filters, true );
|
929
|
-
}
|
930
|
-
}
|
931
|
-
c.$table.triggerHandler( 'filterFomatterUpdate' );
|
932
|
-
// trigger init after setTimeout to prevent multiple filterStart/End/Init triggers
|
933
|
-
setTimeout( function() {
|
934
|
-
if ( !wo.filter_initialized ) {
|
935
|
-
tsf.filterInitComplete( c );
|
936
|
-
}
|
937
|
-
}, 100 );
|
925
|
+
tsf.completeInit( this );
|
938
926
|
});
|
939
927
|
// if filter widget is added after pager has initialized; then set filter init flag
|
940
928
|
if ( c.pager && c.pager.initialized && !wo.filter_initialized ) {
|
@@ -942,8 +930,30 @@
|
|
942
930
|
setTimeout( function() {
|
943
931
|
tsf.filterInitComplete( c );
|
944
932
|
}, 100 );
|
933
|
+
} else if ( !wo.filter_initialized ) {
|
934
|
+
tsf.completeInit( table );
|
935
|
+
}
|
936
|
+
},
|
937
|
+
completeInit: function( table ) {
|
938
|
+
// redefine 'c' & 'wo' so they update properly inside this callback
|
939
|
+
var c = table.config,
|
940
|
+
wo = c.widgetOptions,
|
941
|
+
filters = tsf.setDefaults( table, c, wo ) || [];
|
942
|
+
if ( filters.length ) {
|
943
|
+
// prevent delayInit from triggering a cache build if filters are empty
|
944
|
+
if ( !( c.delayInit && filters.join( '' ) === '' ) ) {
|
945
|
+
ts.setFilters( table, filters, true );
|
946
|
+
}
|
945
947
|
}
|
948
|
+
c.$table.triggerHandler( 'filterFomatterUpdate' );
|
949
|
+
// trigger init after setTimeout to prevent multiple filterStart/End/Init triggers
|
950
|
+
setTimeout( function() {
|
951
|
+
if ( !wo.filter_initialized ) {
|
952
|
+
tsf.filterInitComplete( c );
|
953
|
+
}
|
954
|
+
}, 100 );
|
946
955
|
},
|
956
|
+
|
947
957
|
// $cell parameter, but not the config, is passed to the filter_formatters,
|
948
958
|
// so we have to work with it instead
|
949
959
|
formatterUpdated: function( $cell, column ) {
|
@@ -2189,7 +2199,7 @@
|
|
2189
2199
|
|
2190
2200
|
})( jQuery );
|
2191
2201
|
|
2192
|
-
/*! Widget: stickyHeaders - updated
|
2202
|
+
/*! Widget: stickyHeaders - updated 5/1/2016 (v2.26.0) *//*
|
2193
2203
|
* Requires tablesorter v2.8+ and jQuery 1.4.3+
|
2194
2204
|
* by Rob Garrison
|
2195
2205
|
*/
|
@@ -2353,12 +2363,14 @@
|
|
2353
2363
|
var offset = $table.offset(),
|
2354
2364
|
yWindow = $.isWindow( $yScroll[0] ), // $.isWindow needs jQuery 1.4.3
|
2355
2365
|
xWindow = $.isWindow( $xScroll[0] ),
|
2356
|
-
|
2357
|
-
|
2358
|
-
|
2366
|
+
attachTop = $attach.length ?
|
2367
|
+
( yWindow ? $yScroll.scrollTop() : $yScroll.offset().top ) :
|
2368
|
+
$yScroll.scrollTop(),
|
2369
|
+
captionHeight = wo.stickyHeaders_includeCaption ? 0 : $table.children( 'caption' ).height() || 0,
|
2370
|
+
scrollTop = attachTop + stickyOffset + nestedStickyTop - captionHeight,
|
2371
|
+
tableHeight = $table.height() - ($stickyWrap.height() + ($tfoot.height() || 0)) - captionHeight,
|
2359
2372
|
isVisible = ( scrollTop > offset.top ) && ( scrollTop < offset.top + tableHeight ) ? 'visible' : 'hidden',
|
2360
2373
|
cssSettings = { visibility : isVisible };
|
2361
|
-
|
2362
2374
|
if ($attach.length) {
|
2363
2375
|
cssSettings.top = yWindow ? scrollTop - $attach.offset().top : $attach.scrollTop();
|
2364
2376
|
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! Parser: input & select - updated
|
1
|
+
/*! Parser: input & select - updated 4/29/2016 (v2.25.9) *//*
|
2
2
|
* for jQuery 1.7+ & tablesorter 2.7.11+
|
3
3
|
* Demo: http://mottie.github.com/tablesorter/docs/example-widget-grouping.html
|
4
4
|
*/
|
@@ -52,7 +52,7 @@
|
|
52
52
|
is : function() {
|
53
53
|
return false;
|
54
54
|
},
|
55
|
-
format : function( txt, table, cell
|
55
|
+
format : function( txt, table, cell ) {
|
56
56
|
var $cell = $( cell ),
|
57
57
|
wo = table.config.widgetOptions,
|
58
58
|
// returning plain language here because this is what is shown in the
|
@@ -128,7 +128,8 @@
|
|
128
128
|
}
|
129
129
|
},
|
130
130
|
updateHeaderCheckbox = function( $table, checkboxClass ) {
|
131
|
-
var
|
131
|
+
var ua = window.navigator.userAgent,
|
132
|
+
$rows = $table.children( 'tbody' ).children( ':visible' ), // (include child rows?)
|
132
133
|
len = $rows.length;
|
133
134
|
// set indeterminate state on header checkbox
|
134
135
|
$table.children( 'thead' ).find( 'input[type="checkbox"]' ).each( function() {
|
@@ -139,6 +140,8 @@
|
|
139
140
|
this.checked = allChecked;
|
140
141
|
this.indeterminate = false;
|
141
142
|
} else {
|
143
|
+
// needed for IE
|
144
|
+
this.checked = !(ua.indexOf('Trident/') > -1 || ua.indexOf('Edge/') > -1);
|
142
145
|
this.indeterminate = true;
|
143
146
|
}
|
144
147
|
});
|
@@ -221,7 +224,7 @@
|
|
221
224
|
$( this )
|
222
225
|
.off( namespace )
|
223
226
|
.on( 'tablesorter-ready' + namespace, function() {
|
224
|
-
var checkboxClass,
|
227
|
+
var checkboxClass,
|
225
228
|
$table = $( this ),
|
226
229
|
c = $table.length && $table[ 0 ].config;
|
227
230
|
if ( !$.isEmptyObject( c ) ) {
|
@@ -235,8 +238,10 @@
|
|
235
238
|
.children( 'thead' )
|
236
239
|
.off( namespace )
|
237
240
|
// modified from http://jsfiddle.net/abkNM/6163/
|
238
|
-
|
239
|
-
|
241
|
+
// click needed for IE; a change isn't fired when going from an indeterminate checkbox to
|
242
|
+
// either checked or unchecked
|
243
|
+
.on( 'click' + namespace + ' change' + namespace, 'input[type="checkbox"]', function( event ) {
|
244
|
+
var undef, onlyVisible, column, $target, isParsed, checkboxClass,
|
240
245
|
$checkbox = $( this ),
|
241
246
|
$table = $checkbox.closest( 'table' ),
|
242
247
|
c = $table.length && $table[ 0 ].config,
|
@@ -252,22 +257,21 @@
|
|
252
257
|
.children( ':nth-child(' + ( column + 1 ) + ')' )
|
253
258
|
.find( 'input[type="checkbox"]' )
|
254
259
|
.prop( 'checked', isChecked );
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
$
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
updateHeaderCheckbox( $table, checkboxClass );
|
263
|
-
updateServer( event, $table, $target );
|
264
|
-
$table[ 0 ].tablesorterBusy = false;
|
265
|
-
} else {
|
260
|
+
// add checkbox class names to row
|
261
|
+
checkboxClass = c.checkboxClass || 'checked';
|
262
|
+
$target.each( function() {
|
263
|
+
toggleRowClass( $( this ).closest( 'tr' ), checkboxClass, column, isChecked );
|
264
|
+
});
|
265
|
+
updateHeaderCheckbox( $table, checkboxClass );
|
266
|
+
if ( isParsed ) {
|
266
267
|
// only update cache if checkboxes are being sorted
|
267
268
|
$.tablesorter.update( c, undef, function() {
|
268
269
|
updateServer( event, $table, $target );
|
269
270
|
$table[ 0 ].tablesorterBusy = false;
|
270
271
|
});
|
272
|
+
} else {
|
273
|
+
updateServer( event, $table, $target );
|
274
|
+
$table[ 0 ].tablesorterBusy = false;
|
271
275
|
}
|
272
276
|
// needed for IE8
|
273
277
|
return true;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/* Widget: columnSelector (responsive table widget) - updated
|
1
|
+
/* Widget: columnSelector (responsive table widget) - updated 4/29/2016 (v2.25.9) *//*
|
2
2
|
* Requires tablesorter v2.8+ and jQuery 1.7+
|
3
3
|
* by Justin Hallett & Rob Garrison
|
4
4
|
*/
|
@@ -67,19 +67,20 @@
|
|
67
67
|
},
|
68
68
|
|
69
69
|
refreshColumns: function( c, optName, optState ) {
|
70
|
-
var i, arry,
|
70
|
+
var i, arry, $el, val,
|
71
|
+
colSel = c.selector,
|
71
72
|
isArry = $.isArray(optState || optName),
|
72
73
|
wo = c.widgetOptions;
|
73
74
|
// see #798
|
74
|
-
if (typeof optName !== 'undefined' &&
|
75
|
+
if (typeof optName !== 'undefined' && colSel.$container.length) {
|
75
76
|
// pass "selectors" to update the all of the container contents
|
76
77
|
if ( optName === 'selectors' ) {
|
77
|
-
|
78
|
+
colSel.$container.empty();
|
78
79
|
tsColSel.setupSelector(c, wo);
|
79
80
|
tsColSel.setupBreakpoints(c, wo);
|
80
81
|
// if optState is undefined, maintain the current "auto" state
|
81
82
|
if ( typeof optState === 'undefined' ) {
|
82
|
-
optState =
|
83
|
+
optState = colSel.auto;
|
83
84
|
}
|
84
85
|
}
|
85
86
|
// pass an array of column zero-based indexes to turn off auto mode & toggle selected columns
|
@@ -90,20 +91,24 @@
|
|
90
91
|
arry[i] = parseInt(v, 10);
|
91
92
|
});
|
92
93
|
for (i = 0; i < c.columns; i++) {
|
93
|
-
|
94
|
-
|
95
|
-
|
94
|
+
val = $.inArray( i, arry ) >= 0;
|
95
|
+
$el = colSel.$container.find( 'input[data-column=' + i + ']' );
|
96
|
+
if ( $el.length ) {
|
97
|
+
$el.prop( 'checked', val );
|
98
|
+
colSel.states[i] = val;
|
99
|
+
}
|
96
100
|
}
|
97
101
|
}
|
98
102
|
// if passing an array, set auto to false to allow manual column selection & update columns
|
99
103
|
// refreshColumns( c, 'auto', true ) === refreshColumns( c, true );
|
100
|
-
|
101
|
-
|
102
|
-
|
104
|
+
val = optState === true || optName === true || optName === 'auto' && optState !== false;
|
105
|
+
$el = colSel.$container.find( 'input[data-column="auto"]' ).prop( 'checked', val );
|
106
|
+
tsColSel.updateAuto( c, wo, $el );
|
103
107
|
} else {
|
104
108
|
tsColSel.updateBreakpoints(c, wo);
|
105
109
|
tsColSel.updateCols(c, wo);
|
106
110
|
}
|
111
|
+
tsColSel.saveValues( c, wo );
|
107
112
|
tsColSel.adjustColspans( c, wo );
|
108
113
|
},
|
109
114
|
|
@@ -224,9 +229,7 @@
|
|
224
229
|
$(this).prop( 'checked', indx === 'auto' ? colSel.auto : colSel.states[indx] );
|
225
230
|
});
|
226
231
|
}
|
227
|
-
|
228
|
-
ts.storage( c.$table[0], 'tablesorter-columnSelector-auto', { auto : colSel.auto } );
|
229
|
-
}
|
232
|
+
tsColSel.saveValues( c, wo );
|
230
233
|
tsColSel.adjustColspans( c, wo );
|
231
234
|
// trigger columnUpdate if auto is true (it gets skipped in updateCols()
|
232
235
|
if (colSel.auto) {
|
@@ -270,7 +273,7 @@
|
|
270
273
|
}
|
271
274
|
}
|
272
275
|
// only 6 breakpoints (same as jQuery Mobile)
|
273
|
-
for (priority = 0; priority <
|
276
|
+
for (priority = 0; priority < wo.columnSelector_maxPriorities; priority++){
|
274
277
|
/*jshint loopfunc:true */
|
275
278
|
breaks = [];
|
276
279
|
c.$headers.filter('[' + wo.columnSelector_priority + '=' + (priority + 1) + ']').each(function(){
|
@@ -317,9 +320,7 @@
|
|
317
320
|
if (colSel.$style) {
|
318
321
|
colSel.$style.prop('disabled', false).text( styles.length ? styles.join(',') + ' { display: none; }' : '' );
|
319
322
|
}
|
320
|
-
|
321
|
-
ts.storage( c.$table[0], 'tablesorter-columnSelector', colSel.states );
|
322
|
-
}
|
323
|
+
tsColSel.saveValues( c, wo );
|
323
324
|
tsColSel.adjustColspans( c, wo );
|
324
325
|
c.$table.triggerHandler(wo.columnSelector_updated);
|
325
326
|
},
|
@@ -380,14 +381,22 @@
|
|
380
381
|
}
|
381
382
|
}
|
382
383
|
if ( span ) {
|
383
|
-
$cell.removeClass( wo.filter_filteredRow )[0].colSpan = span;
|
384
|
+
$cell.removeClass( wo.filter_filteredRow || 'filtered' )[0].colSpan = span;
|
384
385
|
} else {
|
385
|
-
$cell.addClass( wo.filter_filteredRow );
|
386
|
+
$cell.addClass( wo.filter_filteredRow || 'filtered' );
|
386
387
|
}
|
387
388
|
}
|
388
389
|
}
|
389
390
|
},
|
390
391
|
|
392
|
+
saveValues : function( c, wo ) {
|
393
|
+
if ( wo.columnSelector_saveColumns && ts.storage ) {
|
394
|
+
var colSel = c.selector;
|
395
|
+
ts.storage( c.$table[0], 'tablesorter-columnSelector-auto', { auto : colSel.auto } );
|
396
|
+
ts.storage( c.$table[0], 'tablesorter-columnSelector', colSel.states );
|
397
|
+
}
|
398
|
+
},
|
399
|
+
|
391
400
|
attachTo : function(table, elm) {
|
392
401
|
table = $(table)[0];
|
393
402
|
var colSel, wo, indx,
|
@@ -462,6 +471,9 @@
|
|
462
471
|
// see http://view.jquerymobile.com/1.3.2/dist/demos/widgets/table-column-toggle/#Applyingapresetbreakpoint
|
463
472
|
// *** set to false to disable ***
|
464
473
|
columnSelector_breakpoints : [ '20em', '30em', '40em', '50em', '60em', '70em' ],
|
474
|
+
// maximum number of priority settings; if this value is changed (especially increased),
|
475
|
+
// then make sure to modify the columnSelector_breakpoints - see #1204
|
476
|
+
columnSelector_maxPriorities : 6,
|
465
477
|
// data attribute containing column priority
|
466
478
|
// duplicates how jQuery mobile uses priorities:
|
467
479
|
// http://view.jquerymobile.com/1.3.2/dist/demos/widgets/table-column-toggle/
|
@@ -483,7 +495,7 @@
|
|
483
495
|
if (csel.$popup) { csel.$popup.empty(); }
|
484
496
|
csel.$style.remove();
|
485
497
|
csel.$breakpoints.remove();
|
486
|
-
$( c.namespace + 'columnselectorHasSpan' ).removeClass( wo.filter_filteredRow );
|
498
|
+
$( c.namespace + 'columnselectorHasSpan' ).removeClass( wo.filter_filteredRow || 'filtered' );
|
487
499
|
c.$table.off('updateAll' + namespace + ' update' + namespace);
|
488
500
|
}
|
489
501
|
|
@@ -519,10 +519,10 @@
|
|
519
519
|
$date.datepicker('setDate', (getdate === '' ? '' : getdate) || null);
|
520
520
|
if (getdate === '') { notrigger = false; }
|
521
521
|
date = $date.datepicker('getDate');
|
522
|
-
query = date ? ( o.endOfDay && /<=/.test(compare) ? date.setHours(23, 59, 59) : date.getTime() ) || '' : '';
|
522
|
+
query = date ? ( o.endOfDay && /<=/.test(compare) ? date.setHours(23, 59, 59, 999) : date.getTime() ) || '' : '';
|
523
523
|
if (date && o.endOfDay && compare === '=') {
|
524
524
|
compare = '';
|
525
|
-
query += ' - ' + date.setHours(23, 59, 59);
|
525
|
+
query += ' - ' + date.setHours(23, 59, 59, 999);
|
526
526
|
notrigger = false;
|
527
527
|
}
|
528
528
|
$cell.find('.dateCompare')
|
@@ -670,7 +670,7 @@
|
|
670
670
|
from = $cell.find('.dateFrom').datepicker('getDate'),
|
671
671
|
to = $cell.find('.dateTo').datepicker('getDate');
|
672
672
|
from = validDate(from) ? from.getTime() : '';
|
673
|
-
to = validDate(to) ? ( o.endOfDay ? to.setHours(23, 59, 59) : to.getTime() ) || '' : '';
|
673
|
+
to = validDate(to) ? ( o.endOfDay ? to.setHours(23, 59, 59, 999) : to.getTime() ) || '' : '';
|
674
674
|
range = from ? ( to ? from + ' - ' + to : '>=' + from ) : (to ? '<=' + to : '');
|
675
675
|
$cell.add( $shcell )
|
676
676
|
.find('.dateRange').val(range)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! Widget: filter - updated 4/
|
1
|
+
/*! Widget: filter - updated 4/29/2016 (v2.25.9) *//*
|
2
2
|
* Requires tablesorter v2.8+ and jQuery 1.7+
|
3
3
|
* by Rob Garrison
|
4
4
|
*/
|
@@ -77,6 +77,7 @@
|
|
77
77
|
.unbind( events.replace( ts.regex.spaces, ' ' ) )
|
78
78
|
// remove the filter row even if refreshing, because the column might have been moved
|
79
79
|
.find( '.' + tscss.filterRow ).remove();
|
80
|
+
wo.filter_initialized = false;
|
80
81
|
if ( refreshing ) { return; }
|
81
82
|
for ( tbodyIndex = 0; tbodyIndex < $tbodies.length; tbodyIndex++ ) {
|
82
83
|
$tbody = ts.processTbody( table, $tbodies.eq( tbodyIndex ), true ); // remove tbody
|
@@ -349,7 +350,7 @@
|
|
349
350
|
return null;
|
350
351
|
}
|
351
352
|
},
|
352
|
-
init: function( table
|
353
|
+
init: function( table ) {
|
353
354
|
// filter language options
|
354
355
|
ts.language = $.extend( true, {}, {
|
355
356
|
to : 'to',
|
@@ -357,7 +358,9 @@
|
|
357
358
|
and : 'and'
|
358
359
|
}, ts.language );
|
359
360
|
|
360
|
-
var options, string, txt, $header, column,
|
361
|
+
var options, string, txt, $header, column, val, fxn, noSelect,
|
362
|
+
c = table.config,
|
363
|
+
wo = c.widgetOptions;
|
361
364
|
c.$table.addClass( 'hasFilters' );
|
362
365
|
c.lastSearch = [];
|
363
366
|
|
@@ -545,22 +548,7 @@
|
|
545
548
|
c.$table
|
546
549
|
.unbind( txt.replace( ts.regex.spaces, ' ' ) )
|
547
550
|
.bind( txt, function() {
|
548
|
-
|
549
|
-
var wo = this.config.widgetOptions;
|
550
|
-
filters = tsf.setDefaults( table, c, wo ) || [];
|
551
|
-
if ( filters.length ) {
|
552
|
-
// prevent delayInit from triggering a cache build if filters are empty
|
553
|
-
if ( !( c.delayInit && filters.join( '' ) === '' ) ) {
|
554
|
-
ts.setFilters( table, filters, true );
|
555
|
-
}
|
556
|
-
}
|
557
|
-
c.$table.triggerHandler( 'filterFomatterUpdate' );
|
558
|
-
// trigger init after setTimeout to prevent multiple filterStart/End/Init triggers
|
559
|
-
setTimeout( function() {
|
560
|
-
if ( !wo.filter_initialized ) {
|
561
|
-
tsf.filterInitComplete( c );
|
562
|
-
}
|
563
|
-
}, 100 );
|
551
|
+
tsf.completeInit( this );
|
564
552
|
});
|
565
553
|
// if filter widget is added after pager has initialized; then set filter init flag
|
566
554
|
if ( c.pager && c.pager.initialized && !wo.filter_initialized ) {
|
@@ -568,8 +556,30 @@
|
|
568
556
|
setTimeout( function() {
|
569
557
|
tsf.filterInitComplete( c );
|
570
558
|
}, 100 );
|
559
|
+
} else if ( !wo.filter_initialized ) {
|
560
|
+
tsf.completeInit( table );
|
571
561
|
}
|
572
562
|
},
|
563
|
+
completeInit: function( table ) {
|
564
|
+
// redefine 'c' & 'wo' so they update properly inside this callback
|
565
|
+
var c = table.config,
|
566
|
+
wo = c.widgetOptions,
|
567
|
+
filters = tsf.setDefaults( table, c, wo ) || [];
|
568
|
+
if ( filters.length ) {
|
569
|
+
// prevent delayInit from triggering a cache build if filters are empty
|
570
|
+
if ( !( c.delayInit && filters.join( '' ) === '' ) ) {
|
571
|
+
ts.setFilters( table, filters, true );
|
572
|
+
}
|
573
|
+
}
|
574
|
+
c.$table.triggerHandler( 'filterFomatterUpdate' );
|
575
|
+
// trigger init after setTimeout to prevent multiple filterStart/End/Init triggers
|
576
|
+
setTimeout( function() {
|
577
|
+
if ( !wo.filter_initialized ) {
|
578
|
+
tsf.filterInitComplete( c );
|
579
|
+
}
|
580
|
+
}, 100 );
|
581
|
+
},
|
582
|
+
|
573
583
|
// $cell parameter, but not the config, is passed to the filter_formatters,
|
574
584
|
// so we have to work with it instead
|
575
585
|
formatterUpdated: function( $cell, column ) {
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! Widget: Pager - updated
|
1
|
+
/*! Widget: Pager - updated 5/1/2016 (v2.26.0) */
|
2
2
|
/* Requires tablesorter v2.8+ and jQuery 1.7+
|
3
3
|
* by Rob Garrison
|
4
4
|
*/
|
@@ -182,8 +182,9 @@
|
|
182
182
|
if ( wo.pager_savePages && ts.storage ) {
|
183
183
|
t = ts.storage( table, wo.pager_storageKey ) || {}; // fixes #387
|
184
184
|
p.page = ( isNaN( t.page ) ? p.page : t.page ) || p.setPage || 0;
|
185
|
-
p.size = ( isNaN( t.size ) ? p.size : t.size ) || p.setSize || 10;
|
185
|
+
p.size = t.size === 'all' ? t.size : ( isNaN( t.size ) ? p.size : t.size ) || p.setSize || 10;
|
186
186
|
$.data( table, 'pagerLastSize', p.size );
|
187
|
+
p.$size.val( p.size );
|
187
188
|
}
|
188
189
|
|
189
190
|
// skipped rows
|
@@ -291,7 +292,7 @@
|
|
291
292
|
var $rows = c.$tbodies.eq( 0 ).children( 'tr' ).not( c.selectorRemove );
|
292
293
|
p.totalRows = $rows.length -
|
293
294
|
( wo.pager_countChildRows ? 0 : $rows.filter( '.' + c.cssChildRow ).length );
|
294
|
-
p.totalPages = Math.ceil( p.totalRows / p.size );
|
295
|
+
p.totalPages = p.size === 'all' ? 1 : Math.ceil( p.totalRows / p.size );
|
295
296
|
if ( $rows.length && c.rowsCopy && c.rowsCopy.length === 0 ) {
|
296
297
|
// make a copy of all table rows once the cache has been built
|
297
298
|
tsp.updateCache( c );
|
@@ -443,6 +444,7 @@
|
|
443
444
|
p = c.pager,
|
444
445
|
namespace = c.namespace + 'pager',
|
445
446
|
sz = tsp.parsePageSize( c, p.size, 'get' ); // don't allow dividing by zero
|
447
|
+
if ( sz === 'all' ) { sz = p.totalRows; }
|
446
448
|
if ( wo.pager_countChildRows ) { t[ t.length ] = c.cssChildRow; }
|
447
449
|
p.$size
|
448
450
|
.add( p.$goto )
|
@@ -456,10 +458,10 @@
|
|
456
458
|
c.filteredRows = p.filteredRows;
|
457
459
|
p.filteredPages = Math.ceil( p.filteredRows / sz ) || 0;
|
458
460
|
if ( tsp.getTotalPages( c, p ) >= 0 ) {
|
459
|
-
t = (
|
461
|
+
t = ( sz * p.page > p.filteredRows ) && completed;
|
460
462
|
p.page = t ? wo.pager_pageReset || 0 : p.page;
|
461
|
-
p.startRow = t ?
|
462
|
-
p.endRow = Math.min( p.filteredRows, p.totalRows,
|
463
|
+
p.startRow = t ? sz * p.page + 1 : ( p.filteredRows === 0 ? 0 : sz * p.page + 1 );
|
464
|
+
p.endRow = Math.min( p.filteredRows, p.totalRows, sz * ( p.page + 1 ) );
|
463
465
|
$out = p.$container.find( wo.pager_selectors.pageDisplay );
|
464
466
|
// form the output string (can now get a new output string from the server)
|
465
467
|
s = ( p.ajaxData && p.ajaxData.output ? p.ajaxData.output || wo.pager_output : wo.pager_output )
|
@@ -503,7 +505,7 @@
|
|
503
505
|
.off( 'change' + namespace )
|
504
506
|
.on( 'change' + namespace, function() {
|
505
507
|
var v = $( this ).val(),
|
506
|
-
pg = $( this ).hasClass( 'ts-startRow' ) ? Math.floor( v /
|
508
|
+
pg = $( this ).hasClass( 'ts-startRow' ) ? Math.floor( v / sz ) + 1 : v;
|
507
509
|
c.$table.triggerHandler( 'pageSet' + namespace, [ pg ] );
|
508
510
|
});
|
509
511
|
}
|
@@ -519,7 +521,7 @@
|
|
519
521
|
if ( wo.pager_savePages && ts.storage ) {
|
520
522
|
ts.storage( table, wo.pager_storageKey, {
|
521
523
|
page : p.page,
|
522
|
-
size : p.
|
524
|
+
size : sz === p.totalRows ? 'all' : sz
|
523
525
|
});
|
524
526
|
}
|
525
527
|
}
|
@@ -600,7 +602,8 @@
|
|
600
602
|
h = $.data( table, 'pagerSavedHeight' );
|
601
603
|
if ( h ) {
|
602
604
|
d = h - $b.height();
|
603
|
-
if ( d > 5 && $.data( table, 'pagerLastSize' ) === p.size &&
|
605
|
+
if ( d > 5 && $.data( table, 'pagerLastSize' ) === p.size &&
|
606
|
+
$b.children( 'tr:visible' ).length < ( p.size === 'all' ? p.totalRows : p.size ) ) {
|
604
607
|
$b.append( '<tr class="pagerSavedHeightSpacer ' + c.selectorRemove.slice( 1 ) +
|
605
608
|
'" style="height:' + d + 'px;"></tr>' );
|
606
609
|
}
|
@@ -611,15 +614,17 @@
|
|
611
614
|
changeHeight: function( c ) {
|
612
615
|
var h,
|
613
616
|
table = c.table,
|
617
|
+
p = c.pager,
|
618
|
+
sz = p.size === 'all' ? p.totalRows : p.size,
|
614
619
|
$b = c.$tbodies.eq( 0 );
|
615
620
|
$b.find( 'tr.pagerSavedHeightSpacer' ).remove();
|
616
621
|
if ( !$b.children( 'tr:visible' ).length ) {
|
617
622
|
$b.append( '<tr class="pagerSavedHeightSpacer ' + c.selectorRemove.slice( 1 ) + '"><td> </td></tr>' );
|
618
623
|
}
|
619
|
-
h = $b.children( 'tr' ).eq( 0 ).height() *
|
624
|
+
h = $b.children( 'tr' ).eq( 0 ).height() * sz;
|
620
625
|
$.data( table, 'pagerSavedHeight', h );
|
621
626
|
tsp.fixHeight( c );
|
622
|
-
$.data( table, 'pagerLastSize',
|
627
|
+
$.data( table, 'pagerLastSize', p.size );
|
623
628
|
},
|
624
629
|
|
625
630
|
hideRows: function( c ) {
|
@@ -629,8 +634,9 @@
|
|
629
634
|
p = c.pager,
|
630
635
|
wo = c.widgetOptions,
|
631
636
|
tbodyLen = c.$tbodies.length,
|
632
|
-
|
633
|
-
|
637
|
+
sz = p.size === 'all' ? p.totalRows : p.size,
|
638
|
+
start = ( p.page * sz ),
|
639
|
+
end = start + sz,
|
634
640
|
filtr = wo && wo.filter_filteredRow || 'filtered',
|
635
641
|
last = 0, // for cache indexing
|
636
642
|
size = 0; // size counter
|
@@ -677,7 +683,7 @@
|
|
677
683
|
namespace = c.namespace + 'pager',
|
678
684
|
size = p.$size.val();
|
679
685
|
p.size = tsp.parsePageSize( c, size, 'get' );
|
680
|
-
p.$size.val(
|
686
|
+
p.$size.val( p.size );
|
681
687
|
$.data( c.table, 'pagerLastSize', p.size );
|
682
688
|
tsp.pagerArrows( c );
|
683
689
|
if ( !c.widgetOptions.pager_removeRows ) {
|
@@ -701,7 +707,7 @@
|
|
701
707
|
c.$tbodies.eq( 0 ).empty();
|
702
708
|
|
703
709
|
// ajaxProcessing result: [ total, rows, headers ]
|
704
|
-
var i, j, t, hsh, $f, $sh, $headers, $h, icon, th, d, l, rr_count, len,
|
710
|
+
var i, j, t, hsh, $f, $sh, $headers, $h, icon, th, d, l, rr_count, len, sz,
|
705
711
|
$table = c.$table,
|
706
712
|
tds = '',
|
707
713
|
result = wo.pager_ajaxProcessing( data, table, xhr ) || [ 0, [] ],
|
@@ -793,9 +799,10 @@
|
|
793
799
|
if ( c.showProcessing ) {
|
794
800
|
ts.isProcessing( table ); // remove loading icon
|
795
801
|
}
|
802
|
+
sz = tsp.parsePageSize( c, p.size, 'get' );
|
796
803
|
// make sure last pager settings are saved, prevents multiple server side calls with
|
797
804
|
// the same parameters
|
798
|
-
p.totalPages = Math.ceil( p.totalRows /
|
805
|
+
p.totalPages = sz === 'all' ? 1 : Math.ceil( p.totalRows / sz );
|
799
806
|
p.last.totalRows = p.totalRows;
|
800
807
|
p.last.currentFilters = p.currentFilters;
|
801
808
|
p.last.sortList = ( c.sortList || [] ).join( ',' );
|
@@ -865,6 +872,7 @@
|
|
865
872
|
url = wo.pager_ajaxUrl ? wo.pager_ajaxUrl
|
866
873
|
// allow using '{page+1}' in the url string to switch to a non-zero based index
|
867
874
|
.replace( /\{page([\-+]\d+)?\}/, function( s, n ) { return p.page + ( n ? parseInt( n, 10 ) : 0 ); })
|
875
|
+
// this will pass "all" to server when size is set to "all"
|
868
876
|
.replace( /\{size\}/g, p.size ) : '',
|
869
877
|
sortList = c.sortList,
|
870
878
|
filterList = p.currentFilters || c.$table.data( 'lastSearch' ) || [],
|
@@ -909,8 +917,8 @@
|
|
909
917
|
wo = c.widgetOptions,
|
910
918
|
f = c.$table.hasClass('hasFilters'),
|
911
919
|
l = rows && rows.length || 0, // rows may be undefined
|
912
|
-
|
913
|
-
|
920
|
+
e = p.size === 'all' ? p.totalRows : p.size,
|
921
|
+
s = ( p.page * e );
|
914
922
|
if ( l < 1 ) {
|
915
923
|
if ( c.debug ) {
|
916
924
|
console.warn( 'Pager: >> No rows for pager to render' );
|
@@ -977,7 +985,7 @@
|
|
977
985
|
$.data( table, 'pagerLastPage', p.page );
|
978
986
|
$.data( table, 'pagerLastSize', p.size );
|
979
987
|
p.page = 0;
|
980
|
-
p.size =
|
988
|
+
p.size = 'all';
|
981
989
|
p.totalPages = 1;
|
982
990
|
c.$table
|
983
991
|
.addClass( 'pagerDisabled' )
|
@@ -1106,13 +1114,10 @@
|
|
1106
1114
|
// set to either set or get value
|
1107
1115
|
parsePageSize: function( c, size, mode ) {
|
1108
1116
|
var p = c.pager,
|
1109
|
-
s = parseInt( size, 10 ) || p.size || c.widgetOptions.pager_size || 10
|
1110
|
-
// if select does not contain an "all" option, use size
|
1111
|
-
setAll = p.$size.find( 'option[value="all"]' ).length ? 'all' : p.totalRows;
|
1117
|
+
s = parseInt( size, 10 ) || p.size || c.widgetOptions.pager_size || 10;
|
1112
1118
|
return /all/i.test( size ) || s === p.totalRows ?
|
1113
1119
|
// "get" to set `p.size` or "set" to set `p.$size.val()`
|
1114
|
-
( mode === 'get' ?
|
1115
|
-
( mode === 'get' ? s : p.size );
|
1120
|
+
'all' : ( mode === 'get' ? s : p.size );
|
1116
1121
|
},
|
1117
1122
|
|
1118
1123
|
parsePageNumber: function( c, p ) {
|
@@ -1130,8 +1135,8 @@
|
|
1130
1135
|
p.$size.val( tsp.parsePageSize( c, p.size, 'set' ) );
|
1131
1136
|
$.data( table, 'pagerLastPage', tsp.parsePageNumber( c, p ) );
|
1132
1137
|
$.data( table, 'pagerLastSize', p.size );
|
1133
|
-
p.totalPages = Math.ceil( p.totalRows / p.size );
|
1134
|
-
p.filteredPages = Math.ceil( p.filteredRows / p.size );
|
1138
|
+
p.totalPages = p.size === 'all' ? 1 : Math.ceil( p.totalRows / p.size );
|
1139
|
+
p.filteredPages = p.size === 'all' ? 1 : Math.ceil( p.filteredRows / p.size );
|
1135
1140
|
tsp.moveToPage( c, p, true );
|
1136
1141
|
},
|
1137
1142
|
|
@@ -1201,8 +1206,8 @@
|
|
1201
1206
|
p.page = $.data( table, 'pagerLastPage' ) || p.page || 0;
|
1202
1207
|
size = p.$size.find( 'option[selected]' ).val();
|
1203
1208
|
p.size = $.data( table, 'pagerLastSize' ) || tsp.parsePageSize( c, size, 'get' );
|
1204
|
-
p.$size.val(
|
1205
|
-
p.totalPages = Math.ceil( tsp.getTotalPages( c, p ) / p.size );
|
1209
|
+
p.$size.val( p.size ); // set page size
|
1210
|
+
p.totalPages = p.size === 'all' ? 1 : Math.ceil( tsp.getTotalPages( c, p ) / p.size );
|
1206
1211
|
c.$table.removeClass( 'pagerDisabled' );
|
1207
1212
|
// if table id exists, include page display with aria info
|
1208
1213
|
if ( table.id ) {
|
@@ -1230,7 +1235,7 @@
|
|
1230
1235
|
c.rowsCopy = rows;
|
1231
1236
|
p.totalRows = wo.pager_countChildRows ? c.$tbodies.eq( 0 ).children( 'tr' ).length : rows.length;
|
1232
1237
|
p.size = $.data( table, 'pagerLastSize' ) || p.size || wo.pager_size || p.setSize || 10;
|
1233
|
-
p.totalPages = Math.ceil( p.totalRows / p.size );
|
1238
|
+
p.totalPages = p.size === 'all' ? 1 : Math.ceil( p.totalRows / p.size );
|
1234
1239
|
tsp.moveToPage( c, p );
|
1235
1240
|
// update display here in case all rows are removed
|
1236
1241
|
tsp.updatePageDisplay( c, false );
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! Widget: scroller - updated 4/
|
1
|
+
/*! Widget: scroller - updated 4/29/2016 (v2.25.9) *//*
|
2
2
|
Copyright (C) 2011 T. Connell & Associates, Inc.
|
3
3
|
|
4
4
|
Dual-licensed under the MIT and GPL licenses
|
@@ -828,6 +828,9 @@
|
|
828
828
|
|
829
829
|
$fixedColumn.removeClass( tscss.scrollerHideElement );
|
830
830
|
|
831
|
+
// adjust caption height, see #1202
|
832
|
+
$fixedColumn.find('caption').height( wo.scroller_$header.find( 'caption' ).height() );
|
833
|
+
|
831
834
|
wo.scroller_isBusy = false;
|
832
835
|
|
833
836
|
},
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! Widget: stickyHeaders - updated
|
1
|
+
/*! Widget: stickyHeaders - updated 5/1/2016 (v2.26.0) *//*
|
2
2
|
* Requires tablesorter v2.8+ and jQuery 1.4.3+
|
3
3
|
* by Rob Garrison
|
4
4
|
*/
|
@@ -162,12 +162,14 @@
|
|
162
162
|
var offset = $table.offset(),
|
163
163
|
yWindow = $.isWindow( $yScroll[0] ), // $.isWindow needs jQuery 1.4.3
|
164
164
|
xWindow = $.isWindow( $xScroll[0] ),
|
165
|
-
|
166
|
-
|
167
|
-
|
165
|
+
attachTop = $attach.length ?
|
166
|
+
( yWindow ? $yScroll.scrollTop() : $yScroll.offset().top ) :
|
167
|
+
$yScroll.scrollTop(),
|
168
|
+
captionHeight = wo.stickyHeaders_includeCaption ? 0 : $table.children( 'caption' ).height() || 0,
|
169
|
+
scrollTop = attachTop + stickyOffset + nestedStickyTop - captionHeight,
|
170
|
+
tableHeight = $table.height() - ($stickyWrap.height() + ($tfoot.height() || 0)) - captionHeight,
|
168
171
|
isVisible = ( scrollTop > offset.top ) && ( scrollTop < offset.top + tableHeight ) ? 'visible' : 'hidden',
|
169
172
|
cssSettings = { visibility : isVisible };
|
170
|
-
|
171
173
|
if ($attach.length) {
|
172
174
|
cssSettings.top = yWindow ? scrollTop - $attach.offset().top : $attach.scrollTop();
|
173
175
|
}
|
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.
|
4
|
+
version: 1.21.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jun Lin
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-05-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: railties
|