Github fork of Christian Bach's tablesorter plugin + awesomeness ~
Go to file
2015-02-09 15:23:51 -06:00
addons/pager version bump 2015-02-07 00:46:44 -06:00
beta-testing version bump 2014-09-15 19:44:03 -05:00
css Dragtable: make compatible with other widgets 2015-02-06 11:51:13 -06:00
docs Core: save raw table cell data 2015-02-09 15:23:51 -06:00
js Core: save raw table cell data 2015-02-09 15:23:51 -06:00
testing Testing: update QUnit & remove jsHint checks 2014-12-31 20:21:29 -06:00
.gitattributes updates 2012-12-19 11:00:47 -06:00
.gitignore Repo: update ignored directories for build scripting 2014-10-25 20:17:42 -05:00
bower.json version bump 2015-02-07 00:46:44 -06:00
changelog.txt * fix link to changelog 2014-07-29 05:24:23 +02:00
index.html Docs: switch from CDN to local files (prevents https conflicts) & cleanup 2014-05-22 07:53:26 -05:00
package.json version bump 2015-02-07 00:46:44 -06:00
README.md version bump 2015-02-07 00:46:44 -06:00
tablesorter.jquery.json version bump 2015-02-07 00:46:44 -06:00
test.html Testing: update QUnit & remove jsHint checks 2014-12-31 20:21:29 -06:00

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

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

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.
  • 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.19.0 (2/7/2015)

  • Core
    • Add AMD/browserify support; See pull #786, thanks to mwiencek!
    • Resort variable can now contain a new sort. See issue #782.
    • Prevent resort when serverSideSorting is true. Fixes issue #764.
    • Add resort option. It is used as the fallback value when no resort parameter is included with the "updateAll", "update", "addRows" and "updateCell" methods.
    • Add removeWidget function which calls the widget remove function & removes the named widget from the config.widget option.
    • A refreshing parameter was added to the widget remove function; when true it indicates that a refreshWidgets method was triggered and that the widget will only be temporarily removed.
    • Make fixColumnWidth a public function ($.tablesorter.fixColumnWidth). Calling it will refresh set column widths dynamically. See issue #680.
    • The default textExtraction function has been optimized - node.innerText was completely removed as it is significantly slower in IE.
    • Modified the "updateCell" method to not reapply widgets if the resort parameter is false; this may resolve issue with widgets causing elements to lose focus.
    • Updated the refreshWidgets to use the removeWidget function. Once the widgets have been refreshed a "refreshComplete" event will be triggered.
    • Updated applyWidget function to allow passing a callback function.
    • Prevent adding multiple icons on refresh.
    • Trim header text added to aria label.
    • The updateAll method no longer restores headers since it is only refreshing.
    • Fix parser check while building cache which can cause unresolving parsers in case the first tbody is empty and remaining tbodies have less rows than a number of tbody. See pull #814. Thanks prijutme4ty!
  • Docs
    • Specify pager's pageSet method requires a one-based index value.
    • Miscellaneous corrections & fixes. Thanks prijutme4ty!
    • Remove uitheme widget option (it was removed in v2.14.0, but not properly documented). Pertinent information on how to modify the uitheme widget class names was moved to the core theme documentation.
    • Add a new pager variables section which contains some useful variables within the pager object (table.config.pager).
    • Update "jQuery data" demo to show the difference between setting a data-attribute and jQuery data directly.
    • Add api documentation for using the getColumnData function.
  • Parsers
    • Add countdown parser (hh:mm:ss) - demo included with the duration parser.
    • Update input-select parser to use the resort option.
  • Widgets (general)
    • Build widget & storage extension: Pass "null" to $.parseJSON as a fallback. Fixes issue #586.
    • Update remove widget function for columnSelector, cssStickyHeaders, math, pager, repeatHeaders, saveSort & stickyHeaders.
    • Widgets removed from beta: alignChar, columnSelector, math, output, print, reflow & staticRow.
  • AlignChar:
    • Don't add align character when no content is right of it. Prevents adding a hanging decimal, e.g. 3000..
  • Chart widget (New; beta):
    • Generic chart widget used to basically extract data from the table and output in multiple formats.
    • Current chart libraries supported: Google charts, Highcharts & FusionCharts.
    • Some additional processing may be required to add extra variables (graph colors, labels, etc).
    • A demo is available here.
    • An example of this widget is also available here.
    • Thanks to TheSin- for creating this widget!
  • ColumnSelector:
    • Fix column index issue, again.
    • The refreshColumnSelector method has been updated to accept a parameter (get more details):
      • If an array of zero-based column indexes is passed by this method, "auto" mode will be disabled & only columns within the array will be shown - critical or disabled columns will always be shown.
      • If a non-array is passed by this method, the "auto" mode will be enabled.
      • Fixes issue #798.
    • A change in "auto" checkbox now triggers a "columnUpdate" event.
  • Dragtable (New; beta)
    • The dragtable jQuery UI widget adds column reordering to a table.

    • This isn't a tablesorter widget, but a modification made to a jQuery UI widget to better integrate with tablesorter - demo.

    • A modified version of dragtable has been included in the "extras" folder; this is a jQuery UI widget, not a tablesorter widget!

      $(function () {
        $('table')
          .dragtable({
            dragHandle: '.table-handle',
            excludeFooter: true
          })
          .tablesorter({
            theme: 'blue',
            selectorSort: '.sort',
            widgets: ['zebra', 'filter']
          });
      });
      
    • This modified version, so far, allows column reordering to work with the filter & resizable widgets.

    • Additional work will be required to get this jQuery UI widget to work with the scroller, columnSelector &amp stickyHeaders widgets.

    • Fixes issue #781, and portions of issue #215 and #186.

  • Editable
    • Update to add a editable_columnsArray which is created from the editable_columns option. When editable_columns contains a string (e.g. 0-3), this option will contain an array of zero-based column indexes.
    • The dragtable mod widget can then use this option to rearrange and maintain editable columns properly.
  • Filter
    • Hide filter row using the filtered class name (table.config.widgetOptions.filter_filteredRow).
    • Select source, and unparsed filter text now priorities data from the textAttribute. Fixes issues with Formatter widget - see issue #812.
    • Update select2 filterFormatter code to properly escape regexp characters. Fixes issue #796.
    • Normalize table parameter for public functions.
  • Formatter (New; beta)
    • This new widget allows you to apply formatting to the columns (demo).
    • Fixes issue #812.
  • Output
    • Fix trim spaces for header cells.
  • Pager
    • pageReset now used while filtering. See issue #778.
    • Get most up-to-date filter before setting pageReset. Fixes issue #783.
    • filteredRows now properly calculated when first tbody is set with a cssInfoBlock class name`.
    • Page size resets to original page setting instead of always 10.
    • Add pageAndSize method to set both the page & size.
    • Add pagerUpdate method to force a pager update; even if no ajax parameters have changed. Fixes issue #801.
    • Add cachedIndex variable which is useful if you need to find the currently visible rows within the pager in the internal cache (table.config.cache). See the documentation for an example.
    • Update goto selector independently of other elements. Fixes issue #811.
    • Modified to apply widgets & fire "pagerComplete" after the cache is built; this specifically applies to ajax tables.
  • Print
    • Ignore columnSelector "auto" setting when columnSelector_mediaquery option is disabled (false). Fixes issue #808.
  • Reflow
    • Trim stored header text.
  • Scroller
    • Resizing & browser zooming should now show proper widths. Fixes issues #680 & #634.
  • UITheme
    • Now updates properly when dynamically changing the table.config.theme option.
    • During an update, add inner wrapper to specific columns that are missing it.
    • Add separate sort class names to both the header & icon element; breaks old demos, but falls in-line with the addition of core css icon class settings in v2.18.3.
  • Themes
    • Add filter row background color; it appears that Chrome uses the <tr> background color when the hideme class is added to the row.
    • Updated Bootstrap to 3.3.2.
  • Testing
    • Update QUnit.
    • Remove jsHint checks.

Version 2.18.4 (12/22/2014)

  • Docs
    • Add link to demo showing how to apply jQuery selectmenu widget to a filter
    • Update theme switcher linked styles
    • Add clarification on using jQuery selectors that target the header cell. Fixes issue #766.
    • Fix various typos. Thanks seanhussey!
    • Add cssIgnoreRow docs.
  • Core
    • Add cssIgnoreRow option. Added to a header row that is to be ignored & not added to the config.$headers variable.
    • Allow passing alternate headers to getColumnData function.
  • ColumnSelector widget
    • Add columnUpdate event when columnSelector is updated.
    • Add columnSelector_cssChecked option - css class name added to checkboxes.
  • Pager (addon & widget)
    • Ensure filteredRows variable gets updated before the move to page function is called. Fixes issue #778.
  • StickyHeaders widget
    • Make includeCaption option dynamic; add note of new jQuery requirement.
    • Add popup window demo to sticky headers example.
  • Themes
    • Style filter input & selects only.
    • Only style <i> tags from tablesorter on theme Bootstrap v2 & less file. Thanks frodrigo!
    • Modify theme Dropbox & grey to also only target icon class name for css styling.

Version 2.18.3 (11/7/2014)

  • Core
    • Add class names to the header icons: cssIconNone, cssIconAsc & cssIconDesc to indicate the sort status.
    • The widthFixed option will no longer target nested table colgroup elements to determine if it needs to add a new colgroup.
  • Docs
    • Updated Bootstrap theme example.
    • Pager widget option comment corrections.
  • Themes: update all themes to hide all elements in the filter row when the filter_hideFilters option is true
  • CssStickyHeaders widget: tables with a caption now work properly in Firefox.