jquery-tablesorter 1.23.9 → 1.23.10
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 +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.combined.js +18 -8
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.js +17 -7
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.widgets.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-input-select.js +80 -31
- 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: 3932a063e05a5d7e25e5911e2f083adfe5d42ae9
|
4
|
+
data.tar.gz: 2b7a51790860330826b96d8768853442f810980e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 252269fcce1138445f892f973fd550d57ac86eb20cef4f295c49f5111e8b8191d9d034efd8d34dc883c81f74a07ac72df2c402dd3e0325e55f09784339940c60
|
7
|
+
data.tar.gz: d5a435c879773961da5d1dac8aff8cfe620d653f4937a753f26ee5a156c3da85c88b8012b9058e3d9c7208131a114694f4efe27ed8436b96df31fbfb1c50f2ed
|
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.10 (5/16/2017), [documentation]
|
8
8
|
|
9
9
|
Any issue associated with the js/css files, please report to [Mottie's fork].
|
10
10
|
|
@@ -4,7 +4,7 @@
|
|
4
4
|
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██
|
5
5
|
█████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
|
6
6
|
*/
|
7
|
-
/*! tablesorter (FORK) - updated 05-
|
7
|
+
/*! tablesorter (FORK) - updated 05-16-2017 (v2.28.10)*/
|
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.10 *//*
|
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.10',
|
44
44
|
|
45
45
|
parsers : [],
|
46
46
|
widgets : [],
|
@@ -272,11 +272,6 @@
|
|
272
272
|
if ( !/tablesorter\-/.test( $table.attr( 'class' ) ) ) {
|
273
273
|
tmp = ( c.theme !== '' ? ' tablesorter-' + c.theme : '' );
|
274
274
|
}
|
275
|
-
c.table = table;
|
276
|
-
c.$table = $table
|
277
|
-
.addClass( ts.css.table + ' ' + c.tableClass + tmp )
|
278
|
-
.attr( 'role', 'grid' );
|
279
|
-
c.$headers = $table.find( c.selectorHeaders );
|
280
275
|
|
281
276
|
// give the table a unique id, which will be used in namespace binding
|
282
277
|
if ( !c.namespace ) {
|
@@ -286,6 +281,14 @@
|
|
286
281
|
c.namespace = '.' + c.namespace.replace( ts.regex.nonWord, '' );
|
287
282
|
}
|
288
283
|
|
284
|
+
c.table = table;
|
285
|
+
c.$table = $table
|
286
|
+
// add namespace to table to allow bindings on extra elements to target
|
287
|
+
// the parent table (e.g. parser-input-select)
|
288
|
+
.addClass( ts.css.table + ' ' + c.tableClass + tmp + ' ' + c.namespace.slice(1) )
|
289
|
+
.attr( 'role', 'grid' );
|
290
|
+
c.$headers = $table.find( c.selectorHeaders );
|
291
|
+
|
289
292
|
c.$table.children().children( 'tr' ).attr( 'role', 'row' );
|
290
293
|
c.$tbodies = $table.children( 'tbody:not(.' + c.cssInfoBlock + ')' ).attr({
|
291
294
|
'aria-live' : 'polite',
|
@@ -1304,6 +1307,12 @@
|
|
1304
1307
|
},
|
1305
1308
|
|
1306
1309
|
updateCell : function( c, cell, resort, callback ) {
|
1310
|
+
// updateCell for child rows is a mess - we'll ignore them for now
|
1311
|
+
// eventually I'll break out the "update" row cache code to make everything consistent
|
1312
|
+
if ( $( cell ).closest( 'tr' ).hasClass( c.cssChildRow ) ) {
|
1313
|
+
console.warn('Tablesorter Warning! "updateCell" for child row content has been disabled, use "update" instead');
|
1314
|
+
return;
|
1315
|
+
}
|
1307
1316
|
if ( ts.isEmptyObject( c.cache ) ) {
|
1308
1317
|
// empty table, do an update instead - fixes #1099
|
1309
1318
|
ts.updateHeader( c );
|
@@ -2522,6 +2531,7 @@
|
|
2522
2531
|
.unbind( ( 'mousedown mouseup keypress '.split( ' ' ).join( c.namespace + ' ' ) ).replace( ts.regex.spaces, ' ' ) );
|
2523
2532
|
ts.restoreHeaders( table );
|
2524
2533
|
$t.toggleClass( ts.css.table + ' ' + c.tableClass + ' tablesorter-' + c.theme, removeClasses === false );
|
2534
|
+
$t.removeClass(c.namespace.slice(1));
|
2525
2535
|
// clear flag in case the plugin is initialized again
|
2526
2536
|
table.hasInitialized = false;
|
2527
2537
|
delete table.config.cache;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
/*! TableSorter (FORK) v2.28.10 *//*
|
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.10',
|
26
26
|
|
27
27
|
parsers : [],
|
28
28
|
widgets : [],
|
@@ -254,11 +254,6 @@
|
|
254
254
|
if ( !/tablesorter\-/.test( $table.attr( 'class' ) ) ) {
|
255
255
|
tmp = ( c.theme !== '' ? ' tablesorter-' + c.theme : '' );
|
256
256
|
}
|
257
|
-
c.table = table;
|
258
|
-
c.$table = $table
|
259
|
-
.addClass( ts.css.table + ' ' + c.tableClass + tmp )
|
260
|
-
.attr( 'role', 'grid' );
|
261
|
-
c.$headers = $table.find( c.selectorHeaders );
|
262
257
|
|
263
258
|
// give the table a unique id, which will be used in namespace binding
|
264
259
|
if ( !c.namespace ) {
|
@@ -268,6 +263,14 @@
|
|
268
263
|
c.namespace = '.' + c.namespace.replace( ts.regex.nonWord, '' );
|
269
264
|
}
|
270
265
|
|
266
|
+
c.table = table;
|
267
|
+
c.$table = $table
|
268
|
+
// add namespace to table to allow bindings on extra elements to target
|
269
|
+
// the parent table (e.g. parser-input-select)
|
270
|
+
.addClass( ts.css.table + ' ' + c.tableClass + tmp + ' ' + c.namespace.slice(1) )
|
271
|
+
.attr( 'role', 'grid' );
|
272
|
+
c.$headers = $table.find( c.selectorHeaders );
|
273
|
+
|
271
274
|
c.$table.children().children( 'tr' ).attr( 'role', 'row' );
|
272
275
|
c.$tbodies = $table.children( 'tbody:not(.' + c.cssInfoBlock + ')' ).attr({
|
273
276
|
'aria-live' : 'polite',
|
@@ -1286,6 +1289,12 @@
|
|
1286
1289
|
},
|
1287
1290
|
|
1288
1291
|
updateCell : function( c, cell, resort, callback ) {
|
1292
|
+
// updateCell for child rows is a mess - we'll ignore them for now
|
1293
|
+
// eventually I'll break out the "update" row cache code to make everything consistent
|
1294
|
+
if ( $( cell ).closest( 'tr' ).hasClass( c.cssChildRow ) ) {
|
1295
|
+
console.warn('Tablesorter Warning! "updateCell" for child row content has been disabled, use "update" instead');
|
1296
|
+
return;
|
1297
|
+
}
|
1289
1298
|
if ( ts.isEmptyObject( c.cache ) ) {
|
1290
1299
|
// empty table, do an update instead - fixes #1099
|
1291
1300
|
ts.updateHeader( c );
|
@@ -2504,6 +2513,7 @@
|
|
2504
2513
|
.unbind( ( 'mousedown mouseup keypress '.split( ' ' ).join( c.namespace + ' ' ) ).replace( ts.regex.spaces, ' ' ) );
|
2505
2514
|
ts.restoreHeaders( table );
|
2506
2515
|
$t.toggleClass( ts.css.table + ' ' + c.tableClass + ' tablesorter-' + c.theme, removeClasses === false );
|
2516
|
+
$t.removeClass(c.namespace.slice(1));
|
2507
2517
|
// clear flag in case the plugin is initialized again
|
2508
2518
|
table.hasInitialized = false;
|
2509
2519
|
delete table.config.cache;
|
@@ -4,7 +4,7 @@
|
|
4
4
|
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██
|
5
5
|
█████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
|
6
6
|
*/
|
7
|
-
/*! tablesorter (FORK) - updated 05-
|
7
|
+
/*! tablesorter (FORK) - updated 05-16-2017 (v2.28.10)*/
|
8
8
|
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
9
9
|
(function(factory) {
|
10
10
|
if (typeof define === 'function' && define.amd) {
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! Parser: input & select - updated
|
1
|
+
/*! Parser: input & select - updated 5/16/2017 (v2.28.10) *//*
|
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
|
*/
|
@@ -131,31 +131,54 @@
|
|
131
131
|
$row.removeClass( checkboxClass );
|
132
132
|
}
|
133
133
|
},
|
134
|
+
updateCheckbox = function($el, state) {
|
135
|
+
if ($el[0].nodeName !== 'INPUT') {
|
136
|
+
$el = $el.find( 'input[type="checkbox"]' );
|
137
|
+
}
|
138
|
+
if ($el.length) {
|
139
|
+
var ua = window.navigator.userAgent;
|
140
|
+
if (state === 'indeterminate') {
|
141
|
+
// needed for IE
|
142
|
+
$el.prop('checked', !(ua.indexOf('Trident/') > -1 || ua.indexOf('Edge/') > -1));
|
143
|
+
$el.prop('indeterminate', true);
|
144
|
+
} else {
|
145
|
+
$el.prop('checked', state);
|
146
|
+
$el.prop('indeterminate', false);
|
147
|
+
}
|
148
|
+
}
|
149
|
+
},
|
134
150
|
updateHeaderCheckbox = function( $table, checkboxClass ) {
|
135
|
-
var
|
136
|
-
|
137
|
-
|
151
|
+
var $rows = $table.children( 'tbody' ).children( ':visible' ), // (include child rows?)
|
152
|
+
len = $rows.length,
|
153
|
+
hasSticky = $table[0].config.widgetOptions.$sticky;
|
138
154
|
// set indeterminate state on header checkbox
|
139
155
|
$table.children( 'thead' ).find( 'input[type="checkbox"]' ).each( function() {
|
140
156
|
var column = $( this ).closest( 'td, th' ).attr( 'data-column' ),
|
157
|
+
$sticky = hasSticky.find( '[data-column="' + column + '"]' ),
|
141
158
|
vis = $rows.filter( '.' + checkboxClass + '-' + column ).length,
|
142
159
|
allChecked = vis === len && len > 0;
|
143
160
|
if ( vis === 0 || allChecked ) {
|
144
|
-
this
|
145
|
-
|
161
|
+
updateCheckbox($(this), allChecked);
|
162
|
+
if ($sticky) {
|
163
|
+
updateCheckbox($sticky, allChecked);
|
164
|
+
}
|
146
165
|
} else {
|
147
|
-
|
148
|
-
|
149
|
-
|
166
|
+
updateCheckbox($(this), 'indeterminate');
|
167
|
+
if ($sticky) {
|
168
|
+
updateCheckbox($sticky, 'indeterminate');
|
169
|
+
}
|
150
170
|
}
|
151
171
|
});
|
172
|
+
|
152
173
|
};
|
153
174
|
|
154
175
|
$( 'table' ).on( 'tablesorter-initialized updateComplete', function() {
|
155
176
|
this.tablesorterBusy = false;
|
156
177
|
var namespace = '.parser-forms';
|
157
|
-
|
158
|
-
|
178
|
+
$( this )
|
179
|
+
// add namespace to table in case of version mismatch (v2.28.10)
|
180
|
+
.addClass( this.config.namespace.slice(1) )
|
181
|
+
.children( 'tbody' )
|
159
182
|
.off( namespace )
|
160
183
|
.on( 'mouseleave' + namespace, function( event ) {
|
161
184
|
// make sure we restore original values (trigger blur)
|
@@ -165,15 +188,30 @@
|
|
165
188
|
$( ':focus' ).blur();
|
166
189
|
}
|
167
190
|
})
|
168
|
-
.on( 'focus' + namespace, 'select, input:not([type=checkbox]), textarea', function() {
|
191
|
+
.on( 'focus' + namespace, 'select, input:not([type=checkbox]), textarea', function( event ) {
|
192
|
+
var $row = $( event.target ).closest( 'tr' ),
|
193
|
+
c = $row.closest( 'table' )[0].config;
|
194
|
+
if ( !c || c && c.ignoreChildRow && $row.hasClass( c.cssChildRow ) ) {
|
195
|
+
return;
|
196
|
+
}
|
169
197
|
$( this ).data( 'ts-original-value', this.value );
|
170
198
|
})
|
171
|
-
.on( 'blur' + namespace, 'input:not([type=checkbox]), textarea', function() {
|
199
|
+
.on( 'blur' + namespace, 'input:not([type=checkbox]), textarea', function( event ) {
|
200
|
+
var $row = $( event.target ).closest( 'tr' ),
|
201
|
+
c = $row.closest( 'table' )[0].config;
|
202
|
+
if ( !c || c && c.ignoreChildRow && $row.hasClass( c.cssChildRow ) ) {
|
203
|
+
return;
|
204
|
+
}
|
172
205
|
// restore input value;
|
173
206
|
// 'change' is triggered before 'blur' so this doesn't replace the new update with the original
|
174
207
|
this.value = $( this ).data( 'ts-original-value' );
|
175
208
|
})
|
176
209
|
.on( 'change keyup '.split( ' ' ).join( namespace + ' ' ), 'select, input, textarea', function( event ) {
|
210
|
+
var $row = $( this ).closest( 'tr' ),
|
211
|
+
c = $row.closest( 'table' )[0].config;
|
212
|
+
if ( !c || c && c.ignoreChildRow && $row.hasClass( c.cssChildRow ) ) {
|
213
|
+
return;
|
214
|
+
}
|
177
215
|
if ( event.which === 27 && !( this.nodeName === 'INPUT' && this.type === 'checkbox' ) ) {
|
178
216
|
// escape: restore original value
|
179
217
|
this.value = $( this ).data( 'ts-original-value' );
|
@@ -187,11 +225,9 @@
|
|
187
225
|
$target = $( event.target ),
|
188
226
|
isCheckbox = event.target.type === 'checkbox',
|
189
227
|
$cell = $target.closest( 'td' ),
|
190
|
-
$table = $cell.closest( 'table' ),
|
191
228
|
indx = $cell[ 0 ].cellIndex,
|
192
|
-
|
193
|
-
|
194
|
-
$hdr = c && c.$headerIndexed && c.$headerIndexed[ indx ] || [],
|
229
|
+
busy = c.table.tablesorterBusy,
|
230
|
+
$hdr = c.$headerIndexed && c.$headerIndexed[ indx ] || [],
|
195
231
|
val = isCheckbox ? event.target.checked : $target.val();
|
196
232
|
// abort if not a tablesorter table, or busy
|
197
233
|
if ( $.isEmptyObject( c ) || busy !== false ) {
|
@@ -200,7 +236,7 @@
|
|
200
236
|
if ( isCheckbox ) {
|
201
237
|
checkboxClass = c.checkboxClass || 'checked';
|
202
238
|
toggleRowClass( $cell.closest( 'tr' ), checkboxClass, indx, val );
|
203
|
-
updateHeaderCheckbox(
|
239
|
+
updateHeaderCheckbox( c.$table, checkboxClass );
|
204
240
|
}
|
205
241
|
// don't use updateCell if column is set to 'sorter-false' and 'filter-false',
|
206
242
|
// or column is set to 'parser-false'
|
@@ -213,11 +249,11 @@
|
|
213
249
|
// ignore change event if nothing changed
|
214
250
|
if ( c && val !== $target.data( 'ts-original-value' ) || isCheckbox ) {
|
215
251
|
$target.data( 'ts-original-value', val );
|
216
|
-
|
252
|
+
c.table.tablesorterBusy = true;
|
217
253
|
// pass undefined resort value so it falls back to config.resort setting
|
218
254
|
$.tablesorter.updateCell( c, $cell, undef, function() {
|
219
|
-
updateServer( event,
|
220
|
-
|
255
|
+
updateServer( event, c.$table, $target );
|
256
|
+
c.table.tablesorterBusy = false;
|
221
257
|
});
|
222
258
|
}
|
223
259
|
}
|
@@ -240,32 +276,45 @@
|
|
240
276
|
}
|
241
277
|
})
|
242
278
|
.children( 'thead' )
|
279
|
+
.add( this.config.widgetOptions.$sticky )
|
243
280
|
.off( namespace )
|
244
281
|
// modified from http://jsfiddle.net/abkNM/6163/
|
245
282
|
// click needed for IE; a change isn't fired when going from an indeterminate checkbox to
|
246
283
|
// either checked or unchecked
|
247
284
|
.on( 'click' + namespace + ' change' + namespace, 'input[type="checkbox"]', function( event ) {
|
248
|
-
var undef, onlyVisible, column, $target, isParsed, checkboxClass,
|
285
|
+
var c, undef, onlyVisible, column, $target, isParsed, checkboxClass,
|
249
286
|
$checkbox = $( this ),
|
287
|
+
isChecked = this.checked,
|
250
288
|
$table = $checkbox.closest( 'table' ),
|
251
|
-
|
252
|
-
|
289
|
+
isSticky = $table.length && $table[0].className.match(/(tablesorter\w+)_extra_table/);
|
290
|
+
if (isSticky) {
|
291
|
+
isSticky = isSticky[1];
|
292
|
+
$table = $('.' + isSticky + ':not(.' + isSticky + '_extra_table)');
|
293
|
+
}
|
294
|
+
c = $table.length && $table[ 0 ].config;
|
253
295
|
if ( $table.length && c && !$table[ 0 ].tablesorterBusy ) {
|
254
296
|
column = parseInt( $checkbox.closest( 'td, th' ).attr( 'data-column' ), 10 );
|
255
297
|
isParsed = c.parsers[ column ].id === 'checkbox';
|
256
|
-
onlyVisible =
|
298
|
+
onlyVisible = c.checkboxVisible;
|
257
299
|
$table[ 0 ].tablesorterBusy = true; // prevent "change" event from calling updateCell numerous times (see #971)
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
300
|
+
updateCheckbox(
|
301
|
+
$target = $table
|
302
|
+
.children( 'tbody' )
|
303
|
+
.children( 'tr' + ( typeof onlyVisible === 'undefined' || onlyVisible === true ? ':visible' : '' ) )
|
304
|
+
.children( ':nth-child(' + ( column + 1 ) + ')' ),
|
305
|
+
isChecked
|
306
|
+
);
|
264
307
|
// add checkbox class names to row
|
265
308
|
checkboxClass = c.checkboxClass || 'checked';
|
266
309
|
$target.each( function() {
|
267
310
|
toggleRowClass( $( this ).closest( 'tr' ), checkboxClass, column, isChecked );
|
268
311
|
});
|
312
|
+
if (isSticky) {
|
313
|
+
// make main table checkbox match sticky header checkbox
|
314
|
+
updateCheckbox($table.children( 'thead' ).find( '[data-column="' + column + '"]' ), isChecked);
|
315
|
+
} else if (c.widgetOptions.$sticky) {
|
316
|
+
updateCheckbox(c.widgetOptions.$sticky.find( 'thead' ).find( '[data-column="' + column + '"]' ), isChecked);
|
317
|
+
}
|
269
318
|
updateHeaderCheckbox( $table, checkboxClass );
|
270
319
|
if ( isParsed ) {
|
271
320
|
// only update cache if checkboxes are being sorted
|
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.10
|
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-05-
|
12
|
+
date: 2017-05-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: railties
|