jquery-tablesorter 1.9.2 → 1.9.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.markdown +1 -1
- data/lib/jquery-tablesorter/version.rb +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.js +18 -5
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.js +5 -4
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.widgets.js +24 -27
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 549c6f6e362d81047b6a9082c4529dacaf1c5b71
|
4
|
+
data.tar.gz: 6e02e0c0162e732cb5a39ae23c88054ab408bec4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57c564f0b5230be77f87fbe0850f51f61503da47636f55bf761b48649937e63ace422bc27570e14fe7dee8fedac93c9f0000754b993fd8dcb0da46720cec3b3a
|
7
|
+
data.tar.gz: 4fd4f5eb7fcc1b3799c3218160be416b6815da30e5c0436274854517bcebe952794892a4d580b0a4ac15f0f2ffab50ccde730bab03aab43a134c93bb2ded4ff1
|
data/README.markdown
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.14.
|
7
|
+
Current tablesorter version: 2.14.3 (12/2/2013), [documentation]
|
8
8
|
|
9
9
|
Any issue associate with the js/css files, please report to [Mottie's fork].
|
10
10
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*!
|
2
2
|
* tablesorter pager plugin
|
3
|
-
* updated
|
3
|
+
* updated 12/2/2013 (v2.14.3)
|
4
4
|
*/
|
5
5
|
/*jshint browser:true, jquery:true, unused:false */
|
6
6
|
;(function($) {
|
@@ -92,6 +92,7 @@
|
|
92
92
|
totalPages: 0,
|
93
93
|
filteredRows: 0,
|
94
94
|
filteredPages: 0,
|
95
|
+
ajaxCounter: 0,
|
95
96
|
currentFilters: [],
|
96
97
|
startRow: 0,
|
97
98
|
endRow: 0,
|
@@ -138,8 +139,12 @@
|
|
138
139
|
})
|
139
140
|
// {totalPages}, {extra}, {extra:0} (array) or {extra : key} (object)
|
140
141
|
.replace(/\{\w+(\s*:\s*\w+)?\}/gi, function(m){
|
141
|
-
var
|
142
|
-
|
142
|
+
var str = m.replace(/[{}\s]/g,''),
|
143
|
+
extra = str.split(':'),
|
144
|
+
data = p.ajaxData,
|
145
|
+
// return zero for default page/row numbers
|
146
|
+
deflt = /(rows?|pages?)$/i.test(str) ? 0 : '';
|
147
|
+
return extra.length > 1 && data && data[extra[0]] ? data[extra[0]][extra[1]] : p[str] || (data ? data[str] : deflt) || deflt;
|
143
148
|
});
|
144
149
|
if (out.length) {
|
145
150
|
out[ (out[0].tagName === 'INPUT') ? 'val' : 'html' ](s);
|
@@ -278,8 +283,8 @@
|
|
278
283
|
for ( i = 0; i < l; i++ ) {
|
279
284
|
tds += '<tr>';
|
280
285
|
for ( j = 0; j < d[i].length; j++ ) {
|
281
|
-
// build tbody cells
|
282
|
-
tds += '<td>' + d[i][j] + '</td>';
|
286
|
+
// build tbody cells; watch for data containing HTML markup - see #434
|
287
|
+
tds += /^\s*<td/.test(d[i][j]) ? $.trim(d[i][j]) : '<td>' + d[i][j] + '</td>';
|
283
288
|
}
|
284
289
|
tds += '</tr>';
|
285
290
|
}
|
@@ -340,6 +345,7 @@
|
|
340
345
|
getAjax = function(table, p){
|
341
346
|
var url = getAjaxUrl(table, p),
|
342
347
|
$doc = $(document),
|
348
|
+
counter,
|
343
349
|
c = table.config;
|
344
350
|
if ( url !== '' ) {
|
345
351
|
if (c.showProcessing) {
|
@@ -349,8 +355,15 @@
|
|
349
355
|
renderAjax(null, table, p, xhr, exception);
|
350
356
|
$doc.unbind('ajaxError.pager');
|
351
357
|
});
|
358
|
+
|
359
|
+
counter = ++p.ajaxCounter;
|
360
|
+
|
352
361
|
p.ajaxObject.url = url; // from the ajaxUrl option and modified by customAjaxUrl
|
353
362
|
p.ajaxObject.success = function(data) {
|
363
|
+
// Refuse to process old ajax commands that were overwritten by new ones - see #443
|
364
|
+
if (counter < p.ajaxCounter){
|
365
|
+
return;
|
366
|
+
}
|
354
367
|
renderAjax(data, table, p);
|
355
368
|
$doc.unbind('ajaxError.pager');
|
356
369
|
if (typeof p.oldAjaxSuccess === 'function') {
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**!
|
2
|
-
* TableSorter 2.14.
|
2
|
+
* TableSorter 2.14.3 - 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.14.
|
27
|
+
ts.version = "2.14.3";
|
28
28
|
|
29
29
|
ts.parsers = [];
|
30
30
|
ts.widgets = [];
|
@@ -1284,11 +1284,11 @@
|
|
1284
1284
|
if (init || !(c.widgetInit[w.id])) {
|
1285
1285
|
if (w.hasOwnProperty('options')) {
|
1286
1286
|
wo = table.config.widgetOptions = $.extend( true, {}, w.options, wo );
|
1287
|
-
c.widgetInit[w.id] = true;
|
1288
1287
|
}
|
1289
1288
|
if (w.hasOwnProperty('init')) {
|
1290
1289
|
w.init(table, w, c, wo);
|
1291
1290
|
}
|
1291
|
+
c.widgetInit[w.id] = true;
|
1292
1292
|
}
|
1293
1293
|
if (!init && w.hasOwnProperty('format')) {
|
1294
1294
|
w.format(table, c, wo, false);
|
@@ -1311,7 +1311,8 @@
|
|
1311
1311
|
for (i = 0; i < l; i++){
|
1312
1312
|
if ( w[i] && w[i].id && (doAll || $.inArray( w[i].id, cw ) < 0) ) {
|
1313
1313
|
if (c.debug) { log( 'Refeshing widgets: Removing ' + w[i].id ); }
|
1314
|
-
|
1314
|
+
// only remove widgets that have been initialized - fixes #442
|
1315
|
+
if (w[i].hasOwnProperty('remove') && c.widgetInit[w[i].id]) {
|
1315
1316
|
w[i].remove(table, c, c.widgetOptions);
|
1316
1317
|
c.widgetInit[w[i].id] = false;
|
1317
1318
|
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! tableSorter 2.8+ widgets - updated
|
1
|
+
/*! tableSorter 2.8+ widgets - updated 12/2/2013 (v2.14.3)
|
2
2
|
*
|
3
3
|
* Column Styles
|
4
4
|
* Column Filters
|
@@ -422,8 +422,8 @@ ts.filter = {
|
|
422
422
|
// Look for quotes or equals to get an exact match; ignore type since iExact could be numeric
|
423
423
|
exact: function( filter, iFilter, exact, iExact ) {
|
424
424
|
/*jshint eqeqeq:false */
|
425
|
-
if (
|
426
|
-
return
|
425
|
+
if (ts.filter.regex.exact.test(iFilter)) {
|
426
|
+
return iFilter.replace(ts.filter.regex.exact, '') == iExact;
|
427
427
|
}
|
428
428
|
return null;
|
429
429
|
},
|
@@ -479,7 +479,7 @@ ts.filter = {
|
|
479
479
|
// Look for a range (using " to " or " - ") - see issue #166; thanks matzhu!
|
480
480
|
range : function( filter, iFilter, exact, iExact, cached, index, table, wo, parsed ) {
|
481
481
|
if ( /\s+(-|to)\s+/.test(iFilter) ) {
|
482
|
-
var result,
|
482
|
+
var result, tmp,
|
483
483
|
c = table.config,
|
484
484
|
query = iFilter.split(/(?: - | to )/), // make sure the dash is for a range and not indicating a negative number
|
485
485
|
range1 = ts.formatFloat(query[0].replace(ts.filter.regex.nondigit, ''), table),
|
@@ -494,7 +494,7 @@ ts.filter = {
|
|
494
494
|
result = ( parsed[index] || c.parsers[index].type === 'numeric' ) && !isNaN(range1) && !isNaN(range2) ? cached :
|
495
495
|
isNaN(iExact) ? ts.formatFloat( iExact.replace(ts.filter.regex.nondigit, ''), table) :
|
496
496
|
ts.formatFloat( iExact, table );
|
497
|
-
if (range1 > range2) {
|
497
|
+
if (range1 > range2) { tmp = range1; range1 = range2; range2 = tmp; } // swap
|
498
498
|
return (result >= range1 && result <= range2) || (range1 === '' || range2 === '');
|
499
499
|
}
|
500
500
|
return null;
|
@@ -605,7 +605,7 @@ ts.filter = {
|
|
605
605
|
});
|
606
606
|
|
607
607
|
if (wo.filter_hideFilters) {
|
608
|
-
ts.filter.hideFilters(table, c
|
608
|
+
ts.filter.hideFilters(table, c);
|
609
609
|
}
|
610
610
|
|
611
611
|
// show processing icon
|
@@ -712,6 +712,7 @@ ts.filter = {
|
|
712
712
|
var external, wo = table.config.widgetOptions;
|
713
713
|
$el.unbind('keyup search filterReset')
|
714
714
|
.bind('keyup search', function(event, filter) {
|
715
|
+
var $this = $(this);
|
715
716
|
// emulate what webkit does.... escape clears the filter
|
716
717
|
if (event.which === 27) {
|
717
718
|
this.value = '';
|
@@ -722,7 +723,7 @@ ts.filter = {
|
|
722
723
|
return;
|
723
724
|
}
|
724
725
|
// external searches won't have a filter parameter, so grab the value
|
725
|
-
if ($(this
|
726
|
+
if ($this.hasClass('tablesorter-filter') && !$this.hasClass('tablesorter-external-filter')) {
|
726
727
|
external = filter;
|
727
728
|
} else {
|
728
729
|
external = [];
|
@@ -766,7 +767,7 @@ ts.filter = {
|
|
766
767
|
return false;
|
767
768
|
}
|
768
769
|
},
|
769
|
-
hideFilters: function(table, c
|
770
|
+
hideFilters: function(table, c) {
|
770
771
|
var $filterRow, $filterRow2, timer;
|
771
772
|
c.$table
|
772
773
|
.find('.tablesorter-filter-row')
|
@@ -824,7 +825,8 @@ ts.filter = {
|
|
824
825
|
for (tbodyIndex = 0; tbodyIndex < $tbodies.length; tbodyIndex++ ) {
|
825
826
|
if ($tbodies.eq(tbodyIndex).hasClass(ts.css.info)) { continue; } // ignore info blocks, issue #264
|
826
827
|
$tbody = ts.processTbody(table, $tbodies.eq(tbodyIndex), true);
|
827
|
-
|
828
|
+
// skip child rows & widget added (removable) rows - fixes #448 thanks to @hempel!
|
829
|
+
$rows = $tbody.children('tr').not('.' + c.cssChildRow).not(c.selectorRemove);
|
828
830
|
len = $rows.length;
|
829
831
|
if (combinedFilters === '' || wo.filter_serversideFiltering) {
|
830
832
|
$tbody.children().show().removeClass(wo.filter_filteredRow);
|
@@ -1083,7 +1085,6 @@ ts.addWidget({
|
|
1083
1085
|
$stickyCells,
|
1084
1086
|
laststate = '',
|
1085
1087
|
spacing = 0,
|
1086
|
-
updatingStickyFilters = false,
|
1087
1088
|
nonwkie = $table.css('border-collapse') !== 'collapse' && !/(webkit|msie)/i.test(navigator.userAgent),
|
1088
1089
|
resizeHeader = function() {
|
1089
1090
|
stickyOffset = $stickyOffset.length ? $stickyOffset.height() || 0 : parseInt(wo.stickyHeaders_offset, 10) || 0;
|
@@ -1193,24 +1194,20 @@ ts.addWidget({
|
|
1193
1194
|
}
|
1194
1195
|
|
1195
1196
|
// look for filter widget
|
1196
|
-
$table.
|
1197
|
-
|
1198
|
-
|
1199
|
-
|
1197
|
+
if ($table.hasClass('hasFilters')) {
|
1198
|
+
$table.bind('filterEnd', function() {
|
1199
|
+
// $(':focus') needs jQuery 1.6+
|
1200
|
+
if ( $(document.activeElement).closest('thead')[0] !== $stickyThead[0] ) {
|
1201
|
+
// don't update the stickyheader filter row if it already has focus
|
1202
|
+
$stickyThead.find('.tablesorter-filter-row').children().each(function(indx) {
|
1203
|
+
$(this).find(filterInputs).val( c.$filters.find(filterInputs).eq(indx).val() );
|
1204
|
+
});
|
1205
|
+
}
|
1200
1206
|
});
|
1201
|
-
|
1202
|
-
|
1203
|
-
|
1204
|
-
|
1205
|
-
updatingStickyFilters = true;
|
1206
|
-
var $f = $(this), column = $f.attr('data-column');
|
1207
|
-
c.$filters.find(filterInputs).eq(column)
|
1208
|
-
.val( $f.val() )
|
1209
|
-
.trigger('search');
|
1210
|
-
setTimeout(function() {
|
1211
|
-
updatingStickyFilters = false;
|
1212
|
-
}, wo.filter_searchDelay);
|
1213
|
-
});
|
1207
|
+
|
1208
|
+
ts.filter.bindSearch( $table, $stickyCells.find('.tablesorter-filter').addClass('tablesorter-external-filter') );
|
1209
|
+
}
|
1210
|
+
|
1214
1211
|
$table.trigger('stickyHeadersInit');
|
1215
1212
|
|
1216
1213
|
},
|
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.9.
|
4
|
+
version: 1.9.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jun Lin
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-12-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: railties
|