/tablesorter

Github fork of Christian Bach's tablesorter plugin + awesomeness ~

Primary LanguageJavaScript

tablesorter (FORK) is a jQuery plugin for turning a standard HTML table with THEAD and TBODY tags into a sortable table without page refreshes. tablesorter can successfully parse and sort many types of data including linked data in a cell.

Notice!

  • Because of the change to the internal cache, the tablesorter v2.16+ core, filter widget and pager (both plugin & widget) will only work with the same version or newer files.

Documentation

Demos

Features

  • Multi-column alphanumeric sorting and filtering.
  • Multi-tbody sorting - see the options table on the main document page.
  • Supports Bootstrap v2 and 3
  • Parsers for sorting text, alphanumeric text, URIs, integers, currency, floats, IP addresses, dates (ISO, long and short formats) & time. Add your own easily.
  • Inline editing - see demo
  • Support for ROWSPAN and COLSPAN on TH elements.
  • Support secondary "hidden" sorting (e.g., maintain alphabetical sort when sorting on other criteria).
  • Extensibility via widget system.
  • Cross-browser: IE 6.0+, FF 2+, Safari 2.0+, Opera 9.0+, Chrome 5.0+.
  • Small code size, starting at 25K minified
  • Works with jQuery 1.2.6+ (jQuery 1.4.1+ needed with some widgets).
  • Works with jQuery 1.9+ ($.browser.msie was removed; needed in the original version).

Licensing

Download

Related Projects

Contributing

If you would like to contribute, please...

  1. Fork.
  2. Make changes in a branch & add unit tests.
  3. Run grunt test (if qunit fails, run it again - it's fickle).
  4. Create a pull request.

Special Thanks

  • Big shout-out to Nick Craver for getting rid of the eval() function that was previously needed for multi-column sorting.
  • Big thanks to thezoggy for helping with code, themes and providing valuable feedback.
  • Big thanks to ThsSin- for taking over for a while and also providing valuable feedback.
  • Thanks to prijutme4ty for numerous contributions!
  • Also extra thanks to christhomas and Lynesth for help with code.
  • And, of course thanks to everyone else that has contributed, and continues to contribute to this forked project!

Questions?

  • Check the FAQ page.
  • Search the main documentation (click the menu button in the upper left corner).
  • Search the issues to see if the question or problem has been brought up before, and hopefully resolved.
  • If someone is available, ask your question in the #tablesorter IRC channel at freenode.net.
  • Ask your question at Stackoverflow using a tablesorter tag.
  • Please don't open a new issue unless it really is an issue with the plugin, or a feature request. Thanks!

Recent Changes

View the complete change log here.

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.