version bump & misc cleanup

This commit is contained in:
Rob Garrison 2016-09-23 11:45:10 -05:00
parent 29fc272edb
commit 570d3c0c30
28 changed files with 95 additions and 78 deletions

12
.gitattributes vendored
View File

@ -10,14 +10,14 @@
*.dbproj merge=union
# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
*.md diss=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
*.md diss=astextplain

View File

@ -101,6 +101,24 @@ If you would like to contribute, please...
View the [complete change log here](https://github.com/Mottie/tablesorter/wiki/Changes).
#### <a name="v2.27.7">Version 2.27.7</a> (9/23/2016)
* Core:
* Include version in log.
* Remove space from debug message.
* Docs: update jQuery.
* Filter:
* Include "input" event for searches. See [issue #1280](https://github.com/Mottie/tablesorter/issues/1280).
* Add support for descending sort on selectSources values.
* Mark: Remove internal case matching.
* Pager:
* Allow for optional output callback in favour of parsable string. See [pull #1283](https://github.com/Mottie/tablesorter/pull/1283); thanks [@joelperry93](https://github.com/joelperry93)!
* Add output function support to pager widget. See [pull #1283](https://github.com/Mottie/tablesorter/pull/1283).
* Maintain `pageDisplay` ID, if one exists. Fixes [issue #1288](https://github.com/Mottie/tablesorter/issues/1288).
* RepeatHeaders:
* Repeat HTML content instead of only text. See [pull #1282](https://github.com/Mottie/tablesorter/pull/1282); thanks [@Milania1](https://github.com/Milania1)!
* Testing: update jQuery usage.
#### <a name="v2.27.6">Version 2.27.6</a> (9/1/2016)
* Core: `textSorter` option now accepts class names. See [Stackoverflow](http://stackoverflow.com/q/39259954/145346).
@ -128,8 +146,3 @@ View the [complete change log here](https://github.com/Mottie/tablesorter/wiki/C
* Docs: Correct usage of Sugar v2.0+ `sortCollage`.
* Filter: Add any match search by column text - see [updated demo](https://mottie.github.io/tablesorter/docs/example-widget-filter-any-match.html#anymatch_searches).
* Parser: Fix JSHint issue.
#### <a name="v2.27.4">Version 2.27.4</a> (8/18/2016)
* Docs & parser: Update Sugar library v2.0+. Fixes [issue #1275](https://github.com/Mottie/tablesorter/issues/1275).
* Docs: Add `sortStable` example.

View File

@ -39,4 +39,4 @@ td.tablesorter-pager {
opacity: 0.5;
filter: alpha(opacity=50);
cursor: default;
}
}

View File

@ -1,6 +1,6 @@
/*!
* tablesorter (FORK) pager plugin
* updated 8/17/2016 (v2.27.3)
* updated 9/23/2016 (v2.27.7)
*/
/*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-01-2016 (v2.27.6)*/
/*! tablesorter (FORK) - updated 09-23-2016 (v2.27.7)*/
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
(function(factory) {
if (typeof define === 'function' && define.amd) {
@ -10,7 +10,7 @@
}
}(function(jQuery) {
/*! TableSorter (FORK) v2.27.6 *//*
/*! TableSorter (FORK) v2.27.7 *//*
* Client-side table sorting with ease!
* @requires jQuery v1.2.6+
*
@ -34,7 +34,7 @@
'use strict';
var ts = $.tablesorter = {
version : '2.27.6',
version : '2.27.7',
parsers : [],
widgets : [],
@ -245,7 +245,7 @@
// save the settings where they read
$.data( table, 'tablesorter', c );
if ( c.debug ) {
console[ console.group ? 'group' : 'log' ]( 'Initializing tablesorter' );
console[ console.group ? 'group' : 'log' ]( 'Initializing tablesorter v' + ts.version );
$.data( table, 'startoveralltimer', new Date() );
}
@ -347,7 +347,7 @@
table.hasInitialized = true;
table.isProcessing = false;
if ( c.debug ) {
console.log( 'Overall initialization time: ' + ts.benchmark( $.data( table, 'startoveralltimer' ) ) );
console.log( 'Overall initialization time:' + ts.benchmark( $.data( table, 'startoveralltimer' ) ) );
if ( c.debug && console.groupEnd ) { console.groupEnd(); }
}
$table.triggerHandler( 'tablesorter-initialized', table );
@ -3131,7 +3131,7 @@
})(jQuery);
/*! Widget: filter - updated 8/22/2016 (v2.27.5) *//*
/*! Widget: filter - updated 9/23/2016 (v2.27.7) *//*
* Requires tablesorter v2.8+ and jQuery 1.7+
* by Rob Garrison
*/
@ -3964,9 +3964,9 @@
// don't allow 'change' event to process if the input value is the same - fixes #685
if ( table.config.widgetOptions.filter_initialized &&
( event.which === tskeyCodes.enter || event.type === 'search' ||
( event.type === 'change' ) && this.value !== c.lastSearch[column] ) ||
// only "input" event fires in MS Edge when clicking the "x" to clear the search
( event.type === 'input' && this.value === '' ) ) {
( event.type === 'change' || event.type === 'input' ) &&
this.value !== c.lastSearch[column] )
) {
event.preventDefault();
// init search with no delay
$( this ).attr( 'data-lastSearchTime', new Date().getTime() );
@ -4681,6 +4681,7 @@
var cts, txt, indx, len, parsedTxt, str,
c = table.config,
validColumn = typeof column !== 'undefined' && column !== null && column >= 0 && column < c.columns,
direction = validColumn ? c.$headerIndexed[ column ].hasClass( 'filter-select-sort-desc' ) : false,
parsed = [];
// get unique elements and sort the list
// if $.tablesorter.sortText exists ( not in the original tablesorter ),
@ -4721,8 +4722,8 @@
// sort parsed select options
cts = c.textSorter || '';
parsed.sort( function( a, b ) {
var x = a.parsed,
y = b.parsed;
var x = direction ? b.parsed : a.parsed,
y = direction ? a.parsed : b.parsed;
if ( validColumn && typeof cts === 'function' ) {
// custom OVERALL text sorter
return cts( x, y, true, column, table );

File diff suppressed because one or more lines are too long

View File

@ -8,7 +8,7 @@
}
}(function(jQuery) {
/*! TableSorter (FORK) v2.27.6 *//*
/*! TableSorter (FORK) v2.27.7 *//*
* Client-side table sorting with ease!
* @requires jQuery v1.2.6+
*
@ -32,7 +32,7 @@
'use strict';
var ts = $.tablesorter = {
version : '2.27.6',
version : '2.27.7',
parsers : [],
widgets : [],
@ -243,7 +243,7 @@
// save the settings where they read
$.data( table, 'tablesorter', c );
if ( c.debug ) {
console[ console.group ? 'group' : 'log' ]( 'Initializing tablesorter' );
console[ console.group ? 'group' : 'log' ]( 'Initializing tablesorter v' + ts.version );
$.data( table, 'startoveralltimer', new Date() );
}
@ -345,7 +345,7 @@
table.hasInitialized = true;
table.isProcessing = false;
if ( c.debug ) {
console.log( 'Overall initialization time: ' + ts.benchmark( $.data( table, 'startoveralltimer' ) ) );
console.log( 'Overall initialization time:' + ts.benchmark( $.data( table, 'startoveralltimer' ) ) );
if ( c.debug && console.groupEnd ) { console.groupEnd(); }
}
$table.triggerHandler( 'tablesorter-initialized', table );

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
/*! tablesorter (FORK) - updated 09-01-2016 (v2.27.6)*/
/*! tablesorter (FORK) - updated 09-23-2016 (v2.27.7)*/
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
(function(factory) {
if (typeof define === 'function' && define.amd) {
@ -376,7 +376,7 @@
})(jQuery);
/*! Widget: filter - updated 8/22/2016 (v2.27.5) *//*
/*! Widget: filter - updated 9/23/2016 (v2.27.7) *//*
* Requires tablesorter v2.8+ and jQuery 1.7+
* by Rob Garrison
*/
@ -1209,9 +1209,9 @@
// don't allow 'change' event to process if the input value is the same - fixes #685
if ( table.config.widgetOptions.filter_initialized &&
( event.which === tskeyCodes.enter || event.type === 'search' ||
( event.type === 'change' ) && this.value !== c.lastSearch[column] ) ||
// only "input" event fires in MS Edge when clicking the "x" to clear the search
( event.type === 'input' && this.value === '' ) ) {
( event.type === 'change' || event.type === 'input' ) &&
this.value !== c.lastSearch[column] )
) {
event.preventDefault();
// init search with no delay
$( this ).attr( 'data-lastSearchTime', new Date().getTime() );
@ -1926,6 +1926,7 @@
var cts, txt, indx, len, parsedTxt, str,
c = table.config,
validColumn = typeof column !== 'undefined' && column !== null && column >= 0 && column < c.columns,
direction = validColumn ? c.$headerIndexed[ column ].hasClass( 'filter-select-sort-desc' ) : false,
parsed = [];
// get unique elements and sort the list
// if $.tablesorter.sortText exists ( not in the original tablesorter ),
@ -1966,8 +1967,8 @@
// sort parsed select options
cts = c.textSorter || '';
parsed.sort( function( a, b ) {
var x = a.parsed,
y = b.parsed;
var x = direction ? b.parsed : a.parsed,
y = direction ? a.parsed : b.parsed;
if ( validColumn && typeof cts === 'function' ) {
// custom OVERALL text sorter
return cts( x, y, true, column, table );

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
/*! Widget: mark.js - updated 9/1/2016 (v2.27.6) */
/*! Widget: mark.js - updated 9/23/2016 (v2.27.7) */
!function(a){"use strict";var b=a.tablesorter;b.mark={init:function(c){if("function"==typeof a.fn.mark){var d,e=c.widgetOptions.mark_tsUpdate;c.$table.on("filterEnd.tsmark pagerComplete.tsmark"+(e?" "+e:""),function(a,d){b.mark.update(c,a.type===e?d:"")}),d="(?:<|=|>|\\||\"|\\'|\\s+(?:&&|-|"+(b.language.and||"and")+"|"+(b.language.or||"or")+"|"+(b.language.to||"to")+")\\s+)",b.mark.regex.filter=new RegExp(d,"gim")}else console.warn('Widget-mark not initialized: missing "jquery.mark.js"')},regex:{mark:/^mark_(.+)$/,pure:/^\/((?:\\\/|[^\/])+)\/([mig]{0,3})?$/},checkRegex:function(a){if(a instanceof RegExp){var b="".match(a);return null===b||b.length<5}return!1},cleanMatches:function(a){for(var b=[],c=a&&a.length||0;c--;)""!==a[c]&&(b[b.length]=a[c]);return b},ignoreColumns:function(b){for(var c=b.widgetOptions,d=b.columns,e=[];d--;)(c.mark_tsIgnore[d]||a(b.$headerIndexed[d]).hasClass("mark-ignore"))&&(e[e.length]=":nth-child("+(d+1)+")");return e.length?":not("+e.join(",")+")":""},update:function(c,d){var e={},f=c.widgetOptions,g=b.mark.regex,h=c.$table.find("tbody tr").unmark().not("."+(c.widgetOptions.filter_filteredRow||"filtered"));d=d||a.tablesorter.getFilters(c.$table),a.each(c.widgetOptions,function(a,b){var c=a.match(g.mark);c&&"undefined"!=typeof c[1]&&(e[c[1]]=b)}),a.each(d,function(d,i){if(i&&!a(c.$headerIndexed[d]).hasClass("mark-ignore")&&!f.mark_tsIgnore[d]){var j=null,k=i,l=!1,m=d===c.columns?b.mark.ignoreColumns(c):":nth-child("+(d+1)+")";if(g.pure.test(i)){k=g.pure.exec(i),".*"===k[1]&&(k[1]="");try{j=new RegExp(k[1],"gim"),k=new RegExp(k[1],k[2])}catch(a){k=null}return void(b.mark.checkRegex(j)&&h.children(m).markRegExp(k,e))}0===i.indexOf("~")?(l=!0,k=i.replace(/~/g,"").split("")):(i.indexOf("?")>-1&&(l=!0,i=i.replace(/\?/g,"\\S{1}")),i.indexOf("*")>-1&&(l=!0,i=i.replace(/\*/g,"\\S*")),k=i.split(g.filter)),l&&k&&k.length?(k=new RegExp(b.mark.cleanMatches(k).join(".*"),"gm"),b.mark.checkRegex(k)&&h.children(m).markRegExp(k,e)):h.children(m).mark(b.mark.cleanMatches(k),e)}})}},b.addWidget({id:"mark",options:{mark_tsUpdate:"markUpdate",mark_tsIgnore:{}},init:function(a,c,d,e){b.mark.init(d,e)},remove:function(a,b){var c=b.widgetOptions.mark_tsUpdate;b.$table.off("filterEnd.tsmark pagerComplete.tsmark"+(c?" "+c:""))}})}(jQuery);

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
/*! Widget: repeatHeaders - updated 2/7/2015 (v2.19.0) */
/*! Widget: repeatHeaders - updated 9/23/2016 (v2.27.7) */
!function(a){"use strict";a.tablesorter.addWidget({id:"repeatHeaders",priority:10,options:{rowsToSkip:4},format:function(b,c,d){var e,f,g,h,i="";if(!d.repeatHeaders){for(i='<tr class="repeated-header '+c.selectorRemove.slice(1)+'">',e=0;e<c.columns;e++)i+="<th>"+a.trim(c.$headers.eq(e).html())+"</th>";d.repeatHeaders=i+"</tr>"}for(h=d&&d.rowsToSkip||4,c.$table.find("tr.repeated-header").remove(),f=c.$tbodies.find("tr"),g=f.length,e=h;e<g;e+=h)f.eq(e).before(d.repeatHeaders)},remove:function(a,b,c){c.repeatHeaders="",b.$table.find("tr.repeated-header").remove()}})}(jQuery);

View File

@ -156,4 +156,4 @@
"District": "Noord-Holland",
"Population": 110722
}]
}
}

View File

@ -37,4 +37,4 @@
<td>$13.19</td>
<td>11%</td>
<td>Jan 18, 2007 9:12 AM</td>
</tr>
</tr>

View File

@ -34,4 +34,4 @@
"data-info": "This row likes turtles"
}
]
}
}

View File

@ -6,4 +6,4 @@ Down In It,Nine Inch Nails,$3.00
Broken,Nine Inch Nails,$6.00
Muse,Black Holes and Revelations,$7.00
Anon,"fake album, with comma", $1.00
Album,Artist,Price ($)
Album,Artist,Price ($)

View File

@ -4,7 +4,7 @@
*/
/*! tablesorter (FORK) - updated 09-01-2016 (v2.27.6)*/
/*! tablesorter (FORK) - updated 09-23-2016 (v2.27.7)*/
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
(function(factory) {
if (typeof define === 'function' && define.amd) {
@ -16,7 +16,7 @@
}
}(function(jQuery) {
/*! TableSorter (FORK) v2.27.6 *//*
/*! TableSorter (FORK) v2.27.7 *//*
* Client-side table sorting with ease!
* @requires jQuery v1.2.6+
*
@ -40,7 +40,7 @@
'use strict';
var ts = $.tablesorter = {
version : '2.27.6',
version : '2.27.7',
parsers : [],
widgets : [],
@ -251,7 +251,7 @@
// save the settings where they read
$.data( table, 'tablesorter', c );
if ( c.debug ) {
console[ console.group ? 'group' : 'log' ]( 'Initializing tablesorter' );
console[ console.group ? 'group' : 'log' ]( 'Initializing tablesorter v' + ts.version );
$.data( table, 'startoveralltimer', new Date() );
}
@ -353,7 +353,7 @@
table.hasInitialized = true;
table.isProcessing = false;
if ( c.debug ) {
console.log( 'Overall initialization time: ' + ts.benchmark( $.data( table, 'startoveralltimer' ) ) );
console.log( 'Overall initialization time:' + ts.benchmark( $.data( table, 'startoveralltimer' ) ) );
if ( c.debug && console.groupEnd ) { console.groupEnd(); }
}
$table.triggerHandler( 'tablesorter-initialized', table );
@ -3137,7 +3137,7 @@
})(jQuery);
/*! Widget: filter - updated 8/22/2016 (v2.27.5) *//*
/*! Widget: filter - updated 9/23/2016 (v2.27.7) *//*
* Requires tablesorter v2.8+ and jQuery 1.7+
* by Rob Garrison
*/
@ -3970,9 +3970,9 @@
// don't allow 'change' event to process if the input value is the same - fixes #685
if ( table.config.widgetOptions.filter_initialized &&
( event.which === tskeyCodes.enter || event.type === 'search' ||
( event.type === 'change' ) && this.value !== c.lastSearch[column] ) ||
// only "input" event fires in MS Edge when clicking the "x" to clear the search
( event.type === 'input' && this.value === '' ) ) {
( event.type === 'change' || event.type === 'input' ) &&
this.value !== c.lastSearch[column] )
) {
event.preventDefault();
// init search with no delay
$( this ).attr( 'data-lastSearchTime', new Date().getTime() );
@ -4687,6 +4687,7 @@
var cts, txt, indx, len, parsedTxt, str,
c = table.config,
validColumn = typeof column !== 'undefined' && column !== null && column >= 0 && column < c.columns,
direction = validColumn ? c.$headerIndexed[ column ].hasClass( 'filter-select-sort-desc' ) : false,
parsed = [];
// get unique elements and sort the list
// if $.tablesorter.sortText exists ( not in the original tablesorter ),
@ -4727,8 +4728,8 @@
// sort parsed select options
cts = c.textSorter || '';
parsed.sort( function( a, b ) {
var x = a.parsed,
y = b.parsed;
var x = direction ? b.parsed : a.parsed,
y = direction ? a.parsed : b.parsed;
if ( validColumn && typeof cts === 'function' ) {
// custom OVERALL text sorter
return cts( x, y, true, column, table );

View File

@ -1,4 +1,4 @@
/*! TableSorter (FORK) v2.27.6 *//*
/*! TableSorter (FORK) v2.27.7 *//*
* Client-side table sorting with ease!
* @requires jQuery v1.2.6+
*
@ -22,7 +22,7 @@
'use strict';
var ts = $.tablesorter = {
version : '2.27.6',
version : '2.27.7',
parsers : [],
widgets : [],

View File

@ -4,7 +4,7 @@
*/
/*! tablesorter (FORK) - updated 09-01-2016 (v2.27.6)*/
/*! tablesorter (FORK) - updated 09-23-2016 (v2.27.7)*/
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
(function(factory) {
if (typeof define === 'function' && define.amd) {
@ -382,7 +382,7 @@
})(jQuery);
/*! Widget: filter - updated 8/22/2016 (v2.27.5) *//*
/*! Widget: filter - updated 9/23/2016 (v2.27.7) *//*
* Requires tablesorter v2.8+ and jQuery 1.7+
* by Rob Garrison
*/
@ -1215,9 +1215,9 @@
// don't allow 'change' event to process if the input value is the same - fixes #685
if ( table.config.widgetOptions.filter_initialized &&
( event.which === tskeyCodes.enter || event.type === 'search' ||
( event.type === 'change' ) && this.value !== c.lastSearch[column] ) ||
// only "input" event fires in MS Edge when clicking the "x" to clear the search
( event.type === 'input' && this.value === '' ) ) {
( event.type === 'change' || event.type === 'input' ) &&
this.value !== c.lastSearch[column] )
) {
event.preventDefault();
// init search with no delay
$( this ).attr( 'data-lastSearchTime', new Date().getTime() );
@ -1932,6 +1932,7 @@
var cts, txt, indx, len, parsedTxt, str,
c = table.config,
validColumn = typeof column !== 'undefined' && column !== null && column >= 0 && column < c.columns,
direction = validColumn ? c.$headerIndexed[ column ].hasClass( 'filter-select-sort-desc' ) : false,
parsed = [];
// get unique elements and sort the list
// if $.tablesorter.sortText exists ( not in the original tablesorter ),
@ -1972,8 +1973,8 @@
// sort parsed select options
cts = c.textSorter || '';
parsed.sort( function( a, b ) {
var x = a.parsed,
y = b.parsed;
var x = direction ? b.parsed : a.parsed,
y = direction ? a.parsed : b.parsed;
if ( validColumn && typeof cts === 'function' ) {
// custom OVERALL text sorter
return cts( x, y, true, column, table );

View File

@ -1,4 +1,4 @@
/*! Widget: filter - updated 8/22/2016 (v2.27.5) *//*
/*! Widget: filter - updated 9/23/2016 (v2.27.7) *//*
* Requires tablesorter v2.8+ and jQuery 1.7+
* by Rob Garrison
*/

View File

@ -1,4 +1,4 @@
/*! Widget: mark.js - updated 9/1/2016 (v2.27.6) *//*
/*! Widget: mark.js - updated 9/23/2016 (v2.27.7) *//*
* Requires tablesorter v2.8+ and jQuery 1.7+
* by Rob Garrison
*/

View File

@ -1,4 +1,4 @@
/*! Widget: Pager - updated 8/17/2016 (v2.27.3) */
/*! Widget: Pager - updated 9/23/2016 (v2.27.7) */
/* Requires tablesorter v2.8+ and jQuery 1.7+
* by Rob Garrison
*/

View File

@ -1,4 +1,4 @@
/*! Widget: repeatHeaders - updated 2/7/2015 (v2.19.0) *//*
/*! Widget: repeatHeaders - updated 9/23/2016 (v2.27.7) *//*
* Requires tablesorter v2.8+ and jQuery 1.7+
* Original by Christian Bach from the example-widgets.html demo
*/

View File

@ -1,7 +1,7 @@
{
"name": "tablesorter",
"title": "tablesorter",
"version": "2.27.6",
"version": "2.27.7",
"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.27.6",
"version": "2.27.7",
"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",