version bump

This commit is contained in:
Rob Garrison 2015-10-04 09:26:07 -05:00
parent 2f3217fe80
commit 40dcaace25
19 changed files with 172 additions and 82 deletions

View File

@ -92,6 +92,23 @@ If you would like to contribute, please...
View the [complete change log here](//github.com/Mottie/tablesorter/wiki/Changes).
#### <a name="v2.23.5">Version 2.23.5</a> (10/4/2015)
* Core:
* Remove `tabindex` when sort is disabled. See
* Docs:
* Add instructions on how to use the new filter option ([`filter_childWithSibs`](http://mottie.github.io/tablesorter/docs/example-widget-filter-childrows.html)).
* Include filter reset in above demo.
* Fixed spelling mistake x2. See pull [#1024](https://github.com/Mottie/tablesorter/pull/1024) & [#1025](https://github.com/Mottie/tablesorter/pull/1025); thanks [OmgImAlexis](https://github.com/OmgImAlexis)!
* Add note data-attribute values added to both parsed & raw data. Closes [issue #983](https://github.com/Mottie/tablesorter/issues/983).
* Move all javascript to page bottom.
* Filter:
* Keep parent match when no child rows match. See [issue #1020](https://github.com/Mottie/tablesorter/issues/1020).
* Ignore `filter_childWithSibs` when `filter_childByColumn` is `false`. See [issue #1020](https://github.com/Mottie/tablesorter/issues/1020).
* Select includes child rows when `filter_childByColumn` is set.
* Pager
* Prevent hiding child rows when disabling or destroying the pager. See [issue #1020](https://github.com/Mottie/tablesorter/issues/1020).
#### <a name="v2.23.4">Version 2.23.4</a> (9/23/2015)
* Core:
@ -119,18 +136,3 @@ View the [complete change log here](//github.com/Mottie/tablesorter/wiki/Changes
* Group:
* Remove unused variable.
* Add `group_forceColumn` & `group_enforceSort` options. Fixes [issue #1000](https://github.com/Mottie/tablesorter/issues/1000).
#### <a name="v2.23.2">Version 2.23.2</a> (8/23/2015)
* Readme
* Corrections for last update
* Docs
* Add parsed values function no longer wraps empty content.
* Core
* Cache regular expressions.
* ColumnSelector
* Add `columnSelector_updated` option (triggered event name).
* Filter
* Allow dynamically changing the "any match" filter. Fixes [issue #998](https://github.com/Mottie/tablesorter/issues/998).
* Cache regular expressions.
* Add reference to widget code to make the file more compressible.

View File

@ -1,6 +1,6 @@
/*!
* tablesorter (FORK) pager plugin
* updated 8/19/2015 (v2.23.1)
* updated 10/4/2015 (v2.23.5)
*/
/*jshint browser:true, jquery:true, unused:false */
;(function($) {

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
/*! tablesorter (FORK) - updated 09-25-2015 (v2.23.4)*/
/*! tablesorter (FORK) - updated 10-04-2015 (v2.23.5)*/
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
(function(factory) {
if (typeof define === 'function' && define.amd) {
@ -10,7 +10,7 @@
}
}(function($) {
/*! TableSorter (FORK) v2.23.4 *//*
/*! TableSorter (FORK) v2.23.5 *//*
* Client-side table sorting with ease!
* @requires jQuery v1.2.6+
*
@ -37,7 +37,7 @@
var ts = this;
ts.version = '2.23.4';
ts.version = '2.23.5';
ts.parsers = [];
ts.widgets = [];
@ -525,19 +525,27 @@
}
function updateHeader(table) {
var index, s, $th, col,
var index, isDisabled, $th, col,
c = table.config,
len = c.$headers.length;
for ( index = 0; index < len; index++ ) {
$th = c.$headers.eq( index );
col = ts.getColumnData( table, c.headers, index, true );
// add 'sorter-false' class if 'parser-false' is set
s = ts.getData( $th, col, 'sorter' ) === 'false' || ts.getData( $th, col, 'parser' ) === 'false';
$th[0].sortDisabled = s;
$th[ s ? 'addClass' : 'removeClass' ]('sorter-false').attr('aria-disabled', '' + s);
isDisabled = ts.getData( $th, col, 'sorter' ) === 'false' || ts.getData( $th, col, 'parser' ) === 'false';
$th[0].sortDisabled = isDisabled;
$th[ isDisabled ? 'addClass' : 'removeClass' ]( 'sorter-false' ).attr( 'aria-disabled', '' + isDisabled );
// disable tab index on disabled cells
if ( c.tabIndex ) {
if ( isDisabled ) {
$th.removeAttr( 'tabindex' );
} else {
$th.attr( 'tabindex', '0' );
}
}
// aria-controls - requires table ID
if (table.id) {
if (s) {
if ( isDisabled ) {
$th.removeAttr('aria-controls');
} else {
$th.attr('aria-controls', table.id);
@ -2710,7 +2718,7 @@
})(jQuery);
/*! Widget: filter - updated 9/23/2015 (v2.23.4) *//*
/*! Widget: filter - updated 10/4/2015 (v2.23.5) *//*
* Requires tablesorter v2.8+ and jQuery 1.7+
* by Rob Garrison
*/
@ -2814,8 +2822,8 @@
// data.filters = array of filters for all columns ( some may be undefined )
// data.filter = filter for the current column
// data.iFilter = same as data.filter, except lowercase ( if wo.filter_ignoreCase is true )
// data.exact = table cell text ( or parsed data if column parser enabled )
// data.iExact = same as data.exact, except lowercase ( if wo.filter_ignoreCase is true )
// data.exact = table cell text ( or parsed data if column parser enabled; may be a number & not a string )
// data.iExact = same as data.exact, except lowercase ( if wo.filter_ignoreCase is true; may be a number & not a string )
// data.cache = table cell text from cache, so it has been parsed ( & in all lower case if c.ignoreCase is true )
// data.cacheArray = An array of parsed content from each table cell in the row being processed
// data.index = column index; table = table element ( DOM )
@ -3796,7 +3804,8 @@
if ( fxn === true || hasSelect ) {
// default selector uses exact match unless 'filter-match' class is found
filterMatched = data.isMatch ?
data.iExact.search( data.iFilter ) >= 0 :
// data.iExact may be a number
( '' + data.iExact ).search( data.iFilter ) >= 0 :
data.filter === data.exact;
} else if ( typeof fxn === 'function' ) {
// filter callback( exact cell content, parser normalized content,
@ -4181,7 +4190,7 @@
},
getOptions: function( table, column, onlyAvail ) {
table = $( table )[0];
var rowIndex, tbodyIndex, len, row, cache,
var rowIndex, tbodyIndex, len, row, cache, indx, child, childLen,
c = table.config,
wo = c.widgetOptions,
arry = [];
@ -4204,9 +4213,24 @@
c.parsers[column].parsed ||
c.$headerIndexed[column].hasClass( 'filter-parsed' ) ) {
arry.push( '' + cache.normalized[ rowIndex ][ column ] );
// child row parsed data
if ( wo.filter_childRows && wo.filter_childByColumn ) {
childLen = cache.normalized[ rowIndex ][ c.columns ].$row.length - 1;
for ( indx = 0; indx < childLen; indx++ ) {
arry.push( '' + cache.normalized[ rowIndex ][ c.columns ].child[ indx ][ column ] );
}
}
} else {
// get raw cached data instead of content directly from the cells
arry.push( cache.normalized[ rowIndex ][ c.columns ].raw[ column ] );
// child row unparsed data
if ( wo.filter_childRows && wo.filter_childByColumn ) {
childLen = cache.normalized[ rowIndex ][ c.columns ].$row.length;
for ( indx = 1; indx < childLen; indx++ ) {
child = cache.normalized[ rowIndex ][ c.columns ].$row.eq( indx ).children().eq( column );
arry.push( '' + ts.getElementText( c, child, column ) );
}
}
}
}
}

File diff suppressed because one or more lines are too long

View File

@ -8,7 +8,7 @@
}
}(function($) {
/*! TableSorter (FORK) v2.23.4 *//*
/*! TableSorter (FORK) v2.23.5 *//*
* Client-side table sorting with ease!
* @requires jQuery v1.2.6+
*
@ -35,7 +35,7 @@
var ts = this;
ts.version = '2.23.4';
ts.version = '2.23.5';
ts.parsers = [];
ts.widgets = [];
@ -523,19 +523,27 @@
}
function updateHeader(table) {
var index, s, $th, col,
var index, isDisabled, $th, col,
c = table.config,
len = c.$headers.length;
for ( index = 0; index < len; index++ ) {
$th = c.$headers.eq( index );
col = ts.getColumnData( table, c.headers, index, true );
// add 'sorter-false' class if 'parser-false' is set
s = ts.getData( $th, col, 'sorter' ) === 'false' || ts.getData( $th, col, 'parser' ) === 'false';
$th[0].sortDisabled = s;
$th[ s ? 'addClass' : 'removeClass' ]('sorter-false').attr('aria-disabled', '' + s);
isDisabled = ts.getData( $th, col, 'sorter' ) === 'false' || ts.getData( $th, col, 'parser' ) === 'false';
$th[0].sortDisabled = isDisabled;
$th[ isDisabled ? 'addClass' : 'removeClass' ]( 'sorter-false' ).attr( 'aria-disabled', '' + isDisabled );
// disable tab index on disabled cells
if ( c.tabIndex ) {
if ( isDisabled ) {
$th.removeAttr( 'tabindex' );
} else {
$th.attr( 'tabindex', '0' );
}
}
// aria-controls - requires table ID
if (table.id) {
if (s) {
if ( isDisabled ) {
$th.removeAttr('aria-controls');
} else {
$th.attr('aria-controls', table.id);

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
/*! tablesorter (FORK) - updated 09-25-2015 (v2.23.4)*/
/*! tablesorter (FORK) - updated 10-04-2015 (v2.23.5)*/
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
(function(factory) {
if (typeof define === 'function' && define.amd) {
@ -366,7 +366,7 @@
})(jQuery);
/*! Widget: filter - updated 9/23/2015 (v2.23.4) *//*
/*! Widget: filter - updated 10/4/2015 (v2.23.5) *//*
* Requires tablesorter v2.8+ and jQuery 1.7+
* by Rob Garrison
*/
@ -470,8 +470,8 @@
// data.filters = array of filters for all columns ( some may be undefined )
// data.filter = filter for the current column
// data.iFilter = same as data.filter, except lowercase ( if wo.filter_ignoreCase is true )
// data.exact = table cell text ( or parsed data if column parser enabled )
// data.iExact = same as data.exact, except lowercase ( if wo.filter_ignoreCase is true )
// data.exact = table cell text ( or parsed data if column parser enabled; may be a number & not a string )
// data.iExact = same as data.exact, except lowercase ( if wo.filter_ignoreCase is true; may be a number & not a string )
// data.cache = table cell text from cache, so it has been parsed ( & in all lower case if c.ignoreCase is true )
// data.cacheArray = An array of parsed content from each table cell in the row being processed
// data.index = column index; table = table element ( DOM )
@ -1452,7 +1452,8 @@
if ( fxn === true || hasSelect ) {
// default selector uses exact match unless 'filter-match' class is found
filterMatched = data.isMatch ?
data.iExact.search( data.iFilter ) >= 0 :
// data.iExact may be a number
( '' + data.iExact ).search( data.iFilter ) >= 0 :
data.filter === data.exact;
} else if ( typeof fxn === 'function' ) {
// filter callback( exact cell content, parser normalized content,
@ -1837,7 +1838,7 @@
},
getOptions: function( table, column, onlyAvail ) {
table = $( table )[0];
var rowIndex, tbodyIndex, len, row, cache,
var rowIndex, tbodyIndex, len, row, cache, indx, child, childLen,
c = table.config,
wo = c.widgetOptions,
arry = [];
@ -1860,9 +1861,24 @@
c.parsers[column].parsed ||
c.$headerIndexed[column].hasClass( 'filter-parsed' ) ) {
arry.push( '' + cache.normalized[ rowIndex ][ column ] );
// child row parsed data
if ( wo.filter_childRows && wo.filter_childByColumn ) {
childLen = cache.normalized[ rowIndex ][ c.columns ].$row.length - 1;
for ( indx = 0; indx < childLen; indx++ ) {
arry.push( '' + cache.normalized[ rowIndex ][ c.columns ].child[ indx ][ column ] );
}
}
} else {
// get raw cached data instead of content directly from the cells
arry.push( cache.normalized[ rowIndex ][ c.columns ].raw[ column ] );
// child row unparsed data
if ( wo.filter_childRows && wo.filter_childByColumn ) {
childLen = cache.normalized[ rowIndex ][ c.columns ].$row.length;
for ( indx = 1; indx < childLen; indx++ ) {
child = cache.normalized[ rowIndex ][ c.columns ].$row.eq( indx ).children().eq( column );
arry.push( '' + ts.getElementText( c, child, column ) );
}
}
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -459,7 +459,7 @@
<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.19.0</span>).</li>
<li><span class="results">&dagger;</span> Filter widget (<span class="version updated">v2.23.4</span>):
<ul>
<li><a href="example-widget-filter.html">basic</a> (v2.0.18; <span class="version updated">v2.23.4</span>)</li>
<li><a href="example-widget-filter.html">basic</a> (v2.0.18; <span class="version updated">v2.23.5</span>)</li>
<li><a href="example-widget-filter-any-match.html">external option (match any column)</a> (<span class="version">v2.13.3</span>; <span class="version updated">v2.22.0</span>)</li>
<li><a href="example-widget-filter-external-inputs.html">external inputs</a> (<span class="version">v2.14</span>; <span class="version updated">v2.18.0</span>)</li>
<li><a href="example-widget-filter-custom.html">custom</a> (v2.3.6; <span class="version updated">v2.22.0</span>)</li>
@ -484,9 +484,9 @@
<br><br>
</li>
<li>Pager plugin (<a href="example-pager.html">basic</a> &amp; <a href="example-pager-ajax.html">ajax</a> demos; <span class="version updated">v2.23.1</span>).</li>
<li>Pager plugin (<a href="example-pager.html">basic</a> &amp; <a href="example-pager-ajax.html">ajax</a> demos; <span class="version updated">v2.23.5</span>).</li>
<li>
Pager widget (<a href="example-widget-pager.html">basic</a> &amp; <a href="example-widget-pager-ajax.html">ajax</a> demos) (<span class="version">v2.12</span>; <span class="version updated">v2.23.1</span>).<br>
Pager widget (<a href="example-widget-pager.html">basic</a> &amp; <a href="example-widget-pager-ajax.html">ajax</a> demos) (<span class="version">v2.12</span>; <span class="version updated">v2.23.5</span>).<br>
<br>
</li>

View File

@ -4,7 +4,7 @@
*/
/*! tablesorter (FORK) - updated 09-25-2015 (v2.23.4)*/
/*! tablesorter (FORK) - updated 10-04-2015 (v2.23.5)*/
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
(function(factory) {
if (typeof define === 'function' && define.amd) {
@ -16,7 +16,7 @@
}
}(function($) {
/*! TableSorter (FORK) v2.23.4 *//*
/*! TableSorter (FORK) v2.23.5 *//*
* Client-side table sorting with ease!
* @requires jQuery v1.2.6+
*
@ -43,7 +43,7 @@
var ts = this;
ts.version = '2.23.4';
ts.version = '2.23.5';
ts.parsers = [];
ts.widgets = [];
@ -531,19 +531,27 @@
}
function updateHeader(table) {
var index, s, $th, col,
var index, isDisabled, $th, col,
c = table.config,
len = c.$headers.length;
for ( index = 0; index < len; index++ ) {
$th = c.$headers.eq( index );
col = ts.getColumnData( table, c.headers, index, true );
// add 'sorter-false' class if 'parser-false' is set
s = ts.getData( $th, col, 'sorter' ) === 'false' || ts.getData( $th, col, 'parser' ) === 'false';
$th[0].sortDisabled = s;
$th[ s ? 'addClass' : 'removeClass' ]('sorter-false').attr('aria-disabled', '' + s);
isDisabled = ts.getData( $th, col, 'sorter' ) === 'false' || ts.getData( $th, col, 'parser' ) === 'false';
$th[0].sortDisabled = isDisabled;
$th[ isDisabled ? 'addClass' : 'removeClass' ]( 'sorter-false' ).attr( 'aria-disabled', '' + isDisabled );
// disable tab index on disabled cells
if ( c.tabIndex ) {
if ( isDisabled ) {
$th.removeAttr( 'tabindex' );
} else {
$th.attr( 'tabindex', '0' );
}
}
// aria-controls - requires table ID
if (table.id) {
if (s) {
if ( isDisabled ) {
$th.removeAttr('aria-controls');
} else {
$th.attr('aria-controls', table.id);
@ -2716,7 +2724,7 @@
})(jQuery);
/*! Widget: filter - updated 9/23/2015 (v2.23.4) *//*
/*! Widget: filter - updated 10/4/2015 (v2.23.5) *//*
* Requires tablesorter v2.8+ and jQuery 1.7+
* by Rob Garrison
*/
@ -2820,8 +2828,8 @@
// data.filters = array of filters for all columns ( some may be undefined )
// data.filter = filter for the current column
// data.iFilter = same as data.filter, except lowercase ( if wo.filter_ignoreCase is true )
// data.exact = table cell text ( or parsed data if column parser enabled )
// data.iExact = same as data.exact, except lowercase ( if wo.filter_ignoreCase is true )
// data.exact = table cell text ( or parsed data if column parser enabled; may be a number & not a string )
// data.iExact = same as data.exact, except lowercase ( if wo.filter_ignoreCase is true; may be a number & not a string )
// data.cache = table cell text from cache, so it has been parsed ( & in all lower case if c.ignoreCase is true )
// data.cacheArray = An array of parsed content from each table cell in the row being processed
// data.index = column index; table = table element ( DOM )
@ -3802,7 +3810,8 @@
if ( fxn === true || hasSelect ) {
// default selector uses exact match unless 'filter-match' class is found
filterMatched = data.isMatch ?
data.iExact.search( data.iFilter ) >= 0 :
// data.iExact may be a number
( '' + data.iExact ).search( data.iFilter ) >= 0 :
data.filter === data.exact;
} else if ( typeof fxn === 'function' ) {
// filter callback( exact cell content, parser normalized content,
@ -4187,7 +4196,7 @@
},
getOptions: function( table, column, onlyAvail ) {
table = $( table )[0];
var rowIndex, tbodyIndex, len, row, cache,
var rowIndex, tbodyIndex, len, row, cache, indx, child, childLen,
c = table.config,
wo = c.widgetOptions,
arry = [];
@ -4210,9 +4219,24 @@
c.parsers[column].parsed ||
c.$headerIndexed[column].hasClass( 'filter-parsed' ) ) {
arry.push( '' + cache.normalized[ rowIndex ][ column ] );
// child row parsed data
if ( wo.filter_childRows && wo.filter_childByColumn ) {
childLen = cache.normalized[ rowIndex ][ c.columns ].$row.length - 1;
for ( indx = 0; indx < childLen; indx++ ) {
arry.push( '' + cache.normalized[ rowIndex ][ c.columns ].child[ indx ][ column ] );
}
}
} else {
// get raw cached data instead of content directly from the cells
arry.push( cache.normalized[ rowIndex ][ c.columns ].raw[ column ] );
// child row unparsed data
if ( wo.filter_childRows && wo.filter_childByColumn ) {
childLen = cache.normalized[ rowIndex ][ c.columns ].$row.length;
for ( indx = 1; indx < childLen; indx++ ) {
child = cache.normalized[ rowIndex ][ c.columns ].$row.eq( indx ).children().eq( column );
arry.push( '' + ts.getElementText( c, child, column ) );
}
}
}
}
}

View File

@ -1,4 +1,4 @@
/*! TableSorter (FORK) v2.23.4 *//*
/*! TableSorter (FORK) v2.23.5 *//*
* Client-side table sorting with ease!
* @requires jQuery v1.2.6+
*
@ -25,7 +25,7 @@
var ts = this;
ts.version = '2.23.4';
ts.version = '2.23.5';
ts.parsers = [];
ts.widgets = [];

View File

@ -4,7 +4,7 @@
*/
/*! tablesorter (FORK) - updated 09-25-2015 (v2.23.4)*/
/*! tablesorter (FORK) - updated 10-04-2015 (v2.23.5)*/
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
(function(factory) {
if (typeof define === 'function' && define.amd) {
@ -372,7 +372,7 @@
})(jQuery);
/*! Widget: filter - updated 9/23/2015 (v2.23.4) *//*
/*! Widget: filter - updated 10/4/2015 (v2.23.5) *//*
* Requires tablesorter v2.8+ and jQuery 1.7+
* by Rob Garrison
*/
@ -476,8 +476,8 @@
// data.filters = array of filters for all columns ( some may be undefined )
// data.filter = filter for the current column
// data.iFilter = same as data.filter, except lowercase ( if wo.filter_ignoreCase is true )
// data.exact = table cell text ( or parsed data if column parser enabled )
// data.iExact = same as data.exact, except lowercase ( if wo.filter_ignoreCase is true )
// data.exact = table cell text ( or parsed data if column parser enabled; may be a number & not a string )
// data.iExact = same as data.exact, except lowercase ( if wo.filter_ignoreCase is true; may be a number & not a string )
// data.cache = table cell text from cache, so it has been parsed ( & in all lower case if c.ignoreCase is true )
// data.cacheArray = An array of parsed content from each table cell in the row being processed
// data.index = column index; table = table element ( DOM )
@ -1458,7 +1458,8 @@
if ( fxn === true || hasSelect ) {
// default selector uses exact match unless 'filter-match' class is found
filterMatched = data.isMatch ?
data.iExact.search( data.iFilter ) >= 0 :
// data.iExact may be a number
( '' + data.iExact ).search( data.iFilter ) >= 0 :
data.filter === data.exact;
} else if ( typeof fxn === 'function' ) {
// filter callback( exact cell content, parser normalized content,
@ -1843,7 +1844,7 @@
},
getOptions: function( table, column, onlyAvail ) {
table = $( table )[0];
var rowIndex, tbodyIndex, len, row, cache,
var rowIndex, tbodyIndex, len, row, cache, indx, child, childLen,
c = table.config,
wo = c.widgetOptions,
arry = [];
@ -1866,9 +1867,24 @@
c.parsers[column].parsed ||
c.$headerIndexed[column].hasClass( 'filter-parsed' ) ) {
arry.push( '' + cache.normalized[ rowIndex ][ column ] );
// child row parsed data
if ( wo.filter_childRows && wo.filter_childByColumn ) {
childLen = cache.normalized[ rowIndex ][ c.columns ].$row.length - 1;
for ( indx = 0; indx < childLen; indx++ ) {
arry.push( '' + cache.normalized[ rowIndex ][ c.columns ].child[ indx ][ column ] );
}
}
} else {
// get raw cached data instead of content directly from the cells
arry.push( cache.normalized[ rowIndex ][ c.columns ].raw[ column ] );
// child row unparsed data
if ( wo.filter_childRows && wo.filter_childByColumn ) {
childLen = cache.normalized[ rowIndex ][ c.columns ].$row.length;
for ( indx = 1; indx < childLen; indx++ ) {
child = cache.normalized[ rowIndex ][ c.columns ].$row.eq( indx ).children().eq( column );
arry.push( '' + ts.getElementText( c, child, column ) );
}
}
}
}
}

View File

@ -1,4 +1,4 @@
/*! Widget: filter - updated 9/23/2015 (v2.23.4) *//*
/*! Widget: filter - updated 10/4/2015 (v2.23.5) *//*
* Requires tablesorter v2.8+ and jQuery 1.7+
* by Rob Garrison
*/

View File

@ -1,4 +1,4 @@
/*! Widget: Pager - updated 8/19/2015 (v2.23.1) */
/*! Widget: Pager - updated 10/4/2015 (v2.23.5) */
/* Requires tablesorter v2.8+ and jQuery 1.7+
* by Rob Garrison
*/

View File

@ -1,7 +1,7 @@
{
"name": "tablesorter",
"title": "tablesorter",
"version": "2.23.4",
"version": "2.23.5",
"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": {
"name": "Christian Bach",

View File

@ -1,7 +1,7 @@
{
"name": "tablesorter",
"title": "tablesorter",
"version": "2.23.4",
"version": "2.23.5",
"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": {
"name": "Christian Bach",