jquery-tablesorter 1.24.5 → 1.25.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/jquery-tablesorter/version.rb +2 -2
  4. data/vendor/assets/javascripts/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.js +85 -85
  5. data/vendor/assets/javascripts/jquery-tablesorter/beta-testing/widget-reorder.js +17 -18
  6. data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.combined.js +128 -101
  7. data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.js +70 -58
  8. data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.widgets.js +58 -43
  9. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-extract.js +1 -1
  10. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-iso8601.js +1 -1
  11. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-month.js +1 -1
  12. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-range.js +1 -1
  13. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-two-digit-year.js +2 -2
  14. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-weekday.js +1 -1
  15. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date.js +1 -1
  16. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-duration.js +1 -1
  17. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-feet-inch-fraction.js +2 -2
  18. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-file-type.js +2 -2
  19. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-ignore-articles.js +1 -1
  20. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-image.js +2 -2
  21. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-input-select.js +1 -1
  22. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-leading-zeros.js +1 -0
  23. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-named-numbers.js +1 -1
  24. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-network.js +4 -4
  25. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-roman.js +5 -5
  26. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-alignChar.js +15 -15
  27. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-build-table.js +28 -18
  28. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-chart.js +1 -1
  29. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-columnSelector.js +22 -18
  30. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-cssStickyHeaders.js +1 -1
  31. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-formatter-html5.js +34 -31
  32. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-formatter-jui.js +46 -46
  33. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-formatter-select2.js +10 -10
  34. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-type-insideRange.js +1 -1
  35. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter.js +17 -13
  36. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-formatter.js +2 -2
  37. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-grouping.js +14 -15
  38. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-headerTitles.js +8 -9
  39. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-lazyload.js +35 -35
  40. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-math.js +8 -9
  41. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-output.js +7 -6
  42. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-pager.js +60 -56
  43. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-print.js +1 -1
  44. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-reflow.js +11 -11
  45. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-repeatheaders.js +2 -2
  46. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-resizable.js +3 -3
  47. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-saveSort.js +23 -12
  48. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-scroller.js +3 -4
  49. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-sort2Hash.js +2 -2
  50. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-sortTbodies.js +1 -1
  51. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-staticRow.js +7 -7
  52. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-stickyHeaders.js +2 -2
  53. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-storage.js +5 -6
  54. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-uitheme.js +7 -6
  55. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-vertical-group.js +10 -12
  56. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-view.js +3 -3
  57. 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
@@ -18,6 +18,7 @@
18
18
  str = number.toString();
19
19
  if (
20
20
  !isNaN( number ) &&
21
+ // eslint-disable-next-line eqeqeq
21
22
  number == val && // jshint ignore:line
22
23
  val.length !== str.length
23
24
  ) {
@@ -2,7 +2,7 @@
2
2
  * code modified from http://stackoverflow.com/a/12014376/145346
3
3
  */
4
4
  /*jshint jquery:true */
5
- ;(function($){
5
+ ;(function($) {
6
6
  'use strict';
7
7
 
8
8
  // Change language of the named numbers as needed
@@ -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('::') == -1) {
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 != validGroupCount - 1) ? groups[i] + ':' : groups[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, i){
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 4/2/2017 (v2.28.6) *//*
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 (c.debug) { console.error('aborting build table widget, incorrect build type'); }
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, errorThrown) {
76
- if (c.debug) { console.error('aborting build table widget, failed ajax load'); }
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 (c.debug) { console.error('aborting build table widget, missing data for object build'); }
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
  }
@@ -3,7 +3,7 @@
3
3
  */
4
4
  /*jshint browser:true, jquery:true, unused:false */
5
5
  /*global jQuery: false */
6
- ;(function($){
6
+ ;(function($) {
7
7
  'use strict';
8
8
 
9
9
  var ts = $.tablesorter,
@@ -1,10 +1,10 @@
1
- /* Widget: columnSelector (responsive table widget) - updated 9/27/2017 (v2.29.0) *//*
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 (c.debug) {
24
- console.error('ColumnSelector: >> ERROR: Column Selector aborting, no input found in the layout! ***');
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 (c.debug) {
49
- console.warn('ColumnSelector: >> container not found');
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',