jquery-tablesorter 1.24.5 → 1.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/jquery-tablesorter/version.rb +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.js +85 -85
- data/vendor/assets/javascripts/jquery-tablesorter/beta-testing/widget-reorder.js +17 -18
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.combined.js +128 -101
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.js +70 -58
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.widgets.js +58 -43
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-extract.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-iso8601.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-month.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-range.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-two-digit-year.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-weekday.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-duration.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-feet-inch-fraction.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-file-type.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-ignore-articles.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-image.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-input-select.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-leading-zeros.js +1 -0
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-named-numbers.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-network.js +4 -4
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-roman.js +5 -5
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-alignChar.js +15 -15
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-build-table.js +28 -18
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-chart.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-columnSelector.js +22 -18
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-cssStickyHeaders.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-formatter-html5.js +34 -31
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-formatter-jui.js +46 -46
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-formatter-select2.js +10 -10
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-type-insideRange.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter.js +17 -13
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-formatter.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-grouping.js +14 -15
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-headerTitles.js +8 -9
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-lazyload.js +35 -35
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-math.js +8 -9
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-output.js +7 -6
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-pager.js +60 -56
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-print.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-reflow.js +11 -11
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-repeatheaders.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-resizable.js +3 -3
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-saveSort.js +23 -12
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-scroller.js +3 -4
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-sort2Hash.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-sortTbodies.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-staticRow.js +7 -7
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-stickyHeaders.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-storage.js +5 -6
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-uitheme.js +7 -6
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-vertical-group.js +10 -12
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-view.js +3 -3
- metadata +2 -2
@@ -6,7 +6,7 @@
|
|
6
6
|
;( function( $ ) {
|
7
7
|
'use strict';
|
8
8
|
|
9
|
-
var updateServer = function( event, $table, $input ) {
|
9
|
+
var updateServer = function( /* event, $table, $input */ ) {
|
10
10
|
// do something here to update your server, if needed
|
11
11
|
// event = change event object
|
12
12
|
// $table = jQuery object of the table that was just updated
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/*! Parser: network - updated 2018-01-10 (v2.29.3) */
|
2
2
|
/* IPv4, IPv6 and MAC Addresses */
|
3
3
|
/*global jQuery: false */
|
4
|
-
;(function($){
|
4
|
+
;(function($) {
|
5
5
|
'use strict';
|
6
6
|
|
7
7
|
var ts = $.tablesorter,
|
@@ -47,13 +47,13 @@
|
|
47
47
|
if (ts.regex.ipv4Validate.test(address)) {
|
48
48
|
groups = address.match(ts.regex.ipv4Extract);
|
49
49
|
t = '';
|
50
|
-
for (i = 1; i < groups.length; i++){
|
50
|
+
for (i = 1; i < groups.length; i++) {
|
51
51
|
t += ('00' + (parseInt(groups[i], 10).toString(16)) ).slice(-2) + ( i === 2 ? ':' : '' );
|
52
52
|
}
|
53
53
|
address = address.replace( ts.regex.ipv4Extract, t );
|
54
54
|
}
|
55
55
|
|
56
|
-
if (address.indexOf('::')
|
56
|
+
if (address.indexOf('::') === -1) {
|
57
57
|
// All eight groups are present
|
58
58
|
fullAddress = address;
|
59
59
|
} else {
|
@@ -74,7 +74,7 @@
|
|
74
74
|
// it's fastest & easiest for tablesorter to sort decimal values (vs hex)
|
75
75
|
groups[i] = hex ? ('0000' + groups[i]).slice(-4) :
|
76
76
|
('00000' + (parseInt(groups[i], 16) || 0)).slice(-5);
|
77
|
-
expandedAddress += ( i
|
77
|
+
expandedAddress += ( i !== validGroupCount - 1) ? groups[i] + ':' : groups[i];
|
78
78
|
}
|
79
79
|
return expandedAddress;
|
80
80
|
},
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* Jonathan Snook comment @ http://blog.stevenlevithan.com/archives/javascript-roman-numeral-converter#comment-16140
|
5
5
|
*/
|
6
6
|
/*jshint jquery:true, unused:false */
|
7
|
-
;(function($){
|
7
|
+
;(function($) {
|
8
8
|
'use strict';
|
9
9
|
|
10
10
|
// allow lower case roman numerals, since lists use i, ii, iii, etc.
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
$.tablesorter.addParser({
|
16
16
|
id: 'roman',
|
17
|
-
is: function(){
|
17
|
+
is: function() {
|
18
18
|
return false;
|
19
19
|
},
|
20
20
|
format: function(s) {
|
@@ -39,7 +39,7 @@
|
|
39
39
|
|
40
40
|
$.tablesorter.addParser({
|
41
41
|
id: 'roman-ignore',
|
42
|
-
is: function(){
|
42
|
+
is: function() {
|
43
43
|
return false;
|
44
44
|
},
|
45
45
|
format: function(s, table, cell, column) {
|
@@ -80,13 +80,13 @@
|
|
80
80
|
|
81
81
|
$.tablesorter.addParser({
|
82
82
|
id: 'roman-extract',
|
83
|
-
is: function(){
|
83
|
+
is: function() {
|
84
84
|
return false;
|
85
85
|
},
|
86
86
|
format: function(s) {
|
87
87
|
var val,
|
88
88
|
// find roman numerals
|
89
|
-
roman = $.grep(s.split(/\b/), function(v
|
89
|
+
roman = $.grep(s.split(/\b/), function(v) {
|
90
90
|
return validator.test(v) ? v : '';
|
91
91
|
}).join('').match(matcher),
|
92
92
|
|
@@ -4,14 +4,14 @@
|
|
4
4
|
*/
|
5
5
|
/*jshint browser:true, jquery:true, unused:false */
|
6
6
|
/*global jQuery: false */
|
7
|
-
;(function($){
|
7
|
+
;(function($) {
|
8
8
|
'use strict';
|
9
9
|
var ts = $.tablesorter;
|
10
10
|
|
11
11
|
ts.alignChar = {
|
12
12
|
|
13
13
|
init : function(table, c, wo) {
|
14
|
-
c.$headers.filter('[' + wo.alignChar_charAttrib + ']').each(function(){
|
14
|
+
c.$headers.filter('[' + wo.alignChar_charAttrib + ']').each(function() {
|
15
15
|
var $this = $(this),
|
16
16
|
vars = {
|
17
17
|
column : this.column,
|
@@ -27,14 +27,14 @@
|
|
27
27
|
});
|
28
28
|
},
|
29
29
|
|
30
|
-
setup: function(table, c, wo, v){
|
30
|
+
setup: function(table, c, wo, v) {
|
31
31
|
// do nothing for empty tables
|
32
32
|
if ($.isEmptyObject(c.cache)) { return; }
|
33
33
|
var tbodyIndex, rowIndex, start, end, last, index, rows, val, count,
|
34
34
|
len, wLeft, wRight, alignChar, $row,
|
35
35
|
left = [],
|
36
36
|
right = [];
|
37
|
-
for (tbodyIndex = 0; tbodyIndex < c.$tbodies.length; tbodyIndex++){
|
37
|
+
for (tbodyIndex = 0; tbodyIndex < c.$tbodies.length; tbodyIndex++) {
|
38
38
|
rows = c.cache[tbodyIndex];
|
39
39
|
len = rows.normalized.length;
|
40
40
|
for (rowIndex = 0; rowIndex < len; rowIndex++) {
|
@@ -70,14 +70,14 @@
|
|
70
70
|
}
|
71
71
|
|
72
72
|
// find widest segments
|
73
|
-
wLeft = ($.extend([], left)).sort(function(a, b){ return b.length - a.length; })[0];
|
74
|
-
wRight = ($.extend([], right)).sort(function(a, b){ return b.length - a.length; })[0];
|
73
|
+
wLeft = ($.extend([], left)).sort(function(a, b) { return b.length - a.length; })[0];
|
74
|
+
wRight = ($.extend([], right)).sort(function(a, b) { return b.length - a.length; })[0];
|
75
75
|
// calculate percentage widths
|
76
76
|
v.width = v.width || ( Math.floor(wLeft.length / (wLeft.length + wRight.length) * 100) + v.adjust );
|
77
77
|
wLeft = 'min-width:' + v.width + '%';
|
78
78
|
wRight = 'min-width:' + (100 - v.width) + '%';
|
79
79
|
|
80
|
-
for (tbodyIndex = 0; tbodyIndex < c.$tbodies.length; tbodyIndex++){
|
80
|
+
for (tbodyIndex = 0; tbodyIndex < c.$tbodies.length; tbodyIndex++) {
|
81
81
|
rows = c.cache[tbodyIndex];
|
82
82
|
len = rows.normalized.length;
|
83
83
|
for (rowIndex = 0; rowIndex < len; rowIndex++) {
|
@@ -94,10 +94,10 @@
|
|
94
94
|
|
95
95
|
},
|
96
96
|
|
97
|
-
remove: function(table, c, column){
|
97
|
+
remove: function(table, c, column) {
|
98
98
|
if ($.isEmptyObject(c.cache)) { return; }
|
99
99
|
var tbodyIndex, rowIndex, len, rows, $row, $cell;
|
100
|
-
for (tbodyIndex = 0; tbodyIndex < c.$tbodies.length; tbodyIndex++){
|
100
|
+
for (tbodyIndex = 0; tbodyIndex < c.$tbodies.length; tbodyIndex++) {
|
101
101
|
rows = c.cache[tbodyIndex];
|
102
102
|
len = rows.normalized.length;
|
103
103
|
for (rowIndex = 0; rowIndex < len; rowIndex++) {
|
@@ -118,26 +118,26 @@
|
|
118
118
|
alignChar_indexAttrib : 'data-align-index',
|
119
119
|
alignChar_adjustAttrib : 'data-align-adjust' // percentage width adjustments
|
120
120
|
},
|
121
|
-
init: function(table, thisWidget, c, wo){
|
121
|
+
init: function(table, thisWidget, c, wo) {
|
122
122
|
wo.alignChar_initialized = false;
|
123
123
|
wo.alignChar_savedVars = [];
|
124
124
|
ts.alignChar.init(table, c, wo);
|
125
|
-
c.$table.on('pagerEnd refreshAlign', function(){
|
126
|
-
c.$headers.filter('[' + wo.alignChar_charAttrib + ']').each(function(){
|
125
|
+
c.$table.on('pagerEnd refreshAlign', function() {
|
126
|
+
c.$headers.filter('[' + wo.alignChar_charAttrib + ']').each(function() {
|
127
127
|
ts.alignChar.remove(table, c, this.column);
|
128
128
|
});
|
129
129
|
ts.alignChar.init(table, c, wo);
|
130
130
|
});
|
131
131
|
},
|
132
|
-
format : function(table, c, wo){
|
132
|
+
format : function(table, c, wo) {
|
133
133
|
// reinitialize in case table is empty when first initialized
|
134
134
|
if (!wo.alignChar_initialized) {
|
135
135
|
c.$table.triggerHandler('refreshAlign');
|
136
136
|
}
|
137
137
|
},
|
138
|
-
remove : function(table, c, wo, refreshing){
|
138
|
+
remove : function(table, c, wo, refreshing) {
|
139
139
|
if (refreshing) { return; }
|
140
|
-
c.$headers.filter('[' + wo.alignChar_charAttrib + ']').each(function(){
|
140
|
+
c.$headers.filter('[' + wo.alignChar_charAttrib + ']').each(function() {
|
141
141
|
ts.alignChar.remove(table, c, this.column);
|
142
142
|
});
|
143
143
|
wo.alignChar_initialized = false;
|
@@ -1,17 +1,17 @@
|
|
1
|
-
/*! Widget: Build Table - updated
|
1
|
+
/*! Widget: Build Table - updated 2018-03-18 (v2.30.0) *//*
|
2
2
|
* for tableSorter v2.16.0+
|
3
3
|
* by Rob Garrison
|
4
4
|
*/
|
5
5
|
/*jshint browser:true, jquery:true, unused:false */
|
6
6
|
/*global jQuery: false */
|
7
|
-
;(function($){
|
7
|
+
;(function($) {
|
8
8
|
'use strict';
|
9
9
|
var ts = $.tablesorter = $.tablesorter || {},
|
10
10
|
|
11
11
|
// build a table from data (requires existing <table> tag)
|
12
12
|
// data.header contains an array of header titles
|
13
13
|
// data.rows contains an array of rows which contains an array of cells
|
14
|
-
bt = ts.buildTable = function(tar, c){
|
14
|
+
bt = ts.buildTable = function(tar, c) {
|
15
15
|
// add build options to defaults to prevent warnings
|
16
16
|
$.extend(true, ts.defaults.widgetOptions, bt.defaults);
|
17
17
|
// add table if one doesn't exist
|
@@ -21,9 +21,10 @@
|
|
21
21
|
p = wo.build_processing,
|
22
22
|
typ = wo.build_type,
|
23
23
|
d = wo.build_source || c.data,
|
24
|
+
debug = ts.debug(c, 'build'),
|
24
25
|
|
25
26
|
// determine type: html, json, array, csv, object
|
26
|
-
runType = function(d){
|
27
|
+
runType = function(d) {
|
27
28
|
var t = $.type(d),
|
28
29
|
jq = d instanceof jQuery;
|
29
30
|
// run any processing if set
|
@@ -59,7 +60,9 @@
|
|
59
60
|
|
60
61
|
// even if wo.build_type is undefined, we can try to figure out the type
|
61
62
|
if ( !ts.buildTable.hasOwnProperty(typ) && typ !== '' ) {
|
62
|
-
if (
|
63
|
+
if (debug) {
|
64
|
+
console.error('Build >> ERROR: Aborting build table widget, incorrect build type');
|
65
|
+
}
|
63
66
|
return false;
|
64
67
|
}
|
65
68
|
|
@@ -72,8 +75,10 @@
|
|
72
75
|
.done(function(data) {
|
73
76
|
runType(data);
|
74
77
|
})
|
75
|
-
.fail(function( jqXHR, textStatus
|
76
|
-
if (
|
78
|
+
.fail(function( jqXHR, textStatus) {
|
79
|
+
if (debug) {
|
80
|
+
console.error('Build >> ERROR: Aborting build table widget, failed ajax load');
|
81
|
+
}
|
77
82
|
$tbl.html('<tr><td class="error">' + jqXHR.status + ' ' + textStatus + '</td></tr>');
|
78
83
|
});
|
79
84
|
} else {
|
@@ -125,7 +130,7 @@
|
|
125
130
|
// add colgroup if widths set
|
126
131
|
if (widths && widths.length) {
|
127
132
|
t += '<colgroup>';
|
128
|
-
$.each(widths, function(i, w){
|
133
|
+
$.each(widths, function(i, w) {
|
129
134
|
t += '<col' + ( w ? ' style="width:' + w + '"' : '' ) + '>';
|
130
135
|
});
|
131
136
|
t += '</colgroup>';
|
@@ -133,7 +138,7 @@
|
|
133
138
|
return t;
|
134
139
|
},
|
135
140
|
// d = cell data; typ = 'th' or 'td'; first = save widths from first header row only
|
136
|
-
cell : function(d, wo, typ, col, first){
|
141
|
+
cell : function(d, wo, typ, col, first) {
|
137
142
|
var j, $td,
|
138
143
|
$col = first ? $('<col>') : '',
|
139
144
|
cls = wo.build_headers.classes,
|
@@ -150,7 +155,7 @@
|
|
150
155
|
// assume we have an object
|
151
156
|
$td = $('<' + typ + '>');
|
152
157
|
for (j in d) {
|
153
|
-
if (d.hasOwnProperty(j)){
|
158
|
+
if (d.hasOwnProperty(j)) {
|
154
159
|
if (j === 'text' || j === 'html') {
|
155
160
|
$td[j]( d[j] );
|
156
161
|
} else if (first && j === 'width') {
|
@@ -165,7 +170,7 @@
|
|
165
170
|
return [ $td, $col ];
|
166
171
|
},
|
167
172
|
// h1 = header text from data
|
168
|
-
header : function(h1, wo){
|
173
|
+
header : function(h1, wo) {
|
169
174
|
var h2 = wo.build_headers.text,
|
170
175
|
cls = wo.build_headers.classes,
|
171
176
|
t = '<tr>' + (wo.build_numbers.addColumn ? '<th' + (wo.build_numbers.sortable ? '' :
|
@@ -180,7 +185,7 @@
|
|
180
185
|
});
|
181
186
|
return t + '</tr>';
|
182
187
|
},
|
183
|
-
rows : function(items, txt, c, wo, num, ftr){
|
188
|
+
rows : function(items, txt, c, wo, num, ftr) {
|
184
189
|
var h = (ftr ? 'th' : 'td'),
|
185
190
|
t = '<tr>' + (wo.build_numbers.addColumn ? '<' + h + '>' + (ftr ? '' : num) + '</' + h + '>' : '');
|
186
191
|
$.each(items, function(i, item) {
|
@@ -196,8 +201,11 @@
|
|
196
201
|
}
|
197
202
|
};
|
198
203
|
|
199
|
-
bt.buildComplete = function(table, wo){
|
204
|
+
bt.buildComplete = function(table, wo) {
|
200
205
|
$(table).triggerHandler(wo.build_complete);
|
206
|
+
if (table.config && ts.debug(table.config, 'build')) {
|
207
|
+
console.log('Build >> Table build complete');
|
208
|
+
}
|
201
209
|
ts.setup(table, table.config);
|
202
210
|
};
|
203
211
|
|
@@ -361,7 +369,9 @@
|
|
361
369
|
r = data.hasOwnProperty(kr) && !$.isEmptyObject(data.kr) ? data.kr : data.hasOwnProperty('rows') ? data.rows : false;
|
362
370
|
|
363
371
|
if (!h || !r || h.length === 0 || r.length === 0) {
|
364
|
-
if (
|
372
|
+
if (ts.debug(c, 'build')) {
|
373
|
+
console.error('Build >> ERROR: Aborting build table widget, missing data for object build');
|
374
|
+
}
|
365
375
|
return false;
|
366
376
|
}
|
367
377
|
|
@@ -371,7 +381,7 @@
|
|
371
381
|
// Build thead
|
372
382
|
// h = [ ['headerRow1Cell1', 'headerRow1Cell2', ... 'headerRow1CellN' ], ['headerRow2Cell1', ... ] ]
|
373
383
|
// or h = [ [ { text: 'firstCell', class: 'fc', width: '20%' }, ..., { text: 'last Cell' } ], [ /* second row */ ] ]
|
374
|
-
$.each(h, function(i, d){
|
384
|
+
$.each(h, function(i, d) {
|
375
385
|
$tr = $('<tr>').appendTo( $t.find('thead') );
|
376
386
|
l = d.length; // header row
|
377
387
|
for ( j = 0; j < l; j++ ) {
|
@@ -388,14 +398,14 @@
|
|
388
398
|
|
389
399
|
$tb = $('<tbody>');
|
390
400
|
// Build tbody
|
391
|
-
$.each(r, function(i, d){
|
401
|
+
$.each(r, function(i, d) {
|
392
402
|
var j;
|
393
403
|
t = $.type(d) === 'object';
|
394
404
|
// add new tbody
|
395
405
|
if (t && d.newTbody) {
|
396
406
|
$tb = $('<tbody>').appendTo( $t );
|
397
407
|
for (j in d) {
|
398
|
-
if (d.hasOwnProperty(j) && j !== 'newTbody'){
|
408
|
+
if (d.hasOwnProperty(j) && j !== 'newTbody') {
|
399
409
|
$tb.attr(j, d[j]);
|
400
410
|
}
|
401
411
|
}
|
@@ -409,7 +419,7 @@
|
|
409
419
|
if (t) {
|
410
420
|
// row defined by object
|
411
421
|
for (j in d) {
|
412
|
-
if (d.hasOwnProperty(j) && j !== wo.build_objectCellKey){
|
422
|
+
if (d.hasOwnProperty(j) && j !== wo.build_objectCellKey) {
|
413
423
|
$tr.attr(j, d[j]);
|
414
424
|
}
|
415
425
|
}
|
@@ -1,10 +1,10 @@
|
|
1
|
-
/* Widget: columnSelector (responsive table widget) - updated
|
1
|
+
/* Widget: columnSelector (responsive table widget) - updated 2018-03-18 (v2.30.0) *//*
|
2
2
|
* Requires tablesorter v2.8+ and jQuery 1.7+
|
3
3
|
* by Justin Hallett & Rob Garrison
|
4
4
|
*/
|
5
5
|
/*jshint browser:true, jquery:true, unused:false */
|
6
6
|
/*global jQuery: false */
|
7
|
-
;(function($){
|
7
|
+
;(function($) {
|
8
8
|
'use strict';
|
9
9
|
|
10
10
|
var ts = $.tablesorter,
|
@@ -15,13 +15,14 @@
|
|
15
15
|
queryBreak : '@media all and (min-width: [size]) { [columns] { display: table-cell; } } ',
|
16
16
|
|
17
17
|
init: function(table, c, wo) {
|
18
|
-
var $t, colSel
|
18
|
+
var $t, colSel,
|
19
|
+
debug = ts.debug(c, 'columnSelector');
|
19
20
|
|
20
21
|
// abort if no input is contained within the layout
|
21
22
|
$t = $(wo.columnSelector_layout);
|
22
23
|
if (!$t.find('input').add( $t.filter('input') ).length) {
|
23
|
-
if (
|
24
|
-
console.error('ColumnSelector
|
24
|
+
if (debug) {
|
25
|
+
console.error('ColumnSelector >> ERROR: Column Selector aborting, no input found in the layout! ***');
|
25
26
|
}
|
26
27
|
return;
|
27
28
|
}
|
@@ -45,8 +46,8 @@
|
|
45
46
|
colSel.isInitializing = false;
|
46
47
|
if (colSel.$container.length) {
|
47
48
|
tsColSel.updateCols(c, wo);
|
48
|
-
} else if (
|
49
|
-
console.warn('ColumnSelector
|
49
|
+
} else if (debug) {
|
50
|
+
console.warn('ColumnSelector >> container not found');
|
50
51
|
}
|
51
52
|
|
52
53
|
c.$table
|
@@ -59,11 +60,14 @@
|
|
59
60
|
[ 'auto', [2,3,4] ] = set visible columns; turn on "auto" mode.
|
60
61
|
true = turn on "auto" mode.
|
61
62
|
*/
|
62
|
-
.on('refreshColumnSelector' + namespace, function( e, optName, optState ){
|
63
|
+
.on('refreshColumnSelector' + namespace, function( e, optName, optState ) {
|
63
64
|
// make sure we're using current config settings
|
64
65
|
tsColSel.refreshColumns( this.config, optName, optState );
|
65
66
|
});
|
66
67
|
|
68
|
+
if (debug) {
|
69
|
+
console.log('ColumnSelector >> Widget initialized');
|
70
|
+
}
|
67
71
|
},
|
68
72
|
|
69
73
|
refreshColumns: function( c, optName, optState ) {
|
@@ -87,7 +91,7 @@
|
|
87
91
|
if (isArry) {
|
88
92
|
arry = optState || optName;
|
89
93
|
// make sure array contains numbers
|
90
|
-
$.each(arry, function(i, v){
|
94
|
+
$.each(arry, function(i, v) {
|
91
95
|
arry[i] = parseInt(v, 10);
|
92
96
|
});
|
93
97
|
for (i = 0; i < c.columns; i++) {
|
@@ -229,7 +233,7 @@
|
|
229
233
|
.attr('data-column', 'auto')
|
230
234
|
.prop('checked', colSel.auto)
|
231
235
|
.toggleClass( wo.columnSelector_cssChecked, colSel.auto )
|
232
|
-
.on('change', function(){
|
236
|
+
.on('change', function() {
|
233
237
|
tsColSel.updateAuto(c, wo, $(this));
|
234
238
|
}).change();
|
235
239
|
}
|
@@ -243,7 +247,7 @@
|
|
243
247
|
updateAuto: function(c, wo, $el) {
|
244
248
|
var colSel = c.selector;
|
245
249
|
colSel.auto = $el.prop('checked') || false;
|
246
|
-
$.each( colSel.$checkbox, function(i, $cb){
|
250
|
+
$.each( colSel.$checkbox, function(i, $cb) {
|
247
251
|
if ($cb) {
|
248
252
|
$cb[0].disabled = colSel.auto;
|
249
253
|
colSel.$wrapper[i].toggleClass('disabled', colSel.auto);
|
@@ -257,7 +261,7 @@
|
|
257
261
|
if (c.selector.$popup) {
|
258
262
|
c.selector.$popup.find('.tablesorter-column-selector')
|
259
263
|
.html( colSel.$container.html() )
|
260
|
-
.find('input').each(function(){
|
264
|
+
.find('input').each(function() {
|
261
265
|
var indx = $(this).attr('data-column');
|
262
266
|
$(this).prop( 'checked', indx === 'auto' ? colSel.auto : colSel.states[indx] );
|
263
267
|
});
|
@@ -306,10 +310,10 @@
|
|
306
310
|
}
|
307
311
|
}
|
308
312
|
// only 6 breakpoints (same as jQuery Mobile)
|
309
|
-
for (priority = 0; priority < wo.columnSelector_maxPriorities; priority++){
|
313
|
+
for (priority = 0; priority < wo.columnSelector_maxPriorities; priority++) {
|
310
314
|
/*jshint loopfunc:true */
|
311
315
|
breaks = [];
|
312
|
-
c.$headers.filter('[' + wo.columnSelector_priority + '=' + (priority + 1) + ']').each(function(){
|
316
|
+
c.$headers.filter('[' + wo.columnSelector_priority + '=' + (priority + 1) + ']').each(function() {
|
313
317
|
column = parseInt($(this).attr('data-column'), 10) + 1;
|
314
318
|
// don't reveal columnSelector false columns
|
315
319
|
if ( !isHidden[ column ] ) {
|
@@ -340,14 +344,14 @@
|
|
340
344
|
colSel = c.selector,
|
341
345
|
styles = [],
|
342
346
|
prefix = c.namespace + 'columnselector';
|
343
|
-
colSel.$container.find('input[data-column]').filter('[data-column!="auto"]').each(function(){
|
347
|
+
colSel.$container.find('input[data-column]').filter('[data-column!="auto"]').each(function() {
|
344
348
|
if (!this.checked) {
|
345
349
|
column = parseInt( $(this).attr('data-column'), 10 ) + 1;
|
346
350
|
styles = styles.concat( tsColSel.addSelectors( wo, prefix, column ) );
|
347
351
|
}
|
348
352
|
$(this).toggleClass( wo.columnSelector_cssChecked, this.checked );
|
349
353
|
});
|
350
|
-
if (wo.columnSelector_mediaquery){
|
354
|
+
if (wo.columnSelector_mediaquery) {
|
351
355
|
colSel.$breakpoints.prop('disabled', true);
|
352
356
|
}
|
353
357
|
if (colSel.$style) {
|
@@ -451,7 +455,7 @@
|
|
451
455
|
wo = c.widgetOptions;
|
452
456
|
$popup.find('.tablesorter-column-selector')
|
453
457
|
.html( colSel.$container.html() )
|
454
|
-
.find('input').each(function(){
|
458
|
+
.find('input').each(function() {
|
455
459
|
var indx = $(this).attr('data-column'),
|
456
460
|
isChecked = indx === 'auto' ? colSel.auto : colSel.states[indx];
|
457
461
|
$(this)
|
@@ -503,7 +507,7 @@
|
|
503
507
|
// container layout
|
504
508
|
columnSelector_layout : '<label><input type="checkbox">{name}</label>',
|
505
509
|
// layout customizer callback called for each column
|
506
|
-
// function($cell, name, column){ return name || $cell.html(); }
|
510
|
+
// function($cell, name, column) { return name || $cell.html(); }
|
507
511
|
columnSelector_layoutCustomizer : null,
|
508
512
|
// data attribute containing column name to use in the selector container
|
509
513
|
columnSelector_name : 'data-selector-name',
|