jquery-tablesorter 1.24.5 → 1.25.0
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 +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.js +85 -85
- data/vendor/assets/javascripts/jquery-tablesorter/beta-testing/widget-reorder.js +17 -18
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.combined.js +128 -101
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.js +70 -58
- data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.widgets.js +58 -43
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-extract.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-iso8601.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-month.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-range.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-two-digit-year.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-weekday.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-duration.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-feet-inch-fraction.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-file-type.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-ignore-articles.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-image.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-input-select.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-leading-zeros.js +1 -0
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-named-numbers.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-network.js +4 -4
- data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-roman.js +5 -5
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-alignChar.js +15 -15
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-build-table.js +28 -18
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-chart.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-columnSelector.js +22 -18
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-cssStickyHeaders.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-formatter-html5.js +34 -31
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-formatter-jui.js +46 -46
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-formatter-select2.js +10 -10
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-type-insideRange.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter.js +17 -13
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-formatter.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-grouping.js +14 -15
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-headerTitles.js +8 -9
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-lazyload.js +35 -35
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-math.js +8 -9
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-output.js +7 -6
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-pager.js +60 -56
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-print.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-reflow.js +11 -11
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-repeatheaders.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-resizable.js +3 -3
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-saveSort.js +23 -12
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-scroller.js +3 -4
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-sort2Hash.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-sortTbodies.js +1 -1
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-staticRow.js +7 -7
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-stickyHeaders.js +2 -2
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-storage.js +5 -6
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-uitheme.js +7 -6
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-vertical-group.js +10 -12
- data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-view.js +3 -3
- metadata +2 -2
data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-formatter-select2.js
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
*/
|
5
5
|
/*jshint browser:true, jquery:true, unused:false */
|
6
6
|
/*global jQuery: false */
|
7
|
-
;(function($){
|
7
|
+
;(function($) {
|
8
8
|
'use strict';
|
9
9
|
|
10
10
|
var ts = $.tablesorter || {};
|
@@ -33,7 +33,7 @@
|
|
33
33
|
$input = $('<input class="filter" type="hidden">')
|
34
34
|
.appendTo($cell)
|
35
35
|
// hidden filter update namespace trigger by filter widget
|
36
|
-
.bind('change' + c.namespace + 'filter', function(){
|
36
|
+
.bind('change' + c.namespace + 'filter', function() {
|
37
37
|
var val = convertRegex(this.value);
|
38
38
|
c.$table.find('.select2col' + indx + ' .select2').select2('val', val);
|
39
39
|
updateSelect2();
|
@@ -88,11 +88,11 @@
|
|
88
88
|
},
|
89
89
|
|
90
90
|
// get options from table cell content or filter_selectSource (v2.16)
|
91
|
-
updateOptions = function(){
|
91
|
+
updateOptions = function() {
|
92
92
|
data = [];
|
93
93
|
arry = ts.filter.getOptionSource(c.$table[0], indx, onlyAvail) || [];
|
94
94
|
// build select2 data option
|
95
|
-
$.each(arry, function(i, v){
|
95
|
+
$.each(arry, function(i, v) {
|
96
96
|
// getOptionSource returns { parsed: "value", text: "value" } in v2.24.4
|
97
97
|
data.push({ id: '' + v.parsed, text: v.text });
|
98
98
|
});
|
@@ -109,7 +109,7 @@
|
|
109
109
|
// data options are already defined
|
110
110
|
if (!(o.ajax && !$.isEmptyObject(o.ajax)) && !o.data) {
|
111
111
|
updateOptions();
|
112
|
-
c.$table.bind('filterEnd', function(){
|
112
|
+
c.$table.bind('filterEnd', function() {
|
113
113
|
updateOptions();
|
114
114
|
c.$table
|
115
115
|
.find('.select2col' + indx)
|
@@ -123,7 +123,7 @@
|
|
123
123
|
.val(o.value)
|
124
124
|
.appendTo($cell)
|
125
125
|
.select2(o)
|
126
|
-
.bind('change', function(){
|
126
|
+
.bind('change', function() {
|
127
127
|
updateSelect2();
|
128
128
|
});
|
129
129
|
|
@@ -138,14 +138,14 @@
|
|
138
138
|
});
|
139
139
|
|
140
140
|
// has sticky headers?
|
141
|
-
c.$table.bind('stickyHeadersInit', function(){
|
141
|
+
c.$table.bind('stickyHeadersInit', function() {
|
142
142
|
var $shcell = c.widgetOptions.$sticky.find('.select2col' + indx).empty();
|
143
143
|
// add a select2!
|
144
144
|
$('<input class="select2 select2-' + indx + '" type="hidden">')
|
145
145
|
.val(o.value)
|
146
146
|
.appendTo($shcell)
|
147
147
|
.select2(o)
|
148
|
-
.bind('change', function(){
|
148
|
+
.bind('change', function() {
|
149
149
|
c.$table.find('.select2col' + indx)
|
150
150
|
.find('.select2')
|
151
151
|
.select2('val', c.widgetOptions.$sticky.find('.select2col' + indx + ' .select2').select2('val') );
|
@@ -157,9 +157,9 @@
|
|
157
157
|
});
|
158
158
|
|
159
159
|
// on reset
|
160
|
-
c.$table.bind('filterReset', function(){
|
160
|
+
c.$table.bind('filterReset', function() {
|
161
161
|
c.$table.find('.select2col' + indx).find('.select2').select2('val', o.value || '');
|
162
|
-
setTimeout(function(){
|
162
|
+
setTimeout(function() {
|
163
163
|
updateSelect2();
|
164
164
|
}, 0);
|
165
165
|
});
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! Widget: filter - updated 2018-
|
1
|
+
/*! Widget: filter - updated 2018-03-18 (v2.30.0) *//*
|
2
2
|
* Requires tablesorter v2.8+ and jQuery 1.7+
|
3
3
|
* by Rob Garrison
|
4
4
|
*/
|
@@ -280,6 +280,7 @@
|
|
280
280
|
if ( tsfRegex.exact.test( data.iFilter ) ) {
|
281
281
|
var txt = data.iFilter.replace( tsfRegex.exact, '' ),
|
282
282
|
filter = tsf.parseFilter( c, txt, data ) || '';
|
283
|
+
// eslint-disable-next-line eqeqeq
|
283
284
|
return data.anyMatch ? $.inArray( filter, data.rowArray ) >= 0 : filter == data.iExact;
|
284
285
|
}
|
285
286
|
return null;
|
@@ -453,7 +454,7 @@
|
|
453
454
|
c.lastCombinedFilter = null;
|
454
455
|
c.lastSearch = [];
|
455
456
|
// update filterFormatters after update (& small delay) - Fixes #1237
|
456
|
-
setTimeout(function(){
|
457
|
+
setTimeout(function() {
|
457
458
|
c.$table.triggerHandler( 'filterFomatterUpdate' );
|
458
459
|
}, 100);
|
459
460
|
}
|
@@ -547,7 +548,7 @@
|
|
547
548
|
|
548
549
|
// show processing icon
|
549
550
|
if ( c.showProcessing ) {
|
550
|
-
txt = 'filterStart filterEnd '.split( ' ' ).join( c.namespace + 'filter ' );
|
551
|
+
txt = 'filterStart filterEnd '.split( ' ' ).join( c.namespace + 'filter-sp ' );
|
551
552
|
c.$table
|
552
553
|
.unbind( txt.replace( ts.regex.spaces, ' ' ) )
|
553
554
|
.bind( txt, function( event, columns ) {
|
@@ -626,6 +627,9 @@
|
|
626
627
|
c.lastSearch = c.$table.data( 'lastSearch' );
|
627
628
|
c.$table.triggerHandler( 'filterInit', c );
|
628
629
|
tsf.findRows( c.table, c.lastSearch || [] );
|
630
|
+
if (ts.debug(c, 'filter')) {
|
631
|
+
console.log('Filter >> Widget initialized');
|
632
|
+
}
|
629
633
|
};
|
630
634
|
if ( $.isEmptyObject( wo.filter_formatter ) ) {
|
631
635
|
completed();
|
@@ -1326,6 +1330,7 @@
|
|
1326
1330
|
storedFilters = $.extend( [], filters ),
|
1327
1331
|
c = table.config,
|
1328
1332
|
wo = c.widgetOptions,
|
1333
|
+
debug = ts.debug(c, 'filter'),
|
1329
1334
|
// data object passed to filters; anyMatch is a flag for the filters
|
1330
1335
|
data = {
|
1331
1336
|
anyMatch: false,
|
@@ -1342,7 +1347,6 @@
|
|
1342
1347
|
defaultColFilter : [],
|
1343
1348
|
defaultAnyFilter : ts.getColumnData( table, wo.filter_defaultFilter, c.columns, true ) || ''
|
1344
1349
|
};
|
1345
|
-
|
1346
1350
|
// parse columns after formatter, in case the class is added at that point
|
1347
1351
|
data.parsed = [];
|
1348
1352
|
for ( columnIndex = 0; columnIndex < c.columns; columnIndex++ ) {
|
@@ -1364,8 +1368,8 @@
|
|
1364
1368
|
( ts.getColumnData( table, wo.filter_excludeFilter, columnIndex, true ) || '' ).split( /\s+/ );
|
1365
1369
|
}
|
1366
1370
|
|
1367
|
-
if (
|
1368
|
-
console.log( 'Filter
|
1371
|
+
if ( debug ) {
|
1372
|
+
console.log( 'Filter >> Starting filter widget search', filters );
|
1369
1373
|
time = new Date();
|
1370
1374
|
}
|
1371
1375
|
// filtered rows count
|
@@ -1463,8 +1467,8 @@
|
|
1463
1467
|
notFiltered = $rows.not( '.' + wo.filter_filteredRow ).length;
|
1464
1468
|
// can't search when all rows are hidden - this happens when looking for exact matches
|
1465
1469
|
if ( searchFiltered && notFiltered === 0 ) { searchFiltered = false; }
|
1466
|
-
if (
|
1467
|
-
console.log( 'Filter
|
1470
|
+
if ( debug ) {
|
1471
|
+
console.log( 'Filter >> Searching through ' +
|
1468
1472
|
( searchFiltered && notFiltered < len ? notFiltered : 'all' ) + ' rows' );
|
1469
1473
|
}
|
1470
1474
|
if ( data.anyMatchFlag ) {
|
@@ -1567,8 +1571,8 @@
|
|
1567
1571
|
if ( wo.filter_saveFilters && ts.storage ) {
|
1568
1572
|
ts.storage( table, 'tablesorter-filters', tsf.processFilters( storedFilters, true ) );
|
1569
1573
|
}
|
1570
|
-
if (
|
1571
|
-
console.log( '
|
1574
|
+
if ( debug ) {
|
1575
|
+
console.log( 'Filter >> Completed search' + ts.benchmark(time) );
|
1572
1576
|
}
|
1573
1577
|
if ( wo.filter_initialized ) {
|
1574
1578
|
c.$table.triggerHandler( 'filterBeforeEnd', c );
|
@@ -1783,13 +1787,13 @@
|
|
1783
1787
|
options += '<option';
|
1784
1788
|
for ( val in option ) {
|
1785
1789
|
if ( option.hasOwnProperty( val ) && val !== 'text' ) {
|
1786
|
-
options += ' ' + val + '="' + option[ val ] + '"';
|
1790
|
+
options += ' ' + val + '="' + option[ val ].replace( tsfRegex.quote, '"' ) + '"';
|
1787
1791
|
}
|
1788
1792
|
}
|
1789
1793
|
if ( !option.value ) {
|
1790
|
-
options += ' value="' + option.text + '"';
|
1794
|
+
options += ' value="' + option.text.replace( tsfRegex.quote, '"' ) + '"';
|
1791
1795
|
}
|
1792
|
-
options += '>' + option.text + '</option>';
|
1796
|
+
options += '>' + option.text.replace( tsfRegex.quote, '"' ) + '</option>';
|
1793
1797
|
// above code is needed in jQuery < v1.8
|
1794
1798
|
|
1795
1799
|
// make sure we don't turn an object into a string (objects without a "text" property)
|
@@ -4,7 +4,7 @@
|
|
4
4
|
*/
|
5
5
|
/*jshint browser:true, jquery:true, unused:false */
|
6
6
|
/*global jQuery: false */
|
7
|
-
;(function($){
|
7
|
+
;(function($) {
|
8
8
|
'use strict';
|
9
9
|
var ts = $.tablesorter;
|
10
10
|
|
@@ -33,7 +33,7 @@
|
|
33
33
|
formatter[ column ] = ts.getColumnData( c.table, wo.formatter_column, column ) || false;
|
34
34
|
}
|
35
35
|
// main loop
|
36
|
-
for ( tbodyIndex = 0; tbodyIndex < c.$tbodies.length; tbodyIndex++ ){
|
36
|
+
for ( tbodyIndex = 0; tbodyIndex < c.$tbodies.length; tbodyIndex++ ) {
|
37
37
|
$tbody = ts.processTbody( c.table, c.$tbodies.eq( tbodyIndex ), true ); // detach tbody
|
38
38
|
rows = c.cache[ tbodyIndex ];
|
39
39
|
len = rows.normalized.length;
|
@@ -4,7 +4,7 @@
|
|
4
4
|
*/
|
5
5
|
/*jshint browser:true, jquery:true, unused:false */
|
6
6
|
/*global jQuery: false */
|
7
|
-
;(function($){
|
7
|
+
;(function($) {
|
8
8
|
'use strict';
|
9
9
|
var ts = $.tablesorter,
|
10
10
|
|
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
types : {
|
14
14
|
number : function(c, $column, txt, num) {
|
15
|
-
var
|
15
|
+
var result,
|
16
16
|
ascSort = $column.hasClass( ts.css.sortAsc );
|
17
17
|
if ( num > 1 && txt !== '' ) {
|
18
18
|
if ( ascSort ) {
|
@@ -43,7 +43,7 @@
|
|
43
43
|
letter : function(c, $column, txt, num) {
|
44
44
|
return txt ? (txt + ' ').substring(0, num) : '';
|
45
45
|
},
|
46
|
-
date : function(c, $column, txt, part
|
46
|
+
date : function(c, $column, txt, part) {
|
47
47
|
var year, month,
|
48
48
|
wo = c.widgetOptions,
|
49
49
|
time = new Date(txt || '');
|
@@ -203,7 +203,7 @@
|
|
203
203
|
return savedGroup;
|
204
204
|
},
|
205
205
|
findColumnGroups : function( c, wo, data ) {
|
206
|
-
var tbodyIndex, norm_rows,
|
206
|
+
var tbodyIndex, norm_rows, rowIndex, end, undef,
|
207
207
|
hasPager = ts.hasWidget( c.table, 'pager' ),
|
208
208
|
p = c.pager || {};
|
209
209
|
data.groupIndex = 0;
|
@@ -251,15 +251,15 @@
|
|
251
251
|
}
|
252
252
|
},
|
253
253
|
|
254
|
-
bindEvents : function(table, c, wo){
|
254
|
+
bindEvents : function(table, c, wo) {
|
255
255
|
if (wo.group_collapsible) {
|
256
256
|
wo.group_collapsedGroups = [];
|
257
257
|
// .on() requires jQuery 1.7+
|
258
|
-
c.$table.on('click toggleGroup keyup', 'tr.group-header', function(event){
|
258
|
+
c.$table.on('click toggleGroup keyup', 'tr.group-header', function(event) {
|
259
259
|
event.stopPropagation();
|
260
260
|
// pressing enter will toggle the group
|
261
261
|
if (event.type === 'keyup' && event.which !== 13) { return; }
|
262
|
-
var isCollapsed,
|
262
|
+
var isCollapsed, indx,
|
263
263
|
$this = $(this),
|
264
264
|
name = $this.find('.group-name').text().toLowerCase() + $this.attr('data-group-index');
|
265
265
|
// use shift-click to toggle ALL groups
|
@@ -276,7 +276,6 @@
|
|
276
276
|
}
|
277
277
|
// save collapsed groups
|
278
278
|
if (wo.group_saveGroups && ts.storage) {
|
279
|
-
$groups = c.$table.find('.group-header');
|
280
279
|
if (!wo.group_collapsedGroups[wo.group_collapsedGroup]) {
|
281
280
|
wo.group_collapsedGroups[wo.group_collapsedGroup] = [];
|
282
281
|
}
|
@@ -292,15 +291,15 @@
|
|
292
291
|
}
|
293
292
|
});
|
294
293
|
}
|
295
|
-
$(wo.group_saveReset).on('click', function(){
|
294
|
+
$(wo.group_saveReset).on('click', function() {
|
296
295
|
tsg.clearSavedGroups(table);
|
297
296
|
});
|
298
|
-
c.$table.on('pagerChange.tsgrouping', function(){
|
297
|
+
c.$table.on('pagerChange.tsgrouping', function() {
|
299
298
|
tsg.update(table);
|
300
299
|
});
|
301
300
|
},
|
302
301
|
|
303
|
-
clearSavedGroups: function(table){
|
302
|
+
clearSavedGroups: function(table) {
|
304
303
|
if (table && ts.storage) {
|
305
304
|
ts.storage(table, 'tablesorter-groups', '');
|
306
305
|
tsg.update(table);
|
@@ -320,7 +319,7 @@
|
|
320
319
|
group_count : ' ({num})', // if not false, the '{num}' string is replaced with the number of rows in the group
|
321
320
|
group_separator : '-', // group name separator; used when group-separator-# class is used.
|
322
321
|
group_formatter : null, // function(txt, column, table, c, wo) { return txt; }
|
323
|
-
group_callback : null, // function($cell, $rows, column, table){}, callback allowing modification of the group header labels
|
322
|
+
group_callback : null, // function($cell, $rows, column, table) {}, callback allowing modification of the group header labels
|
324
323
|
group_complete : 'groupingComplete', // event triggered on the table when the grouping widget has finished work
|
325
324
|
|
326
325
|
// apply the grouping widget only to selected column
|
@@ -344,13 +343,13 @@
|
|
344
343
|
// reference: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#Conversion_getter
|
345
344
|
group_dateString : function(date) { return date.toLocaleString(); }
|
346
345
|
},
|
347
|
-
init: function(table, thisWidget, c, wo){
|
346
|
+
init: function(table, thisWidget, c, wo) {
|
348
347
|
tsg.bindEvents(table, c, wo);
|
349
348
|
},
|
350
|
-
format: function(table
|
349
|
+
format: function(table) {
|
351
350
|
tsg.update(table);
|
352
351
|
},
|
353
|
-
remove : function(table, c
|
352
|
+
remove : function(table, c) {
|
354
353
|
c.$table
|
355
354
|
.off('click', 'tr.group-header')
|
356
355
|
.off('pagerChange.tsgrouping')
|
@@ -4,7 +4,7 @@
|
|
4
4
|
*/
|
5
5
|
/*jshint browser:true, jquery:true, unused:false */
|
6
6
|
/*global jQuery: false */
|
7
|
-
;(function($){
|
7
|
+
;(function($) {
|
8
8
|
'use strict';
|
9
9
|
var ts = $.tablesorter;
|
10
10
|
|
@@ -35,14 +35,14 @@
|
|
35
35
|
// manipulate the title as desired
|
36
36
|
headerTitle_callback : null // function($cell, txt) { return txt; }
|
37
37
|
},
|
38
|
-
init: function(table, thisWidget, c, wo){
|
38
|
+
init: function(table, thisWidget, c, wo) {
|
39
39
|
// force refresh
|
40
|
-
c.$table.on('refreshHeaderTitle', function(){
|
40
|
+
c.$table.on('refreshHeaderTitle', function() {
|
41
41
|
thisWidget.format(table, c, wo);
|
42
42
|
});
|
43
43
|
// add tooltip class
|
44
44
|
if ($.isArray(wo.headerTitle_tooltip)) {
|
45
|
-
c.$headers.each(function(){
|
45
|
+
c.$headers.each(function() {
|
46
46
|
$(this).addClass( wo.headerTitle_tooltip[this.column] || '' );
|
47
47
|
});
|
48
48
|
} else if (wo.headerTitle_tooltip !== '') {
|
@@ -51,9 +51,8 @@
|
|
51
51
|
},
|
52
52
|
format: function (table, c, wo) {
|
53
53
|
var txt;
|
54
|
-
c.$headers.each(function(){
|
55
|
-
var
|
56
|
-
$this = $(this),
|
54
|
+
c.$headers.each(function() {
|
55
|
+
var $this = $(this),
|
57
56
|
col = parseInt( $this.attr( 'data-column' ), 10 ),
|
58
57
|
sortType = wo.headerTitle_type[ col ] || c.parsers[ col ].type || 'text',
|
59
58
|
sortDirection = $this.hasClass(ts.css.sortAsc) ? 0 : $this.hasClass(ts.css.sortDesc) ? 1 : 2,
|
@@ -64,7 +63,7 @@
|
|
64
63
|
txt = (wo.headerTitle_prefix || '') + // now deprecated
|
65
64
|
($this.hasClass('sorter-false') ? wo.headerTitle_output_nosort :
|
66
65
|
ts.isValueInArray( col, c.sortList ) >= 0 ? wo.headerTitle_output_sorted : wo.headerTitle_output_unsorted);
|
67
|
-
txt = txt.replace(/\{(current|next|name)\}/gi, function(m){
|
66
|
+
txt = txt.replace(/\{(current|next|name)\}/gi, function(m) {
|
68
67
|
return {
|
69
68
|
'{name}' : $this.text(),
|
70
69
|
'{current}' : wo[ 'headerTitle_cur_' + sortType ][ sortDirection ] || '',
|
@@ -80,7 +79,7 @@
|
|
80
79
|
c.$table.off('refreshHeaderTitle');
|
81
80
|
// remove tooltip class
|
82
81
|
if ($.isArray(wo.headerTitle_tooltip)) {
|
83
|
-
c.$headers.each(function(){
|
82
|
+
c.$headers.each(function() {
|
84
83
|
$(this).removeClass( wo.headerTitle_tooltip[this.column] || '' );
|
85
84
|
});
|
86
85
|
} else if (wo.headerTitle_tooltip !== '') {
|
@@ -51,7 +51,7 @@
|
|
51
51
|
$(window).scroll();
|
52
52
|
}, 1);
|
53
53
|
},
|
54
|
-
remove : function( c
|
54
|
+
remove : function( c ) {
|
55
55
|
c.$table.off( c.namespace + 'lazyload' );
|
56
56
|
}
|
57
57
|
};
|
@@ -200,26 +200,26 @@
|
|
200
200
|
var settings = {
|
201
201
|
threshold : 0,
|
202
202
|
failure_limit : 0,
|
203
|
-
event :
|
204
|
-
effect :
|
203
|
+
event : 'scroll',
|
204
|
+
effect : 'show',
|
205
205
|
container : window,
|
206
|
-
data_attribute :
|
206
|
+
data_attribute : 'original',
|
207
207
|
skip_invisible : false,
|
208
208
|
appear : null,
|
209
209
|
load : null,
|
210
|
-
placeholder :
|
210
|
+
placeholder : 'data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=='
|
211
211
|
};
|
212
212
|
function update() {
|
213
213
|
var counter = 0;
|
214
214
|
elements.each(function() {
|
215
215
|
var $this = $(this);
|
216
|
-
if (settings.skip_invisible && !$this.is(
|
216
|
+
if (settings.skip_invisible && !$this.is(':visible')) {
|
217
217
|
return;
|
218
218
|
}
|
219
219
|
if ($.abovethetop(this, settings) || $.leftofbegin(this, settings)) {
|
220
220
|
/* Nothing. */
|
221
221
|
} else if (!$.belowthefold(this, settings) && !$.rightoffold(this, settings)) {
|
222
|
-
$this.trigger(
|
222
|
+
$this.trigger('appear');
|
223
223
|
/* if we found an image we'll load, reset the counter */
|
224
224
|
counter = 0;
|
225
225
|
} else {
|
@@ -245,7 +245,7 @@
|
|
245
245
|
$container = (settings.container === undefined ||
|
246
246
|
settings.container === window) ? $window : $(settings.container);
|
247
247
|
/* Fire one scroll event per scroll. Not one scroll event per image. */
|
248
|
-
if (0 === settings.event.indexOf(
|
248
|
+
if (0 === settings.event.indexOf('scroll')) {
|
249
249
|
$container.bind(settings.event, function() {
|
250
250
|
return update();
|
251
251
|
});
|
@@ -255,26 +255,26 @@
|
|
255
255
|
var $self = $(self);
|
256
256
|
self.loaded = false;
|
257
257
|
/* If no src attribute given use data:uri. */
|
258
|
-
if ($self.attr(
|
259
|
-
if ($self.is(
|
260
|
-
$self.attr(
|
258
|
+
if ($self.attr('src') === undefined || $self.attr('src') === false) {
|
259
|
+
if ($self.is('img')) {
|
260
|
+
$self.attr('src', settings.placeholder);
|
261
261
|
}
|
262
262
|
}
|
263
263
|
/* When appear is triggered load original image. */
|
264
|
-
$self.one(
|
264
|
+
$self.one('appear', function() {
|
265
265
|
if (!this.loaded) {
|
266
266
|
if (settings.appear) {
|
267
267
|
var elements_left = elements.length;
|
268
268
|
settings.appear.call(self, elements_left, settings);
|
269
269
|
}
|
270
|
-
$(
|
271
|
-
.bind(
|
272
|
-
var original = $self.attr(
|
270
|
+
$('<img />')
|
271
|
+
.bind('load', function() {
|
272
|
+
var original = $self.attr('data-' + settings.data_attribute);
|
273
273
|
$self.hide();
|
274
|
-
if ($self.is(
|
275
|
-
$self.attr(
|
274
|
+
if ($self.is('img')) {
|
275
|
+
$self.attr('src', original);
|
276
276
|
} else {
|
277
|
-
$self.css(
|
277
|
+
$self.css('background-image', 'url("' + original + '")');
|
278
278
|
}
|
279
279
|
$self[settings.effect](settings.effect_speed);
|
280
280
|
self.loaded = true;
|
@@ -288,30 +288,30 @@
|
|
288
288
|
settings.load.call(self, elements_left, settings);
|
289
289
|
}
|
290
290
|
})
|
291
|
-
.attr(
|
291
|
+
.attr('src', $self.attr('data-' + settings.data_attribute));
|
292
292
|
}
|
293
293
|
});
|
294
294
|
/* When wanted event is triggered load original image */
|
295
295
|
/* by triggering appear. */
|
296
|
-
if (0 !== settings.event.indexOf(
|
296
|
+
if (0 !== settings.event.indexOf('scroll')) {
|
297
297
|
$self.bind(settings.event, function() {
|
298
298
|
if (!self.loaded) {
|
299
|
-
$self.trigger(
|
299
|
+
$self.trigger('appear');
|
300
300
|
}
|
301
301
|
});
|
302
302
|
}
|
303
303
|
});
|
304
304
|
/* Check if something appears when window is resized. */
|
305
|
-
$window.bind(
|
305
|
+
$window.bind('resize', function() {
|
306
306
|
update();
|
307
307
|
});
|
308
308
|
/* With IOS5 force loading images when navigating with back button. */
|
309
309
|
/* Non optimal workaround. */
|
310
310
|
if ((/(?:iphone|ipod|ipad).*os 5/gi).test(navigator.appVersion)) {
|
311
|
-
$window.bind(
|
311
|
+
$window.bind('pageshow', function(event) {
|
312
312
|
if (event.originalEvent && event.originalEvent.persisted) {
|
313
313
|
elements.each(function() {
|
314
|
-
$(this).trigger(
|
314
|
+
$(this).trigger('appear');
|
315
315
|
});
|
316
316
|
}
|
317
317
|
});
|
@@ -365,17 +365,17 @@
|
|
365
365
|
!$.belowthefold(element, settings) && !$.abovethetop(element, settings);
|
366
366
|
};
|
367
367
|
/* Custom selectors for your convenience. */
|
368
|
-
/* Use as $(
|
369
|
-
/* $(
|
370
|
-
$.extend($.expr[
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
368
|
+
/* Use as $('img:below-the-fold').something() or */
|
369
|
+
/* $('img').filter(':below-the-fold').something() which is faster */
|
370
|
+
$.extend($.expr[':'], {
|
371
|
+
'below-the-fold' : function(a) { return $.belowthefold(a, {threshold : 0}); },
|
372
|
+
'above-the-top' : function(a) { return !$.belowthefold(a, {threshold : 0}); },
|
373
|
+
'right-of-screen': function(a) { return $.rightoffold(a, {threshold : 0}); },
|
374
|
+
'left-of-screen' : function(a) { return !$.rightoffold(a, {threshold : 0}); },
|
375
|
+
'in-viewport' : function(a) { return $.inviewport(a, {threshold : 0}); },
|
376
376
|
/* Maintain BC for couple of versions. */
|
377
|
-
|
378
|
-
|
379
|
-
|
377
|
+
'above-the-fold' : function(a) { return !$.belowthefold(a, {threshold : 0}); },
|
378
|
+
'right-of-fold' : function(a) { return $.rightoffold(a, {threshold : 0}); },
|
379
|
+
'left-of-fold' : function(a) { return !$.rightoffold(a, {threshold : 0}); }
|
380
380
|
});
|
381
381
|
})(jQuery, window, document);
|