jquery-tablesorter 1.23.3 → 1.23.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/jquery-tablesorter/version.rb +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.js +41 -31
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.combined.js +5 -5
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.widgets.js +3 -3
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-columnSelector.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-output.js +48 -21
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-pager.js +55 -40
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-stickyHeaders.js +2 -2
- data/vendor/assets/stylesheets/jquery-tablesorter/theme.bootstrap.css +30 -5
- data/vendor/assets/stylesheets/jquery-tablesorter/theme.bootstrap_2.css +27 -5
- data/vendor/assets/stylesheets/jquery-tablesorter/theme.bootstrap_3.css +190 -0
- data/vendor/assets/stylesheets/jquery-tablesorter/theme.bootstrap_4.css +189 -0
- data/vendor/assets/stylesheets/jquery-tablesorter/widget.grouping.css +38 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f9247933d8634de84e4c4805ac838bde8d415fe6
|
4
|
+
data.tar.gz: d166022a1720295b3144139a48ce7bf09842f103
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28448268a71de63840eeb66ee5d771653cd25270e9a67d3c27d6da5762829170107bdac946e329be250cb7b6ec512e093ebe63a86b5ea28d6b15da396107da31
|
7
|
+
data.tar.gz: c303f1cd056f23d74976e5643ab8ee31a9279f23ee8fe2693162b73d8183ec9b26a5184d6edc3553e1e529255ed3eb6ad01ec497a8c3a7f9307a6389acc22bd3
|
data/README.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Simple integration of jQuery tablesorter ([Mottie's fork]) into the asset pipeline.
|
6
6
|
|
7
|
-
Current tablesorter version: 2.28.
|
7
|
+
Current tablesorter version: 2.28.4 (1/6/2017), [documentation]
|
8
8
|
|
9
9
|
Any issue associated with the js/css files, please report to [Mottie's fork].
|
10
10
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*!
|
2
2
|
* tablesorter (FORK) pager plugin
|
3
|
-
* updated
|
3
|
+
* updated 1/6/2017 (v2.28.4)
|
4
4
|
*/
|
5
5
|
/*jshint browser:true, jquery:true, unused:false */
|
6
6
|
;(function($) {
|
@@ -173,7 +173,7 @@
|
|
173
173
|
|
174
174
|
updatePageDisplay = function(table, p, completed) {
|
175
175
|
if ( p.initializing ) { return; }
|
176
|
-
var s, t, $out, indx, len, options,
|
176
|
+
var s, t, $out, $el, indx, len, options, output,
|
177
177
|
c = table.config,
|
178
178
|
namespace = c.namespace + 'pager',
|
179
179
|
sz = parsePageSize( p, p.size, 'get' ); // don't allow dividing by zero
|
@@ -196,8 +196,12 @@
|
|
196
196
|
if (typeof p.output === 'function') {
|
197
197
|
s = p.output(table, p);
|
198
198
|
} else {
|
199
|
+
output = $out
|
200
|
+
// get output template from data-pager-output or data-pager-output-filtered
|
201
|
+
.attr('data-pager-output' + (p.filteredRows < p.totalRows ? '-filtered' : '')) ||
|
202
|
+
p.output;
|
199
203
|
// form the output string (can now get a new output string from the server)
|
200
|
-
s = ( p.ajaxData && p.ajaxData.output ? p.ajaxData.output ||
|
204
|
+
s = ( p.ajaxData && p.ajaxData.output ? p.ajaxData.output || output : output )
|
201
205
|
// {page} = one-based index; {page+#} = zero based index +/- value
|
202
206
|
.replace(/\{page([\-+]\d+)?\}/gi, function(m, n){
|
203
207
|
return p.totalPages ? p.page + (n ? parseInt(n, 10) : 1) : 0;
|
@@ -218,7 +222,8 @@
|
|
218
222
|
return extra.length > 1 && data && data[extra[0]] ? data[extra[0]][extra[1]] : p[str] || (data ? data[str] : deflt) || deflt;
|
219
223
|
});
|
220
224
|
}
|
221
|
-
|
225
|
+
$el = p.$container.find(p.cssGoto);
|
226
|
+
if ( $el.length ) {
|
222
227
|
t = '';
|
223
228
|
options = buildPageSelect( table, p );
|
224
229
|
len = options.length;
|
@@ -226,7 +231,7 @@
|
|
226
231
|
t += '<option value="' + options[indx] + '">' + options[indx] + '</option>';
|
227
232
|
}
|
228
233
|
// innerHTML doesn't work in IE9 - http://support2.microsoft.com/kb/276228
|
229
|
-
|
234
|
+
$el.html(t).val( p.page + 1 );
|
230
235
|
}
|
231
236
|
if ($out.length) {
|
232
237
|
$out[ ($out[0].nodeName === 'INPUT') ? 'val' : 'html' ](s);
|
@@ -388,8 +393,9 @@
|
|
388
393
|
},
|
389
394
|
|
390
395
|
hideRowsSetup = function(table, p){
|
391
|
-
|
392
|
-
p
|
396
|
+
var $el = p.$container.find(p.cssPageSize);
|
397
|
+
p.size = parsePageSize( p, $el.val(), 'get' );
|
398
|
+
$el.val( p.size );
|
393
399
|
$.data(table, 'pagerLastSize', p.size);
|
394
400
|
pagerArrows( table, p );
|
395
401
|
if ( !p.removeRows ) {
|
@@ -470,10 +476,12 @@
|
|
470
476
|
}
|
471
477
|
}
|
472
478
|
p.processAjaxOnInit = true;
|
473
|
-
//
|
474
|
-
if ( th
|
479
|
+
// update new header text
|
480
|
+
if ( th ) {
|
475
481
|
hsh = $table.hasClass('hasStickyHeaders');
|
476
|
-
$sh = hsh ?
|
482
|
+
$sh = hsh ?
|
483
|
+
c.widgetOptions.$sticky.children('thead:first').children('tr:not(.' + c.cssIgnoreRow + ')').children() :
|
484
|
+
'';
|
477
485
|
$f = $table.find('tfoot tr:first').children();
|
478
486
|
// don't change td headers (may contain pager)
|
479
487
|
$headers = c.$headers.filter( 'th ' );
|
@@ -483,15 +491,17 @@
|
|
483
491
|
// add new test within the first span it finds, or just in the header
|
484
492
|
if ( $h.find('.' + ts.css.icon).length ) {
|
485
493
|
icon = $h.find('.' + ts.css.icon).clone(true);
|
486
|
-
$h.find('.
|
494
|
+
$h.find('.' + ts.css.headerIn).html( th[j] ).append(icon);
|
487
495
|
if ( hsh && $sh.length ) {
|
488
496
|
icon = $sh.eq(j).find('.' + ts.css.icon).clone(true);
|
489
|
-
$sh.eq(j).find('.
|
497
|
+
$sh.eq(j).find('.' + ts.css.headerIn).html( th[j] ).append(icon);
|
490
498
|
}
|
491
499
|
} else {
|
492
|
-
$h.find('.
|
500
|
+
$h.find('.' + ts.css.headerIn).html( th[j] );
|
493
501
|
if (hsh && $sh.length) {
|
494
|
-
|
502
|
+
// add sticky header to container just in case it contains pager controls
|
503
|
+
p.$container = p.$container.add( c.widgetOptions.$sticky );
|
504
|
+
$sh.eq(j).find('.' + ts.css.headerIn).html( th[j] );
|
495
505
|
}
|
496
506
|
}
|
497
507
|
$f.eq(j).html( th[j] );
|
@@ -693,9 +703,7 @@
|
|
693
703
|
}
|
694
704
|
}
|
695
705
|
// disable size selector
|
696
|
-
$controls = p.$
|
697
|
-
.add( p.$goto )
|
698
|
-
.add( p.$container.find( '.ts-startRow, .ts-page' ) );
|
706
|
+
$controls = p.$container.find( p.cssGoto + ',' + p.cssPageSize + ', .ts-startRow, .ts-page' );
|
699
707
|
len = $controls.length;
|
700
708
|
for ( index = 0; index < len; index++ ) {
|
701
709
|
$controls.eq( index ).addClass( p.cssDisabled )[0].disabled = true;
|
@@ -798,7 +806,7 @@
|
|
798
806
|
parsePageSize = function( p, size, mode ) {
|
799
807
|
var s = parseInt( size, 10 ) || p.size || p.settings.size || 10;
|
800
808
|
return p.initialized && (/all/i.test( size ) || s === p.totalRows) ?
|
801
|
-
// "get" to get `p.size` or "set" to set `
|
809
|
+
// "get" to get `p.size` or "set" to set `pageSize.val()`
|
802
810
|
'all' : ( mode === 'get' ? s : p.size );
|
803
811
|
},
|
804
812
|
|
@@ -812,7 +820,7 @@
|
|
812
820
|
|
813
821
|
setPageSize = function(table, size, p) {
|
814
822
|
p.size = parsePageSize( p, size, 'get' );
|
815
|
-
p.$
|
823
|
+
p.$container.find(p.cssPageSize).val( parsePageSize( p, p.size, 'set' ) );
|
816
824
|
$.data(table, 'pagerLastPage', parsePageNumber( table, p ) );
|
817
825
|
$.data(table, 'pagerLastSize', p.size);
|
818
826
|
p.totalPages = p.size === 'all' ? 1 : Math.ceil( p.totalRows / p.size );
|
@@ -887,7 +895,7 @@
|
|
887
895
|
enablePager = function(table, p, triggered) {
|
888
896
|
var info, size, $el,
|
889
897
|
c = table.config;
|
890
|
-
p.$
|
898
|
+
p.$container.find(p.cssGoto + ',' + p.cssPageSize + ',.ts-startRow, .ts-page')
|
891
899
|
.removeClass(p.cssDisabled)
|
892
900
|
.removeAttr('disabled')
|
893
901
|
.each(function(){
|
@@ -895,9 +903,10 @@
|
|
895
903
|
});
|
896
904
|
p.isDisabled = false;
|
897
905
|
p.page = $.data(table, 'pagerLastPage') || p.page || 0;
|
898
|
-
|
906
|
+
$el = p.$container.find(p.cssPageSize);
|
907
|
+
size = $el.find('option[selected]').val();
|
899
908
|
p.size = $.data(table, 'pagerLastSize') || parsePageSize( p, size, 'get' );
|
900
|
-
|
909
|
+
$el.val( p.size ); // set page size
|
901
910
|
p.totalPages = p.size === 'all' ? 1 : Math.ceil( getTotalPages( table, p ) / p.size );
|
902
911
|
// if table id exists, include page display with aria info
|
903
912
|
if ( table.id && !c.$table.attr( 'aria-describedby' ) ) {
|
@@ -923,7 +932,7 @@
|
|
923
932
|
},
|
924
933
|
|
925
934
|
init = function(table, settings) {
|
926
|
-
var t, ctrls, fxn, size,
|
935
|
+
var t, ctrls, fxn, size, $el,
|
927
936
|
c = table.config,
|
928
937
|
wo = c.widgetOptions,
|
929
938
|
p = c.pager = $.extend( true, {}, $.tablesorterPager.defaults, settings ),
|
@@ -1057,9 +1066,9 @@
|
|
1057
1066
|
});
|
1058
1067
|
|
1059
1068
|
// goto selector
|
1060
|
-
|
1061
|
-
if (
|
1062
|
-
|
1069
|
+
$el = pager.find(p.cssGoto);
|
1070
|
+
if ( $el.length ) {
|
1071
|
+
$el
|
1063
1072
|
.unbind('change' + namespace)
|
1064
1073
|
.bind('change' + namespace, function(){
|
1065
1074
|
p.page = $(this).val() - 1;
|
@@ -1070,14 +1079,15 @@
|
|
1070
1079
|
console.warn('Pager: >> Goto selector not found');
|
1071
1080
|
}
|
1072
1081
|
// page size selector
|
1073
|
-
|
1074
|
-
if (
|
1082
|
+
$el = pager.find(p.cssPageSize);
|
1083
|
+
if ( $el.length ) {
|
1075
1084
|
// setting an option as selected appears to cause issues with initial page size
|
1076
|
-
|
1077
|
-
|
1085
|
+
$el.find('option').removeAttr('selected');
|
1086
|
+
$el.unbind('change' + namespace).bind('change' + namespace, function() {
|
1078
1087
|
if ( !$(this).hasClass(p.cssDisabled) ) {
|
1079
1088
|
var size = $(this).val();
|
1080
|
-
|
1089
|
+
// in case there are more than one pager
|
1090
|
+
p.$container.find(p.cssGoto).val( size );
|
1081
1091
|
setPageSize(table, size, p);
|
1082
1092
|
changeHeight(table, p);
|
1083
1093
|
}
|
@@ -4,7 +4,7 @@
|
|
4
4
|
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██
|
5
5
|
█████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
|
6
6
|
*/
|
7
|
-
/*! tablesorter (FORK) - updated
|
7
|
+
/*! tablesorter (FORK) - updated 01-06-2017 (v2.28.4)*/
|
8
8
|
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
9
9
|
(function(factory) {
|
10
10
|
if (typeof define === 'function' && define.amd) {
|
@@ -16,7 +16,7 @@
|
|
16
16
|
}
|
17
17
|
}(function(jQuery) {
|
18
18
|
|
19
|
-
/*! TableSorter (FORK) v2.28.
|
19
|
+
/*! TableSorter (FORK) v2.28.4 *//*
|
20
20
|
* Client-side table sorting with ease!
|
21
21
|
* @requires jQuery v1.2.6+
|
22
22
|
*
|
@@ -40,7 +40,7 @@
|
|
40
40
|
'use strict';
|
41
41
|
var ts = $.tablesorter = {
|
42
42
|
|
43
|
-
version : '2.28.
|
43
|
+
version : '2.28.4',
|
44
44
|
|
45
45
|
parsers : [],
|
46
46
|
widgets : [],
|
@@ -5071,7 +5071,7 @@
|
|
5071
5071
|
|
5072
5072
|
})( jQuery );
|
5073
5073
|
|
5074
|
-
/*! Widget: stickyHeaders - updated
|
5074
|
+
/*! Widget: stickyHeaders - updated 1/6/2017 (v2.28.4) *//*
|
5075
5075
|
* Requires tablesorter v2.8+ and jQuery 1.4.3+
|
5076
5076
|
* by Rob Garrison
|
5077
5077
|
*/
|
@@ -5134,7 +5134,7 @@
|
|
5134
5134
|
// **************************
|
5135
5135
|
ts.addWidget({
|
5136
5136
|
id: 'stickyHeaders',
|
5137
|
-
priority:
|
5137
|
+
priority: 54, // sticky widget must be initialized after the filter & before pager widget!
|
5138
5138
|
options: {
|
5139
5139
|
stickyHeaders : '', // extra class name added to the sticky header row
|
5140
5140
|
stickyHeaders_appendTo : null, // jQuery selector or object to phycially attach the sticky headers
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! TableSorter (FORK) v2.28.
|
1
|
+
/*! TableSorter (FORK) v2.28.4 *//*
|
2
2
|
* Client-side table sorting with ease!
|
3
3
|
* @requires jQuery v1.2.6+
|
4
4
|
*
|
@@ -22,7 +22,7 @@
|
|
22
22
|
'use strict';
|
23
23
|
var ts = $.tablesorter = {
|
24
24
|
|
25
|
-
version : '2.28.
|
25
|
+
version : '2.28.4',
|
26
26
|
|
27
27
|
parsers : [],
|
28
28
|
widgets : [],
|
@@ -4,7 +4,7 @@
|
|
4
4
|
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██
|
5
5
|
█████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
|
6
6
|
*/
|
7
|
-
/*! tablesorter (FORK) - updated
|
7
|
+
/*! tablesorter (FORK) - updated 01-06-2017 (v2.28.4)*/
|
8
8
|
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
9
9
|
(function(factory) {
|
10
10
|
if (typeof define === 'function' && define.amd) {
|
@@ -2276,7 +2276,7 @@
|
|
2276
2276
|
|
2277
2277
|
})( jQuery );
|
2278
2278
|
|
2279
|
-
/*! Widget: stickyHeaders - updated
|
2279
|
+
/*! Widget: stickyHeaders - updated 1/6/2017 (v2.28.4) *//*
|
2280
2280
|
* Requires tablesorter v2.8+ and jQuery 1.4.3+
|
2281
2281
|
* by Rob Garrison
|
2282
2282
|
*/
|
@@ -2339,7 +2339,7 @@
|
|
2339
2339
|
// **************************
|
2340
2340
|
ts.addWidget({
|
2341
2341
|
id: 'stickyHeaders',
|
2342
|
-
priority:
|
2342
|
+
priority: 54, // sticky widget must be initialized after the filter & before pager widget!
|
2343
2343
|
options: {
|
2344
2344
|
stickyHeaders : '', // extra class name added to the sticky header row
|
2345
2345
|
stickyHeaders_appendTo : null, // jQuery selector or object to phycially attach the sticky headers
|
@@ -152,7 +152,7 @@
|
|
152
152
|
if ($container.length) {
|
153
153
|
// set default col title
|
154
154
|
name = $header.attr(wo.columnSelector_name) || $header.text().trim();
|
155
|
-
if (typeof wo.columnSelector_layoutCustomizer ===
|
155
|
+
if (typeof wo.columnSelector_layoutCustomizer === 'function') {
|
156
156
|
$el = $header.find('.' + ts.css.headerIn);
|
157
157
|
name = wo.columnSelector_layoutCustomizer( $el.length ? $el : $header, name, parseInt(colId, 10) );
|
158
158
|
}
|
@@ -1,8 +1,9 @@
|
|
1
|
-
/*! Widget: output - updated
|
1
|
+
/*! Widget: output - updated 1/6/2017 (v2.28.4) *//*
|
2
2
|
* Requires tablesorter v2.8+ and jQuery 1.7+
|
3
3
|
* Modified from:
|
4
4
|
* HTML Table to CSV: http://www.kunalbabre.com/projects/table2CSV.php (License unknown?)
|
5
5
|
* Download-File-JS: https://github.com/PixelsCommander/Download-File-JS (http://www.apache.org/licenses/LICENSE-2.0)
|
6
|
+
* FileSaver.js: https://github.com/eligrey/FileSaver.js (MIT)
|
6
7
|
*/
|
7
8
|
/*jshint browser:true, jquery:true, unused:false */
|
8
9
|
/*global jQuery:false, alert:false */
|
@@ -25,7 +26,7 @@
|
|
25
26
|
replaceTab : '\x09',
|
26
27
|
|
27
28
|
popupTitle : 'Output',
|
28
|
-
popupStyle : 'width:100%;height:100%;', // for textarea
|
29
|
+
popupStyle : 'width:100%;height:100%;margin:0;resize:none;', // for textarea
|
29
30
|
message : 'Your device does not support downloading. Please try again in desktop browser.',
|
30
31
|
|
31
32
|
init : function(c) {
|
@@ -162,7 +163,6 @@
|
|
162
163
|
|
163
164
|
// process to array of arrays
|
164
165
|
csvData = output.processRow(c, $rows);
|
165
|
-
|
166
166
|
if (wo.output_includeFooter) {
|
167
167
|
// clone, to force the tfoot rows to the end of this selection of rows
|
168
168
|
// otherwise they appear after the thead (the order in the HTML)
|
@@ -183,9 +183,13 @@
|
|
183
183
|
// requires JSON stringify; if it doesn't exist, the output will show [object Object],... in the output window
|
184
184
|
mydata = hasStringify ? JSON.stringify(tmpData) : tmpData;
|
185
185
|
} else {
|
186
|
-
|
187
|
-
|
188
|
-
|
186
|
+
if (wo.output_includeHeader) {
|
187
|
+
tmp = [ headers[ ( len > 1 && wo.output_headerRows ) ? indx % len : len - 1 ] ];
|
188
|
+
tmpData = output.row2CSV(wo, wo.output_headerRows ? headers : tmp, outputArray)
|
189
|
+
.concat( output.row2CSV(wo, csvData, outputArray) );
|
190
|
+
} else {
|
191
|
+
tmpData = output.row2CSV(wo, csvData, outputArray);
|
192
|
+
}
|
189
193
|
|
190
194
|
// stringify the array; if stringify doesn't exist the array will be flattened
|
191
195
|
mydata = outputArray && hasStringify ? JSON.stringify(tmpData) : tmpData.join('\n');
|
@@ -204,7 +208,7 @@
|
|
204
208
|
if ( /p/i.test( wo.output_delivery || '' ) ) {
|
205
209
|
output.popup(mydata, wo.output_popupStyle, outputJSON || outputArray);
|
206
210
|
} else {
|
207
|
-
output.download(wo, mydata);
|
211
|
+
output.download(c, wo, mydata);
|
208
212
|
}
|
209
213
|
|
210
214
|
}, // end process
|
@@ -274,13 +278,20 @@
|
|
274
278
|
|
275
279
|
popup : function(data, style, wrap) {
|
276
280
|
var generator = window.open('', output.popupTitle, style);
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
281
|
+
try {
|
282
|
+
generator.document.write(
|
283
|
+
'<html><head><title>' + output.popupTitle + '</title></head><body>' +
|
284
|
+
'<textarea wrap="' + (wrap ? 'on' : 'off') + '" style="' +
|
285
|
+
output.popupStyle + '">' + data + '\n</textarea>' +
|
286
|
+
'</body></html>'
|
287
|
+
);
|
288
|
+
generator.document.close();
|
289
|
+
generator.focus();
|
290
|
+
} catch (e) {
|
291
|
+
// popup already open
|
292
|
+
generator.close();
|
293
|
+
return output.popup(data, style, wrap);
|
294
|
+
}
|
284
295
|
// select all text and focus within the textarea in the popup
|
285
296
|
// $(generator.document).find('textarea').select().focus();
|
286
297
|
return true;
|
@@ -288,13 +299,18 @@
|
|
288
299
|
|
289
300
|
// modified from https://github.com/PixelsCommander/Download-File-JS
|
290
301
|
// & http://html5-demos.appspot.com/static/a.download.html
|
291
|
-
download : function (wo, data){
|
302
|
+
download : function (c, wo, data) {
|
303
|
+
|
304
|
+
if (typeof wo.output_savePlugin === 'function') {
|
305
|
+
return wo.output_savePlugin(c, wo, data);
|
306
|
+
}
|
292
307
|
|
293
|
-
var e, blob, gotBlob,
|
308
|
+
var e, blob, gotBlob, bom,
|
294
309
|
nav = window.navigator,
|
295
310
|
link = document.createElement('a');
|
296
311
|
|
297
|
-
// iOS devices do not support downloading. We have to inform user about
|
312
|
+
// iOS devices do not support downloading. We have to inform user about
|
313
|
+
// this limitation.
|
298
314
|
if (/(iP)/g.test(nav.userAgent)) {
|
299
315
|
alert(output.message);
|
300
316
|
return false;
|
@@ -311,8 +327,12 @@
|
|
311
327
|
if ( gotBlob ) {
|
312
328
|
|
313
329
|
window.URL = window.URL || window.webkitURL;
|
314
|
-
// prepend BOM for
|
315
|
-
|
330
|
+
// prepend BOM for UTF-8 XML and text/* types (including HTML)
|
331
|
+
// note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF
|
332
|
+
// see https://github.com/eligrey/FileSaver.js/blob/master/FileSaver.js#L68
|
333
|
+
bom = (/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(wo.output_encoding)) ?
|
334
|
+
[ '\ufeff', data ] : [ data ];
|
335
|
+
blob = new Blob( bom, { type: wo.output_encoding } );
|
316
336
|
|
317
337
|
if (nav.msSaveBlob) {
|
318
338
|
// IE 10+
|
@@ -353,8 +373,9 @@
|
|
353
373
|
output_ignoreColumns : [], // columns to ignore [0, 1,... ] (zero-based index)
|
354
374
|
output_hiddenColumns : false, // include hidden columns in the output
|
355
375
|
output_includeFooter : false, // include footer rows in the output
|
376
|
+
output_includeHeader : true, // include header rows in the output
|
377
|
+
output_headerRows : false, // if true, include multiple header rows
|
356
378
|
output_dataAttrib : 'data-name', // header attrib containing modified header name
|
357
|
-
output_headerRows : false, // if true, include multiple header rows (JSON only)
|
358
379
|
output_delivery : 'popup', // popup, download
|
359
380
|
output_saveRows : 'filtered', // (a)ll, (v)isible, (f)iltered or jQuery filter selector
|
360
381
|
output_duplicateSpans : true, // duplicate output data in tbody colspan/rowspan
|
@@ -373,7 +394,13 @@
|
|
373
394
|
// JSON callback executed when a colspan is encountered in the header
|
374
395
|
output_callbackJSON : function($cell, txt, cellIndex) { return txt + '(' + (cellIndex) + ')'; },
|
375
396
|
// the need to modify this for Excel no longer exists
|
376
|
-
output_encoding : 'data:application/octet-stream;charset=utf8,'
|
397
|
+
output_encoding : 'data:application/octet-stream;charset=utf8,',
|
398
|
+
// override internal save file code and use an external plugin such as
|
399
|
+
// https://github.com/eligrey/FileSaver.js
|
400
|
+
output_savePlugin : null /* function(c, wo, data) {
|
401
|
+
var blob = new Blob([data], {type: wo.output_encoding});
|
402
|
+
saveAs(blob, wo.output_saveFileName);
|
403
|
+
} */
|
377
404
|
},
|
378
405
|
init: function(table, thisWidget, c) {
|
379
406
|
output.init(c);
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! Widget: Pager - updated
|
1
|
+
/*! Widget: Pager - updated 1/6/2017 (v2.28.4) */
|
2
2
|
/* Requires tablesorter v2.8+ and jQuery 1.7+
|
3
3
|
* by Rob Garrison
|
4
4
|
*/
|
@@ -109,6 +109,7 @@
|
|
109
109
|
prev : '.prev', // previous page arrow
|
110
110
|
next : '.next', // next page arrow
|
111
111
|
last : '.last', // go to last page arrow
|
112
|
+
// goto is a reserved word #657
|
112
113
|
gotoPage : '.gotoPage', // go to page selector - select dropdown that sets the current page
|
113
114
|
pageDisplay : '.pagedisplay', // location of where the 'output' is displayed
|
114
115
|
pageSize : '.pagesize' // page size selector - select dropdown that sets the 'size' option
|
@@ -168,10 +169,6 @@
|
|
168
169
|
p.size = $.data( table, 'pagerLastSize' ) || wo.pager_size;
|
169
170
|
// added in case the pager is reinitialized after being destroyed.
|
170
171
|
p.$container = $( s.container ).addClass( wo.pager_css.container ).show();
|
171
|
-
// goto selector
|
172
|
-
p.$goto = p.$container.find( s.gotoPage ); // goto is a reserved word #657
|
173
|
-
// page size selector
|
174
|
-
p.$size = p.$container.find( s.pageSize );
|
175
172
|
p.totalRows = c.$tbodies.eq( 0 )
|
176
173
|
.children( 'tr' )
|
177
174
|
.not( wo.pager_countChildRows ? '' : '.' + c.cssChildRow )
|
@@ -184,7 +181,7 @@
|
|
184
181
|
p.page = ( isNaN( t.page ) ? p.page : t.page ) || p.setPage || 0;
|
185
182
|
p.size = t.size === 'all' ? t.size : ( isNaN( t.size ) ? p.size : t.size ) || p.setSize || 10;
|
186
183
|
$.data( table, 'pagerLastSize', p.size );
|
187
|
-
p.$
|
184
|
+
p.$container.find( s.pageSize ).val( p.size );
|
188
185
|
}
|
189
186
|
|
190
187
|
// skipped rows
|
@@ -243,7 +240,7 @@
|
|
243
240
|
},
|
244
241
|
|
245
242
|
bindEvents: function( c ) {
|
246
|
-
var ctrls, fxn,
|
243
|
+
var ctrls, fxn, tmp,
|
247
244
|
p = c.pager,
|
248
245
|
wo = c.widgetOptions,
|
249
246
|
namespace = c.namespace + 'pager',
|
@@ -359,8 +356,9 @@
|
|
359
356
|
}
|
360
357
|
});
|
361
358
|
|
362
|
-
|
363
|
-
|
359
|
+
tmp = p.$container.find( wo.pager_selectors.gotoPage );
|
360
|
+
if ( tmp.length ) {
|
361
|
+
tmp
|
364
362
|
.off( 'change' + namespace )
|
365
363
|
.on( 'change' + namespace, function() {
|
366
364
|
p.page = $( this ).val() - 1;
|
@@ -371,15 +369,17 @@
|
|
371
369
|
console.warn( 'Pager: >> Goto selector not found' );
|
372
370
|
}
|
373
371
|
|
374
|
-
|
372
|
+
tmp = p.$container.find( wo.pager_selectors.pageSize );
|
373
|
+
if ( tmp.length ) {
|
375
374
|
// setting an option as selected appears to cause issues with initial page size
|
376
|
-
|
377
|
-
|
375
|
+
tmp.find( 'option' ).removeAttr( 'selected' );
|
376
|
+
tmp
|
378
377
|
.off( 'change' + namespace )
|
379
378
|
.on( 'change' + namespace, function() {
|
380
379
|
if ( !$( this ).hasClass( wo.pager_css.disabled ) ) {
|
381
380
|
var size = $( this ).val();
|
382
|
-
|
381
|
+
// in case there are more than one pager
|
382
|
+
p.$container.find( wo.pager_selectors.pageSize ).val( size );
|
383
383
|
tsp.setPageSize( c, size );
|
384
384
|
tsp.changeHeight( c );
|
385
385
|
}
|
@@ -439,7 +439,7 @@
|
|
439
439
|
|
440
440
|
updatePageDisplay: function( c, completed ) {
|
441
441
|
if ( c.pager && c.pager.initializing ) { return; }
|
442
|
-
var s, t, $out, options, indx, len,
|
442
|
+
var s, t, $out, options, indx, len, output,
|
443
443
|
table = c.table,
|
444
444
|
wo = c.widgetOptions,
|
445
445
|
p = c.pager,
|
@@ -447,8 +447,7 @@
|
|
447
447
|
sz = tsp.parsePageSize( c, p.size, 'get' ); // don't allow dividing by zero
|
448
448
|
if ( sz === 'all' ) { sz = p.totalRows; }
|
449
449
|
if ( wo.pager_countChildRows ) { t[ t.length ] = c.cssChildRow; }
|
450
|
-
p.$
|
451
|
-
.add( p.$goto )
|
450
|
+
p.$container.find( wo.pager_selectors.pageSize + ',' + wo.pager_selectors.gotoPage )
|
452
451
|
.removeClass( wo.pager_css.disabled )
|
453
452
|
.removeAttr( 'disabled' )
|
454
453
|
.prop( 'aria-disabled', 'false' );
|
@@ -469,8 +468,12 @@
|
|
469
468
|
if ( typeof wo.pager_output === 'function' ) {
|
470
469
|
s = wo.pager_output( table, p );
|
471
470
|
} else {
|
471
|
+
output = $out
|
472
|
+
// get output template from data-pager-output or data-pager-output-filtered
|
473
|
+
.attr('data-pager-output' + (p.filteredRows < p.totalRows ? '-filtered' : '')) ||
|
474
|
+
wo.pager_output;
|
472
475
|
// form the output string (can now get a new output string from the server)
|
473
|
-
s = ( p.ajaxData && p.ajaxData.output ? p.ajaxData.output ||
|
476
|
+
s = ( p.ajaxData && p.ajaxData.output ? p.ajaxData.output || output : output )
|
474
477
|
// {page} = one-based index; {page+#} = zero based index +/- value
|
475
478
|
.replace( /\{page([\-+]\d+)?\}/gi, function( m, n ) {
|
476
479
|
return p.totalPages ? p.page + ( n ? parseInt( n, 10 ) : 1 ) : 0;
|
@@ -494,7 +497,7 @@
|
|
494
497
|
p[ str ] || ( data ? data[ str ] : deflt ) || deflt;
|
495
498
|
});
|
496
499
|
}
|
497
|
-
if ( p.$
|
500
|
+
if ( p.$container.find( wo.pager_selectors.gotoPage ).length ) {
|
498
501
|
t = '';
|
499
502
|
options = tsp.buildPageSelect( c, p );
|
500
503
|
len = options.length;
|
@@ -502,7 +505,7 @@
|
|
502
505
|
t += '<option value="' + options[ indx ] + '">' + options[ indx ] + '</option>';
|
503
506
|
}
|
504
507
|
// innerHTML doesn't work in IE9 - http://support2.microsoft.com/kb/276228
|
505
|
-
p.$
|
508
|
+
p.$container.find( wo.pager_selectors.gotoPage ).html( t ).val( p.page + 1 );
|
506
509
|
}
|
507
510
|
if ( $out.length ) {
|
508
511
|
$out[ ($out[ 0 ].nodeName === 'INPUT' ) ? 'val' : 'html' ]( s );
|
@@ -687,9 +690,10 @@
|
|
687
690
|
hideRowsSetup: function( c ) {
|
688
691
|
var p = c.pager,
|
689
692
|
namespace = c.namespace + 'pager',
|
690
|
-
|
693
|
+
$el = p.$container.find( c.widgetOptions.pager_selectors.pageSize ),
|
694
|
+
size = $el.val();
|
691
695
|
p.size = tsp.parsePageSize( c, size, 'get' );
|
692
|
-
|
696
|
+
$el.val( p.size );
|
693
697
|
$.data( c.table, 'pagerLastSize', p.size );
|
694
698
|
tsp.pagerArrows( c );
|
695
699
|
if ( !c.widgetOptions.pager_removeRows ) {
|
@@ -774,10 +778,12 @@
|
|
774
778
|
}
|
775
779
|
}
|
776
780
|
wo.pager_processAjaxOnInit = true;
|
777
|
-
//
|
778
|
-
if ( th
|
781
|
+
// update new header text
|
782
|
+
if ( th ) {
|
779
783
|
hsh = $table.hasClass( 'hasStickyHeaders' );
|
780
|
-
$sh = hsh ?
|
784
|
+
$sh = hsh ?
|
785
|
+
wo.$sticky.children( 'thead:first' ).children( 'tr:not(.' + c.cssIgnoreRow + ')' ).children() :
|
786
|
+
'';
|
781
787
|
$f = $table.find( 'tfoot tr:first' ).children();
|
782
788
|
// don't change td headers (may contain pager)
|
783
789
|
$headers = c.$headers.filter( 'th' );
|
@@ -787,19 +793,24 @@
|
|
787
793
|
// add new test within the first span it finds, or just in the header
|
788
794
|
if ( $h.find( '.' + ts.css.icon ).length ) {
|
789
795
|
icon = $h.find( '.' + ts.css.icon ).clone( true );
|
790
|
-
$h.find( '.
|
796
|
+
$h.find( '.' + ts.css.headerIn ).html( th[ j ] ).append( icon );
|
791
797
|
if ( hsh && $sh.length ) {
|
792
798
|
icon = $sh.eq( j ).find( '.' + ts.css.icon ).clone( true );
|
793
|
-
$sh.eq( j ).find( '.
|
799
|
+
$sh.eq( j ).find( '.' + ts.css.headerIn ).html( th[ j ] ).append( icon );
|
794
800
|
}
|
795
801
|
} else {
|
796
|
-
$h.find( '.
|
802
|
+
$h.find( '.' + ts.css.headerIn ).html( th[ j ] );
|
797
803
|
if ( hsh && $sh.length ) {
|
798
|
-
|
804
|
+
// add sticky header to container just in case it contains pager controls
|
805
|
+
p.$container = p.$container.add( wo.$sticky );
|
806
|
+
$sh.eq( j ).find( '.' + ts.css.headerIn ).html( th[ j ] );
|
799
807
|
}
|
800
808
|
}
|
801
809
|
$f.eq( j ).html( th[ j ] );
|
802
810
|
}
|
811
|
+
if ( hsh ) {
|
812
|
+
tsp.bindEvents( c );
|
813
|
+
}
|
803
814
|
}
|
804
815
|
}
|
805
816
|
if ( c.showProcessing ) {
|
@@ -1006,9 +1017,11 @@
|
|
1006
1017
|
}
|
1007
1018
|
}
|
1008
1019
|
// disable size selector
|
1009
|
-
$controls = p.$
|
1010
|
-
.
|
1011
|
-
.
|
1020
|
+
$controls = p.$container.find(
|
1021
|
+
wo.pager_selectors.pageSize + ',' +
|
1022
|
+
wo.pager_selectors.gotoPage + ',' +
|
1023
|
+
'.ts-startRow, .ts-page'
|
1024
|
+
);
|
1012
1025
|
len = $controls.length;
|
1013
1026
|
for ( index = 0; index < len; index++ ) {
|
1014
1027
|
$controls.eq( index )
|
@@ -1122,7 +1135,7 @@
|
|
1122
1135
|
var p = c.pager,
|
1123
1136
|
s = parseInt( size, 10 ) || p.size || c.widgetOptions.pager_size || 10;
|
1124
1137
|
return p.initialized && (/all/i.test( size ) || s === p.totalRows) ?
|
1125
|
-
// "get" to set `p.size` or "set" to set `
|
1138
|
+
// "get" to set `p.size` or "set" to set `pageSize.val()`
|
1126
1139
|
'all' : ( mode === 'get' ? s : p.size );
|
1127
1140
|
},
|
1128
1141
|
|
@@ -1138,7 +1151,9 @@
|
|
1138
1151
|
var p = c.pager,
|
1139
1152
|
table = c.table;
|
1140
1153
|
p.size = tsp.parsePageSize( c, size, 'get' );
|
1141
|
-
p.$
|
1154
|
+
p.$container
|
1155
|
+
.find( c.widgetOptions.pager_selectors.pageSize )
|
1156
|
+
.val( tsp.parsePageSize( c, p.size, 'set' ) );
|
1142
1157
|
$.data( table, 'pagerLastPage', tsp.parsePageNumber( c, p ) );
|
1143
1158
|
$.data( table, 'pagerLastSize', p.size );
|
1144
1159
|
p.totalPages = p.size === 'all' ? 1 : Math.ceil( p.totalRows / p.size );
|
@@ -1197,27 +1212,27 @@
|
|
1197
1212
|
ts.storage( table, c.widgetOptions.pager_storageKey, '' );
|
1198
1213
|
}
|
1199
1214
|
p.$container = null;
|
1200
|
-
p.$goto = null;
|
1201
|
-
p.$size = null;
|
1202
1215
|
c.pager = null;
|
1203
1216
|
c.rowsCopy = null;
|
1204
1217
|
}
|
1205
1218
|
},
|
1206
1219
|
|
1207
1220
|
enablePager: function( c, triggered ) {
|
1208
|
-
var info, size,
|
1221
|
+
var info, size,
|
1209
1222
|
table = c.table,
|
1210
|
-
p = c.pager
|
1223
|
+
p = c.pager,
|
1224
|
+
wo = c.widgetOptions,
|
1225
|
+
$el = p.$container.find( wo.pager_selectors.pageSize );
|
1211
1226
|
p.isDisabled = false;
|
1212
1227
|
p.page = $.data( table, 'pagerLastPage' ) || p.page || 0;
|
1213
|
-
size =
|
1228
|
+
size = $el.find('option[selected]' ).val();
|
1214
1229
|
p.size = $.data( table, 'pagerLastSize' ) || tsp.parsePageSize( c, size, 'get' );
|
1215
|
-
|
1230
|
+
$el.val( p.size ); // set page size
|
1216
1231
|
p.totalPages = p.size === 'all' ? 1 : Math.ceil( tsp.getTotalPages( c, p ) / p.size );
|
1217
1232
|
c.$table.removeClass( 'pagerDisabled' );
|
1218
1233
|
// if table id exists, include page display with aria info
|
1219
1234
|
if ( table.id && !c.$table.attr( 'aria-describedby' ) ) {
|
1220
|
-
$el = p.$container.find(
|
1235
|
+
$el = p.$container.find( wo.pager_selectors.pageDisplay );
|
1221
1236
|
info = $el.attr( 'id' );
|
1222
1237
|
if ( !info ) {
|
1223
1238
|
// only add pageDisplay id if it doesn't exist - see #1288
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! Widget: stickyHeaders - updated
|
1
|
+
/*! Widget: stickyHeaders - updated 1/6/2017 (v2.28.4) *//*
|
2
2
|
* Requires tablesorter v2.8+ and jQuery 1.4.3+
|
3
3
|
* by Rob Garrison
|
4
4
|
*/
|
@@ -61,7 +61,7 @@
|
|
61
61
|
// **************************
|
62
62
|
ts.addWidget({
|
63
63
|
id: 'stickyHeaders',
|
64
|
-
priority:
|
64
|
+
priority: 54, // sticky widget must be initialized after the filter & before pager widget!
|
65
65
|
options: {
|
66
66
|
stickyHeaders : '', // extra class name added to the sticky header row
|
67
67
|
stickyHeaders_appendTo : null, // jQuery selector or object to phycially attach the sticky headers
|
@@ -1,7 +1,9 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
/**
|
2
|
+
* Bootstrap theme v3.x
|
3
|
+
*
|
4
|
+
* WARNING!... once a stable Bootstrap v4.x is released,
|
5
|
+
* this file will be removed; use theme.bootstrap_3.css
|
6
|
+
*/
|
5
7
|
.tablesorter-bootstrap {
|
6
8
|
width: 100%;
|
7
9
|
}
|
@@ -83,6 +85,29 @@
|
|
83
85
|
background-repeat: no-repeat !important;
|
84
86
|
}
|
85
87
|
|
88
|
+
/* Column Widget - column sort colors */
|
89
|
+
.tablesorter-bootstrap > tbody > tr.odd td.primary {
|
90
|
+
background-color: #bfbfbf;
|
91
|
+
}
|
92
|
+
.tablesorter-bootstrap > tbody > tr td.primary,
|
93
|
+
.tablesorter-bootstrap > tbody > tr.even td.primary {
|
94
|
+
background-color: #d9d9d9;
|
95
|
+
}
|
96
|
+
.tablesorter-bootstrap > tbody > tr.odd td.secondary {
|
97
|
+
background-color: #d9d9d9;
|
98
|
+
}
|
99
|
+
.tablesorter-bootstrap > tbody > tr td.secondary,
|
100
|
+
.tablesorter-bootstrap > tbody > tr.even td.secondary {
|
101
|
+
background-color: #e6e6e6;
|
102
|
+
}
|
103
|
+
.tablesorter-bootstrap > tbody > tr.odd td.tertiary {
|
104
|
+
background-color: #e6e6e6;
|
105
|
+
}
|
106
|
+
.tablesorter-bootstrap > tbody > tr td.tertiary,
|
107
|
+
.tablesorter-bootstrap > tbody > tr.even td.tertiary {
|
108
|
+
background-color: #f2f2f2;
|
109
|
+
}
|
110
|
+
|
86
111
|
/* caption */
|
87
112
|
.caption {
|
88
113
|
background-color: #fff;
|
@@ -143,7 +168,7 @@
|
|
143
168
|
opacity: 0;
|
144
169
|
filter: alpha(opacity=0);
|
145
170
|
}
|
146
|
-
/* rows hidden by filtering
|
171
|
+
/* rows hidden by filtering */
|
147
172
|
.tablesorter .filtered {
|
148
173
|
display: none;
|
149
174
|
}
|
@@ -1,7 +1,6 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
/* jQuery Bootstrap 2 Theme */
|
1
|
+
/**
|
2
|
+
* Bootstrap theme v2.x
|
3
|
+
*/
|
5
4
|
.tablesorter-bootstrap {
|
6
5
|
width: 100%;
|
7
6
|
}
|
@@ -89,6 +88,29 @@
|
|
89
88
|
z-index: 1000;
|
90
89
|
}
|
91
90
|
|
91
|
+
/* Column Widget - column sort colors */
|
92
|
+
.tablesorter-bootstrap > tbody > tr.odd td.primary {
|
93
|
+
background-color: #bfbfbf;
|
94
|
+
}
|
95
|
+
.tablesorter-bootstrap > tbody > tr td.primary,
|
96
|
+
.tablesorter-bootstrap > tbody > tr.even td.primary {
|
97
|
+
background-color: #d9d9d9;
|
98
|
+
}
|
99
|
+
.tablesorter-bootstrap > tbody > tr.odd td.secondary {
|
100
|
+
background-color: #d9d9d9;
|
101
|
+
}
|
102
|
+
.tablesorter-bootstrap > tbody > tr td.secondary,
|
103
|
+
.tablesorter-bootstrap > tbody > tr.even td.secondary {
|
104
|
+
background-color: #e6e6e6;
|
105
|
+
}
|
106
|
+
.tablesorter-bootstrap > tbody > tr.odd td.tertiary {
|
107
|
+
background-color: #e6e6e6;
|
108
|
+
}
|
109
|
+
.tablesorter-bootstrap > tbody > tr td.tertiary,
|
110
|
+
.tablesorter-bootstrap > tbody > tr.even td.tertiary {
|
111
|
+
background-color: #f2f2f2;
|
112
|
+
}
|
113
|
+
|
92
114
|
/* caption */
|
93
115
|
caption {
|
94
116
|
background-color: #fff;
|
@@ -145,7 +167,7 @@ caption {
|
|
145
167
|
opacity: 0;
|
146
168
|
filter: alpha(opacity=0);
|
147
169
|
}
|
148
|
-
/* rows hidden by filtering
|
170
|
+
/* rows hidden by filtering */
|
149
171
|
.tablesorter .filtered {
|
150
172
|
display: none;
|
151
173
|
}
|
@@ -0,0 +1,190 @@
|
|
1
|
+
/**
|
2
|
+
* Bootstrap theme v3.x
|
3
|
+
*/
|
4
|
+
.tablesorter-bootstrap {
|
5
|
+
width: 100%;
|
6
|
+
}
|
7
|
+
.tablesorter-bootstrap thead th,
|
8
|
+
.tablesorter-bootstrap thead td,
|
9
|
+
.tablesorter-bootstrap tfoot th,
|
10
|
+
.tablesorter-bootstrap tfoot td {
|
11
|
+
font: 14px/20px Arial, Sans-serif;
|
12
|
+
font-weight: bold;
|
13
|
+
padding: 4px;
|
14
|
+
margin: 0 0 18px;
|
15
|
+
background-color: #eee;
|
16
|
+
}
|
17
|
+
|
18
|
+
.tablesorter-bootstrap .tablesorter-header {
|
19
|
+
cursor: pointer;
|
20
|
+
}
|
21
|
+
.tablesorter-bootstrap .sorter-false {
|
22
|
+
cursor: default;
|
23
|
+
}
|
24
|
+
|
25
|
+
.tablesorter-bootstrap .tablesorter-header.sorter-false i.tablesorter-icon {
|
26
|
+
display: none;
|
27
|
+
}
|
28
|
+
|
29
|
+
.tablesorter-bootstrap .tablesorter-header-inner {
|
30
|
+
position: relative;
|
31
|
+
padding: 4px 18px 4px 4px;
|
32
|
+
}
|
33
|
+
.tablesorter-bootstrap .sorter-false .tablesorter-header-inner {
|
34
|
+
padding: 4px;
|
35
|
+
}
|
36
|
+
|
37
|
+
/* bootstrap uses <i> for icons */
|
38
|
+
.tablesorter-bootstrap .tablesorter-header i.tablesorter-icon {
|
39
|
+
font-size: 11px;
|
40
|
+
position: absolute;
|
41
|
+
right: 2px;
|
42
|
+
top: 50%;
|
43
|
+
margin-top: -7px; /* half the icon height; older IE doesn't like this */
|
44
|
+
width: 14px;
|
45
|
+
height: 14px;
|
46
|
+
background-repeat: no-repeat;
|
47
|
+
line-height: 14px;
|
48
|
+
display: inline-block;
|
49
|
+
}
|
50
|
+
|
51
|
+
/* black unsorted icon */
|
52
|
+
.tablesorter-bootstrap .bootstrap-icon-unsorted {
|
53
|
+
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOCAYAAAD5YeaVAAAA20lEQVR4AWJABpKSkoxALCstLb0aUAsZaCAMhVEY6B0amx8YZWDDEDSBa2AGe7XeIiAAClYwVGBvsAcIllsf/mvcC9DgOOd8h90fxWvngVEUbZIkuWRZZlE8eQjcisgZMM9zi+LJ6ZfwegmWZflZDugdHMfxTcGqql7TNBlUB/QObtv2VBSFrev6OY7jngzFk9OT/fn73fWYpqnlXNyXDMWT0zuYx/Bvel9ej+LJ6R08DMOu67q7DkTkrSA5vYPneV71fX/QASdTkJwezhs0TfMARn0wMDDGXEPgF4oijqwM5YjNAAAAAElFTkSuQmCC);
|
54
|
+
}
|
55
|
+
|
56
|
+
/* white unsorted icon */
|
57
|
+
.tablesorter-bootstrap .icon-white.bootstrap-icon-unsorted {
|
58
|
+
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOCAYAAAD5YeaVAAAAe0lEQVR4AbXQoRWDMBiF0Sh2QLAAQ8SxJGugWSA6A2STW1PxTsnB9cnkfuYvv8OGC1t5G3Y0QMP+Bm857keAdQIzWBP3+Bw4MADQE18B6/etRnCV/w9nnGuLezfAmXhABGtAGIkruvk6auIFRwQJDywllsEAjCecB20GP59BQQ+gtlRLAAAAAElFTkSuQmCC);
|
59
|
+
}
|
60
|
+
|
61
|
+
/* since bootstrap (table-striped) uses nth-child(), we just use this to add a zebra stripe color */
|
62
|
+
.tablesorter-bootstrap > tbody > tr.odd > td,
|
63
|
+
.tablesorter-bootstrap > tbody > tr.tablesorter-hasChildRow.odd:hover ~ tr.tablesorter-hasChildRow.odd ~ .tablesorter-childRow.odd > td {
|
64
|
+
background-color: #f9f9f9;
|
65
|
+
}
|
66
|
+
.tablesorter-bootstrap > tbody > tr.hover > td,
|
67
|
+
.tablesorter-bootstrap > tbody > tr.odd:hover > td,
|
68
|
+
.tablesorter-bootstrap > tbody > tr.even:hover > td,
|
69
|
+
.tablesorter-bootstrap > tbody > tr.tablesorter-hasChildRow.odd:hover ~ .tablesorter-childRow.odd > td,
|
70
|
+
.tablesorter-bootstrap > tbody > tr.tablesorter-hasChildRow.even:hover ~ .tablesorter-childRow.even > td {
|
71
|
+
background-color: #f5f5f5;
|
72
|
+
}
|
73
|
+
.tablesorter-bootstrap > tbody > tr.even > td,
|
74
|
+
.tablesorter-bootstrap > tbody > tr.tablesorter-hasChildRow.even:hover ~ tr.tablesorter-hasChildRow.even ~ .tablesorter-childRow.even > td {
|
75
|
+
background-color: #fff;
|
76
|
+
}
|
77
|
+
|
78
|
+
/* processing icon */
|
79
|
+
.tablesorter-bootstrap .tablesorter-processing {
|
80
|
+
background-image: url('data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=');
|
81
|
+
background-position: center center !important;
|
82
|
+
background-repeat: no-repeat !important;
|
83
|
+
}
|
84
|
+
|
85
|
+
/* Column Widget - column sort colors */
|
86
|
+
.tablesorter-bootstrap > tbody > tr.odd td.primary {
|
87
|
+
background-color: #bfbfbf;
|
88
|
+
}
|
89
|
+
.tablesorter-bootstrap > tbody > tr td.primary,
|
90
|
+
.tablesorter-bootstrap > tbody > tr.even td.primary {
|
91
|
+
background-color: #d9d9d9;
|
92
|
+
}
|
93
|
+
.tablesorter-bootstrap > tbody > tr.odd td.secondary {
|
94
|
+
background-color: #d9d9d9;
|
95
|
+
}
|
96
|
+
.tablesorter-bootstrap > tbody > tr td.secondary,
|
97
|
+
.tablesorter-bootstrap > tbody > tr.even td.secondary {
|
98
|
+
background-color: #e6e6e6;
|
99
|
+
}
|
100
|
+
.tablesorter-bootstrap > tbody > tr.odd td.tertiary {
|
101
|
+
background-color: #e6e6e6;
|
102
|
+
}
|
103
|
+
.tablesorter-bootstrap > tbody > tr td.tertiary,
|
104
|
+
.tablesorter-bootstrap > tbody > tr.even td.tertiary {
|
105
|
+
background-color: #f2f2f2;
|
106
|
+
}
|
107
|
+
|
108
|
+
/* caption */
|
109
|
+
.caption {
|
110
|
+
background-color: #fff;
|
111
|
+
}
|
112
|
+
|
113
|
+
/* filter widget */
|
114
|
+
.tablesorter-bootstrap .tablesorter-filter-row input.tablesorter-filter,
|
115
|
+
.tablesorter-bootstrap .tablesorter-filter-row select.tablesorter-filter {
|
116
|
+
width: 98%;
|
117
|
+
margin: 0;
|
118
|
+
padding: 4px 6px;
|
119
|
+
color: #333;
|
120
|
+
-webkit-box-sizing: border-box;
|
121
|
+
-moz-box-sizing: border-box;
|
122
|
+
box-sizing: border-box;
|
123
|
+
-webkit-transition: height 0.1s ease;
|
124
|
+
-moz-transition: height 0.1s ease;
|
125
|
+
-o-transition: height 0.1s ease;
|
126
|
+
transition: height 0.1s ease;
|
127
|
+
}
|
128
|
+
.tablesorter-bootstrap .tablesorter-filter-row .tablesorter-filter.disabled {
|
129
|
+
background-color: #eee;
|
130
|
+
color: #555;
|
131
|
+
cursor: not-allowed;
|
132
|
+
border: 1px solid #ccc;
|
133
|
+
border-radius: 4px;
|
134
|
+
box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.075) inset;
|
135
|
+
box-sizing: border-box;
|
136
|
+
transition: height 0.1s ease;
|
137
|
+
}
|
138
|
+
.tablesorter-bootstrap .tablesorter-filter-row {
|
139
|
+
background-color: #efefef;
|
140
|
+
}
|
141
|
+
.tablesorter-bootstrap .tablesorter-filter-row td {
|
142
|
+
background-color: #efefef;
|
143
|
+
line-height: normal;
|
144
|
+
text-align: center;
|
145
|
+
padding: 4px 6px;
|
146
|
+
vertical-align: middle;
|
147
|
+
-webkit-transition: line-height 0.1s ease;
|
148
|
+
-moz-transition: line-height 0.1s ease;
|
149
|
+
-o-transition: line-height 0.1s ease;
|
150
|
+
transition: line-height 0.1s ease;
|
151
|
+
}
|
152
|
+
/* hidden filter row */
|
153
|
+
.tablesorter-bootstrap .tablesorter-filter-row.hideme td {
|
154
|
+
padding: 2px; /* change this to modify the thickness of the closed border row */
|
155
|
+
margin: 0;
|
156
|
+
line-height: 0;
|
157
|
+
}
|
158
|
+
.tablesorter-bootstrap .tablesorter-filter-row.hideme * {
|
159
|
+
height: 1px;
|
160
|
+
min-height: 0;
|
161
|
+
border: 0;
|
162
|
+
padding: 0;
|
163
|
+
margin: 0;
|
164
|
+
/* don't use visibility: hidden because it disables tabbing */
|
165
|
+
opacity: 0;
|
166
|
+
filter: alpha(opacity=0);
|
167
|
+
}
|
168
|
+
/* rows hidden by filtering */
|
169
|
+
.tablesorter .filtered {
|
170
|
+
display: none;
|
171
|
+
}
|
172
|
+
|
173
|
+
/* pager plugin */
|
174
|
+
.tablesorter-bootstrap .tablesorter-pager select {
|
175
|
+
padding: 4px 6px;
|
176
|
+
}
|
177
|
+
.tablesorter-bootstrap .tablesorter-pager .pagedisplay {
|
178
|
+
border: 0;
|
179
|
+
}
|
180
|
+
/* tfoot i for pager controls */
|
181
|
+
.tablesorter-bootstrap tfoot i {
|
182
|
+
font-size: 11px;
|
183
|
+
}
|
184
|
+
|
185
|
+
/* ajax error row */
|
186
|
+
.tablesorter .tablesorter-errorRow td {
|
187
|
+
text-align: center;
|
188
|
+
cursor: pointer;
|
189
|
+
background-color: #e6bf99;
|
190
|
+
}
|
@@ -0,0 +1,189 @@
|
|
1
|
+
/**
|
2
|
+
* Bootstrap theme v4.x
|
3
|
+
*/
|
4
|
+
.tablesorter-bootstrap {
|
5
|
+
width: 100%;
|
6
|
+
}
|
7
|
+
.tablesorter-bootstrap thead th,
|
8
|
+
.tablesorter-bootstrap thead td,
|
9
|
+
.tablesorter-bootstrap tfoot th,
|
10
|
+
.tablesorter-bootstrap tfoot td {
|
11
|
+
font: 14px/20px Arial, Sans-serif;
|
12
|
+
font-weight: bold;
|
13
|
+
padding: 4px;
|
14
|
+
margin: 0 0 18px;
|
15
|
+
}
|
16
|
+
|
17
|
+
.tablesorter-bootstrap thead .tablesorter-header {
|
18
|
+
background-position: right 5px center;
|
19
|
+
background-repeat: no-repeat;
|
20
|
+
cursor: pointer;
|
21
|
+
white-space: normal;
|
22
|
+
}
|
23
|
+
.tablesorter-bootstrap:not(.table-inverse) thead:not(.thead-inverse) .tablesorter-header,
|
24
|
+
.tablesorter-bootstrap:not(.table-inverse) tfoot th,
|
25
|
+
.tablesorter-bootstrap:not(.table-inverse) tfoot td {
|
26
|
+
background-color: #eee;
|
27
|
+
}
|
28
|
+
|
29
|
+
.tablesorter-bootstrap thead .sorter-false {
|
30
|
+
cursor: default;
|
31
|
+
background-image: none;
|
32
|
+
}
|
33
|
+
|
34
|
+
.tablesorter-bootstrap .tablesorter-header-inner {
|
35
|
+
position: relative;
|
36
|
+
padding: 4px 18px 4px 4px;
|
37
|
+
}
|
38
|
+
.tablesorter-bootstrap .sorter-false .tablesorter-header-inner {
|
39
|
+
padding: 4px;
|
40
|
+
}
|
41
|
+
|
42
|
+
/* black icons */
|
43
|
+
.tablesorter-bootstrap thead .tablesorter-headerUnSorted:not(.sorter-false) {
|
44
|
+
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE0IDIwIj48cGF0aCBkPSJNMTQgMTNsLTIuNS0yLjVMNyAxNWwtNC41LTQuNUwwIDEzbDcgN3pNMTQgNy41TDExLjUgMTAgNyA1LjUgMi41IDEwIDAgNy41bDctN3oiLz48L3N2Zz4=);
|
45
|
+
}
|
46
|
+
.tablesorter-bootstrap thead .tablesorter-headerAsc {
|
47
|
+
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDE0IDE0Ij48cGF0aCBkPSJNMTQgOS41TDExLjUgMTIgNyA3LjUgMi41IDEyIDAgOS41bDctN3oiLz48L3N2Zz4=);
|
48
|
+
}
|
49
|
+
.tablesorter-bootstrap thead .tablesorter-headerDesc {
|
50
|
+
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDE0IDE0Ij48cGF0aCBkPSJNMTQgNWwtMi41LTIuNS00LjUgNC41LTQuNS00LjVMMCA1IDcgMTJ6Ii8+PC9zdmc+);
|
51
|
+
}
|
52
|
+
|
53
|
+
/* white icons */
|
54
|
+
.tablesorter-bootstrap thead.thead-inverse .tablesorter-headerUnSorted:not(.sorter-false),
|
55
|
+
.tablesorter-bootstrap.table-inverse thead .tablesorter-headerUnSorted:not(.sorter-false) {
|
56
|
+
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE0IDIwIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTQgMTNsLTIuNS0yLjVMNyAxNWwtNC41LTQuNUwwIDEzbDcgN3pNMTQgNy41TDExLjUgMTAgNyA1LjUgMi41IDEwIDAgNy41bDctN3oiLz48L3N2Zz4=);
|
57
|
+
}
|
58
|
+
.tablesorter-bootstrap thead.thead-inverse .tablesorter-headerAsc,
|
59
|
+
.tablesorter-bootstrap.table-inverse thead .tablesorter-headerAsc {
|
60
|
+
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDE0IDE0Ij48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTQgOS41TDExLjUgMTIgNyA3LjUgMi41IDEyIDAgOS41bDctN3oiLz48L3N2Zz4=);
|
61
|
+
}
|
62
|
+
.tablesorter-bootstrap thead.thead-inverse .tablesorter-headerDesc,
|
63
|
+
.tablesorter-bootstrap.table-inverse thead .tablesorter-headerDesc {
|
64
|
+
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDE0IDE0Ij48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTQgNWwtMi41LTIuNS00LjUgNC41LTQuNS00LjVMMCA1IDcgMTJ6Ii8+PC9zdmc+);
|
65
|
+
}
|
66
|
+
|
67
|
+
/* since bootstrap (table-striped) uses nth-child(), we just use this to add a zebra stripe color */
|
68
|
+
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.odd > td,
|
69
|
+
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.tablesorter-hasChildRow.odd:hover ~ tr.tablesorter-hasChildRow.odd ~ .tablesorter-childRow.odd > td {
|
70
|
+
background-color: #f9f9f9;
|
71
|
+
}
|
72
|
+
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.hover > td,
|
73
|
+
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.odd:hover > td,
|
74
|
+
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.even:hover > td,
|
75
|
+
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.tablesorter-hasChildRow.odd:hover ~ .tablesorter-childRow.odd > td,
|
76
|
+
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.tablesorter-hasChildRow.even:hover ~ .tablesorter-childRow.even > td {
|
77
|
+
background-color: #f5f5f5;
|
78
|
+
}
|
79
|
+
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.even > td,
|
80
|
+
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.tablesorter-hasChildRow.even:hover ~ tr.tablesorter-hasChildRow.even ~ .tablesorter-childRow.even > td {
|
81
|
+
background-color: #fff;
|
82
|
+
}
|
83
|
+
|
84
|
+
/* processing icon */
|
85
|
+
.tablesorter-bootstrap .tablesorter-processing {
|
86
|
+
background-image: url('data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=');
|
87
|
+
background-position: center center !important;
|
88
|
+
background-repeat: no-repeat !important;
|
89
|
+
}
|
90
|
+
|
91
|
+
/* Column Widget - column sort colors */
|
92
|
+
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.odd td.primary {
|
93
|
+
background-color: #bfbfbf;
|
94
|
+
}
|
95
|
+
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr td.primary,
|
96
|
+
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.even td.primary {
|
97
|
+
background-color: #d9d9d9;
|
98
|
+
}
|
99
|
+
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.odd td.secondary {
|
100
|
+
background-color: #d9d9d9;
|
101
|
+
}
|
102
|
+
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr td.secondary,
|
103
|
+
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.even td.secondary {
|
104
|
+
background-color: #e6e6e6;
|
105
|
+
}
|
106
|
+
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.odd td.tertiary {
|
107
|
+
background-color: #e6e6e6;
|
108
|
+
}
|
109
|
+
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr td.tertiary,
|
110
|
+
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.even td.tertiary {
|
111
|
+
background-color: #f2f2f2;
|
112
|
+
}
|
113
|
+
|
114
|
+
/* caption */
|
115
|
+
.tablesorter-bootstrap:not(.table-inverse) .caption {
|
116
|
+
background-color: #fff;
|
117
|
+
}
|
118
|
+
|
119
|
+
/* filter widget */
|
120
|
+
.tablesorter-bootstrap .tablesorter-filter-row input.tablesorter-filter,
|
121
|
+
.tablesorter-bootstrap .tablesorter-filter-row select.tablesorter-filter {
|
122
|
+
width: 98%;
|
123
|
+
margin: 0;
|
124
|
+
-webkit-box-sizing: border-box;
|
125
|
+
-moz-box-sizing: border-box;
|
126
|
+
box-sizing: border-box;
|
127
|
+
-webkit-transition: height 0.1s ease;
|
128
|
+
-moz-transition: height 0.1s ease;
|
129
|
+
-o-transition: height 0.1s ease;
|
130
|
+
transition: height 0.1s ease;
|
131
|
+
}
|
132
|
+
.tablesorter-bootstrap:not(.table-inverse) .tablesorter-filter-row {
|
133
|
+
background-color: #efefef;
|
134
|
+
}
|
135
|
+
.tablesorter-bootstrap:not(.table-inverse) .tablesorter-filter-row input.tablesorter-filter,
|
136
|
+
.tablesorter-bootstrap:not(.table-inverse) .tablesorter-filter-row select.tablesorter-filter {
|
137
|
+
color: #333;
|
138
|
+
}
|
139
|
+
|
140
|
+
.tablesorter-bootstrap .tablesorter-filter-row .tablesorter-filter.disabled {
|
141
|
+
cursor: not-allowed;
|
142
|
+
box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.075) inset;
|
143
|
+
box-sizing: border-box;
|
144
|
+
transition: height 0.1s ease;
|
145
|
+
}
|
146
|
+
|
147
|
+
.tablesorter-bootstrap:not(.table-inverse) .tablesorter-filter-row td {
|
148
|
+
line-height: normal;
|
149
|
+
text-align: center;
|
150
|
+
padding: 4px 6px;
|
151
|
+
vertical-align: middle;
|
152
|
+
-webkit-transition: line-height 0.1s ease;
|
153
|
+
-moz-transition: line-height 0.1s ease;
|
154
|
+
-o-transition: line-height 0.1s ease;
|
155
|
+
transition: line-height 0.1s ease;
|
156
|
+
}
|
157
|
+
/* hidden filter row */
|
158
|
+
.tablesorter-bootstrap .tablesorter-filter-row.hideme td {
|
159
|
+
padding: 2px; /* change this to modify the thickness of the closed border row */
|
160
|
+
margin: 0;
|
161
|
+
line-height: 0;
|
162
|
+
}
|
163
|
+
.tablesorter-bootstrap .tablesorter-filter-row.hideme * {
|
164
|
+
height: 1px;
|
165
|
+
min-height: 0;
|
166
|
+
border: 0;
|
167
|
+
padding: 0;
|
168
|
+
margin: 0;
|
169
|
+
/* don't use visibility: hidden because it disables tabbing */
|
170
|
+
opacity: 0;
|
171
|
+
filter: alpha(opacity=0);
|
172
|
+
}
|
173
|
+
/* rows hidden by filtering */
|
174
|
+
.tablesorter .filtered {
|
175
|
+
display: none;
|
176
|
+
}
|
177
|
+
|
178
|
+
/* pager plugin */
|
179
|
+
|
180
|
+
.tablesorter-bootstrap .tablesorter-pager .pagedisplay {
|
181
|
+
border: 0;
|
182
|
+
}
|
183
|
+
|
184
|
+
/* ajax error row */
|
185
|
+
.tablesorter:not(.table-inverse) .tablesorter-errorRow td {
|
186
|
+
text-align: center;
|
187
|
+
cursor: pointer;
|
188
|
+
background-color: #e6bf99;
|
189
|
+
}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
/* Grouping widget css */
|
2
|
+
tr.group-header td {
|
3
|
+
background: #eee;
|
4
|
+
}
|
5
|
+
.group-name {
|
6
|
+
text-transform: uppercase;
|
7
|
+
font-weight: bold;
|
8
|
+
}
|
9
|
+
.group-count {
|
10
|
+
color: #999;
|
11
|
+
}
|
12
|
+
.group-hidden {
|
13
|
+
display: none !important;
|
14
|
+
}
|
15
|
+
.group-header, .group-header td {
|
16
|
+
user-select: none;
|
17
|
+
-moz-user-select: none;
|
18
|
+
}
|
19
|
+
/* collapsed arrow */
|
20
|
+
tr.group-header td i {
|
21
|
+
display: inline-block;
|
22
|
+
width: 0;
|
23
|
+
height: 0;
|
24
|
+
border-top: 4px solid transparent;
|
25
|
+
border-bottom: 4px solid #888;
|
26
|
+
border-right: 4px solid #888;
|
27
|
+
border-left: 4px solid transparent;
|
28
|
+
margin-right: 7px;
|
29
|
+
user-select: none;
|
30
|
+
-moz-user-select: none;
|
31
|
+
}
|
32
|
+
tr.group-header.collapsed td i {
|
33
|
+
border-top: 5px solid transparent;
|
34
|
+
border-bottom: 5px solid transparent;
|
35
|
+
border-left: 5px solid #888;
|
36
|
+
border-right: 0;
|
37
|
+
margin-right: 10px;
|
38
|
+
}
|
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.23.
|
4
|
+
version: 1.23.4
|
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:
|
12
|
+
date: 2017-01-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: railties
|
@@ -149,6 +149,8 @@ files:
|
|
149
149
|
- vendor/assets/stylesheets/jquery-tablesorter/theme.blue.css
|
150
150
|
- vendor/assets/stylesheets/jquery-tablesorter/theme.bootstrap.css
|
151
151
|
- vendor/assets/stylesheets/jquery-tablesorter/theme.bootstrap_2.css
|
152
|
+
- vendor/assets/stylesheets/jquery-tablesorter/theme.bootstrap_3.css
|
153
|
+
- vendor/assets/stylesheets/jquery-tablesorter/theme.bootstrap_4.css
|
152
154
|
- vendor/assets/stylesheets/jquery-tablesorter/theme.dark.css
|
153
155
|
- vendor/assets/stylesheets/jquery-tablesorter/theme.default.css
|
154
156
|
- vendor/assets/stylesheets/jquery-tablesorter/theme.dropbox.css
|
@@ -158,6 +160,7 @@ files:
|
|
158
160
|
- vendor/assets/stylesheets/jquery-tablesorter/theme.jui.css
|
159
161
|
- vendor/assets/stylesheets/jquery-tablesorter/theme.materialize.css
|
160
162
|
- vendor/assets/stylesheets/jquery-tablesorter/theme.metro-dark.css
|
163
|
+
- vendor/assets/stylesheets/jquery-tablesorter/widget.grouping.css
|
161
164
|
homepage: https://github.com/themilkman/jquery-tablesorter-rails
|
162
165
|
licenses:
|
163
166
|
- MIT
|