jquery-tablesorter 1.18.2 → 1.18.3
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 +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
|