jquery-tablesorter 1.23.7 → 1.23.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/lib/jquery-tablesorter/version.rb +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.js +9 -5
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.combined.js +67 -35
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.js +3 -4
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.widgets.js +64 -31
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter.js +18 -4
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-pager.js +9 -4
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-resizable.js +7 -3
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-scroller.js +11 -9
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-storage.js +38 -23
- 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: 63a032c41e735674612068809224ec4c0f4c96da
|
4
|
+
data.tar.gz: 75d23fe18e33d749088e2a8e5b272eb1a4bc76ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 782f08009bdadcd9f2e4793e58c21059d21fd6a6dc5a1c43c5f3d925e5c658d002845ba09a4302a07e8e80b8998c21962c7a2818e007cfa7d6348ef66642ad08
|
7
|
+
data.tar.gz: 3530f579dbc761cb359587678766b3accd21137ff929c10172bb5394787c9feaba2d06223f1faf301b21eb11792e9e9eb660dbbf712019e4b1ad1fc5ce56c189
|
data/README.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Simple integration of jQuery tablesorter ([Mottie's fork]) into the asset pipeline.
|
6
6
|
|
7
|
-
Current tablesorter version: 2.28.
|
7
|
+
Current tablesorter version: 2.28.8 (4/18/2017), [documentation]
|
8
8
|
|
9
9
|
Any issue associated with the js/css files, please report to [Mottie's fork].
|
10
10
|
|
@@ -24,7 +24,7 @@ Or install it yourself as:
|
|
24
24
|
|
25
25
|
## Requirements
|
26
26
|
|
27
|
-
It should work with Rails 3.2 and higher (tested up to 5) as well as with ruby 1.9.3 - 2.
|
27
|
+
It should work with Rails 3.2 and higher (tested up to 5) as well as with ruby 1.9.3 - 2.4.x.
|
28
28
|
Each release is always tested with the latest version of both.
|
29
29
|
|
30
30
|
## Usage
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*!
|
2
2
|
* tablesorter (FORK) pager plugin
|
3
|
-
* updated 4/
|
3
|
+
* updated 4/18/2017 (v2.28.8)
|
4
4
|
*/
|
5
5
|
/*jshint browser:true, jquery:true, unused:false */
|
6
6
|
;(function($) {
|
@@ -968,11 +968,15 @@
|
|
968
968
|
.unbind( pagerEvents.split(' ').join(namespace + ' ').replace(/\s+/g, ' ') )
|
969
969
|
.bind('filterInit filterStart '.split(' ').join(namespace + ' '), function(e, filters) {
|
970
970
|
p.currentFilters = $.isArray(filters) ? filters : c.$table.data('lastSearch');
|
971
|
+
var filtersEqual;
|
972
|
+
if (ts.filter.equalFilters) {
|
973
|
+
filtersEqual = ts.filter.equalFilters(c, c.lastSearch, p.currentFilters);
|
974
|
+
} else {
|
975
|
+
// will miss filter changes of the same value in a different column, see #1363
|
976
|
+
filtersEqual = (c.lastSearch || []).join('') !== (p.currentFilters || []).join('');
|
977
|
+
}
|
971
978
|
// don't change page if filters are the same (pager updating, etc)
|
972
|
-
if (
|
973
|
-
e.type === 'filterStart' &&
|
974
|
-
p.pageReset !== false &&
|
975
|
-
(c.lastSearch || []).join(',') !== (p.currentFilters || []).join(',')) {
|
979
|
+
if (e.type === 'filterStart' && p.pageReset !== false && !filtersEqual) {
|
976
980
|
p.page = p.pageReset; // fixes #456 & #565
|
977
981
|
}
|
978
982
|
})
|
@@ -4,7 +4,7 @@
|
|
4
4
|
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██
|
5
5
|
█████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
|
6
6
|
*/
|
7
|
-
/*! tablesorter (FORK) - updated 04-
|
7
|
+
/*! tablesorter (FORK) - updated 04-18-2017 (v2.28.8)*/
|
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.
|
19
|
+
/*! TableSorter (FORK) v2.28.8 *//*
|
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.
|
43
|
+
version : '2.28.8',
|
44
44
|
|
45
45
|
parsers : [],
|
46
46
|
widgets : [],
|
@@ -1325,7 +1325,7 @@
|
|
1325
1325
|
cell = $cell[ 0 ]; // in case cell is a jQuery object
|
1326
1326
|
// tbody may not exist if update is initialized while tbody is removed for processing
|
1327
1327
|
if ( $tbodies.length && tbodyIndex >= 0 ) {
|
1328
|
-
row = $tbodies.eq( tbodyIndex ).find( 'tr' ).index( $row );
|
1328
|
+
row = $tbodies.eq( tbodyIndex ).find( 'tr' ).not( '.' + c.cssChildRow ).index( $row );
|
1329
1329
|
cache = tbcache.normalized[ row ];
|
1330
1330
|
len = $row[ 0 ].cells.length;
|
1331
1331
|
if ( len !== c.columns ) {
|
@@ -1346,7 +1346,6 @@
|
|
1346
1346
|
cache[ c.columns ].raw[ icell ] = tmp;
|
1347
1347
|
tmp = ts.getParsedText( c, cell, icell, tmp );
|
1348
1348
|
cache[ icell ] = tmp; // parsed
|
1349
|
-
cache[ c.columns ].$row = $row;
|
1350
1349
|
if ( ( c.parsers[ icell ].type || '' ).toLowerCase() === 'numeric' ) {
|
1351
1350
|
// update column max value (ignore sign)
|
1352
1351
|
tbcache.colMax[ icell ] = Math.max( Math.abs( tmp ) || 0, tbcache.colMax[ icell ] || 0 );
|
@@ -2827,12 +2826,26 @@
|
|
2827
2826
|
|
2828
2827
|
})( jQuery );
|
2829
2828
|
|
2830
|
-
/*! Widget: storage - updated
|
2829
|
+
/*! Widget: storage - updated 4/18/2017 (v2.28.8) */
|
2831
2830
|
/*global JSON:false */
|
2832
2831
|
;(function ($, window, document) {
|
2833
2832
|
'use strict';
|
2834
2833
|
|
2835
2834
|
var ts = $.tablesorter || {};
|
2835
|
+
|
2836
|
+
// update defaults for validator; these values must be falsy!
|
2837
|
+
$.extend(true, ts.defaults, {
|
2838
|
+
fixedUrl: '',
|
2839
|
+
widgetOptions: {
|
2840
|
+
storage_fixedUrl: '',
|
2841
|
+
storage_group: '',
|
2842
|
+
storage_page: '',
|
2843
|
+
storage_storageType: '',
|
2844
|
+
storage_tableId: '',
|
2845
|
+
storage_useSessionStorage: ''
|
2846
|
+
}
|
2847
|
+
});
|
2848
|
+
|
2836
2849
|
// *** Store data in local storage, with a cookie fallback ***
|
2837
2850
|
/* IE7 needs JSON library for JSON.stringify - (http://caniuse.com/#search=json)
|
2838
2851
|
if you need it, then include https://github.com/douglascrockford/JSON-js
|
@@ -2859,8 +2872,12 @@
|
|
2859
2872
|
values = {},
|
2860
2873
|
c = table.config,
|
2861
2874
|
wo = c && c.widgetOptions,
|
2862
|
-
storageType = (
|
2863
|
-
|
2875
|
+
storageType = (
|
2876
|
+
( options && options.storageType ) || ( wo && wo.storage_storageType )
|
2877
|
+
).toString().charAt(0).toLowerCase(),
|
2878
|
+
// deprecating "useSessionStorage"; any storageType setting overrides it
|
2879
|
+
session = storageType ? '' :
|
2880
|
+
( options && options.useSessionStorage ) || ( wo && wo.storage_useSessionStorage ),
|
2864
2881
|
$table = $(table),
|
2865
2882
|
// id from (1) options ID, (2) table 'data-table-group' attribute, (3) widgetOptions.storage_tableId,
|
2866
2883
|
// (4) table ID, then (5) table index
|
@@ -2872,29 +2889,26 @@
|
|
2872
2889
|
url = options && options.url ||
|
2873
2890
|
$table.attr(options && options.page || wo && wo.storage_page || 'data-table-page') ||
|
2874
2891
|
wo && wo.storage_fixedUrl || c && c.fixedUrl || window.location.pathname;
|
2875
|
-
|
2876
|
-
|
2877
|
-
|
2878
|
-
|
2879
|
-
|
2880
|
-
|
2881
|
-
|
2882
|
-
|
2883
|
-
|
2884
|
-
|
2885
|
-
|
2886
|
-
|
2887
|
-
|
2888
|
-
|
2889
|
-
window[storageType].setItem('_tmptest', 'temp');
|
2890
|
-
hasStorage = true;
|
2891
|
-
window[storageType].removeItem('_tmptest');
|
2892
|
-
} catch (error) {
|
2893
|
-
if (c && c.debug) {
|
2894
|
-
console.warn( storageType + ' is not supported in this browser' );
|
2892
|
+
|
2893
|
+
// skip if using cookies
|
2894
|
+
if (storageType !== 'c') {
|
2895
|
+
storageType = (storageType === 's' || session) ? 'sessionStorage' : 'localStorage';
|
2896
|
+
// https://gist.github.com/paulirish/5558557
|
2897
|
+
if (storageType in window) {
|
2898
|
+
try {
|
2899
|
+
window[storageType].setItem('_tmptest', 'temp');
|
2900
|
+
hasStorage = true;
|
2901
|
+
window[storageType].removeItem('_tmptest');
|
2902
|
+
} catch (error) {
|
2903
|
+
if (c && c.debug) {
|
2904
|
+
console.warn( storageType + ' is not supported in this browser' );
|
2905
|
+
}
|
2895
2906
|
}
|
2896
2907
|
}
|
2897
2908
|
}
|
2909
|
+
if (c.debug) {
|
2910
|
+
console.log('Storage widget using', hasStorage ? storageType : 'cookies');
|
2911
|
+
}
|
2898
2912
|
// *** get value ***
|
2899
2913
|
if ($.parseJSON) {
|
2900
2914
|
if (hasStorage) {
|
@@ -3204,7 +3218,7 @@
|
|
3204
3218
|
|
3205
3219
|
})(jQuery);
|
3206
3220
|
|
3207
|
-
/*! Widget: filter - updated 4/
|
3221
|
+
/*! Widget: filter - updated 4/18/2017 (v2.28.8) *//*
|
3208
3222
|
* Requires tablesorter v2.8+ and jQuery 1.7+
|
3209
3223
|
* by Rob Garrison
|
3210
3224
|
*/
|
@@ -4091,6 +4105,19 @@
|
|
4091
4105
|
tsf.checkFilters( table, filter, skipFirst );
|
4092
4106
|
}
|
4093
4107
|
},
|
4108
|
+
equalFilters: function (c, filter1, filter2) {
|
4109
|
+
var indx,
|
4110
|
+
f1 = [],
|
4111
|
+
f2 = [],
|
4112
|
+
len = c.columns + 1; // add one to include anyMatch filter
|
4113
|
+
filter1 = $.isArray(filter1) ? filter1 : [];
|
4114
|
+
filter2 = $.isArray(filter2) ? filter2 : [];
|
4115
|
+
for (indx = 0; indx < len; indx++) {
|
4116
|
+
f1[indx] = filter1[indx] || '';
|
4117
|
+
f2[indx] = filter2[indx] || '';
|
4118
|
+
}
|
4119
|
+
return f1.join(',') === f2.join(',');
|
4120
|
+
},
|
4094
4121
|
checkFilters: function( table, filter, skipFirst ) {
|
4095
4122
|
var c = table.config,
|
4096
4123
|
wo = c.widgetOptions,
|
@@ -4123,7 +4150,7 @@
|
|
4123
4150
|
}
|
4124
4151
|
// return if the last search is the same; but filter === false when updating the search
|
4125
4152
|
// see example-widget-filter.html filter toggle buttons
|
4126
|
-
if ( c.lastSearch
|
4153
|
+
if ( tsf.equalFilters(c, c.lastSearch, currentFilters) && filter !== false ) {
|
4127
4154
|
return;
|
4128
4155
|
} else if ( filter === false ) {
|
4129
4156
|
// force filter refresh
|
@@ -4472,7 +4499,7 @@
|
|
4472
4499
|
},
|
4473
4500
|
findRows: function( table, filters, currentFilters ) {
|
4474
4501
|
if (
|
4475
|
-
table.config.lastSearch
|
4502
|
+
tsf.equalFilters(table.config, table.config.lastSearch, currentFilters) ||
|
4476
4503
|
!table.config.widgetOptions.filter_initialized
|
4477
4504
|
) {
|
4478
4505
|
return;
|
@@ -5017,7 +5044,8 @@
|
|
5017
5044
|
if ( ( getRaw !== true && wo && !wo.filter_columnFilters ) ||
|
5018
5045
|
// setFilters called, but last search is exactly the same as the current
|
5019
5046
|
// fixes issue #733 & #903 where calling update causes the input values to reset
|
5020
|
-
( $.isArray(setFilters) &&
|
5047
|
+
( $.isArray(setFilters) && tsf.equalFilters(c, setFilters, c.lastSearch) )
|
5048
|
+
) {
|
5021
5049
|
return $( table ).data( 'lastSearch' ) || [];
|
5022
5050
|
}
|
5023
5051
|
if ( c ) {
|
@@ -5402,7 +5430,7 @@
|
|
5402
5430
|
|
5403
5431
|
})(jQuery, window);
|
5404
5432
|
|
5405
|
-
/*! Widget: resizable - updated
|
5433
|
+
/*! Widget: resizable - updated 4/18/2017 (v2.28.8) */
|
5406
5434
|
/*jshint browser:true, jquery:true, unused:false */
|
5407
5435
|
;(function ($, window) {
|
5408
5436
|
'use strict';
|
@@ -5567,6 +5595,10 @@
|
|
5567
5595
|
tableHeight += $this.filter('[style*="height"]').length ? $this.height() : $this.children('table').height();
|
5568
5596
|
});
|
5569
5597
|
}
|
5598
|
+
|
5599
|
+
if ( !wo.resizable_includeFooter && c.$table.children('tfoot').length ) {
|
5600
|
+
tableHeight -= c.$table.children('tfoot').height();
|
5601
|
+
}
|
5570
5602
|
// subtract out table left position from resizable handles. Fixes #864
|
5571
5603
|
startPosition = c.$table.position().left;
|
5572
5604
|
$handles.each( function() {
|
@@ -5737,10 +5769,10 @@
|
|
5737
5769
|
options: {
|
5738
5770
|
resizable : true, // save column widths to storage
|
5739
5771
|
resizable_addLastColumn : false,
|
5772
|
+
resizable_includeFooter: true,
|
5740
5773
|
resizable_widths : [],
|
5741
5774
|
resizable_throttle : false, // set to true (5ms) or any number 0-10 range
|
5742
|
-
resizable_targetLast : false
|
5743
|
-
resizable_fullWidth : null
|
5775
|
+
resizable_targetLast : false
|
5744
5776
|
},
|
5745
5777
|
init: function(table, thisWidget, c, wo) {
|
5746
5778
|
ts.resizable.init( c, wo );
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! TableSorter (FORK) v2.28.
|
1
|
+
/*! TableSorter (FORK) v2.28.8 *//*
|
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.
|
25
|
+
version : '2.28.8',
|
26
26
|
|
27
27
|
parsers : [],
|
28
28
|
widgets : [],
|
@@ -1307,7 +1307,7 @@
|
|
1307
1307
|
cell = $cell[ 0 ]; // in case cell is a jQuery object
|
1308
1308
|
// tbody may not exist if update is initialized while tbody is removed for processing
|
1309
1309
|
if ( $tbodies.length && tbodyIndex >= 0 ) {
|
1310
|
-
row = $tbodies.eq( tbodyIndex ).find( 'tr' ).index( $row );
|
1310
|
+
row = $tbodies.eq( tbodyIndex ).find( 'tr' ).not( '.' + c.cssChildRow ).index( $row );
|
1311
1311
|
cache = tbcache.normalized[ row ];
|
1312
1312
|
len = $row[ 0 ].cells.length;
|
1313
1313
|
if ( len !== c.columns ) {
|
@@ -1328,7 +1328,6 @@
|
|
1328
1328
|
cache[ c.columns ].raw[ icell ] = tmp;
|
1329
1329
|
tmp = ts.getParsedText( c, cell, icell, tmp );
|
1330
1330
|
cache[ icell ] = tmp; // parsed
|
1331
|
-
cache[ c.columns ].$row = $row;
|
1332
1331
|
if ( ( c.parsers[ icell ].type || '' ).toLowerCase() === 'numeric' ) {
|
1333
1332
|
// update column max value (ignore sign)
|
1334
1333
|
tbcache.colMax[ icell ] = Math.max( Math.abs( tmp ) || 0, tbcache.colMax[ icell ] || 0 );
|
@@ -4,7 +4,7 @@
|
|
4
4
|
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██
|
5
5
|
█████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
|
6
6
|
*/
|
7
|
-
/*! tablesorter (FORK) - updated 04-
|
7
|
+
/*! tablesorter (FORK) - updated 04-18-2017 (v2.28.8)*/
|
8
8
|
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
9
9
|
(function(factory) {
|
10
10
|
if (typeof define === 'function' && define.amd) {
|
@@ -16,12 +16,26 @@
|
|
16
16
|
}
|
17
17
|
}(function(jQuery) {
|
18
18
|
|
19
|
-
/*! Widget: storage - updated
|
19
|
+
/*! Widget: storage - updated 4/18/2017 (v2.28.8) */
|
20
20
|
/*global JSON:false */
|
21
21
|
;(function ($, window, document) {
|
22
22
|
'use strict';
|
23
23
|
|
24
24
|
var ts = $.tablesorter || {};
|
25
|
+
|
26
|
+
// update defaults for validator; these values must be falsy!
|
27
|
+
$.extend(true, ts.defaults, {
|
28
|
+
fixedUrl: '',
|
29
|
+
widgetOptions: {
|
30
|
+
storage_fixedUrl: '',
|
31
|
+
storage_group: '',
|
32
|
+
storage_page: '',
|
33
|
+
storage_storageType: '',
|
34
|
+
storage_tableId: '',
|
35
|
+
storage_useSessionStorage: ''
|
36
|
+
}
|
37
|
+
});
|
38
|
+
|
25
39
|
// *** Store data in local storage, with a cookie fallback ***
|
26
40
|
/* IE7 needs JSON library for JSON.stringify - (http://caniuse.com/#search=json)
|
27
41
|
if you need it, then include https://github.com/douglascrockford/JSON-js
|
@@ -48,8 +62,12 @@
|
|
48
62
|
values = {},
|
49
63
|
c = table.config,
|
50
64
|
wo = c && c.widgetOptions,
|
51
|
-
storageType = (
|
52
|
-
|
65
|
+
storageType = (
|
66
|
+
( options && options.storageType ) || ( wo && wo.storage_storageType )
|
67
|
+
).toString().charAt(0).toLowerCase(),
|
68
|
+
// deprecating "useSessionStorage"; any storageType setting overrides it
|
69
|
+
session = storageType ? '' :
|
70
|
+
( options && options.useSessionStorage ) || ( wo && wo.storage_useSessionStorage ),
|
53
71
|
$table = $(table),
|
54
72
|
// id from (1) options ID, (2) table 'data-table-group' attribute, (3) widgetOptions.storage_tableId,
|
55
73
|
// (4) table ID, then (5) table index
|
@@ -61,29 +79,26 @@
|
|
61
79
|
url = options && options.url ||
|
62
80
|
$table.attr(options && options.page || wo && wo.storage_page || 'data-table-page') ||
|
63
81
|
wo && wo.storage_fixedUrl || c && c.fixedUrl || window.location.pathname;
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
window[storageType].setItem('_tmptest', 'temp');
|
79
|
-
hasStorage = true;
|
80
|
-
window[storageType].removeItem('_tmptest');
|
81
|
-
} catch (error) {
|
82
|
-
if (c && c.debug) {
|
83
|
-
console.warn( storageType + ' is not supported in this browser' );
|
82
|
+
|
83
|
+
// skip if using cookies
|
84
|
+
if (storageType !== 'c') {
|
85
|
+
storageType = (storageType === 's' || session) ? 'sessionStorage' : 'localStorage';
|
86
|
+
// https://gist.github.com/paulirish/5558557
|
87
|
+
if (storageType in window) {
|
88
|
+
try {
|
89
|
+
window[storageType].setItem('_tmptest', 'temp');
|
90
|
+
hasStorage = true;
|
91
|
+
window[storageType].removeItem('_tmptest');
|
92
|
+
} catch (error) {
|
93
|
+
if (c && c.debug) {
|
94
|
+
console.warn( storageType + ' is not supported in this browser' );
|
95
|
+
}
|
84
96
|
}
|
85
97
|
}
|
86
98
|
}
|
99
|
+
if (c.debug) {
|
100
|
+
console.log('Storage widget using', hasStorage ? storageType : 'cookies');
|
101
|
+
}
|
87
102
|
// *** get value ***
|
88
103
|
if ($.parseJSON) {
|
89
104
|
if (hasStorage) {
|
@@ -393,7 +408,7 @@
|
|
393
408
|
|
394
409
|
})(jQuery);
|
395
410
|
|
396
|
-
/*! Widget: filter - updated 4/
|
411
|
+
/*! Widget: filter - updated 4/18/2017 (v2.28.8) *//*
|
397
412
|
* Requires tablesorter v2.8+ and jQuery 1.7+
|
398
413
|
* by Rob Garrison
|
399
414
|
*/
|
@@ -1280,6 +1295,19 @@
|
|
1280
1295
|
tsf.checkFilters( table, filter, skipFirst );
|
1281
1296
|
}
|
1282
1297
|
},
|
1298
|
+
equalFilters: function (c, filter1, filter2) {
|
1299
|
+
var indx,
|
1300
|
+
f1 = [],
|
1301
|
+
f2 = [],
|
1302
|
+
len = c.columns + 1; // add one to include anyMatch filter
|
1303
|
+
filter1 = $.isArray(filter1) ? filter1 : [];
|
1304
|
+
filter2 = $.isArray(filter2) ? filter2 : [];
|
1305
|
+
for (indx = 0; indx < len; indx++) {
|
1306
|
+
f1[indx] = filter1[indx] || '';
|
1307
|
+
f2[indx] = filter2[indx] || '';
|
1308
|
+
}
|
1309
|
+
return f1.join(',') === f2.join(',');
|
1310
|
+
},
|
1283
1311
|
checkFilters: function( table, filter, skipFirst ) {
|
1284
1312
|
var c = table.config,
|
1285
1313
|
wo = c.widgetOptions,
|
@@ -1312,7 +1340,7 @@
|
|
1312
1340
|
}
|
1313
1341
|
// return if the last search is the same; but filter === false when updating the search
|
1314
1342
|
// see example-widget-filter.html filter toggle buttons
|
1315
|
-
if ( c.lastSearch
|
1343
|
+
if ( tsf.equalFilters(c, c.lastSearch, currentFilters) && filter !== false ) {
|
1316
1344
|
return;
|
1317
1345
|
} else if ( filter === false ) {
|
1318
1346
|
// force filter refresh
|
@@ -1661,7 +1689,7 @@
|
|
1661
1689
|
},
|
1662
1690
|
findRows: function( table, filters, currentFilters ) {
|
1663
1691
|
if (
|
1664
|
-
table.config.lastSearch
|
1692
|
+
tsf.equalFilters(table.config, table.config.lastSearch, currentFilters) ||
|
1665
1693
|
!table.config.widgetOptions.filter_initialized
|
1666
1694
|
) {
|
1667
1695
|
return;
|
@@ -2206,7 +2234,8 @@
|
|
2206
2234
|
if ( ( getRaw !== true && wo && !wo.filter_columnFilters ) ||
|
2207
2235
|
// setFilters called, but last search is exactly the same as the current
|
2208
2236
|
// fixes issue #733 & #903 where calling update causes the input values to reset
|
2209
|
-
( $.isArray(setFilters) &&
|
2237
|
+
( $.isArray(setFilters) && tsf.equalFilters(c, setFilters, c.lastSearch) )
|
2238
|
+
) {
|
2210
2239
|
return $( table ).data( 'lastSearch' ) || [];
|
2211
2240
|
}
|
2212
2241
|
if ( c ) {
|
@@ -2591,7 +2620,7 @@
|
|
2591
2620
|
|
2592
2621
|
})(jQuery, window);
|
2593
2622
|
|
2594
|
-
/*! Widget: resizable - updated
|
2623
|
+
/*! Widget: resizable - updated 4/18/2017 (v2.28.8) */
|
2595
2624
|
/*jshint browser:true, jquery:true, unused:false */
|
2596
2625
|
;(function ($, window) {
|
2597
2626
|
'use strict';
|
@@ -2756,6 +2785,10 @@
|
|
2756
2785
|
tableHeight += $this.filter('[style*="height"]').length ? $this.height() : $this.children('table').height();
|
2757
2786
|
});
|
2758
2787
|
}
|
2788
|
+
|
2789
|
+
if ( !wo.resizable_includeFooter && c.$table.children('tfoot').length ) {
|
2790
|
+
tableHeight -= c.$table.children('tfoot').height();
|
2791
|
+
}
|
2759
2792
|
// subtract out table left position from resizable handles. Fixes #864
|
2760
2793
|
startPosition = c.$table.position().left;
|
2761
2794
|
$handles.each( function() {
|
@@ -2926,10 +2959,10 @@
|
|
2926
2959
|
options: {
|
2927
2960
|
resizable : true, // save column widths to storage
|
2928
2961
|
resizable_addLastColumn : false,
|
2962
|
+
resizable_includeFooter: true,
|
2929
2963
|
resizable_widths : [],
|
2930
2964
|
resizable_throttle : false, // set to true (5ms) or any number 0-10 range
|
2931
|
-
resizable_targetLast : false
|
2932
|
-
resizable_fullWidth : null
|
2965
|
+
resizable_targetLast : false
|
2933
2966
|
},
|
2934
2967
|
init: function(table, thisWidget, c, wo) {
|
2935
2968
|
ts.resizable.init( c, wo );
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! Widget: filter - updated 4/
|
1
|
+
/*! Widget: filter - updated 4/18/2017 (v2.28.8) *//*
|
2
2
|
* Requires tablesorter v2.8+ and jQuery 1.7+
|
3
3
|
* by Rob Garrison
|
4
4
|
*/
|
@@ -885,6 +885,19 @@
|
|
885
885
|
tsf.checkFilters( table, filter, skipFirst );
|
886
886
|
}
|
887
887
|
},
|
888
|
+
equalFilters: function (c, filter1, filter2) {
|
889
|
+
var indx,
|
890
|
+
f1 = [],
|
891
|
+
f2 = [],
|
892
|
+
len = c.columns + 1; // add one to include anyMatch filter
|
893
|
+
filter1 = $.isArray(filter1) ? filter1 : [];
|
894
|
+
filter2 = $.isArray(filter2) ? filter2 : [];
|
895
|
+
for (indx = 0; indx < len; indx++) {
|
896
|
+
f1[indx] = filter1[indx] || '';
|
897
|
+
f2[indx] = filter2[indx] || '';
|
898
|
+
}
|
899
|
+
return f1.join(',') === f2.join(',');
|
900
|
+
},
|
888
901
|
checkFilters: function( table, filter, skipFirst ) {
|
889
902
|
var c = table.config,
|
890
903
|
wo = c.widgetOptions,
|
@@ -917,7 +930,7 @@
|
|
917
930
|
}
|
918
931
|
// return if the last search is the same; but filter === false when updating the search
|
919
932
|
// see example-widget-filter.html filter toggle buttons
|
920
|
-
if ( c.lastSearch
|
933
|
+
if ( tsf.equalFilters(c, c.lastSearch, currentFilters) && filter !== false ) {
|
921
934
|
return;
|
922
935
|
} else if ( filter === false ) {
|
923
936
|
// force filter refresh
|
@@ -1266,7 +1279,7 @@
|
|
1266
1279
|
},
|
1267
1280
|
findRows: function( table, filters, currentFilters ) {
|
1268
1281
|
if (
|
1269
|
-
table.config.lastSearch
|
1282
|
+
tsf.equalFilters(table.config, table.config.lastSearch, currentFilters) ||
|
1270
1283
|
!table.config.widgetOptions.filter_initialized
|
1271
1284
|
) {
|
1272
1285
|
return;
|
@@ -1811,7 +1824,8 @@
|
|
1811
1824
|
if ( ( getRaw !== true && wo && !wo.filter_columnFilters ) ||
|
1812
1825
|
// setFilters called, but last search is exactly the same as the current
|
1813
1826
|
// fixes issue #733 & #903 where calling update causes the input values to reset
|
1814
|
-
( $.isArray(setFilters) &&
|
1827
|
+
( $.isArray(setFilters) && tsf.equalFilters(c, setFilters, c.lastSearch) )
|
1828
|
+
) {
|
1815
1829
|
return $( table ).data( 'lastSearch' ) || [];
|
1816
1830
|
}
|
1817
1831
|
if ( c ) {
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! Widget: Pager - updated 4/
|
1
|
+
/*! Widget: Pager - updated 4/18/2017 (v2.28.8) */
|
2
2
|
/* Requires tablesorter v2.8+ and jQuery 1.7+
|
3
3
|
* by Rob Garrison
|
4
4
|
*/
|
@@ -249,10 +249,15 @@
|
|
249
249
|
.off( namespace )
|
250
250
|
.on( 'filterInit filterStart '.split( ' ' ).join( namespace + ' ' ), function( e, filters ) {
|
251
251
|
p.currentFilters = $.isArray( filters ) ? filters : c.$table.data( 'lastSearch' );
|
252
|
+
var filtersEqual;
|
253
|
+
if (ts.filter.equalFilters) {
|
254
|
+
filtersEqual = ts.filter.equalFilters(c, c.lastSearch, p.currentFilters);
|
255
|
+
} else {
|
256
|
+
// will miss filter changes of the same value in a different column, see #1363
|
257
|
+
filtersEqual = ( c.lastSearch || [] ).join( '' ) !== ( p.currentFilters || [] ).join( '' );
|
258
|
+
}
|
252
259
|
// don't change page if filters are the same (pager updating, etc)
|
253
|
-
if ( e.type === 'filterStart' && wo.pager_pageReset !== false &&
|
254
|
-
( c.lastSearch || [] ).join( ',' ) !== ( p.currentFilters || [] ).join( ',' )
|
255
|
-
) {
|
260
|
+
if ( e.type === 'filterStart' && wo.pager_pageReset !== false && !filtersEqual ) {
|
256
261
|
p.page = wo.pager_pageReset; // fixes #456 & #565
|
257
262
|
}
|
258
263
|
})
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! Widget: resizable - updated
|
1
|
+
/*! Widget: resizable - updated 4/18/2017 (v2.28.8) */
|
2
2
|
/*jshint browser:true, jquery:true, unused:false */
|
3
3
|
;(function ($, window) {
|
4
4
|
'use strict';
|
@@ -163,6 +163,10 @@
|
|
163
163
|
tableHeight += $this.filter('[style*="height"]').length ? $this.height() : $this.children('table').height();
|
164
164
|
});
|
165
165
|
}
|
166
|
+
|
167
|
+
if ( !wo.resizable_includeFooter && c.$table.children('tfoot').length ) {
|
168
|
+
tableHeight -= c.$table.children('tfoot').height();
|
169
|
+
}
|
166
170
|
// subtract out table left position from resizable handles. Fixes #864
|
167
171
|
startPosition = c.$table.position().left;
|
168
172
|
$handles.each( function() {
|
@@ -333,10 +337,10 @@
|
|
333
337
|
options: {
|
334
338
|
resizable : true, // save column widths to storage
|
335
339
|
resizable_addLastColumn : false,
|
340
|
+
resizable_includeFooter: true,
|
336
341
|
resizable_widths : [],
|
337
342
|
resizable_throttle : false, // set to true (5ms) or any number 0-10 range
|
338
|
-
resizable_targetLast : false
|
339
|
-
resizable_fullWidth : null
|
343
|
+
resizable_targetLast : false
|
340
344
|
},
|
341
345
|
init: function(table, thisWidget, c, wo) {
|
342
346
|
ts.resizable.init( c, wo );
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! Widget: scroller - updated
|
1
|
+
/*! Widget: scroller - updated 4/18/2017 (v2.28.8) *//*
|
2
2
|
Copyright (C) 2011 T. Connell & Associates, Inc.
|
3
3
|
|
4
4
|
Dual-licensed under the MIT and GPL licenses
|
@@ -113,7 +113,7 @@
|
|
113
113
|
when height < max height (filtering) */
|
114
114
|
'.' + tscss.scrollerTable + ' { position: relative; overflow: auto; }' +
|
115
115
|
'.' + tscss.scrollerTable + ' table.' + tscss.table +
|
116
|
-
' { border-top: 0; margin-top: 0; margin-bottom: 0; overflow: hidden; }' +
|
116
|
+
' { border-top: 0; margin-top: 0; margin-bottom: 0; overflow: hidden; max-width: initial; }' +
|
117
117
|
/* hide footer in original table */
|
118
118
|
'.' + tscss.scrollerTable + ' tfoot, .' + tscss.scrollerHideElement + ', .' + tscss.scrollerHideColumn +
|
119
119
|
' { display: none; }' +
|
@@ -365,7 +365,7 @@
|
|
365
365
|
|
366
366
|
resize : function( c, wo ) {
|
367
367
|
if ( wo.scroller_isBusy ) { return; }
|
368
|
-
var index, borderWidth, setWidth, $headers, $this,
|
368
|
+
var index, borderWidth, setWidth, $headers, $this,
|
369
369
|
tsScroller = ts.scroller,
|
370
370
|
$container = wo.scroller_$container,
|
371
371
|
$table = c.$table,
|
@@ -378,7 +378,9 @@
|
|
378
378
|
// Hide other scrollers so we can resize
|
379
379
|
$div = $( 'div.' + tscss.scrollerWrap + '[id!="' + id + '"]' )
|
380
380
|
.addClass( tscss.scrollerHideElement ),
|
381
|
-
|
381
|
+
temp = 'padding:0;margin:0;border:0;height:0;max-height:0;min-height:0;',
|
382
|
+
row = '<tr class="' + tscss.scrollerSpacerRow + ' ' + c.selectorRemove.slice(1) +
|
383
|
+
'" style="' + temp + '">';
|
382
384
|
|
383
385
|
wo.scroller_calcWidths = [];
|
384
386
|
|
@@ -417,22 +419,22 @@
|
|
417
419
|
setWidth = $this.width();
|
418
420
|
}
|
419
421
|
}
|
420
|
-
row += '<td data-column="' + index + '" style="
|
421
|
-
'
|
422
|
+
row += '<td data-column="' + index + '" style="' + temp + 'width:' + setWidth +
|
423
|
+
'px;min-width:' + setWidth + 'px;max-width:' + setWidth + 'px"></td>';
|
422
424
|
|
423
425
|
// save current widths
|
424
426
|
wo.scroller_calcWidths[ index ] = setWidth;
|
425
427
|
}
|
426
428
|
row += '</tr>';
|
427
|
-
c.$tbodies.eq(0).
|
429
|
+
c.$tbodies.eq(0).append( row ); // tbody
|
428
430
|
$hdr.children( 'thead' ).append( row );
|
429
431
|
$foot.children( 'tfoot' ).append( row );
|
430
432
|
|
431
433
|
// include colgroup or alignment is off
|
432
434
|
ts.fixColumnWidth( c.table );
|
433
435
|
row = c.$table.children( 'colgroup' )[0].outerHTML;
|
434
|
-
$hdr.
|
435
|
-
$foot.
|
436
|
+
$hdr.append( row );
|
437
|
+
$foot.append( row );
|
436
438
|
|
437
439
|
temp = $tableWrap.parent().innerWidth() -
|
438
440
|
( tsScroller.hasScrollBar( $tableWrap ) ? wo.scroller_barSetWidth : 0 );
|
@@ -1,9 +1,23 @@
|
|
1
|
-
/*! Widget: storage - updated
|
1
|
+
/*! Widget: storage - updated 4/18/2017 (v2.28.8) */
|
2
2
|
/*global JSON:false */
|
3
3
|
;(function ($, window, document) {
|
4
4
|
'use strict';
|
5
5
|
|
6
6
|
var ts = $.tablesorter || {};
|
7
|
+
|
8
|
+
// update defaults for validator; these values must be falsy!
|
9
|
+
$.extend(true, ts.defaults, {
|
10
|
+
fixedUrl: '',
|
11
|
+
widgetOptions: {
|
12
|
+
storage_fixedUrl: '',
|
13
|
+
storage_group: '',
|
14
|
+
storage_page: '',
|
15
|
+
storage_storageType: '',
|
16
|
+
storage_tableId: '',
|
17
|
+
storage_useSessionStorage: ''
|
18
|
+
}
|
19
|
+
});
|
20
|
+
|
7
21
|
// *** Store data in local storage, with a cookie fallback ***
|
8
22
|
/* IE7 needs JSON library for JSON.stringify - (http://caniuse.com/#search=json)
|
9
23
|
if you need it, then include https://github.com/douglascrockford/JSON-js
|
@@ -30,8 +44,12 @@
|
|
30
44
|
values = {},
|
31
45
|
c = table.config,
|
32
46
|
wo = c && c.widgetOptions,
|
33
|
-
storageType = (
|
34
|
-
|
47
|
+
storageType = (
|
48
|
+
( options && options.storageType ) || ( wo && wo.storage_storageType )
|
49
|
+
).toString().charAt(0).toLowerCase(),
|
50
|
+
// deprecating "useSessionStorage"; any storageType setting overrides it
|
51
|
+
session = storageType ? '' :
|
52
|
+
( options && options.useSessionStorage ) || ( wo && wo.storage_useSessionStorage ),
|
35
53
|
$table = $(table),
|
36
54
|
// id from (1) options ID, (2) table 'data-table-group' attribute, (3) widgetOptions.storage_tableId,
|
37
55
|
// (4) table ID, then (5) table index
|
@@ -43,29 +61,26 @@
|
|
43
61
|
url = options && options.url ||
|
44
62
|
$table.attr(options && options.page || wo && wo.storage_page || 'data-table-page') ||
|
45
63
|
wo && wo.storage_fixedUrl || c && c.fixedUrl || window.location.pathname;
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
window[storageType].setItem('_tmptest', 'temp');
|
61
|
-
hasStorage = true;
|
62
|
-
window[storageType].removeItem('_tmptest');
|
63
|
-
} catch (error) {
|
64
|
-
if (c && c.debug) {
|
65
|
-
console.warn( storageType + ' is not supported in this browser' );
|
64
|
+
|
65
|
+
// skip if using cookies
|
66
|
+
if (storageType !== 'c') {
|
67
|
+
storageType = (storageType === 's' || session) ? 'sessionStorage' : 'localStorage';
|
68
|
+
// https://gist.github.com/paulirish/5558557
|
69
|
+
if (storageType in window) {
|
70
|
+
try {
|
71
|
+
window[storageType].setItem('_tmptest', 'temp');
|
72
|
+
hasStorage = true;
|
73
|
+
window[storageType].removeItem('_tmptest');
|
74
|
+
} catch (error) {
|
75
|
+
if (c && c.debug) {
|
76
|
+
console.warn( storageType + ' is not supported in this browser' );
|
77
|
+
}
|
66
78
|
}
|
67
79
|
}
|
68
80
|
}
|
81
|
+
if (c.debug) {
|
82
|
+
console.log('Storage widget using', hasStorage ? storageType : 'cookies');
|
83
|
+
}
|
69
84
|
// *** get value ***
|
70
85
|
if ($.parseJSON) {
|
71
86
|
if (hasStorage) {
|
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.
|
4
|
+
version: 1.23.8
|
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: 2017-04-
|
12
|
+
date: 2017-04-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: railties
|