jquery-tablesorter 1.18.2 → 1.18.3
Sign up to get free protection for your applications and to get access to all the features.
- 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 +20 -15
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.js +10 -6
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.widgets.js +10 -9
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter.js +9 -8
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-grouping.js +23 -14
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a142ba049c8283ad5701ebc22af25c6f2a0a186e
|
4
|
+
data.tar.gz: 01d9fbb2e17cd989c67376e6f71aa809ed3c3639
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0dafc07d7437a3af57ab0542226dd55d5cd0f1cbb4ad86290d1326644337a091b597cf03f98b20ab7cf8c3fbb8327024f16c4dbe59f226b1ea3a527e69337cd
|
7
|
+
data.tar.gz: 0c23865e29959b6c0ea505cb026ed5635d39e1b760b902bd25a2f0dc29c6553875a1b07899349353afc907d0d356fd716119cbb0d4e3799643a0bf4a78469f4c
|
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.23.
|
7
|
+
Current tablesorter version: 2.23.3 (9/1/2015), [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
|
7
|
+
/*! tablesorter (FORK) - updated 09-01-2015 (v2.23.3)*/
|
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.23.
|
19
|
+
/*! TableSorter (FORK) v2.23.3 *//*
|
20
20
|
* Client-side table sorting with ease!
|
21
21
|
* @requires jQuery v1.2.6+
|
22
22
|
*
|
@@ -35,7 +35,6 @@
|
|
35
35
|
* @contributor Rob Garrison - https://github.com/Mottie/tablesorter
|
36
36
|
*/
|
37
37
|
/*jshint browser:true, jquery:true, unused:false, expr: true */
|
38
|
-
/*global console:false */
|
39
38
|
;(function($){
|
40
39
|
'use strict';
|
41
40
|
$.extend({
|
@@ -44,7 +43,7 @@
|
|
44
43
|
|
45
44
|
var ts = this;
|
46
45
|
|
47
|
-
ts.version = '2.23.
|
46
|
+
ts.version = '2.23.3';
|
48
47
|
|
49
48
|
ts.parsers = [];
|
50
49
|
ts.widgets = [];
|
@@ -576,8 +575,10 @@
|
|
576
575
|
for (i = 0; i < len; i++) {
|
577
576
|
// direction = 2 means reset!
|
578
577
|
if (list[i][1] !== 2) {
|
579
|
-
// multicolumn sorting updating -
|
580
|
-
f = c
|
578
|
+
// multicolumn sorting updating - see #1005
|
579
|
+
f = c.lastClickedIndex > 0 ? c.$headers.filter(':gt(' + ( c.lastClickedIndex - 1 ) + ')') : c.$headers;
|
580
|
+
// choose the :last in case there are nested columns
|
581
|
+
f = f.not('.sorter-false').filter('[data-column="' + list[i][0] + '"]' + (len === 1 ? ':last' : '') );
|
581
582
|
if (f.length) {
|
582
583
|
for (j = 0; j < f.length; j++) {
|
583
584
|
if (!f[j].sortDisabled) {
|
@@ -1306,7 +1307,10 @@
|
|
1306
1307
|
$cell = $.fn.closest ? $(this).closest('th, td') : /TH|TD/.test(this.nodeName) ? $(this) : $(this).parents('th, td');
|
1307
1308
|
// reference original table headers and find the same cell
|
1308
1309
|
// don't use $headers or IE8 throws an error - see #987
|
1309
|
-
|
1310
|
+
temp = $headers.index( $cell );
|
1311
|
+
c.lastClickedIndex = ( temp < 0 ) ? $cell.attr('data-column') : temp;
|
1312
|
+
// use column index if $headers is undefined
|
1313
|
+
cell = c.$headers[ c.lastClickedIndex ];
|
1310
1314
|
if (cell && !cell.sortDisabled) {
|
1311
1315
|
initSort(table, cell, e);
|
1312
1316
|
}
|
@@ -2714,7 +2718,7 @@
|
|
2714
2718
|
|
2715
2719
|
})(jQuery);
|
2716
2720
|
|
2717
|
-
/*! Widget: filter - updated
|
2721
|
+
/*! Widget: filter - updated 9/1/2015 (v2.23.3) *//*
|
2718
2722
|
* Requires tablesorter v2.8+ and jQuery 1.7+
|
2719
2723
|
* by Rob Garrison
|
2720
2724
|
*/
|
@@ -2777,7 +2781,7 @@
|
|
2777
2781
|
.split( ' ' ).join( c.namespace + 'filter ' );
|
2778
2782
|
$table
|
2779
2783
|
.removeClass( 'hasFilters' )
|
2780
|
-
// add
|
2784
|
+
// add filter namespace to all BUT search
|
2781
2785
|
.unbind( events.replace( ts.regex.spaces, ' ' ) )
|
2782
2786
|
// remove the filter row even if refreshing, because the column might have been moved
|
2783
2787
|
.find( '.' + tscss.filterRow ).remove();
|
@@ -2788,7 +2792,7 @@
|
|
2788
2792
|
ts.processTbody( table, $tbody, false ); // restore tbody
|
2789
2793
|
}
|
2790
2794
|
if ( wo.filter_reset ) {
|
2791
|
-
$( document ).undelegate( wo.filter_reset, 'click.
|
2795
|
+
$( document ).undelegate( wo.filter_reset, 'click' + c.namespace + 'filter' );
|
2792
2796
|
}
|
2793
2797
|
}
|
2794
2798
|
});
|
@@ -3158,8 +3162,8 @@
|
|
3158
3162
|
} else if ( $( wo.filter_reset ).length ) {
|
3159
3163
|
// reset is a jQuery selector, use event delegation
|
3160
3164
|
$( document )
|
3161
|
-
.undelegate( wo.filter_reset, 'click.
|
3162
|
-
.delegate( wo.filter_reset, 'click.
|
3165
|
+
.undelegate( wo.filter_reset, 'click' + c.namespace + 'filter' )
|
3166
|
+
.delegate( wo.filter_reset, 'click' + c.namespace + 'filter', function() {
|
3163
3167
|
// trigger a reset event, so other functions ( filter_formatter ) know when to reset
|
3164
3168
|
c.$table.trigger( 'filterReset' );
|
3165
3169
|
});
|
@@ -3474,8 +3478,8 @@
|
|
3474
3478
|
// don't get cached data, in case data-column changes dynamically
|
3475
3479
|
var column = parseInt( $( this ).attr( 'data-column' ), 10 );
|
3476
3480
|
// don't allow 'change' event to process if the input value is the same - fixes #685
|
3477
|
-
if ( event.which === 13 || event.type === 'search' ||
|
3478
|
-
event.type === 'change' && this.value !== c.lastSearch[column] ) {
|
3481
|
+
if ( wo.filter_initialized && ( event.which === 13 || event.type === 'search' ||
|
3482
|
+
event.type === 'change' && this.value !== c.lastSearch[column] ) ) {
|
3479
3483
|
event.preventDefault();
|
3480
3484
|
// init search with no delay
|
3481
3485
|
$( this ).attr( 'data-lastSearchTime', new Date().getTime() );
|
@@ -4321,7 +4325,8 @@
|
|
4321
4325
|
}
|
4322
4326
|
$column
|
4323
4327
|
.val( setFilters[ i ] )
|
4324
|
-
.
|
4328
|
+
// must include a namespace here; but not c.namespace + 'filter'?
|
4329
|
+
.trigger( 'change' + c.namespace );
|
4325
4330
|
} else {
|
4326
4331
|
filters[i] = $column.val() || '';
|
4327
4332
|
// don't change the first... it will move the cursor
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! TableSorter (FORK) v2.23.
|
1
|
+
/*! TableSorter (FORK) v2.23.3 *//*
|
2
2
|
* Client-side table sorting with ease!
|
3
3
|
* @requires jQuery v1.2.6+
|
4
4
|
*
|
@@ -17,7 +17,6 @@
|
|
17
17
|
* @contributor Rob Garrison - https://github.com/Mottie/tablesorter
|
18
18
|
*/
|
19
19
|
/*jshint browser:true, jquery:true, unused:false, expr: true */
|
20
|
-
/*global console:false */
|
21
20
|
;(function($){
|
22
21
|
'use strict';
|
23
22
|
$.extend({
|
@@ -26,7 +25,7 @@
|
|
26
25
|
|
27
26
|
var ts = this;
|
28
27
|
|
29
|
-
ts.version = '2.23.
|
28
|
+
ts.version = '2.23.3';
|
30
29
|
|
31
30
|
ts.parsers = [];
|
32
31
|
ts.widgets = [];
|
@@ -558,8 +557,10 @@
|
|
558
557
|
for (i = 0; i < len; i++) {
|
559
558
|
// direction = 2 means reset!
|
560
559
|
if (list[i][1] !== 2) {
|
561
|
-
// multicolumn sorting updating -
|
562
|
-
f = c
|
560
|
+
// multicolumn sorting updating - see #1005
|
561
|
+
f = c.lastClickedIndex > 0 ? c.$headers.filter(':gt(' + ( c.lastClickedIndex - 1 ) + ')') : c.$headers;
|
562
|
+
// choose the :last in case there are nested columns
|
563
|
+
f = f.not('.sorter-false').filter('[data-column="' + list[i][0] + '"]' + (len === 1 ? ':last' : '') );
|
563
564
|
if (f.length) {
|
564
565
|
for (j = 0; j < f.length; j++) {
|
565
566
|
if (!f[j].sortDisabled) {
|
@@ -1288,7 +1289,10 @@
|
|
1288
1289
|
$cell = $.fn.closest ? $(this).closest('th, td') : /TH|TD/.test(this.nodeName) ? $(this) : $(this).parents('th, td');
|
1289
1290
|
// reference original table headers and find the same cell
|
1290
1291
|
// don't use $headers or IE8 throws an error - see #987
|
1291
|
-
|
1292
|
+
temp = $headers.index( $cell );
|
1293
|
+
c.lastClickedIndex = ( temp < 0 ) ? $cell.attr('data-column') : temp;
|
1294
|
+
// use column index if $headers is undefined
|
1295
|
+
cell = c.$headers[ c.lastClickedIndex ];
|
1292
1296
|
if (cell && !cell.sortDisabled) {
|
1293
1297
|
initSort(table, cell, e);
|
1294
1298
|
}
|
@@ -4,7 +4,7 @@
|
|
4
4
|
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀▀██
|
5
5
|
█████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
|
6
6
|
*/
|
7
|
-
/*! tablesorter (FORK) - updated
|
7
|
+
/*! tablesorter (FORK) - updated 09-01-2015 (v2.23.3)*/
|
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
|
375
|
+
/*! Widget: filter - updated 9/1/2015 (v2.23.3) *//*
|
376
376
|
* Requires tablesorter v2.8+ and jQuery 1.7+
|
377
377
|
* by Rob Garrison
|
378
378
|
*/
|
@@ -435,7 +435,7 @@
|
|
435
435
|
.split( ' ' ).join( c.namespace + 'filter ' );
|
436
436
|
$table
|
437
437
|
.removeClass( 'hasFilters' )
|
438
|
-
// add
|
438
|
+
// add filter namespace to all BUT search
|
439
439
|
.unbind( events.replace( ts.regex.spaces, ' ' ) )
|
440
440
|
// remove the filter row even if refreshing, because the column might have been moved
|
441
441
|
.find( '.' + tscss.filterRow ).remove();
|
@@ -446,7 +446,7 @@
|
|
446
446
|
ts.processTbody( table, $tbody, false ); // restore tbody
|
447
447
|
}
|
448
448
|
if ( wo.filter_reset ) {
|
449
|
-
$( document ).undelegate( wo.filter_reset, 'click.
|
449
|
+
$( document ).undelegate( wo.filter_reset, 'click' + c.namespace + 'filter' );
|
450
450
|
}
|
451
451
|
}
|
452
452
|
});
|
@@ -816,8 +816,8 @@
|
|
816
816
|
} else if ( $( wo.filter_reset ).length ) {
|
817
817
|
// reset is a jQuery selector, use event delegation
|
818
818
|
$( document )
|
819
|
-
.undelegate( wo.filter_reset, 'click.
|
820
|
-
.delegate( wo.filter_reset, 'click.
|
819
|
+
.undelegate( wo.filter_reset, 'click' + c.namespace + 'filter' )
|
820
|
+
.delegate( wo.filter_reset, 'click' + c.namespace + 'filter', function() {
|
821
821
|
// trigger a reset event, so other functions ( filter_formatter ) know when to reset
|
822
822
|
c.$table.trigger( 'filterReset' );
|
823
823
|
});
|
@@ -1132,8 +1132,8 @@
|
|
1132
1132
|
// don't get cached data, in case data-column changes dynamically
|
1133
1133
|
var column = parseInt( $( this ).attr( 'data-column' ), 10 );
|
1134
1134
|
// don't allow 'change' event to process if the input value is the same - fixes #685
|
1135
|
-
if ( event.which === 13 || event.type === 'search' ||
|
1136
|
-
event.type === 'change' && this.value !== c.lastSearch[column] ) {
|
1135
|
+
if ( wo.filter_initialized && ( event.which === 13 || event.type === 'search' ||
|
1136
|
+
event.type === 'change' && this.value !== c.lastSearch[column] ) ) {
|
1137
1137
|
event.preventDefault();
|
1138
1138
|
// init search with no delay
|
1139
1139
|
$( this ).attr( 'data-lastSearchTime', new Date().getTime() );
|
@@ -1979,7 +1979,8 @@
|
|
1979
1979
|
}
|
1980
1980
|
$column
|
1981
1981
|
.val( setFilters[ i ] )
|
1982
|
-
.
|
1982
|
+
// must include a namespace here; but not c.namespace + 'filter'?
|
1983
|
+
.trigger( 'change' + c.namespace );
|
1983
1984
|
} else {
|
1984
1985
|
filters[i] = $column.val() || '';
|
1985
1986
|
// don't change the first... it will move the cursor
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! Widget: filter - updated
|
1
|
+
/*! Widget: filter - updated 9/1/2015 (v2.23.3) *//*
|
2
2
|
* Requires tablesorter v2.8+ and jQuery 1.7+
|
3
3
|
* by Rob Garrison
|
4
4
|
*/
|
@@ -61,7 +61,7 @@
|
|
61
61
|
.split( ' ' ).join( c.namespace + 'filter ' );
|
62
62
|
$table
|
63
63
|
.removeClass( 'hasFilters' )
|
64
|
-
// add
|
64
|
+
// add filter namespace to all BUT search
|
65
65
|
.unbind( events.replace( ts.regex.spaces, ' ' ) )
|
66
66
|
// remove the filter row even if refreshing, because the column might have been moved
|
67
67
|
.find( '.' + tscss.filterRow ).remove();
|
@@ -72,7 +72,7 @@
|
|
72
72
|
ts.processTbody( table, $tbody, false ); // restore tbody
|
73
73
|
}
|
74
74
|
if ( wo.filter_reset ) {
|
75
|
-
$( document ).undelegate( wo.filter_reset, 'click.
|
75
|
+
$( document ).undelegate( wo.filter_reset, 'click' + c.namespace + 'filter' );
|
76
76
|
}
|
77
77
|
}
|
78
78
|
});
|
@@ -442,8 +442,8 @@
|
|
442
442
|
} else if ( $( wo.filter_reset ).length ) {
|
443
443
|
// reset is a jQuery selector, use event delegation
|
444
444
|
$( document )
|
445
|
-
.undelegate( wo.filter_reset, 'click.
|
446
|
-
.delegate( wo.filter_reset, 'click.
|
445
|
+
.undelegate( wo.filter_reset, 'click' + c.namespace + 'filter' )
|
446
|
+
.delegate( wo.filter_reset, 'click' + c.namespace + 'filter', function() {
|
447
447
|
// trigger a reset event, so other functions ( filter_formatter ) know when to reset
|
448
448
|
c.$table.trigger( 'filterReset' );
|
449
449
|
});
|
@@ -758,8 +758,8 @@
|
|
758
758
|
// don't get cached data, in case data-column changes dynamically
|
759
759
|
var column = parseInt( $( this ).attr( 'data-column' ), 10 );
|
760
760
|
// don't allow 'change' event to process if the input value is the same - fixes #685
|
761
|
-
if ( event.which === 13 || event.type === 'search' ||
|
762
|
-
event.type === 'change' && this.value !== c.lastSearch[column] ) {
|
761
|
+
if ( wo.filter_initialized && ( event.which === 13 || event.type === 'search' ||
|
762
|
+
event.type === 'change' && this.value !== c.lastSearch[column] ) ) {
|
763
763
|
event.preventDefault();
|
764
764
|
// init search with no delay
|
765
765
|
$( this ).attr( 'data-lastSearchTime', new Date().getTime() );
|
@@ -1605,7 +1605,8 @@
|
|
1605
1605
|
}
|
1606
1606
|
$column
|
1607
1607
|
.val( setFilters[ i ] )
|
1608
|
-
.
|
1608
|
+
// must include a namespace here; but not c.namespace + 'filter'?
|
1609
|
+
.trigger( 'change' + c.namespace );
|
1609
1610
|
} else {
|
1610
1611
|
filters[i] = $column.val() || '';
|
1611
1612
|
// don't change the first... it will move the cursor
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! Widget: grouping - updated
|
1
|
+
/*! Widget: grouping - updated 9/1/2015 (v2.23.3) *//*
|
2
2
|
* Requires tablesorter v2.8+ and jQuery 1.7+
|
3
3
|
* by Rob Garrison
|
4
4
|
*/
|
@@ -55,10 +55,13 @@
|
|
55
55
|
update : function(table, c, wo){
|
56
56
|
if ($.isEmptyObject(c.cache)) { return; }
|
57
57
|
var rowIndex, tbodyIndex, currentGroup, $rows, groupClass, grouping, norm_rows, saveName, direction,
|
58
|
-
|
58
|
+
hasSort = typeof c.sortList[0] !== 'undefined',
|
59
59
|
group = '',
|
60
|
+
groupIndex = 0,
|
60
61
|
savedGroup = false,
|
61
|
-
column =
|
62
|
+
column = typeof wo.group_forceColumn[0] !== 'undefined' ?
|
63
|
+
( wo.group_enforceSort && !hasSort ? -1 : wo.group_forceColumn[0] ) :
|
64
|
+
( hasSort ? c.sortList[0][0] : -1 );
|
62
65
|
c.$table
|
63
66
|
.find('tr.group-hidden').removeClass('group-hidden').end()
|
64
67
|
.find('tr.group-header').remove();
|
@@ -66,7 +69,7 @@
|
|
66
69
|
// clear pager saved spacer height (in case the rows are collapsed)
|
67
70
|
c.$table.data('pagerSavedHeight', 0);
|
68
71
|
}
|
69
|
-
if (column >= 0 && !c.$headerIndexed[column].hasClass('group-false')) {
|
72
|
+
if (column >= 0 && column < c.columns && !c.$headerIndexed[column].hasClass('group-false')) {
|
70
73
|
wo.group_currentGroup = ''; // save current groups
|
71
74
|
wo.group_currentGroups = {};
|
72
75
|
|
@@ -78,10 +81,10 @@
|
|
78
81
|
// save current grouping
|
79
82
|
if (wo.group_collapsible && wo.group_saveGroups && ts.storage) {
|
80
83
|
wo.group_currentGroups = ts.storage( table, 'tablesorter-groups' ) || {};
|
81
|
-
// include direction when
|
82
|
-
direction =
|
84
|
+
// include direction when saving groups (reversed numbers shows different range values)
|
85
|
+
direction = 'dir' + c.sortList[0][1];
|
83
86
|
// combine column, sort direction & grouping as save key
|
84
|
-
saveName = wo.group_currentGroup = '' +
|
87
|
+
saveName = wo.group_currentGroup = '' + c.sortList[0][0] + direction + grouping.join('');
|
85
88
|
if (!wo.group_currentGroups[saveName]) {
|
86
89
|
wo.group_currentGroups[saveName] = [];
|
87
90
|
} else {
|
@@ -98,7 +101,7 @@
|
|
98
101
|
if (ts.grouping.types[grouping[1]]) {
|
99
102
|
currentGroup = norm_rows[rowIndex] ?
|
100
103
|
ts.grouping.types[grouping[1]]( c, c.$headerIndexed[column], norm_rows[rowIndex][column], /date/.test(groupClass) ?
|
101
|
-
grouping[2] : parseInt(grouping[2] || 1, 10) || 1, group
|
104
|
+
grouping[2] : parseInt(grouping[2] || 1, 10) || 1, group ) : currentGroup;
|
102
105
|
if (group !== currentGroup) {
|
103
106
|
group = currentGroup;
|
104
107
|
// show range if number > 1
|
@@ -110,9 +113,11 @@
|
|
110
113
|
currentGroup = wo.group_formatter((currentGroup || '').toString(), column, table, c, wo) || currentGroup;
|
111
114
|
}
|
112
115
|
$rows.eq(rowIndex).before('<tr class="group-header ' + c.selectorRemove.slice(1) +
|
113
|
-
'" unselectable="on"' + ( c.tabIndex ? '
|
114
|
-
|
115
|
-
|
116
|
+
'" unselectable="on" ' + ( c.tabIndex ? 'tabindex="0" ' : '' ) + 'data-group-index="' +
|
117
|
+
( groupIndex++ ) + '"><td colspan="' + c.columns + '">' +
|
118
|
+
( wo.group_collapsible ? '<i/>' : '' ) +
|
119
|
+
'<span class="group-name">' + currentGroup + '</span>' +
|
120
|
+
'<span class="group-count"></span></td></tr>');
|
116
121
|
if (wo.group_saveGroups && !savedGroup && wo.group_collapsed && wo.group_collapsible) {
|
117
122
|
// all groups start collapsed
|
118
123
|
wo.group_currentGroups[wo.group_currentGroup].push(currentGroup);
|
@@ -139,8 +144,8 @@
|
|
139
144
|
}
|
140
145
|
}
|
141
146
|
}
|
142
|
-
if (wo.group_saveGroups && wo.group_currentGroups
|
143
|
-
name = $row.find('.group-name').text().toLowerCase();
|
147
|
+
if (wo.group_saveGroups && !$.isEmptyObject(wo.group_currentGroups) && wo.group_currentGroups[wo.group_currentGroup].length) {
|
148
|
+
name = $row.find('.group-name').text().toLowerCase() + $row.attr('data-group-index');
|
144
149
|
isHidden = $.inArray( name, wo.group_currentGroups[wo.group_currentGroup] ) > -1;
|
145
150
|
$row.toggleClass('collapsed', isHidden);
|
146
151
|
$rows.toggleClass('group-hidden', isHidden);
|
@@ -163,7 +168,7 @@
|
|
163
168
|
if (event.type === 'keyup' && event.which !== 13) { return; }
|
164
169
|
var isCollapsed, $groups, indx,
|
165
170
|
$this = $(this),
|
166
|
-
name = $this.find('.group-name').text().toLowerCase();
|
171
|
+
name = $this.find('.group-name').text().toLowerCase() + $this.attr('data-group-index');
|
167
172
|
// use shift-click to toggle ALL groups
|
168
173
|
if (event.shiftKey && (event.type === 'click' || event.type === 'keyup')) {
|
169
174
|
$this.siblings('.group-header').trigger('toggleGroup');
|
@@ -221,6 +226,10 @@
|
|
221
226
|
group_callback : null, // function($cell, $rows, column, table){}, callback allowing modification of the group header labels
|
222
227
|
group_complete : 'groupingComplete', // event triggered on the table when the grouping widget has finished work
|
223
228
|
|
229
|
+
// apply the grouping widget only to selected column
|
230
|
+
group_forceColumn : [], // only the first value is used; set as an array for future expansion
|
231
|
+
group_enforceSort : true, // only apply group_forceColumn when a sort is applied to the table
|
232
|
+
|
224
233
|
// checkbox parser text used for checked/unchecked values
|
225
234
|
group_checkbox : [ 'checked', 'unchecked' ],
|
226
235
|
// change these default date names based on your language preferences
|
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.18.
|
4
|
+
version: 1.18.3
|
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: 2015-
|
12
|
+
date: 2015-09-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: railties
|
@@ -169,7 +169,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
169
169
|
version: '0'
|
170
170
|
requirements: []
|
171
171
|
rubyforge_project:
|
172
|
-
rubygems_version: 2.4.
|
172
|
+
rubygems_version: 2.4.8
|
173
173
|
signing_key:
|
174
174
|
specification_version: 4
|
175
175
|
summary: Simple integration of jquery-tablesorter (Mottie's fork) into the Rails asset
|