jquery-tablesorter 1.12.2 → 1.12.3
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 +2 -2
- data/lib/jquery-tablesorter/version.rb +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.js +14 -12
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.js +4 -4
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.widgets.js +34 -27
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-roman.js +117 -0
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-pager.js +16 -14
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-scroller.js +5 -2
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-staticRow.js +5 -4
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a5253701a4f87cd7b7d769b85e70b40516e1c2d5
|
4
|
+
data.tar.gz: 3d6374f8bb6c3f2b75d727831bfa1177f2e2ef05
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7831c01cbf8d368c9b17ba7a5846c382d8291f1526fd81c7548545d235c273032dad16613f6566c7192fa5b83ccda5b4220544233ef82cc6ded89598a70287ad
|
7
|
+
data.tar.gz: 604e4f8511ce3f449d615fca60e02a8745fb8178e59dae3f13499975a8ff6caa4849a0bbf26ac7cc3a4e7af4046c05b0834fcee1953395ae209e9a1bbc83e0dd
|
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.17.
|
7
|
+
Current tablesorter version: 2.17.3 (6/28/2014), [documentation]
|
8
8
|
|
9
9
|
Any issue associated with the js/css files, please report to [Mottie's fork].
|
10
10
|
|
@@ -26,7 +26,7 @@ Or install it yourself as:
|
|
26
26
|
|
27
27
|
Rails 3.1 and higher (tested up to 4.1)
|
28
28
|
|
29
|
-
Tested with ruby 1.9.3 - 2.1.
|
29
|
+
Tested with ruby 1.9.3 - 2.1.2
|
30
30
|
|
31
31
|
## Usage
|
32
32
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*!
|
2
2
|
* tablesorter pager plugin
|
3
|
-
* updated 6/
|
3
|
+
* updated 6/28/2014 (v2.17.3)
|
4
4
|
*/
|
5
5
|
/*jshint browser:true, jquery:true, unused:false */
|
6
6
|
;(function($) {
|
@@ -121,7 +121,7 @@
|
|
121
121
|
dis = !!disable,
|
122
122
|
first = ( dis || p.page === 0 ),
|
123
123
|
tp = Math.min( p.totalPages, p.filteredPages ),
|
124
|
-
last = ( dis || (p.page === tp - 1) ||
|
124
|
+
last = ( dis || (p.page === tp - 1) || tp === 0 );
|
125
125
|
if ( p.updateArrows ) {
|
126
126
|
p.$container.find(p.cssFirst + ',' + p.cssPrev)[ first ? a : r ](d).attr('aria-disabled', first);
|
127
127
|
p.$container.find(p.cssNext + ',' + p.cssLast)[ last ? a : r ](d).attr('aria-disabled', last);
|
@@ -131,21 +131,22 @@
|
|
131
131
|
updatePageDisplay = function(table, p, completed) {
|
132
132
|
var i, pg, s, out, regex,
|
133
133
|
c = table.config,
|
134
|
-
f = c.$table.hasClass('hasFilters')
|
134
|
+
f = c.$table.hasClass('hasFilters'),
|
135
135
|
t = [],
|
136
136
|
sz = p.size || 10; // don't allow dividing by zero
|
137
|
-
t = [ (c.widgetOptions && c.widgetOptions.filter_filteredRow || 'filtered'), c.selectorRemove ];
|
137
|
+
t = [ (c.widgetOptions && c.widgetOptions.filter_filteredRow || 'filtered'), c.selectorRemove.replace(/^(\w+\.)/g,'') ];
|
138
138
|
if (p.countChildRows) { t.push(c.cssChildRow); }
|
139
139
|
regex = new RegExp( '(' + t.join('|') + ')' );
|
140
140
|
p.totalPages = Math.ceil( p.totalRows / sz ); // needed for "pageSize" method
|
141
|
-
|
142
|
-
|
143
|
-
if (f) {
|
141
|
+
if (f && !p.ajaxUrl) {
|
142
|
+
p.filteredRows = 0;
|
144
143
|
$.each(c.cache[0].normalized, function(i, el) {
|
145
144
|
p.filteredRows += p.regexRows.test(el[c.columns].$row[0].className) ? 0 : 1;
|
146
145
|
});
|
147
|
-
|
146
|
+
} else if (!f) {
|
147
|
+
p.filteredRows = p.totalRows;
|
148
148
|
}
|
149
|
+
p.filteredPages = Math.ceil( p.filteredRows / sz ) || 0;
|
149
150
|
if ( Math.min( p.totalPages, p.filteredPages ) >= 0 ) {
|
150
151
|
t = (p.size * p.page > p.filteredRows);
|
151
152
|
p.startRow = (t) ? 1 : (p.filteredRows === 0 ? 0 : p.size * p.page + 1);
|
@@ -202,7 +203,7 @@
|
|
202
203
|
if (h) {
|
203
204
|
d = h - $b.height();
|
204
205
|
if ( d > 5 && $.data(table, 'pagerLastSize') === p.size && $b.children('tr:visible').length < p.size ) {
|
205
|
-
$b.append('<tr class="pagerSavedHeightSpacer ' + c.selectorRemove.replace(
|
206
|
+
$b.append('<tr class="pagerSavedHeightSpacer ' + c.selectorRemove.replace(/^(\w+\.)/g,'') + '" style="height:' + d + 'px;"></tr>');
|
206
207
|
}
|
207
208
|
}
|
208
209
|
}
|
@@ -235,7 +236,7 @@
|
|
235
236
|
} else {
|
236
237
|
rows[i].style.display = ( j >= s && j < e ) ? '' : 'none';
|
237
238
|
// don't count child rows
|
238
|
-
j += rows[i].className.match(c.cssChildRow + '|' + c.selectorRemove.
|
239
|
+
j += rows[i].className.match(c.cssChildRow + '|' + c.selectorRemove.replace(/^(\w+\.)/g,'')) && !p.countChildRows ? 0 : 1;
|
239
240
|
if ( j === e && rows[i].style.display !== 'none' && rows[i].className.match(ts.css.cssHasChild) ) {
|
240
241
|
lastIndex = i;
|
241
242
|
}
|
@@ -296,6 +297,7 @@
|
|
296
297
|
if (!$.isArray(result)) {
|
297
298
|
p.ajaxData = result;
|
298
299
|
p.totalRows = result.total;
|
300
|
+
p.filteredRows = typeof result.filteredRows !== 'undefined' ? result.filteredRows : result.total;
|
299
301
|
th = result.headers;
|
300
302
|
d = result.rows;
|
301
303
|
} else {
|
@@ -696,7 +698,7 @@
|
|
696
698
|
}
|
697
699
|
|
698
700
|
// skipped rows
|
699
|
-
p.regexRows = new RegExp('(' + (wo.filter_filteredRow || 'filtered') + '|' + c.selectorRemove.
|
701
|
+
p.regexRows = new RegExp('(' + (wo.filter_filteredRow || 'filtered') + '|' + c.selectorRemove.replace(/^(\w+\.)/g,'') + '|' + c.cssChildRow + ')');
|
700
702
|
|
701
703
|
$t
|
702
704
|
.unbind('filterStart filterEnd sortEnd disable enable destroy update updateRows updateAll addRows pageSize '.split(' ').join('.pager '))
|
@@ -845,7 +847,7 @@
|
|
845
847
|
})
|
846
848
|
// add error row to thead instead of tbody, or clicking on the header will result in a parser error
|
847
849
|
.appendTo( c.$table.find('thead:first') )
|
848
|
-
.addClass( errorRow + ' ' + c.selectorRemove.replace(/^
|
850
|
+
.addClass( errorRow + ' ' + c.selectorRemove.replace(/^(\w+\.)/g,'') )
|
849
851
|
.attr({
|
850
852
|
role : 'alert',
|
851
853
|
'aria-live' : 'assertive'
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**!
|
2
|
-
* TableSorter 2.17.
|
2
|
+
* TableSorter 2.17.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.17.
|
27
|
+
ts.version = "2.17.3";
|
28
28
|
|
29
29
|
ts.parsers = [];
|
30
30
|
ts.widgets = [];
|
@@ -1181,9 +1181,9 @@
|
|
1181
1181
|
return this.sortDisabled ? false : ts.isValueInArray( parseFloat($(this).attr('data-column')), c.sortList) >= 0;
|
1182
1182
|
});
|
1183
1183
|
}
|
1184
|
-
$h.addClass(ts.css.processing + ' ' + c.cssProcessing);
|
1184
|
+
table.add($h).addClass(ts.css.processing + ' ' + c.cssProcessing);
|
1185
1185
|
} else {
|
1186
|
-
$h.removeClass(ts.css.processing + ' ' + c.cssProcessing);
|
1186
|
+
table.add($h).removeClass(ts.css.processing + ' ' + c.cssProcessing);
|
1187
1187
|
}
|
1188
1188
|
};
|
1189
1189
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! tableSorter 2.16+ widgets - updated 6/
|
1
|
+
/*! tableSorter 2.16+ widgets - updated 6/28/2014 (v2.17.3)
|
2
2
|
*
|
3
3
|
* Column Styles
|
4
4
|
* Column Filters
|
@@ -568,6 +568,9 @@ ts.filter = {
|
|
568
568
|
}
|
569
569
|
c.$table.addClass('hasFilters');
|
570
570
|
|
571
|
+
// define searchTimer so using clearTimeout won't cause an undefined error
|
572
|
+
wo.searchTimer = null;
|
573
|
+
|
571
574
|
$.extend( regex, {
|
572
575
|
child : new RegExp(c.cssChildRow),
|
573
576
|
filtered : new RegExp(wo.filter_filteredRow),
|
@@ -592,6 +595,7 @@ ts.filter = {
|
|
592
595
|
ts.filter.buildDefault(table, true);
|
593
596
|
}
|
594
597
|
if (event.type === 'filterReset') {
|
598
|
+
c.$table.find('.' + ts.css.filter).add(wo.filter_$externalFilters).val('');
|
595
599
|
ts.filter.searching(table, []);
|
596
600
|
} else if (event.type === 'filterEnd') {
|
597
601
|
ts.filter.buildDefault(table, true);
|
@@ -788,29 +792,45 @@ ts.filter = {
|
|
788
792
|
.attr('data-lastSearchTime', new Date().getTime())
|
789
793
|
.unbind('keypress keyup search change '.split(' ').join(c.namespace + 'filter '))
|
790
794
|
// include change for select - fixes #473
|
791
|
-
.bind('keyup
|
795
|
+
.bind('keyup' + c.namespace + 'filter', function(event) {
|
792
796
|
$(this).attr('data-lastSearchTime', new Date().getTime());
|
793
797
|
// emulate what webkit does.... escape clears the filter
|
794
798
|
if (event.which === 27) {
|
795
799
|
this.value = '';
|
796
|
-
//
|
797
|
-
} else if (
|
798
|
-
|
799
|
-
|
800
|
-
|
800
|
+
// live search
|
801
|
+
} else if ( wo.filter_liveSearch === false ) {
|
802
|
+
return;
|
803
|
+
// don't return if the search value is empty (all rows need to be revealed)
|
804
|
+
} else if ( this.value !== '' && (
|
805
|
+
// liveSearch can contain a min value length; ignore arrow and meta keys, but allow backspace
|
806
|
+
( typeof wo.filter_liveSearch === 'number' && this.value.length < wo.filter_liveSearch ) ||
|
807
|
+
// let return & backspace continue on, but ignore arrows & non-valid characters
|
808
|
+
( event.which !== 13 && event.which !== 8 && ( event.which < 32 || (event.which >= 37 && event.which <= 40) ) ) ) ) {
|
809
|
+
return;
|
801
810
|
}
|
802
811
|
// change event = no delay; last true flag tells getFilters to skip newest timed input
|
803
|
-
ts.filter.searching( table,
|
812
|
+
ts.filter.searching( table, true, true );
|
804
813
|
})
|
805
|
-
.bind('keypress.'
|
806
|
-
if (event.which === 13) {
|
814
|
+
.bind('search change keypress '.split(' ').join(c.namespace + 'filter '), function(event){
|
815
|
+
if (event.which === 13 || event.type === 'search' || event.type === 'change') {
|
807
816
|
event.preventDefault();
|
808
|
-
|
817
|
+
// init search with no delay
|
818
|
+
ts.filter.searching( table, false, true );
|
809
819
|
}
|
810
820
|
});
|
811
|
-
|
812
|
-
|
813
|
-
|
821
|
+
},
|
822
|
+
searching: function(table, filter, skipFirst) {
|
823
|
+
var wo = table.config.widgetOptions;
|
824
|
+
clearTimeout(wo.searchTimer);
|
825
|
+
if (typeof filter === 'undefined' || filter === true) {
|
826
|
+
// delay filtering
|
827
|
+
wo.searchTimer = setTimeout(function() {
|
828
|
+
ts.filter.checkFilters(table, filter, skipFirst );
|
829
|
+
}, wo.filter_liveSearch ? wo.filter_searchDelay : 10);
|
830
|
+
} else {
|
831
|
+
// skip delay
|
832
|
+
ts.filter.checkFilters(table, filter, skipFirst);
|
833
|
+
}
|
814
834
|
},
|
815
835
|
checkFilters: function(table, filter, skipFirst) {
|
816
836
|
var c = table.config,
|
@@ -1221,19 +1241,6 @@ ts.filter = {
|
|
1221
1241
|
ts.filter.buildSelect(table, columnIndex, updating, $header.hasClass(wo.filter_onlyAvail));
|
1222
1242
|
}
|
1223
1243
|
}
|
1224
|
-
},
|
1225
|
-
searching: function(table, filter, skipFirst) {
|
1226
|
-
if (typeof filter === 'undefined' || filter === true) {
|
1227
|
-
var wo = table.config.widgetOptions;
|
1228
|
-
// delay filtering
|
1229
|
-
clearTimeout(wo.searchTimer);
|
1230
|
-
wo.searchTimer = setTimeout(function() {
|
1231
|
-
ts.filter.checkFilters(table, filter, skipFirst );
|
1232
|
-
}, wo.filter_liveSearch ? wo.filter_searchDelay : 10);
|
1233
|
-
} else {
|
1234
|
-
// skip delay
|
1235
|
-
ts.filter.checkFilters(table, filter, skipFirst);
|
1236
|
-
}
|
1237
1244
|
}
|
1238
1245
|
};
|
1239
1246
|
|
@@ -0,0 +1,117 @@
|
|
1
|
+
/*! Roman numeral parsers
|
2
|
+
* code modified from both:
|
3
|
+
* Steven Levithan @ http://blog.stevenlevithan.com/archives/javascript-roman-numeral-converter
|
4
|
+
* Jonathan Snook comment @ http://blog.stevenlevithan.com/archives/javascript-roman-numeral-converter#comment-16140
|
5
|
+
*/
|
6
|
+
/*jshint jquery:true, unused:false */
|
7
|
+
;(function($){
|
8
|
+
"use strict";
|
9
|
+
|
10
|
+
// allow lower case roman numerals, since lists use i, ii, iii, etc.
|
11
|
+
var validator = /^M*(?:D?C{0,3}|C[MD])(?:L?X{0,3}|X[CL])(?:V?I{0,3}|I[XV])$/i,
|
12
|
+
matcher = /\b([MCDLXVI]+\b)/gi,
|
13
|
+
lookup = { I:1, V:5, X:10, L:50, C:100, D:500, M:1000 };
|
14
|
+
|
15
|
+
$.tablesorter.addParser({
|
16
|
+
id: 'roman',
|
17
|
+
is: function(){
|
18
|
+
return false;
|
19
|
+
},
|
20
|
+
format: function(s) {
|
21
|
+
var val,
|
22
|
+
roman = s.toUpperCase().split(''),
|
23
|
+
num = 0;
|
24
|
+
|
25
|
+
// roman numerals not found!
|
26
|
+
if ( !(s && validator.test(s)) ) {
|
27
|
+
return s;
|
28
|
+
}
|
29
|
+
|
30
|
+
while (roman.length) {
|
31
|
+
val = lookup[roman.shift()];
|
32
|
+
num += val * (val < lookup[roman[0]] ? -1 : 1);
|
33
|
+
}
|
34
|
+
|
35
|
+
return num;
|
36
|
+
},
|
37
|
+
type: "numeric"
|
38
|
+
});
|
39
|
+
|
40
|
+
$.tablesorter.addParser({
|
41
|
+
id: 'roman-ignore',
|
42
|
+
is: function(){
|
43
|
+
return false;
|
44
|
+
},
|
45
|
+
format: function(s, table, cell, column) {
|
46
|
+
var val, orig,
|
47
|
+
c = table.config,
|
48
|
+
ignore = $.isArray(c.roman_ignore) ? c.roman_ignore[column] : 0,
|
49
|
+
// find roman numerals
|
50
|
+
roman = ( isNaN(ignore) ?
|
51
|
+
// ignore can be a regex or string
|
52
|
+
$.trim( s.replace(ignore, '') ) :
|
53
|
+
// or a number to ignore the last x letters...
|
54
|
+
$.trim( s.substring(0, s.length - ignore) )
|
55
|
+
).match(matcher),
|
56
|
+
v = validator.test(roman),
|
57
|
+
num = 0;
|
58
|
+
|
59
|
+
// roman numerals not found!
|
60
|
+
if ( !(v) ) {
|
61
|
+
return s;
|
62
|
+
}
|
63
|
+
|
64
|
+
// save roman numeral for replacement
|
65
|
+
orig = roman[0];
|
66
|
+
roman = orig.toUpperCase().split('');
|
67
|
+
|
68
|
+
while (roman.length) {
|
69
|
+
val = lookup[roman.shift()];
|
70
|
+
// ignore non-roman numerals
|
71
|
+
if (val) {
|
72
|
+
num += val * (val < lookup[roman[0]] ? -1 : 1);
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
76
|
+
return num ? s.replace(orig, num) : s;
|
77
|
+
},
|
78
|
+
type: "text"
|
79
|
+
});
|
80
|
+
|
81
|
+
$.tablesorter.addParser({
|
82
|
+
id: 'roman-extract',
|
83
|
+
is: function(){
|
84
|
+
return false;
|
85
|
+
},
|
86
|
+
format: function(s) {
|
87
|
+
var val,
|
88
|
+
// find roman numerals
|
89
|
+
roman = $.grep(s.split(/\b/), function(v, i){
|
90
|
+
return validator.test(v) ? v : '';
|
91
|
+
}).join('').match(matcher),
|
92
|
+
|
93
|
+
v = roman ? validator.test(roman) : 0,
|
94
|
+
num = 0;
|
95
|
+
|
96
|
+
// roman numerals not found!
|
97
|
+
if ( !(v) ) {
|
98
|
+
return s;
|
99
|
+
}
|
100
|
+
|
101
|
+
// save roman numeral for replacement
|
102
|
+
roman = roman[0].toUpperCase().split('');
|
103
|
+
|
104
|
+
while (roman.length) {
|
105
|
+
val = lookup[roman.shift()];
|
106
|
+
// ignore non-roman numerals
|
107
|
+
if (val) {
|
108
|
+
num += val * (val < lookup[roman[0]] ? -1 : 1);
|
109
|
+
}
|
110
|
+
}
|
111
|
+
|
112
|
+
return num ? num : s;
|
113
|
+
},
|
114
|
+
type: "numeric"
|
115
|
+
});
|
116
|
+
|
117
|
+
})(jQuery);
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/* Pager widget (beta) for TableSorter 6/
|
1
|
+
/* Pager widget (beta) for TableSorter 6/28/2014 (v2.17.3) */
|
2
2
|
/*jshint browser:true, jquery:true, unused:false */
|
3
3
|
;(function($){
|
4
4
|
"use strict";
|
@@ -93,7 +93,7 @@ ts.addWidget({
|
|
93
93
|
prev : '.prev', // previous page arrow
|
94
94
|
next : '.next', // next page arrow
|
95
95
|
last : '.last', // go to last page arrow
|
96
|
-
|
96
|
+
gotoPage : '.gotoPage', // go to page selector - select dropdown that sets the current page
|
97
97
|
pageDisplay : '.pagedisplay', // location of where the "output" is displayed
|
98
98
|
pageSize : '.pagesize' // page size selector - select dropdown that sets the "size" option
|
99
99
|
}
|
@@ -150,7 +150,7 @@ tsp = ts.pager = {
|
|
150
150
|
// added in case the pager is reinitialized after being destroyed.
|
151
151
|
p.$container = $(s.container).addClass(wo.pager_css.container).show();
|
152
152
|
// goto selector
|
153
|
-
p.$goto = p.$container.find(s.
|
153
|
+
p.$goto = p.$container.find(s.gotoPage); // goto is a reserved word #657
|
154
154
|
// page size selector
|
155
155
|
p.$size = p.$container.find(s.pageSize);
|
156
156
|
p.totalRows = c.$tbodies.eq(0).children('tr').length;
|
@@ -170,7 +170,7 @@ tsp = ts.pager = {
|
|
170
170
|
}
|
171
171
|
|
172
172
|
// skipped rows
|
173
|
-
p.regexRows = new RegExp('(' + (wo.filter_filteredRow || 'filtered') + '|' + c.selectorRemove.
|
173
|
+
p.regexRows = new RegExp('(' + (wo.filter_filteredRow || 'filtered') + '|' + c.selectorRemove.replace(/^(\w+\.)/g,'') + '|' + c.cssChildRow + ')');
|
174
174
|
|
175
175
|
// clear initialized flag
|
176
176
|
p.initialized = false;
|
@@ -322,7 +322,7 @@ tsp = ts.pager = {
|
|
322
322
|
dis = !!disable,
|
323
323
|
first = dis || p.page === 0,
|
324
324
|
tp = Math.min( p.totalPages, p.filteredPages ),
|
325
|
-
last = dis || p.page === tp - 1 ||
|
325
|
+
last = dis || p.page === tp - 1 || tp === 0,
|
326
326
|
wo = c.widgetOptions,
|
327
327
|
s = wo.pager_selectors;
|
328
328
|
if ( wo.pager_updateArrows ) {
|
@@ -335,22 +335,23 @@ tsp = ts.pager = {
|
|
335
335
|
var i, pg, s, out, regex,
|
336
336
|
wo = c.widgetOptions,
|
337
337
|
p = c.pager,
|
338
|
-
f = c.$table.hasClass('hasFilters')
|
338
|
+
f = c.$table.hasClass('hasFilters'),
|
339
339
|
t = [],
|
340
340
|
sz = p.size || 10; // don't allow dividing by zero
|
341
|
-
t = [ wo && wo.filter_filteredRow || 'filtered', c.selectorRemove ];
|
341
|
+
t = [ wo && wo.filter_filteredRow || 'filtered', c.selectorRemove.replace(/^(\w+\.)/g,'') ];
|
342
342
|
if (wo.pager_countChildRows) { t.push(c.cssChildRow); }
|
343
343
|
regex = new RegExp( '(' + t.join('|') + ')' );
|
344
344
|
p.$size.add(p.$goto).removeClass(wo.pager_css.disabled).removeAttr('disabled').attr('aria-disabled', 'false');
|
345
345
|
p.totalPages = Math.ceil( p.totalRows / sz ); // needed for "pageSize" method
|
346
|
-
|
347
|
-
|
348
|
-
if (f) {
|
346
|
+
if (f && !wo.pager_ajaxUrl) {
|
347
|
+
p.filteredRows = 0;
|
349
348
|
$.each(c.cache[0].normalized, function(i, el) {
|
350
349
|
p.filteredRows += p.regexRows.test(el[c.columns].$row[0].className) ? 0 : 1;
|
351
350
|
});
|
352
|
-
|
351
|
+
} else if (!f) {
|
352
|
+
p.filteredRows = p.totalRows;
|
353
353
|
}
|
354
|
+
p.filteredPages = Math.ceil( p.filteredRows / sz ) || 0;
|
354
355
|
if ( Math.min( p.totalPages, p.filteredPages ) >= 0 ) {
|
355
356
|
t = (p.size * p.page > p.filteredRows);
|
356
357
|
p.startRow = (t) ? 1 : (p.filteredRows === 0 ? 0 : p.size * p.page + 1);
|
@@ -408,7 +409,7 @@ tsp = ts.pager = {
|
|
408
409
|
if (h) {
|
409
410
|
d = h - $b.height();
|
410
411
|
if ( d > 5 && $.data(table, 'pagerLastSize') === p.size && $b.children('tr:visible').length < p.size ) {
|
411
|
-
$b.append('<tr class="pagerSavedHeightSpacer ' + wo.pager_selectors.remove.replace(
|
412
|
+
$b.append('<tr class="pagerSavedHeightSpacer ' + wo.pager_selectors.remove.replace(/^(\w+\.)/g,'') + '" style="height:' + d + 'px;"></tr>');
|
412
413
|
}
|
413
414
|
}
|
414
415
|
}
|
@@ -442,7 +443,7 @@ tsp = ts.pager = {
|
|
442
443
|
} else {
|
443
444
|
rows[i].style.display = ( j >= s && j < e ) ? '' : 'none';
|
444
445
|
// don't count child rows
|
445
|
-
j += rows[i].className.match(c.cssChildRow + '|' + c.selectorRemove.
|
446
|
+
j += rows[i].className.match(c.cssChildRow + '|' + c.selectorRemove.replace(/^(\w+\.)/g,'')) && !wo.pager_countChildRows ? 0 : 1;
|
446
447
|
if ( j === e && rows[i].style.display !== 'none' && rows[i].className.match(ts.css.cssHasChild) ) {
|
447
448
|
lastIndex = i;
|
448
449
|
}
|
@@ -498,6 +499,7 @@ tsp = ts.pager = {
|
|
498
499
|
if (!$.isArray(result)) {
|
499
500
|
p.ajaxData = result;
|
500
501
|
p.totalRows = result.total;
|
502
|
+
p.filteredRows = typeof result.filteredRows !== 'undefined' ? result.filteredRows : result.total;
|
501
503
|
th = result.headers;
|
502
504
|
d = result.rows;
|
503
505
|
} else {
|
@@ -892,7 +894,7 @@ ts.showError = function(table, message){
|
|
892
894
|
})
|
893
895
|
// add error row to thead instead of tbody, or clicking on the header will result in a parser error
|
894
896
|
.appendTo( c.$table.find('thead:first') )
|
895
|
-
.addClass( errorRow + ' ' + c.selectorRemove.replace(/^
|
897
|
+
.addClass( errorRow + ' ' + c.selectorRemove.replace(/^(\w+\.)/g,'') )
|
896
898
|
.attr({
|
897
899
|
role : 'alert',
|
898
900
|
'aria-live' : 'assertive'
|
@@ -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 6/
|
13
|
+
Version 2.0 - modified by Rob Garrison 4/12/2013; updated 6/28/2014 (v2.17.3)
|
14
14
|
Requires jQuery v1.7+
|
15
15
|
Requires the tablesorter plugin, v2.8+, available at http://mottie.github.com/tablesorter/docs/
|
16
16
|
|
@@ -73,6 +73,7 @@ ts.addWidget({
|
|
73
73
|
scroller_height : 300,
|
74
74
|
scroller_barWidth : 18,
|
75
75
|
scroller_jumpToHeader: true,
|
76
|
+
scroller_upAfterSort: true,
|
76
77
|
scroller_idPrefix : 's_'
|
77
78
|
},
|
78
79
|
init: function(table, thisWidget, c, wo){
|
@@ -198,7 +199,9 @@ ts.addWidget({
|
|
198
199
|
}
|
199
200
|
|
200
201
|
// Sorting, so scroll to top
|
201
|
-
|
202
|
+
if (wo.scroller_upAfterSort) {
|
203
|
+
$tbl.parent().animate({ scrollTop: 0 }, 'fast');
|
204
|
+
}
|
202
205
|
|
203
206
|
},
|
204
207
|
remove : function(table, c, wo){
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
* StaticRow widget for jQuery TableSorter 2.0
|
3
|
-
* Version 1.
|
3
|
+
* Version 1.2 - modified by Rob Garrison (6/28/2014 for tablesorter v2.16.1-beta+)
|
4
4
|
* Requires:
|
5
5
|
* jQuery v1.4+
|
6
6
|
* tablesorter plugin, v2.8+, available at http://mottie.github.com/tablesorter/docs/
|
@@ -73,8 +73,9 @@ ts.addWidget({
|
|
73
73
|
// Loop thru static rows, moving them to their original "indexed" position,
|
74
74
|
// & repeat until no more re-shuffling is needed
|
75
75
|
var targetIndex, $thisRow, indx, numRows, $tbody, hasShuffled, $rows, max;
|
76
|
+
|
76
77
|
c.$tbodies.each(function(){
|
77
|
-
$tbody = $(this);
|
78
|
+
$tbody = $.tablesorter.processTbody(table, $(this), true); // remove tbody
|
78
79
|
hasShuffled = true;
|
79
80
|
indx = 0;
|
80
81
|
$rows = $tbody.children(wo.staticRow_class);
|
@@ -84,7 +85,6 @@ ts.addWidget({
|
|
84
85
|
// don't allow the while loop to cycle more times than the set number of static rows
|
85
86
|
while (hasShuffled && indx < max) {
|
86
87
|
hasShuffled = false;
|
87
|
-
|
88
88
|
/*jshint loopfunc:true */
|
89
89
|
$rows.each(function() {
|
90
90
|
targetIndex = $(this).data(wo.staticRow_data);
|
@@ -107,10 +107,11 @@ ts.addWidget({
|
|
107
107
|
}
|
108
108
|
});
|
109
109
|
indx++;
|
110
|
-
|
111
110
|
}
|
112
111
|
|
112
|
+
$.tablesorter.processTbody(table, $tbody, false); // restore tbody
|
113
113
|
});
|
114
|
+
|
114
115
|
c.$table.trigger('staticRowsComplete', table);
|
115
116
|
},
|
116
117
|
|
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.12.
|
4
|
+
version: 1.12.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: 2014-06-
|
12
|
+
date: 2014-06-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: railties
|
@@ -96,6 +96,7 @@ files:
|
|
96
96
|
- vendor/assets/javascripts/jquery-tablesorter/parsers/parser-input-select.js
|
97
97
|
- vendor/assets/javascripts/jquery-tablesorter/parsers/parser-ipv6.js
|
98
98
|
- vendor/assets/javascripts/jquery-tablesorter/parsers/parser-metric.js
|
99
|
+
- vendor/assets/javascripts/jquery-tablesorter/parsers/parser-roman.js
|
99
100
|
- vendor/assets/javascripts/jquery-tablesorter/widgets/widget-alignChar.js
|
100
101
|
- vendor/assets/javascripts/jquery-tablesorter/widgets/widget-build-table.js
|
101
102
|
- vendor/assets/javascripts/jquery-tablesorter/widgets/widget-columnSelector.js
|