wiki.techinc.nl/resources/jquery/jquery.tablesorter.js

850 lines
22 KiB
JavaScript
Raw Normal View History

Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
/**
* TableSorter for MediaWiki
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
*
* Written 2011 Leo Koppelkamm
* Based on tablesorter.com plugin, written (c) 2007 Christian Bach.
*
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
*
* @depends on mw.config (wgDigitTransformTable, wgMonthNames, wgMonthNamesShort,
* wgDefaultDateFormat, wgContentLanguage)
*/
/**
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
*
* @description Create a sortable table with multi-column sorting capabilitys
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
*
* @example $( 'table' ).tablesorter();
* @desc Create a simple tablesorter interface.
*
* @option String cssHeader ( optional ) A string of the class name to be appended
* to sortable tr elements in the thead of the table. Default value:
* "header"
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
*
* @option String cssAsc ( optional ) A string of the class name to be appended to
* sortable tr elements in the thead on a ascending sort. Default value:
* "headerSortUp"
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
*
* @option String cssDesc ( optional ) A string of the class name to be appended
* to sortable tr elements in the thead on a descending sort. Default
* value: "headerSortDown"
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
*
* @option String sortInitialOrder ( optional ) A string of the inital sorting
* order can be asc or desc. Default value: "asc"
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
*
* @option String sortMultisortKey ( optional ) A string of the multi-column sort
* key. Default value: "shiftKey"
*
* @option Boolean sortLocaleCompare ( optional ) Boolean flag indicating whatever
* to use String.localeCampare method or not. Set to false.
*
* @option Boolean cancelSelection ( optional ) Boolean flag indicating if
* tablesorter should cancel selection of the table headers text.
* Default value: true
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
*
* @option Boolean debug ( optional ) Boolean flag indicating if tablesorter
* should display debuging information usefull for development.
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
*
* @type jQuery
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
*
* @name tablesorter
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
*
* @cat Plugins/Tablesorter
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
*
* @author Christian Bach/christian.bach@polyester.se
*/
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
( function( $ ) {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
/* Local scope */
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
var ts,
parsers = [];
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
/* Parser utility functions */
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
function getParserById( name ) {
var len = parsers.length;
for ( var i = 0; i < len; i++ ) {
if ( parsers[i].id.toLowerCase() === name.toLowerCase() ) {
return parsers[i];
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
}
return false;
}
function getElementText( node ) {
if ( node.hasAttribute && node.hasAttribute( 'data-sort-value' ) ) {
return node.getAttribute( 'data-sort-value' );
} else {
return $( node ).text();
}
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
function getTextFromRowAndCellIndex( rows, rowIndex, cellIndex ) {
if ( rows[rowIndex] && rows[rowIndex].cells[cellIndex] ) {
return $.trim( getElementText( rows[rowIndex].cells[cellIndex] ) );
} else {
return '';
}
}
function detectParserForColumn( table, rows, cellIndex ) {
var l = parsers.length,
nodeValue,
// Start with 1 because 0 is the fallback parser
i = 1,
rowIndex = 0,
concurrent = 0,
needed = ( rows.length > 4 ) ? 5 : rows.length;
while( i < l ) {
nodeValue = getTextFromRowAndCellIndex( rows, rowIndex, cellIndex );
if ( nodeValue !== '') {
if ( parsers[i].is( nodeValue, table ) ) {
concurrent++;
rowIndex++;
if ( concurrent >= needed ) {
// Confirmed the parser for multiple cells, let's return it
return parsers[i];
}
} else {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Check next parser, reset rows
i++;
rowIndex = 0;
concurrent = 0;
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
} else {
// Empty cell
rowIndex++;
if ( rowIndex > rows.length ) {
rowIndex = 0;
i++;
}
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// 0 is always the generic parser (text)
return parsers[0];
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
function buildParserCache( table, $headers ) {
var rows = table.tBodies[0].rows,
sortType,
parsers = [];
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
if ( rows[0] ) {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
var cells = rows[0].cells,
len = cells.length,
i, parser;
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
for ( i = 0; i < len; i++ ) {
parser = false;
sortType = $headers.eq( i ).data( 'sort-type' );
if ( sortType !== undefined ) {
parser = getParserById( sortType );
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
if ( parser === false ) {
parser = detectParserForColumn( table, rows, i );
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
parsers.push( parser );
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
}
return parsers;
}
/* Other utility functions */
function buildCache( table ) {
var totalRows = ( table.tBodies[0] && table.tBodies[0].rows.length ) || 0,
totalCells = ( table.tBodies[0].rows[0] && table.tBodies[0].rows[0].cells.length ) || 0,
parsers = table.config.parsers,
cache = {
row: [],
normalized: []
};
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
for ( var i = 0; i < totalRows; ++i ) {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Add the table data to main data array
var $row = $( table.tBodies[0].rows[i] ),
cols = [];
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// if this is a child row, add it to the last row's children and
// continue to the next row
if ( $row.hasClass( table.config.cssChildRow ) ) {
cache.row[cache.row.length - 1] = cache.row[cache.row.length - 1].add( $row );
// go to the next for loop
continue;
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
cache.row.push( $row );
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
for ( var j = 0; j < totalCells; ++j ) {
cols.push( parsers[j].format( getElementText( $row[0].cells[j] ), table, $row[0].cells[j] ) );
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
cols.push( cache.normalized.length ); // add position for rowCache
cache.normalized.push( cols );
cols = null;
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
return cache;
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
function appendToTable( table, cache ) {
var row = cache.row,
normalized = cache.normalized,
totalRows = normalized.length,
checkCell = ( normalized[0].length - 1 ),
fragment = document.createDocumentFragment();
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
for ( var i = 0; i < totalRows; i++ ) {
var pos = normalized[i][checkCell];
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
var l = row[pos].length;
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
for ( var j = 0; j < l; j++ ) {
fragment.appendChild( row[pos][j] );
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
}
table.tBodies[0].appendChild( fragment );
}
function buildHeaders( table, msg ) {
var maxSeen = 0,
longest,
realCellIndex = 0,
$tableHeaders = $( 'thead:eq(0) tr', table );
if ( $tableHeaders.length > 1 ) {
$tableHeaders.each(function() {
if ( this.cells.length > maxSeen ) {
maxSeen = this.cells.length;
longest = this;
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
});
$tableHeaders = $( longest );
}
$tableHeaders = $tableHeaders.find( 'th' ).each( function( index ) {
this.column = realCellIndex;
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
var colspan = this.colspan;
colspan = colspan ? parseInt( colspan, 10 ) : 1;
realCellIndex += colspan;
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
this.order = 0;
this.count = 0;
2011-07-04 23:36:54 +00:00
if ( $( this ).is( '.unsortable' ) ) {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
this.sortDisabled = true;
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
if ( !this.sortDisabled ) {
var $th = $( this ).addClass( table.config.cssHeader ).attr( 'title', msg[1] );
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// add cell to headerList
table.config.headerList[index] = this;
} );
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
return $tableHeaders;
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
function isValueInArray( v, a ) {
var l = a.length;
for ( var i = 0; i < l; i++ ) {
if ( a[i][0] == v ) {
return true;
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
}
return false;
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
function setHeadersCss( table, $headers, list, css, msg ) {
// Remove all header information
$headers.removeClass( css[0] ).removeClass( css[1] );
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
var h = [];
$headers.each( function( offset ) {
if ( !this.sortDisabled ) {
h[this.column] = $( this );
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
} );
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
var l = list.length;
for ( var i = 0; i < l; i++ ) {
h[ list[i][0] ].addClass( css[ list[i][1] ] ).attr( 'title', msg[ list[i][1] ] );
}
}
function sortText( a, b ) {
return ( (a < b) ? false : ((a > b) ? true : 0) );
}
function sortTextDesc( a, b ) {
return ( (b < a) ? false : ((b > a) ? true : 0) );
}
function checkSorting( array1, array2, sortList ) {
var col, fn, ret;
for ( var i = 0, len = sortList.length; i < len; i++ ) {
col = sortList[i][0];
fn = ( sortList[i][1] ) ? sortTextDesc : sortText;
ret = fn.call( this, array1[col], array2[col] );
if ( ret !== 0 ) {
return ret;
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
}
return ret;
}
// Merge sort algorithm
// Based on http://en.literateprograms.org/Merge_sort_(JavaScript)
function mergeSortHelper( array, begin, beginRight, end, sortList ) {
for ( ; begin < beginRight; ++begin ) {
if ( checkSorting( array[begin], array[beginRight], sortList ) ) {
var v = array[begin];
array[begin] = array[beginRight];
var begin2 = beginRight;
while ( begin2 + 1 < end && checkSorting( v, array[begin2 + 1], sortList ) ) {
var tmp = array[begin2];
array[begin2] = array[begin2 + 1];
array[begin2 + 1] = tmp;
++begin2;
}
array[begin2] = v;
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
}
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
function mergeSort(array, begin, end, sortList) {
var size = end - begin;
if ( size < 2 ) {
return;
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
var beginRight = begin + Math.floor(size / 2);
mergeSort( array, begin, beginRight, sortList );
mergeSort( array, beginRight, end, sortList );
mergeSortHelper( array, begin, beginRight, end, sortList );
}
function multisort( table, sortList, cache ) {
var i = sortList.length;
mergeSort( cache.normalized, 0, cache.normalized.length, sortList );
return cache;
}
function buildTransformTable() {
var digits = '0123456789,.'.split( '' );
var separatorTransformTable = mw.config.get( 'wgSeparatorTransformTable' );
var digitTransformTable = mw.config.get( 'wgDigitTransformTable' );
if ( separatorTransformTable === null || ( separatorTransformTable[0] === '' && digitTransformTable[2] === '' ) ) {
ts.transformTable = false;
} else {
ts.transformTable = {};
// Unpack the transform table
var ascii = separatorTransformTable[0].split( "\t" ).concat( digitTransformTable[0].split( "\t" ) );
var localised = separatorTransformTable[1].split( "\t" ).concat( digitTransformTable[1].split( "\t" ) );
// Construct regex for number identification
for ( var i = 0; i < ascii.length; i++ ) {
ts.transformTable[localised[i]] = ascii[i];
digits.push( $.escapeRE( localised[i] ) );
}
}
var digitClass = '[' + digits.join( '', digits ) + ']';
// We allow a trailing percent sign, which we just strip. This works fine
// if percents and regular numbers aren't being mixed.
ts.numberRegex = new RegExp("^(" + "[-+\u2212]?[0-9][0-9,]*(\\.[0-9,]*)?(E[-+\u2212]?[0-9][0-9,]*)?" + // Fortran-style scientific
"|" + "[-+\u2212]?" + digitClass + "+[\\s\\xa0]*%?" + // Generic localised
")$", "i");
}
function buildDateTable() {
var regex = [];
ts.monthNames = [
[],
[]
];
for ( var i = 1; i < 13; i++ ) {
ts.monthNames[0][i] = mw.config.get( 'wgMonthNames' )[i].toLowerCase();
ts.monthNames[1][i] = mw.config.get( 'wgMonthNamesShort' )[i].toLowerCase().replace( '.', '' );
regex.push( $.escapeRE( ts.monthNames[0][i] ) );
regex.push( $.escapeRE( ts.monthNames[1][i] ) );
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Build piped string
regex = regex.join( '|' );
// Build RegEx
// Any date formated with . , ' - or /
ts.dateRegex[0] = new RegExp( /^\s*\d{1,2}[\,\.\-\/'\s]{1,2}\d{1,2}[\,\.\-\/'\s]{1,2}\d{2,4}\s*?/i);
// Written Month name, dmy
ts.dateRegex[1] = new RegExp( '^\\s*\\d{1,2}[\\,\\.\\-\\/\'\\s]*(' + regex + ')' + '[\\,\\.\\-\\/\'\\s]*\\d{2,4}\\s*$', 'i' );
// Written Month name, mdy
ts.dateRegex[2] = new RegExp( '^\\s*(' + regex + ')' + '[\\,\\.\\-\\/\'\\s]*\\d{1,2}[\\,\\.\\-\\/\'\\s]*\\d{2,4}\\s*$', 'i' );
}
function explodeRowspans( $table ) {
// Split multi row cells into multiple cells with the same content
$table.find( '[rowspan]' ).each(function() {
var rowSpan = this.rowSpan;
this.rowSpan = 1;
var cell = $( this );
var next = cell.parent().nextAll();
for ( var i = 0; i < rowSpan - 1; i++ ) {
var td = next.eq( i ).find( 'td' );
if ( !td.length ) {
next.eq( i ).append( cell.clone() );
} else if ( this.cellIndex === 0 ) {
td.eq( this.cellIndex ).before( cell.clone() );
} else {
td.eq( this.cellIndex - 1 ).after( cell.clone() );
}
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
});
}
function buildCollationTable() {
ts.collationTable = mw.config.get( 'tableSorterCollation' );
ts.collationRegex = null;
if ( ts.collationTable ) {
var keys = [];
// Build array of key names
for ( var key in ts.collationTable ) {
if ( ts.collationTable.hasOwnProperty(key) ) { //to be safe
keys.push(key);
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
}
if (keys.length) {
ts.collationRegex = new RegExp( '[' + keys.join( '' ) + ']', 'ig' );
}
}
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
function cacheRegexs() {
if ( ts.rgx ) {
return;
}
ts.rgx = {
IPAddress: [
new RegExp( /^\d{1,3}[\.]\d{1,3}[\.]\d{1,3}[\.]\d{1,3}$/)
],
currency: [
new RegExp( /^[£$€?.]/),
new RegExp( /[£$€]/g)
],
url: [
new RegExp( /^(https?|ftp|file):\/\/$/),
new RegExp( /(https?|ftp|file):\/\//)
],
isoDate: [
new RegExp( /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/)
],
usLongDate: [
new RegExp( /^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/)
],
time: [
new RegExp( /^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(am|pm)))$/)
]
};
}
/* Public scope */
$.tablesorter = {
defaultOptions: {
cssHeader: 'headerSort',
cssAsc: 'headerSortUp',
cssDesc: 'headerSortDown',
cssChildRow: 'expand-child',
sortInitialOrder: 'asc',
sortMultiSortKey: 'shiftKey',
sortLocaleCompare: false,
parsers: {},
widgets: [],
headers: {},
cancelSelection: true,
sortList: [],
headerList: [],
selectorHeaders: 'thead tr:eq(0) th',
debug: false
},
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
dateRegex: [],
monthNames: [],
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
/**
* @param $tables {jQuery}
* @param settings {Object} (optional)
*/
construct: function( $tables, settings ) {
return $tables.each( function( i, table ) {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Quit if no thead or tbody.
if ( !table.tHead || !table.tBodies ) {
return;
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Declare and cache.
var $document, $headers, cache, config, sortOrder,
$table = $( table ),
shiftDown = 0,
firstTime = true;
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// New config object.
table.config = {};
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Merge and extend.
config = $.extend( table.config, $.tablesorter.defaultOptions, settings );
// Save the settings where they read
$.data( table, 'tablesorter', config );
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Get the CSS class names, could be done else where.
var sortCSS = [ config.cssDesc, config.cssAsc ];
var sortMsg = [ mw.msg( 'sort-descending' ), mw.msg( 'sort-ascending' ) ];
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Build headers
$headers = buildHeaders( table, sortMsg );
// Grab and process locale settings
buildTransformTable();
buildDateTable();
buildCollationTable();
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Precaching regexps can bring 10 fold
// performance improvements in some browsers.
cacheRegexs();
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Apply event handling to headers
// this is to big, perhaps break it out?
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
$headers.click( function( e ) {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
if ( firstTime ) {
firstTime = false;
// Legacy fix of .sortbottoms
// Wrap them inside inside a tfoot (because that's what they actually want to be) &
// Move them up one level in the DOM
var sortbottoms = $table.find('tr.sortbottom').wrap('<tfoot>');
sortbottoms.parents('table').append(sortbottoms.parent());
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
explodeRowspans( $table );
// try to auto detect column type, and store in tables config
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
table.config.parsers = buildParserCache( table, $headers );
// build the cache for the tbody cells
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
cache = buildCache( table );
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
var totalRows = ( $table[0].tBodies[0] && $table[0].tBodies[0].rows.length ) || 0;
if ( !table.sortDisabled && totalRows > 0 ) {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Cache jQuery object
var $cell = $( this );
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Get current column index
var i = this.column;
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Get current column sort order
this.order = this.count % 2;
this.count++;
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// User only wants to sort on one column
if ( !e[config.sortMultiSortKey] ) {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Flush the sort list
config.sortList = [];
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Add column to sort list
config.sortList.push( [i, this.order] );
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Multi column sorting
} else {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// The user has clicked on an already sorted column.
if ( isValueInArray( i, config.sortList ) ) {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Reverse the sorting direction for all tables.
for ( var j = 0; j < config.sortList.length; j++ ) {
var s = config.sortList[j],
o = config.headerList[s[0]];
if ( s[0] == i ) {
o.count = s[1];
o.count++;
s[1] = o.count % 2;
}
}
} else {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Add column to sort list array
config.sortList.push( [i, this.order] );
}
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Set CSS for headers
setHeadersCss( $table[0], $headers, config.sortList, sortCSS, sortMsg );
appendToTable(
$table[0], multisort( $table[0], config.sortList, cache )
);
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Stop normal event by returning false
return false;
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Cancel selection
} ).mousedown( function() {
if ( config.cancelSelection ) {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
this.onselectstart = function() {
return false;
};
return false;
}
} );
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
} );
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
},
addParser: function( parser ) {
var l = parsers.length,
a = true;
for ( var i = 0; i < l; i++ ) {
if ( parsers[i].id.toLowerCase() == parser.id.toLowerCase() ) {
a = false;
}
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
if ( a ) {
parsers.push( parser );
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
},
formatDigit: function( s ) {
if ( ts.transformTable !== false ) {
var out = '',
c;
for ( var p = 0; p < s.length; p++ ) {
c = s.charAt(p);
if ( c in ts.transformTable ) {
out += ts.transformTable[c];
} else {
out += c;
}
}
s = out;
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
var i = parseFloat( s.replace( /[, ]/g, '' ).replace( "\u2212", '-' ) );
return ( isNaN(i)) ? 0 : i;
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
},
formatFloat: function( s ) {
var i = parseFloat(s);
return ( isNaN(i)) ? 0 : i;
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
},
formatInt: function( s ) {
var i = parseInt( s, 10 );
return ( isNaN(i)) ? 0 : i;
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
},
clearTableBody: function( table ) {
if ( $.browser.msie ) {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
var empty = function( el ) {
while ( el.firstChild ) {
el.removeChild( el.firstChild );
}
};
empty( table.tBodies[0] );
} else {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
table.tBodies[0].innerHTML = '';
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
}
};
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Shortcut
ts = $.tablesorter;
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Register as jQuery prototype method
$.fn.tablesorter = function( settings ) {
return ts.construct( this, settings );
};
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Add default parsers
ts.addParser( {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
id: 'text',
is: function( s ) {
return true;
},
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
format: function( s ) {
s = $.trim( s.toLowerCase() );
if ( ts.collationRegex ) {
var tsc = ts.collationTable;
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
s = s.replace( ts.collationRegex, function( match ) {
var r = tsc[match] ? tsc[match] : tsc[match.toUpperCase()];
return r.toLowerCase();
} );
}
return s;
},
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
type: 'text'
} );
ts.addParser( {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
id: 'IPAddress',
is: function( s ) {
return ts.rgx.IPAddress[0].test(s);
},
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
format: function( s ) {
var a = s.split( '.' ),
r = '',
l = a.length;
for ( var i = 0; i < l; i++ ) {
var item = a[i];
if ( item.length == 1 ) {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
r += '00' + item;
} else if ( item.length == 2 ) {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
r += '0' + item;
} else {
r += item;
}
}
return $.tablesorter.formatFloat(r);
},
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
type: 'numeric'
} );
ts.addParser( {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
id: 'currency',
is: function( s ) {
return ts.rgx.currency[0].test(s);
},
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
format: function( s ) {
return $.tablesorter.formatDigit( s.replace( ts.rgx.currency[1], '' ) );
},
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
type: 'numeric'
} );
ts.addParser( {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
id: 'url',
is: function( s ) {
return ts.rgx.url[0].test(s);
},
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
format: function( s ) {
return $.trim( s.replace( ts.rgx.url[1], '' ) );
},
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
type: 'text'
} );
ts.addParser( {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
id: 'isoDate',
is: function( s ) {
return ts.rgx.isoDate[0].test(s);
},
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
format: function( s ) {
return $.tablesorter.formatFloat((s !== '') ? new Date(s.replace(
new RegExp( /-/g), '/')).getTime() : '0' );
},
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
type: 'numeric'
} );
ts.addParser( {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
id: 'usLongDate',
is: function( s ) {
return ts.rgx.usLongDate[0].test(s);
},
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
format: function( s ) {
return $.tablesorter.formatFloat( new Date(s).getTime() );
},
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
type: 'numeric'
} );
ts.addParser( {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
id: 'date',
is: function( s ) {
return ( ts.dateRegex[0].test(s) || ts.dateRegex[1].test(s) || ts.dateRegex[2].test(s ));
},
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
format: function( s, table ) {
s = $.trim( s.toLowerCase() );
for ( var i = 1, j = 0; i < 13 && j < 2; i++ ) {
s = s.replace( ts.monthNames[j][i], i );
if ( i == 12 ) {
j++;
i = 0;
}
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
s = s.replace( /[\-\.\,' ]/g, '/' );
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Replace double slashes
s = s.replace( /\/\//g, '/' );
s = s.replace( /\/\//g, '/' );
s = s.split( '/' );
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Pad Month and Day
if ( s[0] && s[0].length == 1 ) {
s[0] = '0' + s[0];
}
if ( s[1] && s[1].length == 1 ) {
s[1] = '0' + s[1];
}
var y;
if ( !s[2] ) {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Fix yearless dates
s[2] = 2000;
} else if ( ( y = parseInt( s[2], 10) ) < 100 ) {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Guestimate years without centuries
if ( y < 30 ) {
s[2] = 2000 + y;
} else {
s[2] = 1900 + y;
}
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
// Resort array depending on preferences
if ( mw.config.get( 'wgDefaultDateFormat' ) == 'mdy' || mw.config.get( 'wgContentLanguage' ) == 'en' ) {
s.push( s.shift() );
s.push( s.shift() );
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
} else if ( mw.config.get( 'wgDefaultDateFormat' ) == 'dmy' ) {
var d = s.shift();
s.push( s.shift() );
s.push(d);
}
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
return parseInt( s.join( '' ), 10 );
},
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
type: 'numeric'
} );
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
ts.addParser( {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
id: 'time',
is: function( s ) {
return ts.rgx.time[0].test(s);
},
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
format: function( s ) {
return $.tablesorter.formatFloat( new Date( '2000/01/01 ' + s ).getTime() );
},
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
type: 'numeric'
} );
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
ts.addParser( {
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
id: 'number',
is: function( s, table ) {
return $.tablesorter.numberRegex.test( $.trim( s ));
},
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
format: function( s ) {
return $.tablesorter.formatDigit(s);
},
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
type: 'numeric'
} );
Review and clean up of jquery.tablesorter.js + applying code conventions * Dropping redundant "new function(){}" construction, instead using the closure we already have for the local scope. * Adding more function documentation * Whitespace contentions * Passing jQuery object to the $.tablesorter.construct and creating jQuery plugin function in $.fn.tablesorter (per jQuery convention, this allows $.tablesorter.construct to be used directly without having to use .apply() to get the this-context right). * Making use of the arguments that jQuery.fn.each passes by default in $.tablesorter.construct (this/that => table) * Renaming a few single-letter variables to something more descriptive (c => $row, r => regex etc.) * Changed order of local functions in order of calling and dependancy (fixed JSHint potential implied globals). Also makes reading/understanding them easier. * Removed commented out code * Added more line breaks to separate blocks * Merge var-statements together * Declare 'ts' shortcut on top of the local scope, define 'ts' shortcut directly after definition of $.tablesorter * Adding public member placeholders, populated by private functions, to the initial object instead of inside the functions. This way the members can be seen centrally (dateRegex, monthNames) * Syntax/JSHint fixes (Passes 100% now; Globals: mw, jQuery) - 'list' used out of scope. In function buildParserCache: "var list" was defined under an if-condition, but returned outside of it, this fails in the 'else' case. Moved var list outside the if-condition - Strict === comparison to 0, null, undefined, false, true, '' etc. - Require curly braces around all blocks * Performance improvements (see also http://www.mediawiki.org/wiki/JSPERF) - Using dot notation (obj.member = {}), instead of $.extend(obj, { member: .. }) for single additions. No need for $.extend - Object literal {foo}, instead of new function(){ this.foo } - Strict/fast comparison to undefined, without typeof and/or string evaluation - cacheRegexs() is uselses if if re-creates the cache every time. Using static cache instead (which was likely the intention)
2011-06-26 04:36:02 +00:00
} )( jQuery );