jquery-tablesorter 1.17.2 → 1.17.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/jquery-tablesorter/version.rb +1 -1
  4. data/vendor/assets/javascripts/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.js +76 -71
  5. data/vendor/assets/javascripts/jquery-tablesorter/extras/jquery.dragtable.mod.js +1 -1
  6. data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.combined.js +2647 -2576
  7. data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.js +174 -119
  8. data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.widgets.js +2487 -2471
  9. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-extract.js +15 -15
  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 +4 -4
  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 +12 -12
  14. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-weekday.js +4 -4
  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 +6 -6
  18. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-file-type.js +22 -22
  19. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-globalize.js +1 -1
  20. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-ignore-articles.js +15 -15
  21. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-image.js +3 -3
  22. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-input-select.js +10 -3
  23. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-metric.js +2 -2
  24. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-named-numbers.js +3 -3
  25. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-network.js +1 -1
  26. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-roman.js +4 -4
  27. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-alignChar.js +122 -121
  28. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-build-table.js +13 -13
  29. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-chart.js +2 -2
  30. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-columnSelector.js +324 -324
  31. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-columns.js +60 -60
  32. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-editable.js +219 -219
  33. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-formatter-html5.js +360 -361
  34. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-formatter-jui.js +666 -666
  35. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-formatter-select2.js +124 -124
  36. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-type-insideRange.js +1 -1
  37. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter.js +1448 -1433
  38. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-formatter.js +1 -1
  39. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-grouping.js +213 -213
  40. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-headerTitles.js +3 -3
  41. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-math.js +271 -216
  42. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-output.js +339 -320
  43. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-pager.js +1057 -1045
  44. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-print.js +109 -109
  45. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-reflow.js +114 -115
  46. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-resizable.js +360 -359
  47. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-saveSort.js +59 -59
  48. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-scroller.js +818 -806
  49. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-sort2Hash.js +128 -0
  50. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-sortTbodies.js +195 -195
  51. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-staticRow.js +90 -90
  52. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-stickyHeaders.js +257 -257
  53. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-storage.js +76 -76
  54. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-uitheme.js +170 -170
  55. metadata +3 -3
  56. data/vendor/assets/javascripts/jquery-tablesorter/extras/jquery.quicksearch.js +0 -195
@@ -2,10 +2,10 @@
2
2
  /* alt attribute parser for jQuery 1.7+ & tablesorter 2.7.11+ */
3
3
  /*jshint jquery:true, unused:false */
4
4
  ;(function($){
5
- "use strict";
5
+ 'use strict';
6
6
 
7
7
  $.tablesorter.addParser({
8
- id: "image",
8
+ id: 'image',
9
9
  is: function(){
10
10
  return false;
11
11
  },
@@ -13,7 +13,7 @@
13
13
  return $(cell).find('img').attr(table.config.imgAttr || 'alt') || s;
14
14
  },
15
15
  parsed : true, // filter widget flag
16
- type: "text"
16
+ type: 'text'
17
17
  });
18
18
 
19
19
  })(jQuery);
@@ -1,10 +1,10 @@
1
- /*! Parser: input & select - updated 5/17/2015 (v2.22.0) *//*
1
+ /*! Parser: input & select - updated 7/28/2015 (v2.22.4) *//*
2
2
  * for jQuery 1.7+ & tablesorter 2.7.11+
3
3
  * Demo: http://mottie.github.com/tablesorter/docs/example-widget-grouping.html
4
4
  */
5
5
  /*jshint browser: true, jquery:true, unused:false */
6
6
  ;( function( $ ) {
7
- 'use strict';
7
+ 'use strict';
8
8
 
9
9
  var updateServer = function( event, $table, $input ) {
10
10
  // do something here to update your server, if needed
@@ -53,6 +53,7 @@
53
53
  },
54
54
  format : function( txt, table, cell, cellIndex ) {
55
55
  var $cell = $( cell ),
56
+ $row = $cell.closest( 'tr' ),
56
57
  wo = table.config.widgetOptions,
57
58
  checkedClass = table.config.checkboxClass || 'checked',
58
59
  // returning plain language here because this is what is shown in the
@@ -62,7 +63,13 @@
62
63
  isChecked = $input.length ? $input[ 0 ].checked : '';
63
64
  // adding class to row, indicating that a checkbox is checked; includes
64
65
  // a column index in case more than one checkbox happens to be in a row
65
- $cell.closest( 'tr' ).toggleClass( checkedClass + ' ' + checkedClass + '-' + cellIndex, isChecked );
66
+ $row.toggleClass( checkedClass + '-' + cellIndex, isChecked );
67
+ if ( isChecked ) {
68
+ $row.addClass( checkedClass );
69
+ } else if ( !( $row[0].className || '' ).match( checkedClass + '-' ) ) {
70
+ // don't remove checked class if other columns have a check
71
+ $row.removeClass( checkedClass );
72
+ }
66
73
  return $input.length ? status[ isChecked ? 0 : 1 ] : txt;
67
74
  },
68
75
  parsed : true, // filter widget flag
@@ -6,7 +6,7 @@
6
6
  */
7
7
  /*jshint jquery:true */
8
8
  ;( function( $ ) {
9
- 'use strict';
9
+ 'use strict';
10
10
 
11
11
  var prefixes = {
12
12
  // 'prefix' : [ base 10, base 2 ]
@@ -23,7 +23,7 @@
23
23
  'h|hecto' : [ 1e2, 1e2 ],
24
24
  'da|deka' : [ 1e1, 1e1 ],
25
25
  'd|deci' : [ 1e-1, 1e-1 ],
26
- 'c|centi' : [ 1e-2, 1e-2],
26
+ 'c|centi' : [ 1e-2, 1e-2 ],
27
27
  'm|milli' : [ 1e-3, 1e-3 ],
28
28
  'µ|micro' : [ 1e-6, 1e-6 ],
29
29
  'n|nano' : [ 1e-9, 1e-9 ],
@@ -3,7 +3,7 @@
3
3
  */
4
4
  /*jshint jquery:true */
5
5
  ;(function($){
6
- "use strict";
6
+ 'use strict';
7
7
 
8
8
  // Change language of the named numbers as needed
9
9
  var named = {
@@ -99,7 +99,7 @@
99
99
  };
100
100
 
101
101
  $.tablesorter.addParser({
102
- id: "namedNumbers",
102
+ id: 'namedNumbers',
103
103
  is: function () {
104
104
  return false;
105
105
  },
@@ -116,7 +116,7 @@
116
116
  // make sure to let zero get parsed, so check hasOwnProperty
117
117
  return result || named.numbers.hasOwnProperty( str ) ? result : $.tablesorter.formatFloat( str || '', table );
118
118
  },
119
- type: "numeric"
119
+ type: 'numeric'
120
120
  });
121
121
 
122
122
  })( jQuery );
@@ -69,7 +69,7 @@
69
69
  // it's fastest & easiest for tablesorter to sort decimal values (vs hex)
70
70
  groups[i] = hex ? ('0000' + groups[i]).slice(-4) :
71
71
  ('00000' + (parseInt(groups[i], 16) || 0)).slice(-5);
72
- expandedAddress += ( i != validGroupCount-1) ? groups[i] + ':' : groups[i];
72
+ expandedAddress += ( i != validGroupCount - 1) ? groups[i] + ':' : groups[i];
73
73
  }
74
74
  return hex ? expandedAddress : expandedAddress.replace(/:/g, '');
75
75
  },
@@ -5,7 +5,7 @@
5
5
  */
6
6
  /*jshint jquery:true, unused:false */
7
7
  ;(function($){
8
- "use strict";
8
+ 'use strict';
9
9
 
10
10
  // allow lower case roman numerals, since lists use i, ii, iii, etc.
11
11
  var validator = /^M*(?:D?C{0,3}|C[MD])(?:L?X{0,3}|X[CL])(?:V?I{0,3}|I[XV])$/i,
@@ -34,7 +34,7 @@
34
34
 
35
35
  return num;
36
36
  },
37
- type: "numeric"
37
+ type: 'numeric'
38
38
  });
39
39
 
40
40
  $.tablesorter.addParser({
@@ -75,7 +75,7 @@
75
75
 
76
76
  return num ? s.replace(orig, num) : s;
77
77
  },
78
- type: "text"
78
+ type: 'text'
79
79
  });
80
80
 
81
81
  $.tablesorter.addParser({
@@ -111,7 +111,7 @@
111
111
 
112
112
  return num ? num : s;
113
113
  },
114
- type: "numeric"
114
+ type: 'numeric'
115
115
  });
116
116
 
117
117
  })(jQuery);
@@ -5,142 +5,143 @@
5
5
  /*jshint browser:true, jquery:true, unused:false */
6
6
  /*global jQuery: false */
7
7
  ;(function($){
8
- "use strict";
9
- var ts = $.tablesorter;
8
+ 'use strict';
9
+ var ts = $.tablesorter;
10
10
 
11
- ts.alignChar = {
11
+ ts.alignChar = {
12
12
 
13
- init : function(table, c, wo) {
14
- c.$headers.filter('[' + wo.alignChar_charAttrib + ']').each(function(){
15
- var $this = $(this),
16
- vars = {
17
- column : this.column,
18
- align : $this.attr(wo.alignChar_charAttrib),
19
- alignIndex : parseInt( $this.attr(wo.alignChar_indexAttrib) || 0, 10),
20
- adjust : parseFloat($this.attr(wo.alignChar_adjustAttrib)) || 0
21
- };
22
- vars.regex = new RegExp('\\' + vars.align, 'g');
23
- if (typeof vars.align !== 'undefined') {
24
- wo.alignChar_savedVars[this.column] = vars;
25
- ts.alignChar.setup(table, c, wo, vars);
26
- }
27
- });
28
- },
13
+ init : function(table, c, wo) {
14
+ c.$headers.filter('[' + wo.alignChar_charAttrib + ']').each(function(){
15
+ var $this = $(this),
16
+ vars = {
17
+ column : this.column,
18
+ align : $this.attr(wo.alignChar_charAttrib),
19
+ alignIndex : parseInt( $this.attr(wo.alignChar_indexAttrib) || 0, 10),
20
+ adjust : parseFloat($this.attr(wo.alignChar_adjustAttrib)) || 0
21
+ };
22
+ vars.regex = new RegExp('\\' + vars.align, 'g');
23
+ if (typeof vars.align !== 'undefined') {
24
+ wo.alignChar_savedVars[this.column] = vars;
25
+ ts.alignChar.setup(table, c, wo, vars);
26
+ }
27
+ });
28
+ },
29
29
 
30
- setup: function(table, c, wo, v){
31
- // do nothing for empty tables
32
- if ($.isEmptyObject(c.cache)) { return; }
33
- var tbodyIndex, rowIndex, start, end, last, index, rows, val, count,
34
- len, wLeft, wRight, alignChar, $row,
35
- left = [],
36
- right = [];
37
- for (tbodyIndex = 0; tbodyIndex < c.$tbodies.length; tbodyIndex++){
38
- rows = c.cache[tbodyIndex];
39
- len = rows.normalized.length;
40
- for (rowIndex = 0; rowIndex < len; rowIndex++) {
41
- // set up to work with modified cache v2.16.0+
42
- $row = rows.row ? rows.row[rowIndex] : rows.normalized[rowIndex][c.columns].$row;
43
- val = $row.find('td').eq(v.column).text().replace(/[ ]/g, "\u00a0");
44
- // count how many "align" characters are in the string
45
- count = (val.match( v.regex ) || []).length;
46
- // set alignment @ alignIndex (one-based index)
47
- if (count > 0 && v.alignIndex > 0) {
48
- end = Math.min(v.alignIndex, count);
49
- start = 0;
50
- index = 0;
51
- last = 0;
52
- // find index of nth align character based on alignIndex (data-align-index)
53
- while (start++ < end) {
54
- last = val.indexOf(v.align, last + 1);
55
- index = last < 0 ? index : last;
30
+ setup: function(table, c, wo, v){
31
+ // do nothing for empty tables
32
+ if ($.isEmptyObject(c.cache)) { return; }
33
+ var tbodyIndex, rowIndex, start, end, last, index, rows, val, count,
34
+ len, wLeft, wRight, alignChar, $row,
35
+ left = [],
36
+ right = [];
37
+ for (tbodyIndex = 0; tbodyIndex < c.$tbodies.length; tbodyIndex++){
38
+ rows = c.cache[tbodyIndex];
39
+ len = rows.normalized.length;
40
+ for (rowIndex = 0; rowIndex < len; rowIndex++) {
41
+ // set up to work with modified cache v2.16.0+
42
+ $row = rows.row ? rows.row[rowIndex] : rows.normalized[rowIndex][c.columns].$row;
43
+ val = $row.find('td').eq(v.column).text().replace(/[ ]/g, '\u00a0');
44
+ // count how many 'align' characters are in the string
45
+ count = (val.match( v.regex ) || []).length;
46
+ // set alignment @ alignIndex (one-based index)
47
+ if (count > 0 && v.alignIndex > 0) {
48
+ end = Math.min(v.alignIndex, count);
49
+ start = 0;
50
+ index = 0;
51
+ last = 0;
52
+ // find index of nth align character based on alignIndex (data-align-index)
53
+ while (start++ < end) {
54
+ last = val.indexOf(v.align, last + 1);
55
+ index = last < 0 ? index : last;
56
+ }
57
+ } else {
58
+ index = val.indexOf(v.align);
59
+ }
60
+ if ( index >= 0 ) {
61
+ left.push( val.substring(0, index) || '' );
62
+ right.push( val.substring(index, val.length) || '' );
63
+ } else {
64
+ // no align character found!
65
+ // put val in right or left based on the align index
66
+ left.push( (count >= 1 && v.alignIndex >= count) ? '' : val || '' );
67
+ right.push( (count >= 1 && v.alignIndex >= count) ? val || '' : '' );
56
68
  }
57
- } else {
58
- index = val.indexOf(v.align);
59
- }
60
- if ( index >= 0 ) {
61
- left.push( val.substring(0, index) || '' );
62
- right.push( val.substring(index, val.length) || '' );
63
- } else {
64
- // no align character found!
65
- // put val in right or left based on the align index
66
- left.push( (count >= 1 && v.alignIndex >= count) ? '' : val || '' );
67
- right.push( (count >= 1 && v.alignIndex >= count) ? val || '' : '' );
68
69
  }
69
70
  }
70
- }
71
71
 
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];
75
- // calculate percentage widths
76
- v.width = v.width || ( Math.floor(wLeft.length / (wLeft.length + wRight.length) * 100) + v.adjust );
77
- wLeft = 'min-width:' + v.width + '%';
78
- wRight = 'min-width:' + (100 - v.width) + '%';
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];
75
+ // calculate percentage widths
76
+ v.width = v.width || ( Math.floor(wLeft.length / (wLeft.length + wRight.length) * 100) + v.adjust );
77
+ wLeft = 'min-width:' + v.width + '%';
78
+ wRight = 'min-width:' + (100 - v.width) + '%';
79
79
 
80
- for (tbodyIndex = 0; tbodyIndex < c.$tbodies.length; tbodyIndex++){
81
- rows = c.cache[tbodyIndex];
82
- len = rows.normalized.length;
83
- for (rowIndex = 0; rowIndex < len; rowIndex++) {
84
- alignChar = $(wo.alignChar_wrap).length ? $(wo.alignChar_wrap).html(v.align)[0].outerHTML : v.align;
85
- $row = rows.row ? rows.row[rowIndex] : rows.normalized[rowIndex][c.columns].$row;
86
- last = right[rowIndex].slice(v.align.length);
87
- $row.find('td').eq(v.column).html(
88
- '<span class="ts-align-wrap"><span class="ts-align-left" style="' + wLeft + '">' + left[rowIndex] + '</span>' +
89
- '<span class="ts-align-right" style="' + wRight + '">' + ( last.length ? alignChar + last : '' ) + '</span></span>'
90
- );
80
+ for (tbodyIndex = 0; tbodyIndex < c.$tbodies.length; tbodyIndex++){
81
+ rows = c.cache[tbodyIndex];
82
+ len = rows.normalized.length;
83
+ for (rowIndex = 0; rowIndex < len; rowIndex++) {
84
+ alignChar = $(wo.alignChar_wrap).length ? $(wo.alignChar_wrap).html(v.align)[0].outerHTML : v.align;
85
+ $row = rows.row ? rows.row[rowIndex] : rows.normalized[rowIndex][c.columns].$row;
86
+ last = right[rowIndex].slice(v.align.length);
87
+ $row.find('td').eq(v.column).html(
88
+ '<span class="ts-align-wrap"><span class="ts-align-left" style="' + wLeft + '">' + left[rowIndex] + '</span>' +
89
+ '<span class="ts-align-right" style="' + wRight + '">' + ( last.length ? alignChar + last : '' ) + '</span></span>'
90
+ );
91
+ }
91
92
  }
92
- }
93
- wo.alignChar_initialized = true;
93
+ wo.alignChar_initialized = true;
94
+
95
+ },
94
96
 
95
- },
96
- remove: function(table, c, column){
97
- if ($.isEmptyObject(c.cache)) { return; }
98
- var tbodyIndex, rowIndex, len, rows, $row, $cell;
99
- for (tbodyIndex = 0; tbodyIndex < c.$tbodies.length; tbodyIndex++){
100
- rows = c.cache[tbodyIndex];
101
- len = rows.normalized.length;
102
- for (rowIndex = 0; rowIndex < len; rowIndex++) {
103
- $row = rows.row ? rows.row[rowIndex] : rows.normalized[rowIndex][c.columns].$row;
104
- $cell = $row.find('td').eq(column);
105
- $cell.html( $cell.text().replace(/\s/g, ' ') );
97
+ remove: function(table, c, column){
98
+ if ($.isEmptyObject(c.cache)) { return; }
99
+ var tbodyIndex, rowIndex, len, rows, $row, $cell;
100
+ for (tbodyIndex = 0; tbodyIndex < c.$tbodies.length; tbodyIndex++){
101
+ rows = c.cache[tbodyIndex];
102
+ len = rows.normalized.length;
103
+ for (rowIndex = 0; rowIndex < len; rowIndex++) {
104
+ $row = rows.row ? rows.row[rowIndex] : rows.normalized[rowIndex][c.columns].$row;
105
+ $cell = $row.find('td').eq(column);
106
+ $cell.html( $cell.text().replace(/\s/g, ' ') );
107
+ }
106
108
  }
107
109
  }
108
- }
109
- };
110
+ };
110
111
 
111
- ts.addWidget({
112
- id: 'alignChar',
113
- priority: 100,
114
- options: {
115
- alignChar_wrap : '',
116
- alignChar_charAttrib : 'data-align-char',
117
- alignChar_indexAttrib : 'data-align-index',
118
- alignChar_adjustAttrib : 'data-align-adjust' // percentage width adjustments
119
- },
120
- init: function(table, thisWidget, c, wo){
121
- wo.alignChar_initialized = false;
122
- wo.alignChar_savedVars = [];
123
- ts.alignChar.init(table, c, wo);
124
- c.$table.on('pagerEnd refreshAlign', function(){
112
+ ts.addWidget({
113
+ id: 'alignChar',
114
+ priority: 100,
115
+ options: {
116
+ alignChar_wrap : '',
117
+ alignChar_charAttrib : 'data-align-char',
118
+ alignChar_indexAttrib : 'data-align-index',
119
+ alignChar_adjustAttrib : 'data-align-adjust' // percentage width adjustments
120
+ },
121
+ init: function(table, thisWidget, c, wo){
122
+ wo.alignChar_initialized = false;
123
+ wo.alignChar_savedVars = [];
124
+ ts.alignChar.init(table, c, wo);
125
+ c.$table.on('pagerEnd refreshAlign', function(){
126
+ c.$headers.filter('[' + wo.alignChar_charAttrib + ']').each(function(){
127
+ ts.alignChar.remove(table, c, this.column);
128
+ });
129
+ ts.alignChar.init(table, c, wo);
130
+ });
131
+ },
132
+ format : function(table, c, wo){
133
+ // reinitialize in case table is empty when first initialized
134
+ if (!wo.alignChar_initialized) {
135
+ c.$table.trigger('refreshAlign');
136
+ }
137
+ },
138
+ remove : function(table, c, wo, refreshing){
139
+ if (refreshing) { return; }
125
140
  c.$headers.filter('[' + wo.alignChar_charAttrib + ']').each(function(){
126
141
  ts.alignChar.remove(table, c, this.column);
127
142
  });
128
- ts.alignChar.init(table, c, wo);
129
- });
130
- },
131
- format : function(table, c, wo){
132
- // reinitialize in case table is empty when first initialized
133
- if (!wo.alignChar_initialized) {
134
- c.$table.trigger('refreshAlign');
143
+ wo.alignChar_initialized = false;
135
144
  }
136
- },
137
- remove : function(table, c, wo, refreshing){
138
- if (refreshing) { return; }
139
- c.$headers.filter('[' + wo.alignChar_charAttrib + ']').each(function(){
140
- ts.alignChar.remove(table, c, this.column);
141
- });
142
- wo.alignChar_initialized = false;
143
- }
144
- });
145
+ });
145
146
 
146
- })(jQuery);
147
+ })(jQuery);
@@ -5,8 +5,8 @@
5
5
  /*jshint browser:true, jquery:true, unused:false */
6
6
  /*global jQuery: false */
7
7
  ;(function($){
8
- "use strict";
9
- var ts = $.tablesorter = $.tablesorter || {},
8
+ 'use strict';
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
@@ -40,7 +40,7 @@ var ts = $.tablesorter = $.tablesorter || {},
40
40
  // valid JSON!
41
41
  return bt.object( table, d, wo );
42
42
  }
43
- } catch(ignore) {}
43
+ } catch (ignore) {}
44
44
  // fall through in case it's a csv string
45
45
  }
46
46
  // Array
@@ -57,7 +57,7 @@ var ts = $.tablesorter = $.tablesorter || {},
57
57
 
58
58
  // even if wo.build_type is undefined, we can try to figure out the type
59
59
  if ( !ts.buildTable.hasOwnProperty(typ) && typ !== '' ) {
60
- if (c.debug) { ts.log('aborting build table widget, incorrect build type'); }
60
+ if (c.debug) { console.error('aborting build table widget, incorrect build type'); }
61
61
  return false;
62
62
  }
63
63
 
@@ -71,7 +71,7 @@ var ts = $.tablesorter = $.tablesorter || {},
71
71
  runType(data);
72
72
  })
73
73
  .fail(function( jqXHR, textStatus, errorThrown) {
74
- if (c.debug) { ts.log('aborting build table widget, failed ajax load'); }
74
+ if (c.debug) { console.error('aborting build table widget, failed ajax load'); }
75
75
  $tbl.html('<tr><td class="error">' + jqXHR.status + ' ' + textStatus + '</td></tr>');
76
76
  });
77
77
  } else {
@@ -105,7 +105,7 @@ var ts = $.tablesorter = $.tablesorter || {},
105
105
 
106
106
  // *** CSV only options ***
107
107
  build_csvStartLine : 0, // line within the csv to start adding to table
108
- build_csvSeparator : ",", // csv separator
108
+ build_csvSeparator : ',', // csv separator
109
109
 
110
110
  // *** build object options ***
111
111
  build_objectRowKey : 'rows', // object key containing table rows
@@ -225,7 +225,7 @@ var ts = $.tablesorter = $.tablesorter || {},
225
225
  var c, h,
226
226
  csv = wo.build_type === 'csv' || typeof data === 'string',
227
227
  $t = $(table),
228
- lines = csv ? data.replace('\r','').split('\n') : data,
228
+ lines = csv ? data.replace('\r', '').split('\n') : data,
229
229
  len = lines.length,
230
230
  printedLines = 0,
231
231
  infooter = false,
@@ -276,13 +276,13 @@ var ts = $.tablesorter = $.tablesorter || {},
276
276
  // CSV Parser by Brian Huisman (http://www.greywyvern.com/?post=258)
277
277
  bt.splitCSV = function(str, sep) {
278
278
  var x, tl,
279
- thisCSV = $.trim(str).split(sep = sep || ",");
279
+ thisCSV = $.trim(str).split(sep = sep || ',');
280
280
  for ( x = thisCSV.length - 1; x >= 0; x-- ) {
281
281
  if ( thisCSV[x].replace(/\"\s+$/, '"').charAt(thisCSV[x].length - 1) === '"' ) {
282
282
  if ( (tl = thisCSV[x].replace(/^\s+\"/, '"')).length > 1 && tl.charAt(0) === '"' ) {
283
283
  thisCSV[x] = thisCSV[x].replace(/^\s*"|"\s*$/g, '').replace(/""/g, '"');
284
284
  } else if (x) {
285
- thisCSV.splice(x - 1, 2, [thisCSV[x - 1], thisCSV[x]].join(sep));
285
+ thisCSV.splice(x - 1, 2, [ thisCSV[x - 1], thisCSV[x] ].join(sep));
286
286
  } else {
287
287
  thisCSV = thisCSV.shift().split(sep).concat(thisCSV);
288
288
  }
@@ -304,7 +304,7 @@ var ts = $.tablesorter = $.tablesorter || {},
304
304
  bt.buildComplete(table, wo);
305
305
  };
306
306
 
307
- /* ==== Object example ====
307
+ /* ==== Object example ====
308
308
  data : {
309
309
  headers : [
310
310
  [
@@ -345,9 +345,9 @@ var ts = $.tablesorter = $.tablesorter || {},
345
345
  }
346
346
  ]
347
347
  }
348
- */
348
+ */
349
349
  bt.object = function(table, data, wo) {
350
- // "rows"
350
+ // 'rows'
351
351
  var j, l, t, $c, $t, $tb, $tr,
352
352
  c = table.config,
353
353
  kh = wo.build_objectHeaderKey,
@@ -356,7 +356,7 @@ var ts = $.tablesorter = $.tablesorter || {},
356
356
  r = data.hasOwnProperty(kr) && !$.isEmptyObject(data.kr) ? data.kr : data.hasOwnProperty('rows') ? data.rows : false;
357
357
 
358
358
  if (!h || !r || h.length === 0 || r.length === 0) {
359
- if (c.debug) { ts.log('aborting build table widget, missing data for object build'); }
359
+ if (c.debug) { console.error('aborting build table widget, missing data for object build'); }
360
360
  return false;
361
361
  }
362
362