mirror of
https://github.com/Mottie/tablesorter.git
synced 2024-11-15 23:54:22 +00:00
version bump
This commit is contained in:
parent
06b190a520
commit
a0181a4337
29
README.md
29
README.md
@ -92,6 +92,31 @@ If you would like to contribute, please...
|
|||||||
|
|
||||||
View the [complete change log here](//github.com/Mottie/tablesorter/wiki/Changes).
|
View the [complete change log here](//github.com/Mottie/tablesorter/wiki/Changes).
|
||||||
|
|
||||||
|
#### <a name="v2.25.1">Version 2.25.1</a> (1/10/2016)
|
||||||
|
|
||||||
|
* Docs:
|
||||||
|
* Update to jQuery v1.12.0.
|
||||||
|
* Fix HTML hint issues.
|
||||||
|
* Core:
|
||||||
|
* Fix time parser detection. See [issue #1107](https://github.com/Mottie/tablesorter/issues/1107).
|
||||||
|
* Add multiple widgets from table class. Fixes [issue #1109](https://github.com/Mottie/tablesorter/issues/1109).
|
||||||
|
* Fix extra header class name updating. See [issue #1116](https://github.com/Mottie/tablesorter/issues/1116).
|
||||||
|
* Fix typo in comments.
|
||||||
|
* ColumnSelector:
|
||||||
|
* Prevent remove widget js error. Fixes [issue #1106](https://github.com/Mottie/tablesorter/issues/1106).
|
||||||
|
* Add `tbody` colspan support. See [issue #1120](https://github.com/Mottie/tablesorter/issues/1120).
|
||||||
|
* Add child row colspan support. See [issue #1120](https://github.com/Mottie/tablesorter/issues/1120).
|
||||||
|
* Filter:
|
||||||
|
* Use replacement character instead of null (for IE).
|
||||||
|
* Fix "or" test regex. Fixes [issue #1117](https://github.com/Mottie/tablesorter/issues/1117).
|
||||||
|
* Restore `return false` to fix unit tests.
|
||||||
|
* Functions now get exact data, ignoring parsed flag. Fixes [issue #1107](https://github.com/Mottie/tablesorter/issues/1107).
|
||||||
|
* Parsed flag now all set `true` if `filter_useParsedData` is `true` & stop using `config.$headers`.
|
||||||
|
* Output:
|
||||||
|
* `output_callback` can now return modified data. See [issue #1121](https://github.com/Mottie/tablesorter/issues/1121).
|
||||||
|
* Grunt:
|
||||||
|
* Add HTML hint.
|
||||||
|
|
||||||
#### <a name="v2.25.0">Version 2.25.0</a> (12/13/2015)
|
#### <a name="v2.25.0">Version 2.25.0</a> (12/13/2015)
|
||||||
|
|
||||||
* Global
|
* Global
|
||||||
@ -175,7 +200,3 @@ View the [complete change log here](//github.com/Mottie/tablesorter/wiki/Changes
|
|||||||
* Don't use `$.extend` for simple additions.
|
* Don't use `$.extend` for simple additions.
|
||||||
* Misc
|
* Misc
|
||||||
* Update grunt dependencies.
|
* Update grunt dependencies.
|
||||||
|
|
||||||
#### <a name="v2.24.5">Version 2.24.5</a> (11/10/2015)
|
|
||||||
|
|
||||||
* Pager: Fix javascript error in pager addon when using ajax.
|
|
||||||
|
60
dist/js/jquery.tablesorter.combined.js
vendored
60
dist/js/jquery.tablesorter.combined.js
vendored
@ -1,4 +1,4 @@
|
|||||||
/*! tablesorter (FORK) - updated 12-13-2015 (v2.25.0)*/
|
/*! tablesorter (FORK) - updated 01-10-2016 (v2.25.1)*/
|
||||||
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
||||||
(function(factory) {
|
(function(factory) {
|
||||||
if (typeof define === 'function' && define.amd) {
|
if (typeof define === 'function' && define.amd) {
|
||||||
@ -10,7 +10,7 @@
|
|||||||
}
|
}
|
||||||
}(function($) {
|
}(function($) {
|
||||||
|
|
||||||
/*! TableSorter (FORK) v2.25.0 *//*
|
/*! TableSorter (FORK) v2.25.1 *//*
|
||||||
* Client-side table sorting with ease!
|
* Client-side table sorting with ease!
|
||||||
* @requires jQuery v1.2.6+
|
* @requires jQuery v1.2.6+
|
||||||
*
|
*
|
||||||
@ -33,7 +33,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
var ts = $.tablesorter = {
|
var ts = $.tablesorter = {
|
||||||
|
|
||||||
version : '2.25.0',
|
version : '2.25.1',
|
||||||
|
|
||||||
parsers : [],
|
parsers : [],
|
||||||
widgets : [],
|
widgets : [],
|
||||||
@ -1058,8 +1058,8 @@
|
|||||||
// find the footer
|
// find the footer
|
||||||
$headers = c.$table
|
$headers = c.$table
|
||||||
.find( 'tfoot tr' )
|
.find( 'tfoot tr' )
|
||||||
.children()
|
.add( $( c.namespace + '_extra_headers' ).children( 'tr' ) )
|
||||||
.add( $( c.namespace + '_extra_headers' ) )
|
.children( 'td, th' )
|
||||||
.removeClass( css.join( ' ' ) );
|
.removeClass( css.join( ' ' ) );
|
||||||
// remove all header information
|
// remove all header information
|
||||||
c.$headers
|
c.$headers
|
||||||
@ -1892,15 +1892,19 @@
|
|||||||
var len, indx,
|
var len, indx,
|
||||||
c = table.config,
|
c = table.config,
|
||||||
// look for widgets to apply from table class
|
// look for widgets to apply from table class
|
||||||
// stop using \b otherwise this matches 'ui-widget-content' & adds 'content' widget
|
// don't match from 'ui-widget-content'; use \S instead of \w to include widgets
|
||||||
regex = '\\s' + c.widgetClass.replace( ts.regex.templateName, '([\\w-]+)' ) + '\\s',
|
// with dashes in the name, e.g. "widget-test-2" extracts out "test-2"
|
||||||
|
regex = '^' + c.widgetClass.replace( ts.regex.templateName, '(\\S+)+' ) + '$',
|
||||||
widgetClass = new RegExp( regex, 'g' ),
|
widgetClass = new RegExp( regex, 'g' ),
|
||||||
// extract out the widget id from the table class (widget id's can include dashes)
|
// split up table class (widget id's can include dashes) - stop using match
|
||||||
widget = ( ' ' + c.table.className + ' ' ).match( widgetClass );
|
// otherwise only one widget gets extracted, see #1109
|
||||||
if ( widget ) {
|
widgets = ( table.className || '' ).split( ts.regex.spaces );
|
||||||
len = widget.length;
|
if ( widgets.length ) {
|
||||||
|
len = widgets.length;
|
||||||
for ( indx = 0; indx < len; indx++ ) {
|
for ( indx = 0; indx < len; indx++ ) {
|
||||||
c.widgets.push( widget[ indx ].replace( widgetClass, '$1' ) );
|
if ( widgets[ indx ].match( widgetClass ) ) {
|
||||||
|
c.widgets.push( widgets[ indx ].replace( widgetClass, '$1' ) );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -2636,7 +2640,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
// match 24 hour time & 12 hours time + am/pm - see http://regexr.com/3c3tk
|
// match 24 hour time & 12 hours time + am/pm - see http://regexr.com/3c3tk
|
||||||
ts.regex.timeTest = /^([1-9]|1[0-2]):([0-5]\d)(\s[AP]M)|((?:[01]\d|[2][0-4]):[0-5]\d)$/i;
|
ts.regex.timeTest = /^([1-9]|1[0-2]):([0-5]\d)(\s[AP]M)$|^((?:[01]\d|[2][0-4]):[0-5]\d)$/i;
|
||||||
ts.regex.timeMatch = /([1-9]|1[0-2]):([0-5]\d)(\s[AP]M)|((?:[01]\d|[2][0-4]):[0-5]\d)/i;
|
ts.regex.timeMatch = /([1-9]|1[0-2]):([0-5]\d)(\s[AP]M)|((?:[01]\d|[2][0-4]):[0-5]\d)/i;
|
||||||
ts.addParser({
|
ts.addParser({
|
||||||
id : 'time',
|
id : 'time',
|
||||||
@ -3076,7 +3080,7 @@
|
|||||||
|
|
||||||
})(jQuery);
|
})(jQuery);
|
||||||
|
|
||||||
/*! Widget: filter - updated 12/13/2015 (v2.25.0) *//*
|
/*! Widget: filter - updated 1/10/2016 (v2.25.1) *//*
|
||||||
* Requires tablesorter v2.8+ and jQuery 1.7+
|
* Requires tablesorter v2.8+ and jQuery 1.7+
|
||||||
* by Rob Garrison
|
* by Rob Garrison
|
||||||
*/
|
*/
|
||||||
@ -3445,7 +3449,7 @@
|
|||||||
toSplit : new RegExp( '(?:\\s+(?:-|' + ts.language.to + ')\\s+)', 'gi' ),
|
toSplit : new RegExp( '(?:\\s+(?:-|' + ts.language.to + ')\\s+)', 'gi' ),
|
||||||
andTest : new RegExp( '\\s+(' + ts.language.and + '|&&)\\s+', 'i' ),
|
andTest : new RegExp( '\\s+(' + ts.language.and + '|&&)\\s+', 'i' ),
|
||||||
andSplit : new RegExp( '(?:\\s+(?:' + ts.language.and + '|&&)\\s+)', 'gi' ),
|
andSplit : new RegExp( '(?:\\s+(?:' + ts.language.and + '|&&)\\s+)', 'gi' ),
|
||||||
orTest : /\|/,
|
orTest : new RegExp( '(\\||\\s+' + ts.language.or + '\\s+)', 'i' ),
|
||||||
orSplit : new RegExp( '(?:\\s+(?:' + ts.language.or + ')\\s+|\\|)', 'gi' ),
|
orSplit : new RegExp( '(?:\\s+(?:' + ts.language.or + ')\\s+|\\|)', 'gi' ),
|
||||||
iQuery : new RegExp( val, 'i' ),
|
iQuery : new RegExp( val, 'i' ),
|
||||||
igQuery : new RegExp( val, 'ig' ),
|
igQuery : new RegExp( val, 'ig' ),
|
||||||
@ -3920,7 +3924,7 @@
|
|||||||
filters = Array.prototype.map ?
|
filters = Array.prototype.map ?
|
||||||
filters.map( String ) :
|
filters.map( String ) :
|
||||||
// for IE8 & older browsers - maybe not the best method
|
// for IE8 & older browsers - maybe not the best method
|
||||||
filters.join( '\u0000' ).split( '\u0000' );
|
filters.join( '\ufffd' ).split( '\ufffd' );
|
||||||
|
|
||||||
if ( wo.filter_initialized ) {
|
if ( wo.filter_initialized ) {
|
||||||
c.$table.triggerHandler( 'filterStart', [ filters ] );
|
c.$table.triggerHandler( 'filterStart', [ filters ] );
|
||||||
@ -4126,7 +4130,6 @@
|
|||||||
|
|
||||||
vars.excludeMatch = vars.noAnyMatch;
|
vars.excludeMatch = vars.noAnyMatch;
|
||||||
filterMatched = tsf.processTypes( c, data, vars );
|
filterMatched = tsf.processTypes( c, data, vars );
|
||||||
|
|
||||||
if ( filterMatched !== null ) {
|
if ( filterMatched !== null ) {
|
||||||
showRow = filterMatched;
|
showRow = filterMatched;
|
||||||
} else {
|
} else {
|
||||||
@ -4159,13 +4162,8 @@
|
|||||||
// ignore if filter is empty or disabled
|
// ignore if filter is empty or disabled
|
||||||
if ( data.filter ) {
|
if ( data.filter ) {
|
||||||
data.cache = data.cacheArray[ columnIndex ];
|
data.cache = data.cacheArray[ columnIndex ];
|
||||||
// check if column data should be from the cell or from parsed data
|
|
||||||
if ( wo.filter_useParsedData || data.parsed[ columnIndex ] ) {
|
|
||||||
data.exact = data.cache;
|
|
||||||
} else {
|
|
||||||
result = data.rawArray[ columnIndex ] || '';
|
result = data.rawArray[ columnIndex ] || '';
|
||||||
data.exact = c.sortLocaleCompare ? ts.replaceAccents( result ) : result; // issue #405
|
data.exact = c.sortLocaleCompare ? ts.replaceAccents( result ) : result; // issue #405
|
||||||
}
|
|
||||||
data.iExact = !tsfRegex.type.test( typeof data.exact ) && wo.filter_ignoreCase ?
|
data.iExact = !tsfRegex.type.test( typeof data.exact ) && wo.filter_ignoreCase ?
|
||||||
data.exact.toLowerCase() : data.exact;
|
data.exact.toLowerCase() : data.exact;
|
||||||
|
|
||||||
@ -4220,8 +4218,7 @@
|
|||||||
result = filterMatched;
|
result = filterMatched;
|
||||||
// Look for match, and add child row data for matching
|
// Look for match, and add child row data for matching
|
||||||
} else {
|
} else {
|
||||||
txt = ( data.iExact + data.childRowText )
|
txt = ( data.iExact + data.childRowText ).indexOf( tsf.parseFilter( c, data.iFilter, data ) );
|
||||||
.indexOf( tsf.parseFilter( c, data.iFilter, data ) );
|
|
||||||
result = ( ( !wo.filter_startsWith && txt >= 0 ) || ( wo.filter_startsWith && txt === 0 ) );
|
result = ( ( !wo.filter_startsWith && txt >= 0 ) || ( wo.filter_startsWith && txt === 0 ) );
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -4261,18 +4258,17 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
// parse columns after formatter, in case the class is added at that point
|
// parse columns after formatter, in case the class is added at that point
|
||||||
data.parsed = c.$headers.map( function( columnIndex ) {
|
data.parsed = [];
|
||||||
return c.parsers && c.parsers[ columnIndex ] &&
|
for ( columnIndex = 0; columnIndex < c.columns; columnIndex++ ) {
|
||||||
// force parsing if parser type is numeric
|
data.parsed[ columnIndex ] = wo.filter_useParsedData ||
|
||||||
c.parsers[ columnIndex ].parsed ||
|
// parser has a "parsed" parameter
|
||||||
// getData won't return 'parsed' if other 'filter-' class names exist
|
( c.parsers && c.parsers[ columnIndex ] && c.parsers[ columnIndex ].parsed ||
|
||||||
|
// getData may not return 'parsed' if other 'filter-' class names exist
|
||||||
// ( e.g. <th class="filter-select filter-parsed"> )
|
// ( e.g. <th class="filter-select filter-parsed"> )
|
||||||
ts.getData && ts.getData( c.$headerIndexed[ columnIndex ],
|
ts.getData && ts.getData( c.$headerIndexed[ columnIndex ],
|
||||||
ts.getColumnData( table, c.headers, columnIndex ), 'filter' ) === 'parsed' ||
|
ts.getColumnData( table, c.headers, columnIndex ), 'filter' ) === 'parsed' ||
|
||||||
$( this ).hasClass( 'filter-parsed' );
|
c.$headerIndexed[ columnIndex ].hasClass( 'filter-parsed' ) );
|
||||||
}).get();
|
|
||||||
|
|
||||||
for ( columnIndex = 0; columnIndex < c.columns; columnIndex++ ) {
|
|
||||||
vars.functions[ columnIndex ] =
|
vars.functions[ columnIndex ] =
|
||||||
ts.getColumnData( table, wo.filter_functions, columnIndex );
|
ts.getColumnData( table, wo.filter_functions, columnIndex );
|
||||||
vars.defaultColFilter[ columnIndex ] =
|
vars.defaultColFilter[ columnIndex ] =
|
||||||
|
8
dist/js/jquery.tablesorter.combined.min.js
vendored
8
dist/js/jquery.tablesorter.combined.min.js
vendored
File diff suppressed because one or more lines are too long
28
dist/js/jquery.tablesorter.js
vendored
28
dist/js/jquery.tablesorter.js
vendored
@ -8,7 +8,7 @@
|
|||||||
}
|
}
|
||||||
}(function($) {
|
}(function($) {
|
||||||
|
|
||||||
/*! TableSorter (FORK) v2.25.0 *//*
|
/*! TableSorter (FORK) v2.25.1 *//*
|
||||||
* Client-side table sorting with ease!
|
* Client-side table sorting with ease!
|
||||||
* @requires jQuery v1.2.6+
|
* @requires jQuery v1.2.6+
|
||||||
*
|
*
|
||||||
@ -31,7 +31,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
var ts = $.tablesorter = {
|
var ts = $.tablesorter = {
|
||||||
|
|
||||||
version : '2.25.0',
|
version : '2.25.1',
|
||||||
|
|
||||||
parsers : [],
|
parsers : [],
|
||||||
widgets : [],
|
widgets : [],
|
||||||
@ -1056,8 +1056,8 @@
|
|||||||
// find the footer
|
// find the footer
|
||||||
$headers = c.$table
|
$headers = c.$table
|
||||||
.find( 'tfoot tr' )
|
.find( 'tfoot tr' )
|
||||||
.children()
|
.add( $( c.namespace + '_extra_headers' ).children( 'tr' ) )
|
||||||
.add( $( c.namespace + '_extra_headers' ) )
|
.children( 'td, th' )
|
||||||
.removeClass( css.join( ' ' ) );
|
.removeClass( css.join( ' ' ) );
|
||||||
// remove all header information
|
// remove all header information
|
||||||
c.$headers
|
c.$headers
|
||||||
@ -1890,15 +1890,19 @@
|
|||||||
var len, indx,
|
var len, indx,
|
||||||
c = table.config,
|
c = table.config,
|
||||||
// look for widgets to apply from table class
|
// look for widgets to apply from table class
|
||||||
// stop using \b otherwise this matches 'ui-widget-content' & adds 'content' widget
|
// don't match from 'ui-widget-content'; use \S instead of \w to include widgets
|
||||||
regex = '\\s' + c.widgetClass.replace( ts.regex.templateName, '([\\w-]+)' ) + '\\s',
|
// with dashes in the name, e.g. "widget-test-2" extracts out "test-2"
|
||||||
|
regex = '^' + c.widgetClass.replace( ts.regex.templateName, '(\\S+)+' ) + '$',
|
||||||
widgetClass = new RegExp( regex, 'g' ),
|
widgetClass = new RegExp( regex, 'g' ),
|
||||||
// extract out the widget id from the table class (widget id's can include dashes)
|
// split up table class (widget id's can include dashes) - stop using match
|
||||||
widget = ( ' ' + c.table.className + ' ' ).match( widgetClass );
|
// otherwise only one widget gets extracted, see #1109
|
||||||
if ( widget ) {
|
widgets = ( table.className || '' ).split( ts.regex.spaces );
|
||||||
len = widget.length;
|
if ( widgets.length ) {
|
||||||
|
len = widgets.length;
|
||||||
for ( indx = 0; indx < len; indx++ ) {
|
for ( indx = 0; indx < len; indx++ ) {
|
||||||
c.widgets.push( widget[ indx ].replace( widgetClass, '$1' ) );
|
if ( widgets[ indx ].match( widgetClass ) ) {
|
||||||
|
c.widgets.push( widgets[ indx ].replace( widgetClass, '$1' ) );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -2634,7 +2638,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
// match 24 hour time & 12 hours time + am/pm - see http://regexr.com/3c3tk
|
// match 24 hour time & 12 hours time + am/pm - see http://regexr.com/3c3tk
|
||||||
ts.regex.timeTest = /^([1-9]|1[0-2]):([0-5]\d)(\s[AP]M)|((?:[01]\d|[2][0-4]):[0-5]\d)$/i;
|
ts.regex.timeTest = /^([1-9]|1[0-2]):([0-5]\d)(\s[AP]M)$|^((?:[01]\d|[2][0-4]):[0-5]\d)$/i;
|
||||||
ts.regex.timeMatch = /([1-9]|1[0-2]):([0-5]\d)(\s[AP]M)|((?:[01]\d|[2][0-4]):[0-5]\d)/i;
|
ts.regex.timeMatch = /([1-9]|1[0-2]):([0-5]\d)(\s[AP]M)|((?:[01]\d|[2][0-4]):[0-5]\d)/i;
|
||||||
ts.addParser({
|
ts.addParser({
|
||||||
id : 'time',
|
id : 'time',
|
||||||
|
4
dist/js/jquery.tablesorter.min.js
vendored
4
dist/js/jquery.tablesorter.min.js
vendored
File diff suppressed because one or more lines are too long
32
dist/js/jquery.tablesorter.widgets.js
vendored
32
dist/js/jquery.tablesorter.widgets.js
vendored
@ -1,4 +1,4 @@
|
|||||||
/*! tablesorter (FORK) - updated 12-13-2015 (v2.25.0)*/
|
/*! tablesorter (FORK) - updated 01-10-2016 (v2.25.1)*/
|
||||||
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
||||||
(function(factory) {
|
(function(factory) {
|
||||||
if (typeof define === 'function' && define.amd) {
|
if (typeof define === 'function' && define.amd) {
|
||||||
@ -366,7 +366,7 @@
|
|||||||
|
|
||||||
})(jQuery);
|
})(jQuery);
|
||||||
|
|
||||||
/*! Widget: filter - updated 12/13/2015 (v2.25.0) *//*
|
/*! Widget: filter - updated 1/10/2016 (v2.25.1) *//*
|
||||||
* Requires tablesorter v2.8+ and jQuery 1.7+
|
* Requires tablesorter v2.8+ and jQuery 1.7+
|
||||||
* by Rob Garrison
|
* by Rob Garrison
|
||||||
*/
|
*/
|
||||||
@ -735,7 +735,7 @@
|
|||||||
toSplit : new RegExp( '(?:\\s+(?:-|' + ts.language.to + ')\\s+)', 'gi' ),
|
toSplit : new RegExp( '(?:\\s+(?:-|' + ts.language.to + ')\\s+)', 'gi' ),
|
||||||
andTest : new RegExp( '\\s+(' + ts.language.and + '|&&)\\s+', 'i' ),
|
andTest : new RegExp( '\\s+(' + ts.language.and + '|&&)\\s+', 'i' ),
|
||||||
andSplit : new RegExp( '(?:\\s+(?:' + ts.language.and + '|&&)\\s+)', 'gi' ),
|
andSplit : new RegExp( '(?:\\s+(?:' + ts.language.and + '|&&)\\s+)', 'gi' ),
|
||||||
orTest : /\|/,
|
orTest : new RegExp( '(\\||\\s+' + ts.language.or + '\\s+)', 'i' ),
|
||||||
orSplit : new RegExp( '(?:\\s+(?:' + ts.language.or + ')\\s+|\\|)', 'gi' ),
|
orSplit : new RegExp( '(?:\\s+(?:' + ts.language.or + ')\\s+|\\|)', 'gi' ),
|
||||||
iQuery : new RegExp( val, 'i' ),
|
iQuery : new RegExp( val, 'i' ),
|
||||||
igQuery : new RegExp( val, 'ig' ),
|
igQuery : new RegExp( val, 'ig' ),
|
||||||
@ -1210,7 +1210,7 @@
|
|||||||
filters = Array.prototype.map ?
|
filters = Array.prototype.map ?
|
||||||
filters.map( String ) :
|
filters.map( String ) :
|
||||||
// for IE8 & older browsers - maybe not the best method
|
// for IE8 & older browsers - maybe not the best method
|
||||||
filters.join( '\u0000' ).split( '\u0000' );
|
filters.join( '\ufffd' ).split( '\ufffd' );
|
||||||
|
|
||||||
if ( wo.filter_initialized ) {
|
if ( wo.filter_initialized ) {
|
||||||
c.$table.triggerHandler( 'filterStart', [ filters ] );
|
c.$table.triggerHandler( 'filterStart', [ filters ] );
|
||||||
@ -1416,7 +1416,6 @@
|
|||||||
|
|
||||||
vars.excludeMatch = vars.noAnyMatch;
|
vars.excludeMatch = vars.noAnyMatch;
|
||||||
filterMatched = tsf.processTypes( c, data, vars );
|
filterMatched = tsf.processTypes( c, data, vars );
|
||||||
|
|
||||||
if ( filterMatched !== null ) {
|
if ( filterMatched !== null ) {
|
||||||
showRow = filterMatched;
|
showRow = filterMatched;
|
||||||
} else {
|
} else {
|
||||||
@ -1449,13 +1448,8 @@
|
|||||||
// ignore if filter is empty or disabled
|
// ignore if filter is empty or disabled
|
||||||
if ( data.filter ) {
|
if ( data.filter ) {
|
||||||
data.cache = data.cacheArray[ columnIndex ];
|
data.cache = data.cacheArray[ columnIndex ];
|
||||||
// check if column data should be from the cell or from parsed data
|
|
||||||
if ( wo.filter_useParsedData || data.parsed[ columnIndex ] ) {
|
|
||||||
data.exact = data.cache;
|
|
||||||
} else {
|
|
||||||
result = data.rawArray[ columnIndex ] || '';
|
result = data.rawArray[ columnIndex ] || '';
|
||||||
data.exact = c.sortLocaleCompare ? ts.replaceAccents( result ) : result; // issue #405
|
data.exact = c.sortLocaleCompare ? ts.replaceAccents( result ) : result; // issue #405
|
||||||
}
|
|
||||||
data.iExact = !tsfRegex.type.test( typeof data.exact ) && wo.filter_ignoreCase ?
|
data.iExact = !tsfRegex.type.test( typeof data.exact ) && wo.filter_ignoreCase ?
|
||||||
data.exact.toLowerCase() : data.exact;
|
data.exact.toLowerCase() : data.exact;
|
||||||
|
|
||||||
@ -1510,8 +1504,7 @@
|
|||||||
result = filterMatched;
|
result = filterMatched;
|
||||||
// Look for match, and add child row data for matching
|
// Look for match, and add child row data for matching
|
||||||
} else {
|
} else {
|
||||||
txt = ( data.iExact + data.childRowText )
|
txt = ( data.iExact + data.childRowText ).indexOf( tsf.parseFilter( c, data.iFilter, data ) );
|
||||||
.indexOf( tsf.parseFilter( c, data.iFilter, data ) );
|
|
||||||
result = ( ( !wo.filter_startsWith && txt >= 0 ) || ( wo.filter_startsWith && txt === 0 ) );
|
result = ( ( !wo.filter_startsWith && txt >= 0 ) || ( wo.filter_startsWith && txt === 0 ) );
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -1551,18 +1544,17 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
// parse columns after formatter, in case the class is added at that point
|
// parse columns after formatter, in case the class is added at that point
|
||||||
data.parsed = c.$headers.map( function( columnIndex ) {
|
data.parsed = [];
|
||||||
return c.parsers && c.parsers[ columnIndex ] &&
|
for ( columnIndex = 0; columnIndex < c.columns; columnIndex++ ) {
|
||||||
// force parsing if parser type is numeric
|
data.parsed[ columnIndex ] = wo.filter_useParsedData ||
|
||||||
c.parsers[ columnIndex ].parsed ||
|
// parser has a "parsed" parameter
|
||||||
// getData won't return 'parsed' if other 'filter-' class names exist
|
( c.parsers && c.parsers[ columnIndex ] && c.parsers[ columnIndex ].parsed ||
|
||||||
|
// getData may not return 'parsed' if other 'filter-' class names exist
|
||||||
// ( e.g. <th class="filter-select filter-parsed"> )
|
// ( e.g. <th class="filter-select filter-parsed"> )
|
||||||
ts.getData && ts.getData( c.$headerIndexed[ columnIndex ],
|
ts.getData && ts.getData( c.$headerIndexed[ columnIndex ],
|
||||||
ts.getColumnData( table, c.headers, columnIndex ), 'filter' ) === 'parsed' ||
|
ts.getColumnData( table, c.headers, columnIndex ), 'filter' ) === 'parsed' ||
|
||||||
$( this ).hasClass( 'filter-parsed' );
|
c.$headerIndexed[ columnIndex ].hasClass( 'filter-parsed' ) );
|
||||||
}).get();
|
|
||||||
|
|
||||||
for ( columnIndex = 0; columnIndex < c.columns; columnIndex++ ) {
|
|
||||||
vars.functions[ columnIndex ] =
|
vars.functions[ columnIndex ] =
|
||||||
ts.getColumnData( table, wo.filter_functions, columnIndex );
|
ts.getColumnData( table, wo.filter_functions, columnIndex );
|
||||||
vars.defaultColFilter[ columnIndex ] =
|
vars.defaultColFilter[ columnIndex ] =
|
||||||
|
4
dist/js/jquery.tablesorter.widgets.min.js
vendored
4
dist/js/jquery.tablesorter.widgets.min.js
vendored
File diff suppressed because one or more lines are too long
2
dist/js/widgets/widget-columnSelector.min.js
vendored
2
dist/js/widgets/widget-columnSelector.min.js
vendored
File diff suppressed because one or more lines are too long
4
dist/js/widgets/widget-filter.min.js
vendored
4
dist/js/widgets/widget-filter.min.js
vendored
File diff suppressed because one or more lines are too long
4
dist/js/widgets/widget-output.min.js
vendored
4
dist/js/widgets/widget-output.min.js
vendored
File diff suppressed because one or more lines are too long
@ -455,7 +455,7 @@
|
|||||||
|
|
||||||
<li><span class="label label-info">Beta</span> <a href="example-widget-chart.html">Chart Widget</a> (<span class="version">v2.19.0</span>; <span class="version updated">v2.24.0</span>).</li>
|
<li><span class="label label-info">Beta</span> <a href="example-widget-chart.html">Chart Widget</a> (<span class="version">v2.19.0</span>; <span class="version updated">v2.24.0</span>).</li>
|
||||||
<li><span class="results">†</span> <a href="example-widget-columns.html">Columns highlight widget</a> (v2.0.17).</li>
|
<li><span class="results">†</span> <a href="example-widget-columns.html">Columns highlight widget</a> (v2.0.17).</li>
|
||||||
<li><a href="example-widget-column-selector.html">Column selector widget</a> (<span class="version">v2.15</span>; <span class="version updated">v2.24.0</span>).</li>
|
<li><a href="example-widget-column-selector.html">Column selector widget</a> (<span class="version">v2.15</span>; <span class="version updated">v2.25.1</span>).</li>
|
||||||
<li><a href="example-widget-editable.html">Content editable widget</a> (v2.9; <span class="version updated">v2.25.0</span>).</li>
|
<li><a href="example-widget-editable.html">Content editable widget</a> (v2.9; <span class="version updated">v2.25.0</span>).</li>
|
||||||
<li><span class="label label-info">Beta</span> <a href="example-dragtable.html">Dragtable mod</a> - (jQuery UI widget for column reordering [<a href="http://stackoverflow.com/a/27770224/145346">ref</a>]; <span class="version">v2.24.0</span>).</li>
|
<li><span class="label label-info">Beta</span> <a href="example-dragtable.html">Dragtable mod</a> - (jQuery UI widget for column reordering [<a href="http://stackoverflow.com/a/27770224/145346">ref</a>]; <span class="version">v2.24.0</span>).</li>
|
||||||
<li><span class="results">†</span> Filter widget (<span class="version updated">v2.25.1</span>):
|
<li><span class="results">†</span> Filter widget (<span class="version updated">v2.25.1</span>):
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██
|
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██
|
||||||
█████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
|
█████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
|
||||||
*/
|
*/
|
||||||
/*! tablesorter (FORK) - updated 12-13-2015 (v2.25.0)*/
|
/*! tablesorter (FORK) - updated 01-10-2016 (v2.25.1)*/
|
||||||
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
||||||
(function(factory) {
|
(function(factory) {
|
||||||
if (typeof define === 'function' && define.amd) {
|
if (typeof define === 'function' && define.amd) {
|
||||||
@ -16,7 +16,7 @@
|
|||||||
}
|
}
|
||||||
}(function($) {
|
}(function($) {
|
||||||
|
|
||||||
/*! TableSorter (FORK) v2.25.0 *//*
|
/*! TableSorter (FORK) v2.25.1 *//*
|
||||||
* Client-side table sorting with ease!
|
* Client-side table sorting with ease!
|
||||||
* @requires jQuery v1.2.6+
|
* @requires jQuery v1.2.6+
|
||||||
*
|
*
|
||||||
@ -39,7 +39,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
var ts = $.tablesorter = {
|
var ts = $.tablesorter = {
|
||||||
|
|
||||||
version : '2.25.0',
|
version : '2.25.1',
|
||||||
|
|
||||||
parsers : [],
|
parsers : [],
|
||||||
widgets : [],
|
widgets : [],
|
||||||
@ -1064,8 +1064,8 @@
|
|||||||
// find the footer
|
// find the footer
|
||||||
$headers = c.$table
|
$headers = c.$table
|
||||||
.find( 'tfoot tr' )
|
.find( 'tfoot tr' )
|
||||||
.children()
|
.add( $( c.namespace + '_extra_headers' ).children( 'tr' ) )
|
||||||
.add( $( c.namespace + '_extra_headers' ) )
|
.children( 'td, th' )
|
||||||
.removeClass( css.join( ' ' ) );
|
.removeClass( css.join( ' ' ) );
|
||||||
// remove all header information
|
// remove all header information
|
||||||
c.$headers
|
c.$headers
|
||||||
@ -1898,15 +1898,19 @@
|
|||||||
var len, indx,
|
var len, indx,
|
||||||
c = table.config,
|
c = table.config,
|
||||||
// look for widgets to apply from table class
|
// look for widgets to apply from table class
|
||||||
// stop using \b otherwise this matches 'ui-widget-content' & adds 'content' widget
|
// don't match from 'ui-widget-content'; use \S instead of \w to include widgets
|
||||||
regex = '\\s' + c.widgetClass.replace( ts.regex.templateName, '([\\w-]+)' ) + '\\s',
|
// with dashes in the name, e.g. "widget-test-2" extracts out "test-2"
|
||||||
|
regex = '^' + c.widgetClass.replace( ts.regex.templateName, '(\\S+)+' ) + '$',
|
||||||
widgetClass = new RegExp( regex, 'g' ),
|
widgetClass = new RegExp( regex, 'g' ),
|
||||||
// extract out the widget id from the table class (widget id's can include dashes)
|
// split up table class (widget id's can include dashes) - stop using match
|
||||||
widget = ( ' ' + c.table.className + ' ' ).match( widgetClass );
|
// otherwise only one widget gets extracted, see #1109
|
||||||
if ( widget ) {
|
widgets = ( table.className || '' ).split( ts.regex.spaces );
|
||||||
len = widget.length;
|
if ( widgets.length ) {
|
||||||
|
len = widgets.length;
|
||||||
for ( indx = 0; indx < len; indx++ ) {
|
for ( indx = 0; indx < len; indx++ ) {
|
||||||
c.widgets.push( widget[ indx ].replace( widgetClass, '$1' ) );
|
if ( widgets[ indx ].match( widgetClass ) ) {
|
||||||
|
c.widgets.push( widgets[ indx ].replace( widgetClass, '$1' ) );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -2642,7 +2646,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
// match 24 hour time & 12 hours time + am/pm - see http://regexr.com/3c3tk
|
// match 24 hour time & 12 hours time + am/pm - see http://regexr.com/3c3tk
|
||||||
ts.regex.timeTest = /^([1-9]|1[0-2]):([0-5]\d)(\s[AP]M)|((?:[01]\d|[2][0-4]):[0-5]\d)$/i;
|
ts.regex.timeTest = /^([1-9]|1[0-2]):([0-5]\d)(\s[AP]M)$|^((?:[01]\d|[2][0-4]):[0-5]\d)$/i;
|
||||||
ts.regex.timeMatch = /([1-9]|1[0-2]):([0-5]\d)(\s[AP]M)|((?:[01]\d|[2][0-4]):[0-5]\d)/i;
|
ts.regex.timeMatch = /([1-9]|1[0-2]):([0-5]\d)(\s[AP]M)|((?:[01]\d|[2][0-4]):[0-5]\d)/i;
|
||||||
ts.addParser({
|
ts.addParser({
|
||||||
id : 'time',
|
id : 'time',
|
||||||
@ -3082,7 +3086,7 @@
|
|||||||
|
|
||||||
})(jQuery);
|
})(jQuery);
|
||||||
|
|
||||||
/*! Widget: filter - updated 12/13/2015 (v2.25.0) *//*
|
/*! Widget: filter - updated 1/10/2016 (v2.25.1) *//*
|
||||||
* Requires tablesorter v2.8+ and jQuery 1.7+
|
* Requires tablesorter v2.8+ and jQuery 1.7+
|
||||||
* by Rob Garrison
|
* by Rob Garrison
|
||||||
*/
|
*/
|
||||||
@ -3451,7 +3455,7 @@
|
|||||||
toSplit : new RegExp( '(?:\\s+(?:-|' + ts.language.to + ')\\s+)', 'gi' ),
|
toSplit : new RegExp( '(?:\\s+(?:-|' + ts.language.to + ')\\s+)', 'gi' ),
|
||||||
andTest : new RegExp( '\\s+(' + ts.language.and + '|&&)\\s+', 'i' ),
|
andTest : new RegExp( '\\s+(' + ts.language.and + '|&&)\\s+', 'i' ),
|
||||||
andSplit : new RegExp( '(?:\\s+(?:' + ts.language.and + '|&&)\\s+)', 'gi' ),
|
andSplit : new RegExp( '(?:\\s+(?:' + ts.language.and + '|&&)\\s+)', 'gi' ),
|
||||||
orTest : /\|/,
|
orTest : new RegExp( '(\\||\\s+' + ts.language.or + '\\s+)', 'i' ),
|
||||||
orSplit : new RegExp( '(?:\\s+(?:' + ts.language.or + ')\\s+|\\|)', 'gi' ),
|
orSplit : new RegExp( '(?:\\s+(?:' + ts.language.or + ')\\s+|\\|)', 'gi' ),
|
||||||
iQuery : new RegExp( val, 'i' ),
|
iQuery : new RegExp( val, 'i' ),
|
||||||
igQuery : new RegExp( val, 'ig' ),
|
igQuery : new RegExp( val, 'ig' ),
|
||||||
@ -3926,7 +3930,7 @@
|
|||||||
filters = Array.prototype.map ?
|
filters = Array.prototype.map ?
|
||||||
filters.map( String ) :
|
filters.map( String ) :
|
||||||
// for IE8 & older browsers - maybe not the best method
|
// for IE8 & older browsers - maybe not the best method
|
||||||
filters.join( '\u0000' ).split( '\u0000' );
|
filters.join( '\ufffd' ).split( '\ufffd' );
|
||||||
|
|
||||||
if ( wo.filter_initialized ) {
|
if ( wo.filter_initialized ) {
|
||||||
c.$table.triggerHandler( 'filterStart', [ filters ] );
|
c.$table.triggerHandler( 'filterStart', [ filters ] );
|
||||||
@ -4132,7 +4136,6 @@
|
|||||||
|
|
||||||
vars.excludeMatch = vars.noAnyMatch;
|
vars.excludeMatch = vars.noAnyMatch;
|
||||||
filterMatched = tsf.processTypes( c, data, vars );
|
filterMatched = tsf.processTypes( c, data, vars );
|
||||||
|
|
||||||
if ( filterMatched !== null ) {
|
if ( filterMatched !== null ) {
|
||||||
showRow = filterMatched;
|
showRow = filterMatched;
|
||||||
} else {
|
} else {
|
||||||
@ -4165,13 +4168,8 @@
|
|||||||
// ignore if filter is empty or disabled
|
// ignore if filter is empty or disabled
|
||||||
if ( data.filter ) {
|
if ( data.filter ) {
|
||||||
data.cache = data.cacheArray[ columnIndex ];
|
data.cache = data.cacheArray[ columnIndex ];
|
||||||
// check if column data should be from the cell or from parsed data
|
|
||||||
if ( wo.filter_useParsedData || data.parsed[ columnIndex ] ) {
|
|
||||||
data.exact = data.cache;
|
|
||||||
} else {
|
|
||||||
result = data.rawArray[ columnIndex ] || '';
|
result = data.rawArray[ columnIndex ] || '';
|
||||||
data.exact = c.sortLocaleCompare ? ts.replaceAccents( result ) : result; // issue #405
|
data.exact = c.sortLocaleCompare ? ts.replaceAccents( result ) : result; // issue #405
|
||||||
}
|
|
||||||
data.iExact = !tsfRegex.type.test( typeof data.exact ) && wo.filter_ignoreCase ?
|
data.iExact = !tsfRegex.type.test( typeof data.exact ) && wo.filter_ignoreCase ?
|
||||||
data.exact.toLowerCase() : data.exact;
|
data.exact.toLowerCase() : data.exact;
|
||||||
|
|
||||||
@ -4226,8 +4224,7 @@
|
|||||||
result = filterMatched;
|
result = filterMatched;
|
||||||
// Look for match, and add child row data for matching
|
// Look for match, and add child row data for matching
|
||||||
} else {
|
} else {
|
||||||
txt = ( data.iExact + data.childRowText )
|
txt = ( data.iExact + data.childRowText ).indexOf( tsf.parseFilter( c, data.iFilter, data ) );
|
||||||
.indexOf( tsf.parseFilter( c, data.iFilter, data ) );
|
|
||||||
result = ( ( !wo.filter_startsWith && txt >= 0 ) || ( wo.filter_startsWith && txt === 0 ) );
|
result = ( ( !wo.filter_startsWith && txt >= 0 ) || ( wo.filter_startsWith && txt === 0 ) );
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -4267,18 +4264,17 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
// parse columns after formatter, in case the class is added at that point
|
// parse columns after formatter, in case the class is added at that point
|
||||||
data.parsed = c.$headers.map( function( columnIndex ) {
|
data.parsed = [];
|
||||||
return c.parsers && c.parsers[ columnIndex ] &&
|
for ( columnIndex = 0; columnIndex < c.columns; columnIndex++ ) {
|
||||||
// force parsing if parser type is numeric
|
data.parsed[ columnIndex ] = wo.filter_useParsedData ||
|
||||||
c.parsers[ columnIndex ].parsed ||
|
// parser has a "parsed" parameter
|
||||||
// getData won't return 'parsed' if other 'filter-' class names exist
|
( c.parsers && c.parsers[ columnIndex ] && c.parsers[ columnIndex ].parsed ||
|
||||||
|
// getData may not return 'parsed' if other 'filter-' class names exist
|
||||||
// ( e.g. <th class="filter-select filter-parsed"> )
|
// ( e.g. <th class="filter-select filter-parsed"> )
|
||||||
ts.getData && ts.getData( c.$headerIndexed[ columnIndex ],
|
ts.getData && ts.getData( c.$headerIndexed[ columnIndex ],
|
||||||
ts.getColumnData( table, c.headers, columnIndex ), 'filter' ) === 'parsed' ||
|
ts.getColumnData( table, c.headers, columnIndex ), 'filter' ) === 'parsed' ||
|
||||||
$( this ).hasClass( 'filter-parsed' );
|
c.$headerIndexed[ columnIndex ].hasClass( 'filter-parsed' ) );
|
||||||
}).get();
|
|
||||||
|
|
||||||
for ( columnIndex = 0; columnIndex < c.columns; columnIndex++ ) {
|
|
||||||
vars.functions[ columnIndex ] =
|
vars.functions[ columnIndex ] =
|
||||||
ts.getColumnData( table, wo.filter_functions, columnIndex );
|
ts.getColumnData( table, wo.filter_functions, columnIndex );
|
||||||
vars.defaultColFilter[ columnIndex ] =
|
vars.defaultColFilter[ columnIndex ] =
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/*! TableSorter (FORK) v2.25.0 *//*
|
/*! TableSorter (FORK) v2.25.1 *//*
|
||||||
* Client-side table sorting with ease!
|
* Client-side table sorting with ease!
|
||||||
* @requires jQuery v1.2.6+
|
* @requires jQuery v1.2.6+
|
||||||
*
|
*
|
||||||
@ -21,7 +21,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
var ts = $.tablesorter = {
|
var ts = $.tablesorter = {
|
||||||
|
|
||||||
version : '2.25.0',
|
version : '2.25.1',
|
||||||
|
|
||||||
parsers : [],
|
parsers : [],
|
||||||
widgets : [],
|
widgets : [],
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██
|
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██
|
||||||
█████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
|
█████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
|
||||||
*/
|
*/
|
||||||
/*! tablesorter (FORK) - updated 12-13-2015 (v2.25.0)*/
|
/*! tablesorter (FORK) - updated 01-10-2016 (v2.25.1)*/
|
||||||
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
||||||
(function(factory) {
|
(function(factory) {
|
||||||
if (typeof define === 'function' && define.amd) {
|
if (typeof define === 'function' && define.amd) {
|
||||||
@ -372,7 +372,7 @@
|
|||||||
|
|
||||||
})(jQuery);
|
})(jQuery);
|
||||||
|
|
||||||
/*! Widget: filter - updated 12/13/2015 (v2.25.0) *//*
|
/*! Widget: filter - updated 1/10/2016 (v2.25.1) *//*
|
||||||
* Requires tablesorter v2.8+ and jQuery 1.7+
|
* Requires tablesorter v2.8+ and jQuery 1.7+
|
||||||
* by Rob Garrison
|
* by Rob Garrison
|
||||||
*/
|
*/
|
||||||
@ -741,7 +741,7 @@
|
|||||||
toSplit : new RegExp( '(?:\\s+(?:-|' + ts.language.to + ')\\s+)', 'gi' ),
|
toSplit : new RegExp( '(?:\\s+(?:-|' + ts.language.to + ')\\s+)', 'gi' ),
|
||||||
andTest : new RegExp( '\\s+(' + ts.language.and + '|&&)\\s+', 'i' ),
|
andTest : new RegExp( '\\s+(' + ts.language.and + '|&&)\\s+', 'i' ),
|
||||||
andSplit : new RegExp( '(?:\\s+(?:' + ts.language.and + '|&&)\\s+)', 'gi' ),
|
andSplit : new RegExp( '(?:\\s+(?:' + ts.language.and + '|&&)\\s+)', 'gi' ),
|
||||||
orTest : /\|/,
|
orTest : new RegExp( '(\\||\\s+' + ts.language.or + '\\s+)', 'i' ),
|
||||||
orSplit : new RegExp( '(?:\\s+(?:' + ts.language.or + ')\\s+|\\|)', 'gi' ),
|
orSplit : new RegExp( '(?:\\s+(?:' + ts.language.or + ')\\s+|\\|)', 'gi' ),
|
||||||
iQuery : new RegExp( val, 'i' ),
|
iQuery : new RegExp( val, 'i' ),
|
||||||
igQuery : new RegExp( val, 'ig' ),
|
igQuery : new RegExp( val, 'ig' ),
|
||||||
@ -1216,7 +1216,7 @@
|
|||||||
filters = Array.prototype.map ?
|
filters = Array.prototype.map ?
|
||||||
filters.map( String ) :
|
filters.map( String ) :
|
||||||
// for IE8 & older browsers - maybe not the best method
|
// for IE8 & older browsers - maybe not the best method
|
||||||
filters.join( '\u0000' ).split( '\u0000' );
|
filters.join( '\ufffd' ).split( '\ufffd' );
|
||||||
|
|
||||||
if ( wo.filter_initialized ) {
|
if ( wo.filter_initialized ) {
|
||||||
c.$table.triggerHandler( 'filterStart', [ filters ] );
|
c.$table.triggerHandler( 'filterStart', [ filters ] );
|
||||||
@ -1422,7 +1422,6 @@
|
|||||||
|
|
||||||
vars.excludeMatch = vars.noAnyMatch;
|
vars.excludeMatch = vars.noAnyMatch;
|
||||||
filterMatched = tsf.processTypes( c, data, vars );
|
filterMatched = tsf.processTypes( c, data, vars );
|
||||||
|
|
||||||
if ( filterMatched !== null ) {
|
if ( filterMatched !== null ) {
|
||||||
showRow = filterMatched;
|
showRow = filterMatched;
|
||||||
} else {
|
} else {
|
||||||
@ -1455,13 +1454,8 @@
|
|||||||
// ignore if filter is empty or disabled
|
// ignore if filter is empty or disabled
|
||||||
if ( data.filter ) {
|
if ( data.filter ) {
|
||||||
data.cache = data.cacheArray[ columnIndex ];
|
data.cache = data.cacheArray[ columnIndex ];
|
||||||
// check if column data should be from the cell or from parsed data
|
|
||||||
if ( wo.filter_useParsedData || data.parsed[ columnIndex ] ) {
|
|
||||||
data.exact = data.cache;
|
|
||||||
} else {
|
|
||||||
result = data.rawArray[ columnIndex ] || '';
|
result = data.rawArray[ columnIndex ] || '';
|
||||||
data.exact = c.sortLocaleCompare ? ts.replaceAccents( result ) : result; // issue #405
|
data.exact = c.sortLocaleCompare ? ts.replaceAccents( result ) : result; // issue #405
|
||||||
}
|
|
||||||
data.iExact = !tsfRegex.type.test( typeof data.exact ) && wo.filter_ignoreCase ?
|
data.iExact = !tsfRegex.type.test( typeof data.exact ) && wo.filter_ignoreCase ?
|
||||||
data.exact.toLowerCase() : data.exact;
|
data.exact.toLowerCase() : data.exact;
|
||||||
|
|
||||||
@ -1516,8 +1510,7 @@
|
|||||||
result = filterMatched;
|
result = filterMatched;
|
||||||
// Look for match, and add child row data for matching
|
// Look for match, and add child row data for matching
|
||||||
} else {
|
} else {
|
||||||
txt = ( data.iExact + data.childRowText )
|
txt = ( data.iExact + data.childRowText ).indexOf( tsf.parseFilter( c, data.iFilter, data ) );
|
||||||
.indexOf( tsf.parseFilter( c, data.iFilter, data ) );
|
|
||||||
result = ( ( !wo.filter_startsWith && txt >= 0 ) || ( wo.filter_startsWith && txt === 0 ) );
|
result = ( ( !wo.filter_startsWith && txt >= 0 ) || ( wo.filter_startsWith && txt === 0 ) );
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -1557,18 +1550,17 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
// parse columns after formatter, in case the class is added at that point
|
// parse columns after formatter, in case the class is added at that point
|
||||||
data.parsed = c.$headers.map( function( columnIndex ) {
|
data.parsed = [];
|
||||||
return c.parsers && c.parsers[ columnIndex ] &&
|
for ( columnIndex = 0; columnIndex < c.columns; columnIndex++ ) {
|
||||||
// force parsing if parser type is numeric
|
data.parsed[ columnIndex ] = wo.filter_useParsedData ||
|
||||||
c.parsers[ columnIndex ].parsed ||
|
// parser has a "parsed" parameter
|
||||||
// getData won't return 'parsed' if other 'filter-' class names exist
|
( c.parsers && c.parsers[ columnIndex ] && c.parsers[ columnIndex ].parsed ||
|
||||||
|
// getData may not return 'parsed' if other 'filter-' class names exist
|
||||||
// ( e.g. <th class="filter-select filter-parsed"> )
|
// ( e.g. <th class="filter-select filter-parsed"> )
|
||||||
ts.getData && ts.getData( c.$headerIndexed[ columnIndex ],
|
ts.getData && ts.getData( c.$headerIndexed[ columnIndex ],
|
||||||
ts.getColumnData( table, c.headers, columnIndex ), 'filter' ) === 'parsed' ||
|
ts.getColumnData( table, c.headers, columnIndex ), 'filter' ) === 'parsed' ||
|
||||||
$( this ).hasClass( 'filter-parsed' );
|
c.$headerIndexed[ columnIndex ].hasClass( 'filter-parsed' ) );
|
||||||
}).get();
|
|
||||||
|
|
||||||
for ( columnIndex = 0; columnIndex < c.columns; columnIndex++ ) {
|
|
||||||
vars.functions[ columnIndex ] =
|
vars.functions[ columnIndex ] =
|
||||||
ts.getColumnData( table, wo.filter_functions, columnIndex );
|
ts.getColumnData( table, wo.filter_functions, columnIndex );
|
||||||
vars.defaultColFilter[ columnIndex ] =
|
vars.defaultColFilter[ columnIndex ] =
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "tablesorter",
|
"name": "tablesorter",
|
||||||
"title": "tablesorter",
|
"title": "tablesorter",
|
||||||
"version": "2.25.0",
|
"version": "2.25.1",
|
||||||
"description": "tablesorter (FORK) is a jQuery plugin for turning a standard HTML table with THEAD and TBODY tags into a sortable table without page refreshes. tablesorter can successfully parse and sort many types of data including linked data in a cell.",
|
"description": "tablesorter (FORK) is a jQuery plugin for turning a standard HTML table with THEAD and TBODY tags into a sortable table without page refreshes. tablesorter can successfully parse and sort many types of data including linked data in a cell.",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "Christian Bach",
|
"name": "Christian Bach",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "tablesorter",
|
"name": "tablesorter",
|
||||||
"title": "tablesorter",
|
"title": "tablesorter",
|
||||||
"version": "2.25.0",
|
"version": "2.25.1",
|
||||||
"description": "tablesorter is a jQuery plugin for turning a standard HTML table with THEAD and TBODY tags into a sortable table without page refreshes. tablesorter can successfully parse and sort many types of data including linked data in a cell.\n\nThis forked version adds lots of new enhancements including: alphanumeric sorting, pager callback functons, multiple widgets providing column styling, ui theme application, sticky headers, column filters and resizer, as well as extended documentation with a lot more demos.",
|
"description": "tablesorter is a jQuery plugin for turning a standard HTML table with THEAD and TBODY tags into a sortable table without page refreshes. tablesorter can successfully parse and sort many types of data including linked data in a cell.\n\nThis forked version adds lots of new enhancements including: alphanumeric sorting, pager callback functons, multiple widgets providing column styling, ui theme application, sticky headers, column filters and resizer, as well as extended documentation with a lot more demos.",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "Christian Bach",
|
"name": "Christian Bach",
|
||||||
|
Loading…
Reference in New Issue
Block a user