jquery-tablesorter 1.23.3 → 1.23.4
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 +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
|