Skip to content
Rob Garrison edited this page Dec 13, 2017 · 114 revisions

Wiki: Home | FAQ | Customize | Snippets | Search | Language | Changes | Older-changes | Change summary

Milestones: 2.29 | 2.28 | 2.27 | 2.26 | 2.25 | 2.24 | 2.23 | 2.22 | 2.21 | 2.20 | See Older_changes for previous versions

  • Core:
    • Fix non-typical use of selectorHeaders. See issue #1459.
    • Update external header icons on sort. Fixes issue #1483.
    • Remove an empty block.
  • Filter:
    • Select exact matches ignore "and" and "or" keywords. Fixes issue #1486.
  • Resizable:
    • addLastColumn stops adding handles to hidden columns. Fixes issue #1485.
  • Scroller:
  • Vertical Group:
  • Docs:
    • Fix pager example.
    • List all contained IP parsers. Fixes issue #1484.
    • Fix Bootstrap v2 demo; restored gyphs images.
  • Meta:
    • Update authors.

Version 2.29.0 (9/27/2017)

  • Core:
  • ColumnSelector:
  • Grouping:
    • Fix compatibility with columnSelector widget.
  • Output:
    • Modify internal process function to allow outputting of data without adding it to the table.
  • Resizable:
  • Scroller:
    • Save position to fix scroller_upAfterSort: false; See PR #1441. This should fix issue #1297 - The current position is now saved on scroll so it can be restored after sorting; thanks @lbodtke!
    • Update scroll position after fixing columns.
  • Sort2Hash:
    • Prevent sort2Hash from adding extraneous entries to browser history. Use window.location.replace to update the browser URL only, rather than window.location.hash, which modifies the browser history. See PR #1447; thanks @alexweissman!
  • StickyHeaders:
  • UITheme:
    • Remove bootstrap v2 refs & fix docs. See issue #1432.
  • Docs:
    • Miscellaneous fixes and updates.
    • Add more info about zebra widget when the table is not visible. See PR #1438; thanks @Federico-G!
    • Fix alignCharacter widget reference to css4.
    • Update userfrosting link in the readme.
    • Update to Bootstrap v4.0.0-beta.
    • Fix colspan demo.
  • Themes:
    • Rename icon-white to bootstrap-icon-white. Fixes issue #1432.
  • Meta:
    • Update dependencies.
    • Build: maintain ie8 support to fix issue #1431.

Version 2.28.15 (7/4/2017)

  • Core:
    • Use calculated index instead of DOM index. See pull #1424; thanks @ced-b!
    • Fix check count cell indexing.
  • ColumnSelector:
    • Remove colspan adjustments when widget removed.
    • Include tbody colspan updates on removal.
  • Filter:
    • Add namespacing to filter-formatter listeners. Needed to prevent JS error when a "resetToLoadState" is triggered and the "filterFomatterUpdate" bindings are still firing.
    • Fix namespacing of events.
  • Sort2Hash:
    • Prevent filter update if unchanged & compare (with) hash filter.
    • Fix p's (reference to pager object).
  • Docs
    • CSS fixed to comply with editable_wrapContent : <div>. See pull #1420; thanks @LaurentBarbareau!
    • Remove note on contenteditable wrapping. See pull #1420.
    • Update pager widget options in demo code.
    • Use src files in filter formatter demo for testing.
  • Meta:
    • Include js & css folders with bower installs.

Version 2.28.14 (6/8/2017)

  • Core:
    • Show console error for mismatched column count. See issue #1415.
  • Pager:
    • (addon) Ensure ajax is called after filter widget init. Fixes issue #1389.
    • (addon) Fix height issues for certain browsers (border-spacing). See pull #1418; thanks @DoctorWhite
    • (widget) Apply height adjustment code to pager widget.
    • Use selectorRemove to remove error rows. Removes error rows with dynamically changed class names.
  • Meta:

Version 2.28.13 (6/2/2017)

  • Core:
  • StickyHeaders:
    • Fix dynamic updating of offset. Fixes issue #1412.
    • Init with visible headers on partial scroll
  • Meta:
    • Set jQuery dependency back to >=1.2.6. Fixes issue #1411.
    • Add package-lock.json file.

Version 2.28.12 (5/26/2017)

  • ColumnSelector:
    • Don't clear container on updateAll. Fixes issue #1406.
  • Filter:
    • Return null from filter_selectSource to prevent select updates; From discussion in IRC with @alexweissman.
    • Select searches now process filter types, then exactly match. Previously only exact matches were performed by default, filter types were ignored. This broke the filter + jQuery UI selectmenu demo.
  • Docs/Meta:

Version 2.28.11 (5/24/2017)

  • Docs:
    • Reword sortReset method description. See issue #1404.
  • Columns:
    • Initialize after pager widget.
  • CssStickyHeaders:
  • Filter:
    • Attempt to fix issue #1152 (liveSearch).
    • Second attempt at issue #1152.
    • Trigger liveSearch on blur & cleanup.
  • Pager (widget only):
    • Allow ajax processing on init.
    • Ensure ajax is called after filter widget initializes.
  • Parsers:
    • Update links to sugarjs/datejs demos.
  • Meta:
    • Update dependencies.

Version 2.28.10 (5/16/2017)

  • Core:
    • Disable updateCell method for child rows (temporary block until code is fixed).
    • Add namespace class name to table.
  • Parsers
    • Input-select:
      • Prevent input select parser from handling events from child rows. See pull #1399; thanks @andysleigh!
      • Remove unused variables & add ignoreChildRow option.
      • Bind & update stickyHeaders checkbox. Fixes issue #261.
  • Meta:
    • Use correct composer.json jQuery version. Fixes issue #1398.
    • Clarify use of GPLv2 license. See issue #1400.
    • Update dependencies.

Version 2.28.9 (5/3/2017)

  • Core:
    • Fix widget option changes across multiple tables; seen in the second table of the math page demo with the math_ignore option.
  • Docs:
    • Add page header section to Math docs. See #1392.
    • Fix misspelling.
    • update jQuery.
  • Math:
    • Include noop math_complete in defaults; prevents option not recognized warning

Version 2.28.8 (4/18/2017)

  • Docs:
    • Update version tags.
  • Core:
  • Filter:
    • Add equalFilters function; for more reliable comparisons.
  • Pager:
    • use equalFilters function for comparison. See issue #1384.
  • Resizable:
    • Add resizable_includeFooter option. Fixes issue #1386.
  • Scroller:
  • Storage:
    • Add options early to prevent validator message.
    • Add storage_storageType option & deprecate storage_useSessionStorage.
  • Meta:
    • Update dependencies x2.

Version 2.28.7 (4/4/2017)

  • Editable:
  • Filter:
    • Add "filterAndSortReset" method. See issue #1361.
    • Prevent JS error added from last update. Fixes issue #1377.
  • Meta:
    • Fix composer.json license.

Version 2.28.6 (4/2/2017)

  • Core:
    • Prevent overwritting default widgetOptions. Fixes issue #1356.
    • Fix method of saving default widgetOptions. See issue #1356.
    • Update column count after reset.
    • Add fix it (in Abelt) note for issue #1362.
    • Update widgets after sortReset. Fixes issue #1361.
    • The applyWidget callback now occurs after "tablesorter-ready" event.
  • Docs:
    • Update jQuery to v3.2.0.
    • Fix "update" labels from previous version.
    • Add note about Excel & output_encoding. See issue #1353.
    • Clarify parser & sorter class name differences.
    • Add note about event binding after build widget completes. See issue #1370.
    • Fixed linting issues.
    • Add some internal links.
  • Build:
    • Stop build widget option warnings.
  • Filter:
    • Compare last search array (instead of a combined string). Fixes issue #1363.
  • Output:
  • Pager:
    • Fix "all" option to not set when the option doesn't exist. See PR #1364; thanks @simenflatby!
    • Stop using combined filter values. See issue #1363.
    • Use "all" only when the option exists. Fixes #1364 & #1366.
  • Sort2Hash:
  • Parsers:
    • Add leading zero parser & demo.
  • Theme:
    • Add CSS highlight file; copied from the demo.
  • Meta:
    • Add composer.json file. Fixes issue #1355.
    • Readme: Move questions section closer to the top.
    • Update dependencies.
    • Fix indentation & remove extra spaces.
    • Remove cdnjs auto-update config - see CDNJS #9080.
    • Update SPDX license.

Version 2.28.5 (1/28/2017)

  • Docs: Fix "update" labels.
  • Output:
    • Prevent multiple popups/download with dblClick (i.e. triggering "outputTable" multiple times).
    • Remove extraneous console log.
  • Resizable:
    • Add "resizableUpdate" & "resizableReset" methods.
  • Scroller:
  • Readme: Add related project, tablesorter-pagercontrols

Version 2.28.4 (1/6/2017)

  • Docs:
  • Output:
    • Prevent error on output to an already open popup.
    • Add output_savePlugin option & update download code.
    • Add output_includeHeader option & docs. Fixes issue #1349.
  • Pager:
    • (widget only) make compatible with stickyHeaders. Fixes #1313:
      • Removed all references to stored pager.$goto and pager.$size
      • Removed check if header text matches header length - this breaks when a header row has a "tablesorter-ignoreRow" class name.
      • Add stickyHeader container to pager.$container in case the pager controls are inside the thead.
    • Fix rendering of sticky headers after ajax.
    • Use option to target inner header.
    • Restore check for new headers. Fixes #1343.
    • Add data-attribute override on output. See issue #1348.
  • StickHeaders:
    • Reduce widget priority below the pager widget priority.
  • Theme:
    • Add group widget css file. See issue #1346.
    • Add column widget support to Bootstrap. See issue #1347.
    • Update high-specificity blue theme - demo; see Stack Overflow.
    • Add theme.bootstrap_4.css file (demo; Bootstrap v4-alpha - do not use in production!).
    • Duplicated theme.bootstrap_3.css from theme.bootstrap.css (maintaining this non-versioned file name until Bootstrap v4-stable has been available for about 6 months).
  • Readme:
    • Update log for v2.28.3.

Version 2.28.3 (12/16/2016)

  • Core: Fix internal version numbering.
  • Grunt: add version check.

Version 2.28.2 (12/15/2016)

  • ColumnSelector:
  • Reorder:
    • Add style to <HEAD>.
  • Resizable:
  • Scroller:
  • Theme:
  • Meta:
    • Add jsDelivr CDN link to readme.
    • Add scss to dist folder.

Version 2.28.1 (12/08/2016)

  • Core:
  • Filter:
    • Fix searchDelay & minimum character count. See issue #1299.
    • Fix liveSearch ignoring searchDelay. See issue #1299.
  • Print
    • Use hasWidget function.
  • UI-theme:

Version 2.28.0 (11/27/2016)

  • Core:
    • Return value from getColumnData if not an object.
    • Include extra headers when adding unsorted class. Fixes issue #1306.
    • Add option validator. Fixes issue #1319.
    • Maintain original settings on resetToLoadState.
  • Docs:
    • Add missing colon in CSS. Fixes issue #1307.
    • Add notes on sortList overridding sortForce & sortAppend. See issue #1286.
    • Update sortTbody widget demo showing new option.
    • Add zebra widget to sort reset demo.
    • Define a triggered "update". Fixes issue #1317.
    • Clarify recalculation update method. Fixes issue #1317.
    • Explain difference between # and 0 in the math mask. Fixes issue #1320.
    • Add link to disable thead row example. Fixes issue #1326.
  • Filter:
    • Restore filter_searchDelay function. Fixes issue #1299.
  • Grouping:
  • Math:
    • Fix prefix/suffix option names & processing. Fixes issue #1305.
    • Remove math_prefix content prior to parsing cell values.
  • Pager:
    • Set ariaDisabled property to stop MS Edge crash. Fixes issue #1303.
    • Restore settings on resetToLoadState. Fixes issue #1311.
  • Tbodysort:

Version 2.27.8 (9/28/2016)

  • Core: minor code cleanup.
  • Docs: remove code in duplicate example-widget-filter-custom. See pull #1295; thanks @themilkman!
  • ColumnSelector: updateAll properly updates the popup. See Stack Overflow.
  • Pager: Maintain filter focus on custom controls. Fixes issue #1296.
  • Readme: Add link to Grav CMS. See issue #1290.

Version 2.27.7 (9/23/2016)

  • Core:
    • Include version in log.
    • Remove space from debug message.
  • Docs: update jQuery.
  • Filter:
    • Include "input" event for searches. See issue #1280.
    • Add support for descending sort on selectSources values.
  • Mark: Remove internal case matching.
  • Pager:
    • Allow for optional output callback in favour of parsable string. See pull #1283; thanks @joelperry93!
    • Add output function support to pager widget. See pull #1283.
    • Maintain pageDisplay ID, if one exists. Fixes issue #1288.
  • RepeatHeaders:
  • Testing: update jQuery usage.

Version 2.27.6 (9/1/2016)

  • Core: textSorter option now accepts class names. See Stackoverflow.
  • Docs:
    • Update emptyTo demo. See issue #1278.
    • Add $.tablesorter.defaults variable.
  • Grouping: Add "group-date-hour" group type; added to demo.
  • Mark:
  • Parser: Header checkbox remains unchecked when table is hidden. Fixes issue #1090.
  • Pager Custom Controls (beta)
    • Prevent out-of-range page numbers. Fixes issue #1276.
    • Allow settings ends and/or aroundCurrent to zero. See issue #1276.
    • Spacer settings now include wrapper element (a <span> by default).
    • Keyboard use changes.
      • A pager element must now be focused before keyboard keys work.
      • Keyboard keys now include left, right, up, down, pageUp, pageDown, home, or end.
      • pageKeyStep option added. Number of pages to skip with pageUp or pageDown.

Version 2.27.5 (8/22/2016)

  • Readme: Update IRC link to a free client.
  • Docs: Correct usage of Sugar v2.0+ sortCollage.
  • Filter: Add any match search by column text - see updated demo.
  • Parser: Fix JSHint issue.

Version 2.27.4 (8/18/2016)

  • Docs & parser: Update Sugar library v2.0+. Fixes issue #1275.
  • Docs: Add sortStable example.

Version 2.27.3 (8/17/2016)

  • Core: getColumnData now allows falsy values.
  • Filter:
    • Add delay to "filterFormatterUpdate". See issue #1237.
    • filter_liveSearch now accepts an object.
  • Pager: use ajax flag when calculating filtered rows.
  • Readme: Fix date of last release.
  • Testing: Update QUnit.

Version 2.27.2 (8/2/2016)

  • Docs: Update versions.
  • Core: Allow leading zeros in the time parser. Fixes issue #1269.
  • Mark: Actually include options this time! See issue #1243.

Version 2.27.1 (7/31/2016)

  • ColumnSelector: Fix undefined variable.
  • Mark: Fix linting issues.

Version 2.27.0 (7/31/2016)

  • Core:
    • updateCache now ignores "remove-me" rows.
    • Add column count to debug log.
    • Tweak internal sortVars & sortReset. Fixes #1137.
  • ColumnSelector:
    • Add max/min visible columns settings.
    • Set state to null for disabled columns - Fixes JSON issues with not storing undefined values.
    • Fix null comparison & incorrect option.
  • CurrentSort: Add currentSort widget. Fixes issue #1208.
  • Filter:
    • getFilters will now always return an array. Fixes issue #1250. API change
    • Allow ES6 regex flags.
    • Add rowIndex to filter data.
    • Trigger filter formatters after update. See issue #1237.
    • Selected column query works again. Fixes issue #1267; broken since a6b25ae.
  • Grouping: Prevent js errors on non-string values.
  • Mark: Add mark widget. Fixes issue #1243.
  • Math:
    • Add data-math-target attribute.
    • Add math-debug option.
  • Output:
    • Automatically ignore widget added rows.
    • Add "url" parameter to output_callback function.
  • Scroller: Update when applyWidgets is used. See issue #1261.
  • StickyHeaders: Add appendTo option.
  • UITheme: jQuery v1.12.0 renamed "carat" to "caret". Fixes issue #1257.
  • Parsers: Url parser now ignores "www" & removed parsed flag. The filter widget finds "http" querys.
  • Docs:
    • Fix docs javascript; some demos still using jQuery < 1.7.
    • Add scroller widget RTL details. See issue #906.
    • Clarify & expand grouping widget usage.
    • Include ajax type.
    • Add ajax type example to main docs.
    • Update jQuery UI & fix uitheme docs.
    • Remove old syntax highlighter.
    • Update theme switcher.
    • Switch to use jQuery <3.0.0 for Bootstrap demos; later reverted this change after updating to Bootstrap v3.3.7.
    • Add link to cssIgnoreRow example.
    • Clarify column selector initial state.
    • Fix HTML issues.
    • Add filter event function parameter examples.
  • Themes:
    • Hide icon when column is disabled.
    • Optimize PNGs in data URLs using ZopfliPNG as well.
    • Compress PNG images further. See pull #1251; thanks @Herst!
    • Add Materialize theme style. Fixes issue #1242.
  • Meta:
    • Grunt: Fix IIFE jQuery reference. Fixes issue #1255.
    • Grunt: Update dependencies.
    • Testing: Add filter anyMatch queries; Sadly unrelated to issue #1267.
    • Bower: Oust meta warnings. Fixes issue #1264.
    • Bower: Add recommending settings. Fixes issue #1265.

Version 2.26.6 (7/11/2016)

  • Global: Fix "updated" date in various widgets & pager.
  • Docs:
    • Cleanup links & license. Fixes issue #1244.
    • Add button type to all buttons.
    • Update to jQuery v3.1.0.
  • Core: Prevent undefined error in natural sort. See issue #1151.
  • Column Selector: Check visibility of cells after colspan. See issue #1238.
  • Filter
    • Filter formatter for Select2 v3.4.6 (v4.0+ still not supported)
      • Now adheres to case sensitivity setting. See issue #1237.
      • Update after filter row rebuilt. See issue #1237.
      • Properly remove case-insensitive flag in regex.
      • Properly escaped characters in regex.
    • Use uncached widgetOptions after inside events.
    • filter_hideFilters option now accepts a function. See issue #477.
  • Grouping:
    • Fix js error when storage isn't loaded.
    • Fix group_collapsed behavior. See issue #1247.
  • Pager:
    • Prevent ajax call on init. See issue #1196.
    • Prevent setting "all" value before initialization. See issue #1196.
  • Scroller: Save scroll position of window. See issue #1240.
  • UITheme: Modify filter row after filterInit.
  • View:
    • Update to get the raw text value of a column without the span wrap.
    • Trigger "viewComplete" in the view builder, not in init, otherwise you get no trigger when switching views.
    • Replace all instances, not just the first one.
  • Bower: Add license identifiers. See pull #1239; thanks @bckfnn!

Version 2.26.5 (6/28/2016)

  • Docs:
    • Optimize png images using using zopflipng; see pull #1230 thanks @PeterDaveHello!
    • Add showProcessing toggle button.
    • Add demo link for css3 animated showProcessing icons that actually works!
    • Update to use jQuery v3.0.0.
  • Readme: Update for previous version bump.
  • Filter: Do not return altered filters variable. Fixes issue #1237.
  • Grouping:
    • Use correct pager row indexing. Fixes issue #1232.
    • Prevent JS error with ajax & filtering. Fixes issue #1232.
    • Fix lint issue.
  • Resizable: Adjust handles on pager complete.
  • Pager:
    • Fix code alignment.
    • Fix filtered regular expression definition.

Version 2.26.4 (6/15/2016)

  • Version bump due to merging issues.

Version 2.26.3 (6/15/2016)

  • Distribution: Provide source css & js files on CDNJS. Fixes issue #1222.
  • Readme:
    • Make changelog link clickable. See pull #1221; thanks @aried3r!
    • Update badge for ZenHub.
  • Docs: Update main page to use jQuery 3.0.0-rc1 & add migrate.
  • Filter: Fix select2 lint issue.
  • Scroller: Hide <col> with hidden columns. Fixes issue #1229.
  • Grunt: Update dependencies & fix pager indentation.

Version 2.26.2 (5/28/2016)

  • Docs:
    • Add missing "tablesorter-ignoreRow" class. See issue #1218.
    • Update jQuery to 1.12.3 & add migrate for v3.0.
    • Correct grouping & resizable last update.
  • Filter:
    • Remove not any match limitation. See updated demo.
    • Fix select2 v3 filter extension. See issue #1216; this code does not work with select2 v4.
  • Testing: setFilters last parameter now true by default.

Version 2.26.1 (5/16/2016)

  • Docs:
    • Update setFilters method.
    • Update playground links & cleanup.
  • Core: Minor organization of options.
  • Filter:
    • Minor organization of options.
    • Allow any match searches with no input.
  • Group:
    • Escape angled brackets in group names. Fixes issue #1206.
    • Fix HTML escape string & prevent undefined error. Seeissue #1206.
    • Ensure empty cells get a header. Fixes issue #1209.
  • Math: Add math_completed callback.
  • Resizable: update resizable handle position after init. Fixes issue #1207.

Version 2.26.0 (5/1/2016)

  • Pager:
    • Save pager size as "all" vs number. Fixes issue #1196.
    • CAUTION: This change will pass "all", if set, as a page size to the server for ajax requests. So, this may break current server methods on the number of pages to return.
  • StickyHeaders: Include caption height in calculations. Fixes issue #1205.

Version 2.25.9 (4/29/2016)

  • Docs:
    • Fix search for next/previous result positioning.
    • Add sortMultiSortKey alternative settings. See issue #1200.
  • ColumnSelector:
    • Refresh method properly saves changes. Fixes issue #1198.
    • Fix missing class name; fallback to "filtered" when the filter_filteredRows widget option is undefined.
    • Add columnSelector_maxPriorities. Fixes issue #1204.
  • Filter:
    • Include milliseconds in formatter date comparison. See issue #1191.
    • Properly initialize after using applyWidgetId. Fixes issue #1197.
  • Scroller:
    • Add multi-line caption height support in fixed column. Fixes issue #1202.
  • Parser (checkbox):
    • Header checkbox properly updates row class names.
    • Fix indeterminate checkbox issue in IE.
    • Fix indeterminate checkbox state checked state in IE.
    • See issue #1199.

Version 2.25.8 (4/11/2016)

  • Core: duplicateSpan set to false now uses textExtraction instead of setting the data to an empty string; see [Stackoverflow](See http://stackoverflow.com/q/36449711/145346).
  • Docs:
    • Update jQuery.
    • Various fixes.
  • Theme: Bootstrap: default cursor for sorter-false. Fixes issue #1189.
  • Print: Process lazyload images before printing. See issue #1169.
  • Grunt:
    • Update dependencies.
    • Update Qunit.

Version 2.25.7 (4/1/2016)

  • Filter: Check match on both internal & external filters. See issue #1177.
  • Lazyload: Trigger window scroll after update. See issue #1169.
  • Scroller: Throttle scroll event. Fixes issue #1186.
  • StickyHeaders: Update on table resize for Firefox. Fixes issue #1183.
  • Grunt: Update dependencies.

Version 2.25.6 (3/18/2016)

  • Core:
    • Add debug warning when widget not found.
    • Add debug warning when widget is added more than once.
  • Docs:
    • More notes added about including .filter { display: none; } in custom themes. See issue #1172.
    • Add support badges to readme.
  • Filter:
  • Lazyload:
    • Trigger lazyload after filtering. Fixes issue #1169.
    • Change skip_invisible option default to true.
  • Grunt:
    • Update dependencies.

Version 2.25.5 (3/1/2016)

  • Global:
    • Replace array push functions in main loops.
  • Docs:
    • Update storage widget changes.
    • Various corrections.
  • Editable:
    • Fix lint issue.
    • Replace pasted content with plain text. Fixes issue #994.
  • Filter:
  • Group:
    • Use non-cached variables when added after core init. Fixes issue #1158.
  • Math:
    • General cleanup & optimization.
    • Leave table in place or filter input lost. Fixes issue #903.
  • Print:
    • Stop print event propagation from nested tables. Fixes issue #1160.
  • Scroller:
  • StickyHeaders:
  • Storage:
  • Parser:
    • Add huge number parser. See issue #1161.
    • Huge number correction (make JSCS happy).
  • Build:
    • Update dependencies. Several times!

Version 2.25.4 (2/15/2016)

  • Core:
    • Remove id from widgets option prior to remove function. See issue #1155.
    • applyWidgetsId properly accepts jQuery table element.
  • ColumnSelector:
  • Editable:
    • Use execCommand to select all text, if supported.
  • Filter:
  • Grouping:
    • Reapply zebra after collapsed group opens. Fixes issue #1156.
  • Pager:
  • Docs:
    • Add ignoreRow class to pager row.
    • Show actual theme names; to use in the themes option.
  • Build: Update dependencies.
  • Testing: re-align code.

Version 2.25.3 (1/21/2016)

  • Filter:
    • Check that filter is not undefined before encoding/decoding it & treat null and undefined filters the same. See pull #1130; thanks tim-schilling!
    • Search delay now works properly. Fixes issue #1134.
  • Docs:
    • Add clarification about hiding columns. See issue #1133.
  • Build:
    • Update dependencies.

Version 2.25.2 (1/15/2016)

  • Docs:
    • Update main demo & test to use jQuery 3.0.0-beta.
  • Core:
    • Revert extra header class name updating. See issue #1116.
  • Filter:
  • Output:
  • Parsers:
    • checkbox value should no longer change. Fixes issue #1125.

Version 2.25.1 (1/10/2016)

  • Docs:
    • Update to jQuery v1.12.0.
    • Fix HTML hint issues.
  • Core:
    • Fix time parser detection. See issue #1107.
    • Add multiple widgets from table class. Fixes issue #1109.
    • Fix extra header class name updating. See issue #1116.
    • Fix typo in comments.
  • ColumnSelector:
  • Filter:
    • Use replacement character instead of null (for IE).
    • Fix "or" test regex. Fixes issue #1117.
    • Restore return false to fix unit tests.
    • Functions now get exact data, ignoring parsed flag. Fixes issue #1107.
    • Parsed flag now all set true if filter_useParsedData is true & stop using config.$headers.
  • Output:
    • output_callback can now return modified data. See issue #1121.
  • Grunt:
    • Add HTML hint.

Version 2.25.0 (12/13/2015)

  • Global
    • Use triggerHandler instead of trigger to prevent event bubble to any outer table. See issue #1090.
  • Core
    • Add duplicateSpan option (default is true) with unit tests (demo).
    • Add triggered "removeWidget" method & update docs.
    • applyWidgetId now properly initializes a widget, if needed.
    • applyWidgetId now adds widget name to widgets option.
    • Show parsed data in debug log. See issue #1084.
    • Prevent js error - calling "applyWidgetId" on non-existant widget.
    • Prevent js error - trying to apply a non-existent widget.
    • Fix "updateCell" issue. If "updateCell" is triggered on a thead cell, or bubbles to an outer table, tablesorter no longer gets stuck in an "isUpdating" loop.
    • Ensure table has initialized before allowing use of "updateCell". See issue #1099.
    • Fix cache debug log for multiple tbodies.
    • After init, computeColumnIndex now only adds "data-column" attribute to mismatched indexes - lessens DOM interaction on tbody (e.g. math widget).
    • Add "sortBeforeEnd" event for internal widget binding.
    • Renamed $.tablesorter.formatSortingOrder to $.tablesorter.getOrder.
    • Include table in console.error if an issue is encountered during initialization.
    • Clean up warning when no parser is found for given data.
    • Fix config.sortVars js error for non-existent header cells (makes second column of this demo sortable using "sorton").
  • Docs
    • Add reference to datejs parser. See issue #1084.
    • Add note that reflow widget only works with HTML5.
    • Add note in filter localization about escaping special characters in regular expressions. See issue #1101.
    • Update & add all options in math widget demo.
    • Fix search tooltip not hiding on side menu close.
    • Update to Bootstrap v3.3.6.
  • Editable
    • Ensure table has initialized before allowing use of "updateCell". See issue #1099.
  • Filter
    • Prevent js error when columnFilters are false. Fixes issue #1091.
    • Restore column specific default filters. Fixes issue #1088.
    • Prevent insideRange filter type (widget-filter-type-insideRange.js) searches on "all" columns.
    • Prevent edge case js error.
    • Add "filterBeforeEnd" event for internal widget binding.
    • Filters that span multiple columns now have the correct "data-column" value set.
    • Consolidated code that parsed "data-column" ranges into a findRange function (e.g. external filters with data-column="1-3,4-6,8").
  • Math
    • Add "data-math-filter" cell override of math_rowFilter option. See issue #1083.
    • Limit tbody cell processing & use cellIndex whenever possible. See issue #1048.
    • Use core textExtraction on cells. See issue #1098.
    • Initial calculation performed once - changed binding to either "filterEnd" or "pagerComplete", not both.
    • Added change flag so a cache update is only performed when cell content inside of a sortable tbody was modified.
    • Fix "data-math-filter" on "all" cell calculation with fixes to getRow & getColumn functions so that filters get priority over the "filtered" row check. See issue #1083.
    • Another "data-math-filter" fix and change flag fix. See issue #1083; thanks to @lindonb for all the feedback!
    • math_none can now be set to an empty string.
  • Print
  • Parsers
    • Checkbox row class & header now work with sorter-false set. See issue #1090.
    • Return true for header checkbox to work in IE8. See issue #1090.
  • Misc
    • gitignore file - ignore "idea" demos used for testing.

Version 2.24.6 (11/22/2015)

  • Core
    • Prevent "tablesorter-ready" event from firing multiple times in a row.
    • While detecting parsers, use cssIgnoreRow & stop after 50 rows.
  • Docs
    • Update utility options section.
  • Math
    • Add math_rowFilter option. See issue #1083.
    • Spelling corrections to math_rowFilter option.
    • Ensure internal updating flag gets cleared. Fixes issue #1083.
  • Pager
    • Initial page no longer ignored (no filter widget). Fixes issue #1085.
    • Fix other page set issues (no filter widget). Fixes issue #1085.
    • Fix page set issues (with filter widget). Fixes issue #1085.
    • Clean up pager widget code.
  • Print
    • Add print_now option. See issue #1081.
    • Fix print & close button actions.
  • SortTbodies
    • Use config parameter for numeric sorting. See issue #1082.
  • Parsers:
    • Update parser-input-select.js. See issue #971.
    • parser-date-month.js no longer removes other language data.
    • Add alternate date range parser & update filter insideRange filter type.
    • Don't use $.extend for simple additions.
  • Misc
    • Update grunt dependencies.

Version 2.24.5 (11/10/2015)

  • Pager: Fix javascript error in pager addon when using ajax.

Version 2.24.4 (11/10/2015)

  • Core
    • sortRestart works again with multi-row headers. Fixes issue #1074.
    • Add sortDisabled language setting; used in aria-labels.
  • Docs
  • Filter
  • Group
    • Include group & row data parameters in group_formatter. Fixes issue #1077.
  • HeaderTitles
    • Update aria-label usage.
  • Math
  • Pager
    • Clear tbody prior to calling ajaxProcessing. This again allows the developer to add the HTML to the table instead of needing to return it.
  • Sort2Hash
    • Make widget functions accessible.
    • Add 2 utility functions to simplify hash processing.
  • Toggle
    • Add new widget to enable/disable sort & filter. See issue #1075.
  • Parser
    • Add "file-extension" parser.
  • Misc
    • Grunt: Fix uglify comment removal & update dist folder.

Version 2.24.3 (11/4/2015)

  • Core
    • jQuery filter element parameter not defined in v1.2.6.
    • Fix sortRestart preventing sort. Fixes issue #1072.
  • Filter
    • Convert filter array to include all strings. Fixes issue #1070.
    • setFilter "apply" parameter now defaults to true. See issue #1071.
  • Resizable
    • Fix widget bindings after tablesorter "updateAll" event. See pull #1073; thanks scr34m!
  • Misc
    • One more attempt at setting ignore in bower.json. See pull #1063.

Version 2.24.2 (11/2/2015)

  • Misc
    • Restory empty bower.json ignore setting... bower is installing an empty dist folder.

Version 2.24.1 (11/2/2015)

  • Core
    • Cache "shortDate" parser & time parser now extracts the time.
  • Group
    • Add optimizations from pull #830; thanks to VorontsovIE!
    • Update demo to use new "weekday-index" parser when "group-date-week" is set, and updated "time" parser when "group-date-time" is set.
  • Print
    • Rows option now accepts custom css selectors.
  • Sort2Hash
    • Remove history push state as it ignored other tables on the page.
  • Parsers
    • Globalization parser now caches the Globalize object in a same named option.
    • Convert month & weekday parsers to utilize globalization data.
    • Add "weekday-index" parser - this parser ignores the actual date but saves the weekday from a date object
  • Misc

Version 2.24.0 (10/31/2015)

  • Docs
    • Fix mixed content using GitHub buttons on main page. See pull #1029; thanks OmgImAlexis!
    • Clarify use of pager ajaxUrl option.
    • Add theme class to tables to prevent FOUC.
    • Fix left menu push. The body no longer squeezes the content.
    • Update stickyHeaders after menu close.
    • Include horizontal scroll while jumping to search result.
    • Add some examples (filter_cssFilter).
  • Global
    • Call internal functions directly; stop using triggered events.
  • Core
    • Use plain javascript to set index attribute & remove unused variable. See issue #1048.
    • Add "entire column colspan" support. See issues #485, #746 & #1047.
    • Fix parser detect & sortVars on columns that don't exist due to colspan. See issues #485, #746 & #1047.
    • Reformat structure & expand variable names.
    • Add rowFilter parameter to getColumnText function.
    • Fix multisort indicators. Fixes issue #1005, again.
    • sortAppend now accepts an object of column references; see Stackoverflow.
    • Internalize sort counter & fix spanned sorts.
    • Add "tablesorter-ready" event.
    • Add widget from class before adding widget options.
    • Maintaining support for IE7-8 until 1/12/16.
  • Chart
    • Fix chart_layout column indexing.
  • ColumnSelector
    • Add mediaqueryHidden option. Resolves issue #964.
    • Extra rows & colspans now supported in thead & tfoot. Fixes issue #501.
    • Fix jscs reported issues.
  • Filter
    • Encode/decode filters in case they end up in cookies. See issue #1026.
    • Add "entire column colspan" support. See issues #485, #746 & #1047.
    • hideFilters applies to stickyHeaders again. Fixes issue #1050.
    • Prevent error in formatterUpdated. Fixes issue #1056.
  • Grouping
  • HeaderTitles
    • Switch to use internalized sort counter.
  • Lazyload
    • Add new widget. Demo
  • Math
    • Created new calculation type "below". It works just like "above" except in other direction starting from top to bottom. See pull #1027; thanks LvLynx!
    • Tweak changes & more tweaks for better compression.
    • Detach table prior to indexing all cells. See issue #1048.
    • Add math_none option.
    • Include config parameter in math equations - needed for math_none option.
  • Output
    • Correct formatContent function comment (missing widgetOptions variable)
    • Do not include nested table headers with parent. Fixes issue #1040.
  • Pager
    • Clear tbody if no data returned by ajax. See issue #1032.
    • Add "all" setting for page size methods; includes select option & all methods. See issue #1055.
    • Fix pager widget demo destroy method.
    • destroyPager again reveals all rows. Fixes issue #1055.
    • Parse page numbers to prevent user seeing NaN.
    • Parse page size updates.
  • Print
    • Internal variable tweaks.
    • Include css to hide filter rows. Fixes issue #1046.
    • Add print delay; allows browsers to render print preview.
  • Scroller
  • Sort2Hash
    • Update to include pager (page & size) and filter parameters.
  • SortTbodies
    • Moved config string defaults to $.tablesorter.strings to match core reformatting.
  • StickyHeaders
    • hideFilters applies to stickyHeaders again. Fixes issue #1050.
  • View
    • Add new widget. Demo.
    • Fix jscs reported issues.
  • Parsers
    • Globalize parser now allows a different language per column.
    • Fix jscs reported issues.
  • Misc

Version 2.23.5 (10/4/2015)

  • Core:
  • Docs:
    • Add instructions on how to use the new filter option (filter_childWithSibs).
    • Include filter reset in above demo.
    • Fixed spelling mistake x2. See pull #1024 & #1025; thanks OmgImAlexis!
    • Add note data-attribute values added to both parsed & raw data. Closes issue #983.
    • Move all javascript to page bottom.
  • Filter:
    • Keep parent match when no child rows match. See issue #1020.
    • Ignore filter_childWithSibs when filter_childByColumn is false. See issue #1020.
    • Select includes child rows when filter_childByColumn is set.
  • Pager
    • Prevent hiding child rows when disabling or destroying the pager. See issue #1020.

Version 2.23.4 (9/23/2015)

  • Core:
    • Ensure widgets don't get cached options. Fixes issue #946.
    • Update natural sort regular expression for chunking data.
    • Use window.console check to prevent IE9 error. Fixes issue #1019.
  • Filter:
    • Modified internal variable.
    • Add internal processOptions function & code cleanup.
    • Fix external filters not allowing columns > 9. See pull #1021; thanks a-mair!
    • Add filter_childWithSIbs option. Fixes issue #1020.
  • Build
    • Update dependencies.

Version 2.23.3 (9/1/2015)

  • Docs:
    • Correction to dateFormat demo.
  • Core:
    • Corrected sorting of col/rowspan in thead. Fixes issue #1005.
    • Correct header sort indicators in row/colspans. Fixes issue #1005.
  • Filter:
    • Use namespacing when binding reset. Fixes issue #1001.
    • Restore triggered change namespace & prevent search before init. Fixes issue #1002.
  • Group:
    • Remove unused variable.
    • Add group_forceColumn & group_enforceSort options. Fixes issue #1000.

Version 2.23.2 (8/23/2015)

  • Readme
    • Corrections for last update
  • Docs
    • Add parsed values function no longer wraps empty content.
  • Core
    • Cache regular expressions.
  • ColumnSelector
    • Add columnSelector_updated option (triggered event name).
  • Filter
    • Allow dynamically changing the "any match" filter. Fixes issue #998.
    • Cache regular expressions.
    • Add reference to widget code to make the file more compressible.

Version 2.23.1 (8/19/2015)

  • Core

    • Prevent js error when $.tablesorter.showError is called without a string. Fixes issue #997.

    • Updated $.tablesorter.showError function by including a settings parameter; a parameter passed by jQuery's .ajaxError() method, but was previously omitted.

      $.tablesorter.showError( table, xhr, settings, exception );

      I didn't bump the minor version as this is somewhat on the edge of calling this a breaking change.

  • Pager

    • Include settings parameter from ajaxError method, between the xhr and exception parameters to match the order of parameters returned by jQuery .ajaxError() method.

      ajaxError: function( config, xhr, settings, exception ){ return exception; };

Version 2.23.0 (8/17/2015)

  • Core:
    • Prevent addRows error. See issue #979.
    • Make all updating methods public
      • Call a function instead of triggering an event on the table. Changes include:
        • $.tablesorter.addRows - called by addRows method.
        • $.tablesorter.appendCache - renamed from appendToTable; appends cache to DOM, called by appendCache method.
        • $.tablesorter.isEmptyObject - clone of $.isEmptyObject (jQuery v1.4).
        • $.tablesorter.sortOn - called by sortOn method.
        • $.tablesorter.sortReset - called by sortReset method.
        • $.tablesorter.updateAll - called by updateAll method.
        • $.tablesorter.updateCache - called by updateCache method.
        • $.tablesorter.updateCell - called by updateCell method.
        • $.tablesorter.update - called by update and updateRows method.
    • addRows now accepts a row string if only one tbody exists in the table.
      • The one tbody does not include information only tbodies (which have a class name from cssInfoBlock).
      • Previously, you had to make a jQuery object, append it to the table, then pass a reference containing the new rows.
      • This method doesn't work if a table has multiple tbodies, because the plugin doesn't know where you want to add the rows.
      • Also, updated the debug message for this method.
    • Use header cells instead of references to prevent IE8 error. Fixes issue #987.
    • Fix above header cell targetting causing a javascript error in jQuery v1.2.6. Fixes issue #995.
    • Add updateHeaders method
      • Triggered event & public api function.
      • $.tablesorter.updateHeaders - called by updateHeaders method.
      • Fixes issue #989.
  • Docs:
    • Update jQuery UI theme switcher URLs.
  • ColumnSelector:
    • Modify refreshColumnSelector method so it also updates the contents of the container in case of changes to the header text, column priorities, etc.
    • See examples of these changes in the column selector methods section.
    • Fixes issue #985.
  • Editable:
    • Improve column option parsing. Fixes issues #982 & #979.
  • Filter:
    • Fix js error caused when limiting search columns - external "any" filter targeting specific columns; see Stackoverflow.
  • Pager:
    • Widget only: No more javascript error in widget ajax error message.
    • Addon only: replace use of $.isEmptyObject which was not available in jQuery v1.2.6.
    • Change enable, disable & destroy trigger methods.
      • Previously, these methods had to include a .pager namespace: enable.pager, disable.pager & destroy.pager.
      • These methods stopped working when unique pager namespaces were added.
      • New trigger methods are named as follows: enablePager, disablePager & destroyPager.
      • Fixes issue #980.
    • Unbind pager controls on destroy. Fixes issue #981.
    • Add ajaxError callback function. Fixes issue #992.
  • Parsers:
    • parser-input-select: fix javascript error when no rows returned.
  • Misc & Testing
    • Miscellaneous cleanup of testing code.
    • Add empty ignore entry to bower.json. Fixes issue #991.
    • Fix license in package.json to match the new spdx license expression syntax.

Version 2.22.5 (7/28/2015)

  • Overall:
  • Set JSHint "undef" & "unused" options. Fixed issues.
  • The math widget was throwing a javascript error after missing a changed variable name & JSHint wasn't catching it, until now.

Version 2.22.4 (7/28/2015)

  • Overall
    • update debug logging. console is now called directly & includes grouping, tables, warning & errors.
  • Core
    • Replace tbody placeholder use of a <span> with a <colgroup>. Attempt to resolve IE error reported in issue #938.
    • Fix $.tablesorter.hasWidget error introduced when fixing jscs issues.
    • Fix $.tablesorter.isProcessing error introduced when fixing jscs issues.
    • Update isValueInArray function to prevent js errors with invalid input.
  • Docs
    • Remove duplicate section in math widget docs.
    • Add resizable widget note about leaving widthFixed set to false. See issue #958.
    • Update to use jQuery v1.11.3.
    • Change deprecated window load function.
    • Improve two-digit year parser demo.
    • Minor updates.
  • Filter
    • Prevent invalid RegExp errors which occur while typing in an incomplete query.
  • Math
    • Ignored rows are now properly ignored in columns. Fixes issue #976.
  • Output
  • Pager
    • Bind using unique event namespace. See issue #961.
  • Scroller
    • Prevent error on destroy when not applied. See issue #965.
    • Fix js error in old IE.
    • Delay resize after updateAll.
    • Include sortEnd in fixed column updates. See issue #977.
  • Sort2Hash
    • This widget updates the location hash based on the table sort, and sets the table sort on initialization. demo.
    • A user can share a link with others and have the table in the same sorted order.
    • The hash can be set to use header text and any text to indicate an ascending or descending sort.
    • Add text & saveSort override options. Fixes issue #962.
    • Other minor revisions.
  • Parsers
    • Checkbox in multiple columns now toggles the row class correctly.
  • Grunt build: Add jscs checking & fix reported style issues.
  • Testing
    • Update QUnit to 1.18.0.
    • Add removeWidget test.
    • Add isValueInArray tests.
    • Add isProcessing tests.
  • Extras - dropping support for quicksearch plugin.

Version 2.22.3 (6/30/2015)

  • Scroller: fix javascript error scroller_$fixedColumns is undefined.

Version 2.22.2 (6/30/2015)

  • Core
    • Only use preventDefault in specific jQuery versions (v1.3.2 & older). Fixes issue #911.
    • The "updateCache" method now accepts a tbody object.
    • Make getParsedText a public function.
    • Allow empty string in textExtraction data-attribute. Fixes issue #954.
  • Docs
    • Update trigger sort method documentation.
    • Update information about cssIgnoreRow. See issue #911.
    • Add requirement to include .filter { display: none } in custom themes.
    • Improve Bootstrap example in column selector docs. See pull #935, thanks @Herst!
    • Clean up & corrections:
      • Code examples in math & editing demos.
      • Corrected comments in "Skip the parsing of column content" demo.
      • Fix HTML validation issues.
    • Add contributing.md link to JSCS formatting file by @Herst.
    • Update to Bootstrap v3.3.5.
  • Parsers
    • Checkbox: add checkbox parser class name option (config.checkboxClass).
    • Metric: Support metric base unit case insensitivity.
  • Editable
    • Allow Shift+Enter to create a new line (even with editable_enterToAccept set as true).
    • Update cache without requiring a hover over the thead; cache order now properly maintained on touch devices.
  • Filter
    • Target last used filter properly. See issue #920.
    • filter_selectSource now ignores parsers, if none are set (empty or ajax tables). See issue #934.
    • Add support for nesting of "AND" & "OR" searches. Fixes issues #891 & #918.
    • Filter row remains visible after focused when filter_hideFilters is set.
    • Remove trailing comma in pull #948, thanks @Herst!
  • Output
    • Allow empty string data-attributes. See issue #923.
    • output_saveRows now accepts jQuery filter selectors. See issue #923.
    • Fix hiddenColumns option causing an empty output. Fixes issue #923.
    • Prevent javascript error when no row data is passed. See issue #923.
    • Remove tfoot clone, instead concat data to the end.
    • Fix colspans and hidden columns.
    • Stop outputTable method propagation. Fixes issue #944.
  • Pager
    • Make hasWidget think the pager addon is a widget.
    • Prevent adding a row if ajax returned JSON totalrows is zero. See Stackoverflow.
  • RepeatHeaders
    • use selectorRemove option setting.
  • Resizable
    • Replace window resize trigger. See issue #912.
    • Resizing now works with overflow wrapped tables. Fixes issue #953.
  • Scroller
    • Fix added stylesheet error using "," instead of ";".
    • Remove colgroup & hidden elements in fixed columns.
    • Fix slow fixed column scrolling in Firefox. See issue #135.
    • Multiple tbody fix. See issues #906 & #913.
    • Limit horizontal scrollbar to scrolling section.
    • Removed widthFixed requirement.
    • Update RTL support.
    • Fix column alignment. Fixes issue #913.
    • Fix filter return zero to few rows.
    • Reduce init lag & correct no fixed column tbody width. See issue #906.
    • Fix mousewheel scrolling on fixed columns.
    • Cleanup & old IE fix.
    • Fix column alignment issues #940, #937, #931 & #927.
    • Throttle IE scrolling. Partially fixes issue #928.
    • Save scroll positioning. Fixes issues #926 & #932.
    • Integrate with:
  • SortTbodies (beta)
  • StickyHeaders
  • Zebra
    • Target non-info block tbodies in extra tables.
  • Grunt
    • Update grunt modules.
    • Remove moot "version" property from bower.json. See pull #941, thanks @kkirsche!
    • Don't update bower.json in Gruntfile.js.
    • Check for old IE issue in pull #949, thanks @Herst!

Version 2.22.1 (5/17/2015)

  • Filter: fix issue with searches always looking for parsed content in numeric columns.

Version 2.22.0 (5/17/2015)

  • Docs
    • Lots of minor version updates, spelling corrections & clarifications in wording.
    • Update box-sizing styles (ref).
    • Update characterEquivalents cross-reference to correctly match the code of the plugin.
    • Add Build table widget example resulting HTML for the json example.
  • Grunt build
    • package.json files now points to the entire "dist" folder. See issue #881.
    • Add grunt quick build to only update widget & parser files; it skips updating the dates in the widgets & combined files.
  • Core
    • The isDigit function now reports false on empty strings. See issue #865.
    • Add pointer events options (pointerClick, pointerDown and pointerUp). Fixes issue #885.
    • Prevent js error when using the computeColumnIndex function on empty tables (used by the math widget). Fixes issue #889.
    • Prevent js error when sortList includes an out-of-bounds column. Fixes issue #908.
    • Centralize extractor & parser code; this code is used by the main build cache loop and the "addRows" & "updateCell" methods.
    • Child row content is now properly stored in row data as an array of arrays.
    • Add "o" to sortLocaleCompare replacement table & update docs.
    • Replace all instances of using jQuery each with plain javascript. Fixes issue #827.
  • Editable
    • Modify trimContent option & use HTML to modify text. Fixes issue #886.
    • Fix selectAll & change tbody mouseleave to complete editing to thead mouseenter. Fixes issue #848.
    • Only make table cell child div/span contenteditable. See issue #900.
    • Add remove widget code & allow dynamic updating if the "no-edit" class changes. Fixes issue #900.
  • Filter
    • Regex filter searches now cache the created regex object for each query to optimize speed & a regex search now properly uses case-sensitive content
    • Add data parameter to filter_functions. This is the same data used by the filter search type functions. See issue #891.
    • Any match searches which target specific columns will no longer save each filter to its respective column; see "AnyMatch Searches" documentation.
    • Operator filter searchs now ignore empty strings (because "" < 10 is true).
    • Clean up parseFilter function.
    • Add filter_childByColumn option.
      • Setting this to true allows searching through the child rows by column.
      • When false, the search behaves as before and all child row content is included in the search of every column.
      • See a demo here.
      • Fixes issues #396 & #574.
    • Code cleanup - added a bunch of whitespace & forced line wraps at around 120.
    • Prevent setFilter function from setting the same filters after an update. Fixes issues #903 & #733.
  • Grouping
    • Add keyboard accessibility to group headers. See issue #260.
  • Math
    • Fix issues with isNaN('') // false. See issue #873.
    • Reapply column indexing after updates & prevent js error on empty tables. Fixes issue #889.
    • Reduce update time to 20ms. See issue #898.
    • Exclude ignored cells even if math_ignore is empty. Fixes issue #896.
  • Output
    • Add BOM back to downloaded file. Fixes issue #862.
    • Add output_hiddenColumns option. Fixes issue #869.
    • Add known issues section about downloading in Safari.
  • Pager (addon & widget)
    • Replace all instances of using jQuery each with plain javascript. Fixes issue #827.
  • Resizable
    • Refreshing the widget will now preserve the storage. See issue #874.
  • Scroller
    • Set overflow-x auto & apply border-box to scroller. See issue #135.
    • Remove pointer-events: none from fixed column. See issue #878.
    • Hide fixed column scrollbar in IE9 & older. See issue #135.
    • Update pointer-events and tabbing accessibility. See issue #135.
    • setFixedColumnSize now properly updates with no set size.
    • Add scroller_addFixedOverlay
      • When true, a fixed column overlay is added for additional styling. See issue #887.
      • It includes css pointer-events set to none to allow interaction with elements underneath; make sure your browser supports it!
    • Fix selector issue in the remove function.
    • Properly refresh column size after an update. Fixes the third part of issue #906.
  • Parsers
    • Add "inputs-numeric" parser. Fixes issue #888.
    • Add jQuery Globalize date & number parsers.
    • "namedNumbers" parser: ignores adjacent puncutation. Fixes issue #890.
    • input-select parsers:
      • Clean up & add event namespaces.
      • Now return an empty string if the value is empty; previously, it would return the cell text when the value was empty.
    • Network "MAC" parser:
      • Return the original string if the address is grossly invalid. Fixes issue #895.
      • No longer auto-detect as iPv6. See issue #895.
  • Themes

Version 2.21.5 (4/8/2015)

  • Filter
    • Cache main loop variables - speed enhancement.
    • Allow setting filter_selectSource along with filter_functions (demo).
  • Resizable
    • Integrate with columnSelector. See issue #859.
    • Prevent javascript error.
    • Resizable handles now properly align when the table is within a layout with margins. Fixes issue #864.
  • Scroller

Version 2.21.4 (3/28/2015)

  • Core
    • Add a utility $.tablesorter.getColumnText() function.
      • This function will provide a centralized method of obtaining column data (raw & parsed text from cells) and allow processing cells.
      • I plan to update all widgets that need to interact or obtain column data to use this function in v2.22.0.
  • Build
    • The build process now includes selected parsers (added parsers option to build json).
    • A new jquery.tablesorter.combined.js file is created which will contain the core plugin along with all selected widgets & parsers; a default build does not have any selected parsers.
    • This will work around, but not resolve, issue #855.
  • Extras
    • Update semver.js & semver-mod.js to v4.3.3.

Version 2.21.3 (3/26/2015)

  • Core
    • Fix icon targeting for class names
    • Modified sort initiation method. A "click" event can now be triggered on a header to initiate a sort - issue #849. Thanks johnjameswhitman.
    • General code cleanup; mostly changing tagName to nodeName.
    • Modified, then removed all references to config.$extraTables and config.$extraHeaders as it was causing a memory leak.
  • Docs
    • Update jQuery to v1.11.2.
    • Update Bootstrap to v3.3.4.
  • Grunt Build
    • Add custom build file name. See issue #829.
    • The default custom build file name is now "jquery.tablesorter.custom-widgets.js".
    • See the Customize wiki page for more details.
  • Filter
    • Make "disabled" a modifiable class name - modify it in $.tablesorter.css.filterDisabled.
    • Select2 filter formatter now escapes forward slashes.
  • Output:
    • Minor code tweak.
  • Pager:
    • Make pagerUpdate method page parameter optional. It was previously required or the page would reset to 0.
    • Remove "refreshComplete" bind on destroy. Fixes issue #854.
  • Resizable:
    • Major overhaul of this widget to now make it compatible with the stickyHeaders widget.
    • Sadly, it still doesn't work properly with the updated scroller widget; it's on my to-do list!
  • Scroller:
  • Storage:
    • Add option (widgetOptions.storage_useSessionStorage) to allow switching from local to session storage. Fixes #851.
    • Add a bunch of other storage widget options including storage_tableId, storage_group, storage_fixedUrl and storage_page. See the documentation on how they might be useful.
    • Deprecated config.fixedUrl in favor of the widgetOptions.storage_fixedUrl option.
  • Themes
    • Add "hover" class to all hover definitions (for the scroller widget mostly).
    • Remove filter element offsetting margins.
    • Target background-color instead of background. Fixes issue #853.

Version 2.21.2 (3/13/2015)

  • Core: get accurate column count. Fixes issue #840.
  • Docs
    • Update to use jQuery UI v1.11.4.
    • Add note about resizable widget needing a non-breaking space in an empty cell. Fixes issue #844.
  • Editable: fix editable not updating properly on update/pager complete.
  • Filter: prevent error if parseFilter returns NaN - this depends on what custom parsers return.
  • Output: change carriage returns & tabs to unicode equivalent so it works in Excel. Fixes issue #845.
  • Pager
    • Don't recalculate total rows/pages if using ajax.
    • Remove outdated pager.min file in the addons folder; it is now available in the dist/js/extras folder.
  • Uitheme: add icon classes while using stickyHeaders. See issue #842.

Version 2.21.1 (3/10/2015)

  • Core:
    • Optimize getColumnData function.
    • Use :last instead of .last() to maintain jQuery v1.2.6 compatibility.
    • Allow multiple icon class names in the cssIcon definition.
  • Docs
    • Remove initial sort on first table to avoid confusion.
    • Miscellaneous tweaks.
  • Build
    • Add UMD wrapper to built "jquery.tablesorter.widgets.js" file. Thanks to nburlett (pull #837)!
  • Scroller
    • Properly adjust column widths; fixes issue #836.

Version 2.21.0 (3/5/2015)

  • Core
    • Plan to manually update vesion number.
    • Optimizations: replace arrays using $.each with for loops. Fixes issue #827.
    • Add $.tablesorter.addInstanceMethods function.
      • This allows one to define config object instance methods (docs).
      • Thanks to prijutme4ty for contributing!
    • Add config.$headerIndexed option (docs).
  • Docs
    • Update link in readme.
    • Add contributing information.
    • Update download method information.
  • Build/Testing
    • Move jshint to "grunt test" task.
    • Attempt to make nested callbacks more stable.
    • Clean up testing & made more stable, by prijutme4ty.
  • ColumnSelector
    • Add more debug logging.
  • Filter
    • Add more debug logging.
    • Add config parameter to filter_functions.
    • Add "widget-filter-type-insideRange.js" filter type; this filter type allows searching for a value that is within a range (demo).
    • External filters can now set initial values; this includes match-any-column inputs.
    • Extend filterFormatter functions - fixes an issue where HTML5 & jQuery ui filterFormatters override the function definitions.
  • Output
    • Add output_includeFooter option.
  • Pager
    • Add more debug logging.
  • Scroller
  • StickyHeaders
    • Now works properly with a full-height wrapper. Fixes issue #564.
    • Add stickyHeader hidden class name & modal demo links. Fixes issue #832.

Version 2.20.1 (2/20/2015)

  • Filter: Fixed a major issue with the filter widget not working properly.

Version 2.20.0 (2/20/2015)

  • Grunt build process
    • Added code to use npm & grunt to build a custom widget file.
    • An example.json file has been added as an example of how to set up a custom build file; see the Customize wiki page for more details.
    • With each build, the following occurs:
      • jquery.tablesorter.js is copied to the dist/js folder.
      • All less files are copied to the dist/css/less folder.
      • All images, including the pager icons, is copied into the dist/css/images folder.
      • A jquery.tablesorter.widgets.js file is created from the selected widgets into the dist/js folder, then copied back to the js folder to allow jsFiddle demos to continue working.
      • A .min.js file is created for the core & widget file in the dist/js folder, then all parsers & widgets are compressed separately in the dist/js/parsers and dist/js/widgets folder, respectively.
      • A .min.css file is created for all themes, dragtable, filter-formatter & pager styles.
      • The black-ice theme within the distribution folder is renamed to theme.blackice.min.css (no dash). See issue #785.
    • Files - the following changes to files have been made for the Grunt build process (this might break a few jsFiddle demos):
      • jquery.metadata.js has been moved into the js/extras folder.
      • jquery.tablesorter.widgets-filter-formatter.js
        • moved to the js/widgets folder
        • Broken into two files, and renamed to widget-filter-formatter-html5.js and widget-filter-formatter-jui.js.
      • jquery.tablesorter.widgets-filter-formatter-select2.js
        • Moved into the js/widgets folder.
        • Renamed to widget-filter-formatter-select2.js
      • jquery.tablesorter.widgets.js
        • Has been broken up into separate widget files: widget-column.js, widget-filter.js, widget-resizable.js, widget-saveSort.js, widget-stickyHeaders.js, widget-storage.js and widget-uitheme.js.
        • A default build creates a file of the above widgets combined in the dist/js folder.
        • A copy of this newly created combined widget file is then copied back to the js/ folder to allow external demos (jsFiddle) to still work.
  • Resolve jQuery unbinding issue
    • When unbinding events in jQuery versions 1.7 to 1.8, if an event list contains double spaces

      $('table').unbind('a  b');

      all events will be removed from that element (see this demo)!

    • Unbinding of events updated in the Core plugin & pager addon, and the following widgets: cssStickHeaders, editable, filter, formatter, math, staticRow & stickyHeaders.

  • Modified config.cache to only include non-info only tbodies.
    • This modification effects the core & the following widgets: chart, filter, grouping, pager (widget & addon).
    • Thanks to prijutme4ty for working on this change.
    • See pull request #822 for more details.
  • Core
    • Add cssNoSort option. Add the class name from that option to any element within a header will prevent a click on that element and any containing elements from causing a sort.
    • Remove cssAllowClicks option. It wasn't working as intended and actually prevented sorting. It was replaced by it's opposite, the cssNoSort option.
    • Make core work with jQuery v1.2.6, again.
    • Make getElementText function public; with a bug fix from prijutme4ty in pull.
  • Docs
  • Filter
    • Prevent javascript error when empty rows (<tr></tr>) are included in the tbody. Fixes issue #819.
    • Prevent javascript error when performing an "any-match" search triggered on the table without an included external data-column="all" input.
    • Ensure that an "any-match" search is a string value.
    • Added "any-match" specific column search by using #:{query} where # is a one-based column index and {query} is the query. Thanks to MaksimProgr for providing the code in pull request #817. This also fixes issue #747.
    • Added filter_columnAnyMatch option to allow disabling the "any-match" specific column search.
  • Pager
    • Fix initial start page default for the widget only.
    • Update pager ajaxProcessing code demo to prevent unordered JSON keys from adding content to incorrect columns. Fixes issue #818.
  • Parsers
    • Fix checkbox parser, in the parser-input-select.js file, so that it now properly updates when changed.
Clone this wiki locally