jquery-tablesorter 1.11.0 → 1.11.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 618934fed3abb717299bc8c54013a3b1d3d53863
4
- data.tar.gz: afbd307142ac50a3577cee070ae22a9f8b1a2bea
3
+ metadata.gz: 9d639b535865896da6a17f2df96f4e9f91955d3c
4
+ data.tar.gz: 65db0875623d6c2dd8d394ca82f4b8a1ddbb6900
5
5
  SHA512:
6
- metadata.gz: b5fd391890c8feef67fba3c66f00f9e9f1f45d2bc1bc78fad870fa2db6d10c54ce0b68269ce4afcb8c04fb5d5b0b402d9c086add0085b53d94ec4905570cb758
7
- data.tar.gz: e29cceab65caa5c1a248d1b90ae61cdc46364dbadb9be1ae68e01097fe34428b8f4e462928452b98f1f659b41c7a472aa90df1defffcba228d237ae356cf2503
6
+ metadata.gz: 607932c25ac349c0a182932789532f7967f7587a7a5bbac50321c8cf9da397f26dc22d2cf5dc4891a2d3daf4b5a40759da1e3af1fa743f20b86c142fd69808f4
7
+ data.tar.gz: bafbde9cfdda3b9e8f9f086c2004f1f7310bf52aeaf9896d6c5cd2f3f6e0481f85bb11059e3e3729cc3e01593f3c6b3d00f0f5de3e25fa1e02d4263f6fb401bf
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.16.1 (4/24/2014), [documentation]
7
+ Current tablesorter version: 2.16.2 (4/27/2014), [documentation]
8
8
 
9
9
  Any issue associate with the js/css files, please report to [Mottie's fork].
10
10
 
@@ -1,3 +1,3 @@
1
1
  module JqueryTablesorter
2
- VERSION = '1.11.0'
2
+ VERSION = '1.11.1'
3
3
  end
@@ -1,5 +1,5 @@
1
1
  /**!
2
- * TableSorter 2.16.1 - Client-side table sorting with ease!
2
+ * TableSorter 2.16.2 - Client-side table sorting with ease!
3
3
  * @requires jQuery v1.2.6+
4
4
  *
5
5
  * Copyright (c) 2007 Christian Bach
@@ -24,7 +24,7 @@
24
24
 
25
25
  var ts = this;
26
26
 
27
- ts.version = "2.16.1";
27
+ ts.version = "2.16.2";
28
28
 
29
29
  ts.parsers = [];
30
30
  ts.widgets = [];
@@ -489,34 +489,34 @@
489
489
  }
490
490
 
491
491
  function setHeadersCss(table) {
492
- var f, i, j, l,
492
+ var f, i, j,
493
493
  c = table.config,
494
494
  list = c.sortList,
495
+ len = list.length,
495
496
  none = ts.css.sortNone + ' ' + c.cssNone,
496
497
  css = [ts.css.sortAsc + ' ' + c.cssAsc, ts.css.sortDesc + ' ' + c.cssDesc],
497
498
  aria = ['ascending', 'descending'],
498
499
  // find the footer
499
- $t = $(table).find('tfoot tr').children().removeClass(css.join(' '));
500
+ $t = $(table).find('tfoot tr').children().add(c.$extraHeaders).removeClass(css.join(' '));
500
501
  // remove all header information
501
502
  c.$headers
502
503
  .removeClass(css.join(' '))
503
504
  .addClass(none).attr('aria-sort', 'none');
504
- l = list.length;
505
- for (i = 0; i < l; i++) {
505
+ for (i = 0; i < len; i++) {
506
506
  // direction = 2 means reset!
507
507
  if (list[i][1] !== 2) {
508
508
  // multicolumn sorting updating - choose the :last in case there are nested columns
509
- f = c.$headers.not('.sorter-false').filter('[data-column="' + list[i][0] + '"]' + (l === 1 ? ':last' : '') );
509
+ f = c.$headers.not('.sorter-false').filter('[data-column="' + list[i][0] + '"]' + (len === 1 ? ':last' : '') );
510
510
  if (f.length) {
511
511
  for (j = 0; j < f.length; j++) {
512
512
  if (!f[j].sortDisabled) {
513
513
  f.eq(j).removeClass(none).addClass(css[list[i][1]]).attr('aria-sort', aria[list[i][1]]);
514
- // add sorted class to footer, if it exists
515
- if ($t.length) {
516
- $t.filter('[data-column="' + list[i][0] + '"]').eq(j).addClass(css[list[i][1]]);
517
- }
518
514
  }
519
515
  }
516
+ // add sorted class to footer & extra headers, if they exist
517
+ if ($t.length) {
518
+ $t.filter('[data-column="' + list[i][0] + '"]').removeClass(none).addClass(css[list[i][1]]);
519
+ }
520
520
  }
521
521
  }
522
522
  }
@@ -544,7 +544,7 @@
544
544
  }
545
545
  }
546
546
 
547
- function updateHeaderSortCount(table, list) {
547
+ function updateHeaderSortCount(table, list, triggered) {
548
548
  var s, t, o, c = table.config,
549
549
  sl = list || c.sortList;
550
550
  c.sortList = [];
@@ -552,10 +552,11 @@
552
552
  // ensure all sortList values are numeric - fixes #127
553
553
  s = [ parseInt(v[0], 10), parseInt(v[1], 10) ];
554
554
  // make sure header exists
555
- o = c.$headers[s[0]];
555
+ o = c.$headers.filter('[data-column="' + s[0] + '"]:last')[0];
556
556
  if (o) { // prevents error if sorton array is wrong
557
557
  c.sortList.push(s);
558
558
  t = $.inArray(s[1], o.order); // fixes issue #167
559
+ if (triggered) { o.count = o.count + 1; }
559
560
  o.count = t >= 0 ? t : s[1] % (c.sortReset ? 3 : 2);
560
561
  }
561
562
  });
@@ -625,7 +626,7 @@
625
626
  // reverse the sorting direction
626
627
  for (col = 0; col < c.sortList.length; col++) {
627
628
  s = c.sortList[col];
628
- order = c.$headers[s[0]];
629
+ order = c.$headers.filter('[data-column="' + s[0] + '"]:last')[0];
629
630
  if (s[0] === indx) {
630
631
  // order.count seems to be incorrect when compared to cell.count
631
632
  s[1] = order.order[cell.count];
@@ -782,7 +783,7 @@
782
783
  ts.refreshWidgets(table, true, true);
783
784
  ts.restoreHeaders(table);
784
785
  buildHeaders(table);
785
- ts.bindEvents(table, c.$headers);
786
+ ts.bindEvents(table, c.$headers, true);
786
787
  bindMethods(table);
787
788
  commonUpdate(table, resort, callback);
788
789
  })
@@ -827,6 +828,7 @@
827
828
  updateHeader(table);
828
829
  commonUpdate(table, resort, callback);
829
830
  } else {
831
+ $row = $($row); // make sure we're using a jQuery object
830
832
  var i, j, l, rowData, cells,
831
833
  rows = $row.filter('tr').length,
832
834
  tbdy = $table.find('tbody').index( $row.parents('tbody').filter(':first') );
@@ -868,7 +870,7 @@
868
870
  e.stopPropagation();
869
871
  $table.trigger("sortStart", this);
870
872
  // update header count index
871
- updateHeaderSortCount(table, list);
873
+ updateHeaderSortCount(table, list, true);
872
874
  // set css for headers
873
875
  setHeadersCss(table);
874
876
  // fixes #346
@@ -961,7 +963,7 @@
961
963
  return (version[0] > 1) || (version[0] === 1 && parseInt(version[1], 10) >= 4);
962
964
  })($.fn.jquery.split("."));
963
965
  // digit sort text location; keeping max+/- for backwards compatibility
964
- c.string = { 'max': 1, 'min': -1, 'max+': 1, 'max-': -1, 'zero': 0, 'none': 0, 'null': 0, 'top': true, 'bottom': false };
966
+ c.string = { 'max': 1, 'min': -1, 'emptyMin': 1, 'emptyMax': -1, 'zero': 0, 'none': 0, 'null': 0, 'top': true, 'bottom': false };
965
967
  // add table theme class only if there isn't already one there
966
968
  if (!/tablesorter\-/.test($table.attr('class'))) {
967
969
  k = (c.theme !== '' ? ' tablesorter-' + c.theme : '');
@@ -999,7 +1001,7 @@
999
1001
  // delayInit will delay building the cache until the user starts a sort
1000
1002
  if (!c.delayInit) { buildCache(table); }
1001
1003
  // bind all header events and methods
1002
- ts.bindEvents(table, c.$headers);
1004
+ ts.bindEvents(table, c.$headers, true);
1003
1005
  bindMethods(table);
1004
1006
  // get sort list from jQuery data or metadata
1005
1007
  // in jQuery < 1.4, an error occurs when calling $table.data()
@@ -1132,10 +1134,13 @@
1132
1134
  $(table)[0].config.$tbodies.empty();
1133
1135
  };
1134
1136
 
1135
- ts.bindEvents = function(table, $headers){
1137
+ ts.bindEvents = function(table, $headers, core){
1136
1138
  table = $(table)[0];
1137
1139
  var downTime,
1138
- c = table.config;
1140
+ c = table.config;
1141
+ if (core !== true) {
1142
+ c.$extraHeaders = c.$extraHeaders ? c.$extraHeaders.add($headers) : $headers;
1143
+ }
1139
1144
  // apply event handling to headers and/or additional headers (stickyheaders, scroller, etc)
1140
1145
  $headers
1141
1146
  // http://stackoverflow.com/questions/5312849/jquery-find-self;
@@ -1,4 +1,4 @@
1
- /*! Filter widget formatter functions - updated 4/23/2014 (v2.16.0)
1
+ /*! Filter widget formatter functions - updated 4/27/2014 (v2.16.2)
2
2
  * requires: tableSorter 2.15+ and jQuery 1.4.3+
3
3
  *
4
4
  * uiSpinner (jQuery UI spinner)
@@ -517,7 +517,7 @@ tsff = ts.filterFormatter = {
517
517
  getdate = $date.datepicker('getDate') || '',
518
518
  compare = ($.isArray(o.compare) ? $cell.find(compareSelect).val() || o.compare[ o.selected || 0] : o.compare) || '',
519
519
  searchType = c.$table[0].hasInitialized ? o.delayed || '': true;
520
- $date.datepicker('setDate', getdate === '' ? '' : getdate);
520
+ $date.datepicker('setDate', (getdate === '' ? '' : getdate) || null);
521
521
  if (getdate === '') { notrigger = false; }
522
522
  date = $date.datepicker('getDate');
523
523
  query = date ? ( o.endOfDay && /<=/.test(compare) ? date.setHours(23, 59, 59) : date.getTime() ) || '' : '';
@@ -557,7 +557,7 @@ tsff = ts.filterFormatter = {
557
557
  if ($.isArray(o.compare)) {
558
558
  $cell.add($shcell).find(compareSelect).val( o.compare[ o.selected || 0 ] );
559
559
  }
560
- $cell.add($shcell).find('.date').val(o.defaultDate).datepicker('setDate', o.defaultDate);
560
+ $cell.add($shcell).find('.date').val(o.defaultDate).datepicker('setDate', o.defaultDate || null);
561
561
  setTimeout(function(){
562
562
  date1Compare();
563
563
  }, 0);
@@ -570,13 +570,13 @@ tsff = ts.filterFormatter = {
570
570
  // date range found; assume an exact match on one day
571
571
  $cell.find(compareSelect).val('=');
572
572
  num = v.split(/\s+-\s+/)[0];
573
- $date.datepicker( 'setDate', num );
573
+ $date.datepicker( 'setDate', num || null );
574
574
  } else {
575
575
  num = (tsff.updateCompare($cell, $input, o)[1]).toString() || '';
576
576
  // differeniate 1388556000000 from 1/1/2014 using \d{5} regex
577
577
  num = num !== '' ? /\d{5}/g.test(num) ? Number(num) : num || '' : '';
578
578
  }
579
- $cell.add($shcell).find('.date').datepicker( 'setDate', num );
579
+ $cell.add($shcell).find('.date').datepicker( 'setDate', num || null );
580
580
  setTimeout(function(){
581
581
  date1Compare(true);
582
582
  }, 0);
@@ -681,16 +681,16 @@ tsff = ts.filterFormatter = {
681
681
 
682
682
  if (/<=/.test(range)) {
683
683
  $cell.add( $shcell )
684
- .find('.dateFrom').datepicker('option', 'maxDate', to ).end()
685
- .find('.dateTo').datepicker('option', 'minDate', null).datepicker('setDate', to);
684
+ .find('.dateFrom').datepicker('option', 'maxDate', to || null ).end()
685
+ .find('.dateTo').datepicker('option', 'minDate', null).datepicker('setDate', to || null);
686
686
  } else if (/>=/.test(range)) {
687
687
  $cell.add( $shcell )
688
- .find('.dateFrom').datepicker('option', 'maxDate', null).datepicker('setDate', from).end()
689
- .find('.dateTo').datepicker('option', 'minDate', from );
688
+ .find('.dateFrom').datepicker('option', 'maxDate', null).datepicker('setDate', from || null).end()
689
+ .find('.dateTo').datepicker('option', 'minDate', from || null );
690
690
  } else {
691
691
  $cell.add( $shcell )
692
- .find('.dateFrom').datepicker('option', 'maxDate', null).datepicker('setDate', from ).end()
693
- .find('.dateTo').datepicker('option', 'minDate', null).datepicker('setDate', to);
692
+ .find('.dateFrom').datepicker('option', 'maxDate', null).datepicker('setDate', from || null ).end()
693
+ .find('.dateTo').datepicker('option', 'minDate', null).datepicker('setDate', to || null);
694
694
  }
695
695
 
696
696
  if (typeof o.oldonClose === 'function') { o.oldonClose(selectedDate, ui); }
@@ -718,8 +718,8 @@ tsff = ts.filterFormatter = {
718
718
  // less than date (from date empty)
719
719
  to = val.replace(/<=/, '') || '';
720
720
  }
721
- $cell.add($shcell).find('.dateFrom').datepicker('setDate', from);
722
- $cell.add($shcell).find('.dateTo').datepicker('setDate', to);
721
+ $cell.add($shcell).find('.dateFrom').datepicker('setDate', from || null);
722
+ $cell.add($shcell).find('.dateTo').datepicker('setDate', to || null);
723
723
  // give datepicker time to process
724
724
  setTimeout(function(){
725
725
  closeDate();
@@ -742,8 +742,8 @@ tsff = ts.filterFormatter = {
742
742
 
743
743
  // on reset
744
744
  $cell.closest('table').bind('filterReset', function(){
745
- $cell.add($shcell).find('.dateFrom').val('').datepicker('setDate', o.from );
746
- $cell.add($shcell).find('.dateTo').val('').datepicker('setDate', o.to );
745
+ $cell.add($shcell).find('.dateFrom').val('').datepicker('setDate', o.from || null );
746
+ $cell.add($shcell).find('.dateTo').val('').datepicker('setDate', o.to || null );
747
747
  setTimeout(function(){
748
748
  closeDate();
749
749
  }, 0);
@@ -1,4 +1,4 @@
1
- /*! tableSorter 2.16+ widgets - updated 4/23/2014 (v2.16.0)
1
+ /*! tableSorter 2.16+ widgets - updated 4/27/2014 (v2.16.2)
2
2
  *
3
3
  * Column Styles
4
4
  * Column Filters
@@ -176,7 +176,7 @@ ts.addWidget({
176
176
  id: "uitheme",
177
177
  priority: 10,
178
178
  format: function(table, c, wo) {
179
- var time, classes, $header, $icon, $tfoot,
179
+ var i, time, classes, $header, $icon, $tfoot,
180
180
  themesAll = ts.themes,
181
181
  $table = c.$table,
182
182
  $headers = c.$headers,
@@ -222,10 +222,10 @@ ts.addWidget({
222
222
  $headers.find('.' + ts.css.filterRow).addClass(themes.filterRow);
223
223
  }
224
224
  }
225
- $.each($headers, function() {
226
- $header = $(this);
225
+ for (i = 0; i < c.columns; i++) {
226
+ $header = c.$headers.add(c.$extraHeaders).filter('[data-column="' + i + '"]');
227
227
  $icon = (ts.css.icon) ? $header.find('.' + ts.css.icon) : $header;
228
- if (this.sortDisabled) {
228
+ if (c.$headers.filter('[data-column="' + i + '"]:last')[0].sortDisabled) {
229
229
  // no sort arrows for disabled columns!
230
230
  $header.removeClass(remove);
231
231
  $icon.removeClass(remove + ' ' + themes.icons);
@@ -237,7 +237,7 @@ ts.addWidget({
237
237
  $header[classes === themes.sortNone ? 'removeClass' : 'addClass'](themes.active);
238
238
  $icon.removeClass(remove).addClass(classes);
239
239
  }
240
- });
240
+ }
241
241
  if (c.debug) {
242
242
  ts.benchmark("Applying " + theme + " theme", time);
243
243
  }
@@ -856,7 +856,7 @@ ts.filter = {
856
856
  if (table.config.lastCombinedFilter === combinedFilters) { return; }
857
857
  var cached, len, $rows, cacheIndex, rowIndex, tbodyIndex, $tbody, $cells, columnIndex,
858
858
  childRow, childRowText, exact, iExact, iFilter, lastSearch, matches, result,
859
- searchFiltered, filterMatched, showRow, time,
859
+ notFiltered, searchFiltered, filterMatched, showRow, time,
860
860
  anyMatch, iAnyMatch, rowArray, rowText, iRowText, rowCache,
861
861
  c = table.config,
862
862
  wo = c.widgetOptions,
@@ -887,11 +887,23 @@ ts.filter = {
887
887
  searchFiltered = true;
888
888
  lastSearch = c.lastSearch || c.$table.data('lastSearch') || [];
889
889
  $.each(filters, function(indx, val) {
890
- // check for changes from beginning of filter; but ignore if there is a logical "or" in the string
891
- searchFiltered = (val || '').indexOf(lastSearch[indx]) === 0 && searchFiltered && !/(\s+or\s+|\|)/g.test(val || '');
890
+ // search already filtered rows if...
891
+ searchFiltered = searchFiltered &&
892
+ // there are changes from beginning of filter
893
+ (val || '').indexOf(lastSearch[indx]) === 0 &&
894
+ // if there is not a logical "or" in the string
895
+ !/(\s+or\s+|\|)/g.test(val || '') &&
896
+ // if we are not doing exact matches
897
+ !/[=\"]/.test(lastSearch[indx]) &&
898
+ // if filtering using a select without a "filter-match" class (exact match) - fixes #593
899
+ !( val !== '' && wo.filter_functions && wo.filter_functions[indx] === true && !c.$headers.filter('[data-column="' + indx + '"]:last').hasClass('filter-match') );
892
900
  });
901
+ notFiltered = $rows.not('.' + wo.filter_filteredRow).length;
893
902
  // can't search when all rows are hidden - this happens when looking for exact matches
894
- if (searchFiltered && $rows.not('.' + wo.filter_filteredRow).length === 0) { searchFiltered = false; }
903
+ if (searchFiltered && notFiltered === 0) { searchFiltered = false; }
904
+ if (c.debug) {
905
+ ts.log( "Searching through " + ( searchFiltered && notFiltered < len ? notFiltered : "all" ) + " rows" );
906
+ }
895
907
  if ((wo.filter_$anyMatch && wo.filter_$anyMatch.length) || filters[c.columns]) {
896
908
  anyMatch = wo.filter_$anyMatch && wo.filter_$anyMatch.val() || filters[c.columns] || '';
897
909
  if (c.sortLocaleCompare) {
@@ -1213,6 +1225,7 @@ ts.addWidget({
1213
1225
  stickyHeaders : '', // extra class name added to the sticky header row
1214
1226
  stickyHeaders_attachTo : null, // jQuery selector or object to attach sticky header to
1215
1227
  stickyHeaders_offset : 0, // number or jquery selector targeting the position:fixed element
1228
+ stickyHeaders_filteredToTop: true, // scroll table top into view after filtering
1216
1229
  stickyHeaders_cloneId : '-sticky', // added to table ID, if it exists
1217
1230
  stickyHeaders_addResizeEvent : true, // trigger "resize" event on headers
1218
1231
  stickyHeaders_includeCaption : true, // if false and a caption exist, it won't be included in the sticky header
@@ -1223,8 +1236,7 @@ ts.addWidget({
1223
1236
  if ( c.$table.hasClass('hasStickyHeaders') || ($.inArray('filter', c.widgets) >= 0 && !c.$table.hasClass('hasFilters')) ) {
1224
1237
  return;
1225
1238
  }
1226
- var $cell,
1227
- $table = c.$table,
1239
+ var $table = c.$table,
1228
1240
  $attach = $(wo.stickyHeaders_attachTo),
1229
1241
  $thead = $table.children('thead:first'),
1230
1242
  $win = $attach.length ? $attach : $(window),
@@ -1296,19 +1308,6 @@ ts.addWidget({
1296
1308
  // update sticky header class names to match real header after sorting
1297
1309
  $table
1298
1310
  .addClass('hasStickyHeaders')
1299
- .bind('sortEnd.tsSticky', function() {
1300
- $header.filter(':visible').each(function(indx) {
1301
- $cell = $stickyCells.filter(':visible').eq(indx)
1302
- .attr('class', $(this).attr('class'))
1303
- // remove processing icon
1304
- .removeClass(ts.css.processing + ' ' + c.cssProcessing);
1305
- if (c.cssIcon) {
1306
- $cell
1307
- .find('.' + ts.css.icon)
1308
- .attr('class', $(this).find('.' + ts.css.icon).attr('class'));
1309
- }
1310
- });
1311
- })
1312
1311
  .bind('pagerComplete.tsSticky', function() {
1313
1312
  resizeHeader();
1314
1313
  });
@@ -1355,11 +1354,11 @@ ts.addWidget({
1355
1354
  var $td = $(document.activeElement).closest('td'),
1356
1355
  column = $td.parent().children().index($td);
1357
1356
  // only scroll if sticky header is active
1358
- if ($stickyTable.hasClass(ts.css.stickyVis)) {
1357
+ if ($stickyTable.hasClass(ts.css.stickyVis) && wo.stickyHeaders_filteredToTop) {
1359
1358
  // scroll to original table (not sticky clone)
1360
1359
  window.scrollTo(0, $table.position().top);
1361
- // give same input/select focus
1362
- if (column >= 0) {
1360
+ // give same input/select focus; check if c.$filters exists; fixes #594
1361
+ if (column >= 0 && c.$filters) {
1363
1362
  c.$filters.eq(column).find('a, select, input').filter(':visible').focus();
1364
1363
  }
1365
1364
  }
@@ -1373,7 +1372,7 @@ ts.addWidget({
1373
1372
  remove: function(table, c, wo) {
1374
1373
  c.$table
1375
1374
  .removeClass('hasStickyHeaders')
1376
- .unbind('sortEnd.tsSticky pagerComplete.tsSticky')
1375
+ .unbind('pagerComplete.tsSticky')
1377
1376
  .find('.' + ts.css.sticky).remove();
1378
1377
  if (wo.$sticky && wo.$sticky.length) { wo.$sticky.remove(); } // remove cloned table
1379
1378
  // don't unbind if any table on the page still has stickyheaders applied
@@ -1,5 +1,5 @@
1
1
  /*! input & select parsers for jQuery 1.7+ & tablesorter 2.7.11+
2
- * Updated 2/19/2014 (v2.15.0)
2
+ * Updated 4/27/2014 (v2.16.2)
3
3
  * Demo: http://mottie.github.com/tablesorter/docs/example-widget-grouping.html
4
4
  */
5
5
  /*jshint browser: true, jquery:true, unused:false */
@@ -75,7 +75,15 @@
75
75
  $('table').find('tbody').on('change', 'select, input', function(e){
76
76
  if (!alreadyUpdating) {
77
77
  var $tar = $(e.target),
78
- $table = $tar.closest('table');
78
+ $cell = $tar.closest('td'),
79
+ $table = $cell.closest('table'),
80
+ indx = $cell[0].cellIndex,
81
+ c = $table[0].config,
82
+ $hdr = c && c.$headers && c.$headers.eq(indx);
83
+ // don't use updateCell if column is set to "sorter-false" and "filter-false"
84
+ if ($hdr.length && $hdr.hasClass('sorter-false') && $hdr.hasClass('filter-false')){
85
+ return false;
86
+ }
79
87
  alreadyUpdating = true;
80
88
  $table.trigger('updateCell', [ $tar.closest('td'), resort ]);
81
89
  updateServer(e, $table, $tar);
@@ -1,4 +1,4 @@
1
- /*! tablesorter math widget - beta testing
1
+ /*! tablesorter math widget - beta - updated 4/27/2014 (v2.16.2)
2
2
  * Requires tablesorter v2.16+ and jQuery 1.7+
3
3
  * by Rob Garrison
4
4
  */
@@ -149,7 +149,8 @@
149
149
  },
150
150
 
151
151
  output : function($cell, wo, value, arry) {
152
- var result = ts.formatMask( wo.math_mask, value );
152
+ // get mask from cell data-attribute: data-math-mask="#,##0.00"
153
+ var result = ts.formatMask( $cell.attr('data-' + wo.math_data + '-mask') || wo.math_mask, value );
153
154
  if ($.isFunction(wo.math_complete)) {
154
155
  result = wo.math_complete($cell, wo, result, value, arry);
155
156
  }
@@ -10,7 +10,7 @@
10
10
 
11
11
  Resizable scroller widget for the jQuery tablesorter plugin
12
12
 
13
- Version 2.0 - modified by Rob Garrison (4/12/2013; updated 4/20/2014 for tablesorter v2.16.0)
13
+ Version 2.0 - modified by Rob Garrison (4/12/2013; updated 4/27/2014 for tablesorter v2.16.2)
14
14
  Requires jQuery v1.7+
15
15
  Requires the tablesorter plugin, v2.8+, available at http://mottie.github.com/tablesorter/docs/
16
16
 
@@ -109,23 +109,7 @@ ts.addWidget({
109
109
  .wrap('<div class="tablesorter-scroller-header" style="width:' + $tbl.width() + ';" />')
110
110
  .find('.' + ts.css.header);
111
111
 
112
- $tbl
113
- .wrap('<div class="tablesorter-scroller-table" style="height:' + h + 'px;width:' + $tbl.width() + ';overflow-y:scroll;" />')
114
- .unbind('sortEnd.tsScroller')
115
- .bind('sortEnd.tsScroller', function(){
116
- c.$headers.each(function(i){
117
- var t = $cells.eq(i);
118
- t
119
- .attr('class', $(this).attr('class'))
120
- // remove processing icon
121
- .removeClass(ts.css.processing + ' ' + c.cssProcessing);
122
- if (ts.css.icon){
123
- t
124
- .find('.' + ts.css.icon)
125
- .attr('class', $(this).find('.' + ts.css.icon).attr('class'));
126
- }
127
- });
128
- });
112
+ $tbl.wrap('<div class="tablesorter-scroller-table" style="height:' + h + 'px;width:' + $tbl.width() + ';overflow-y:scroll;" />')
129
113
 
130
114
  // make scroller header sortable
131
115
  ts.bindEvents(table, $cells);
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.11.0
4
+ version: 1.11.1
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: 2014-04-24 00:00:00.000000000 Z
12
+ date: 2014-04-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties