version & doc updates

This commit is contained in:
Mottie 2013-10-10 23:18:33 -05:00
parent a91fd663b6
commit ca7124518d
18 changed files with 195 additions and 572 deletions

485
README.md
View File

@ -43,6 +43,99 @@ tablesorter can successfully parse and sort many types of data including linked
View the [complete listing here](https://github.com/Mottie/tablesorter/wiki/Change).
#### <a name="v2.11">Version 2.11</a> (10/10/2013)
**Core**
* Initialized widgets (widgets with options) are now tracked to ensure widget options are extended when using "applyWidgets". Fixes [issue #330](https://github.com/Mottie/tablesorter/issues/330).
* An javascript error no longer pops up when setting the `delayInit` option to `true` and using the `saveSort` widget (or triggering a `sorton` method). Fixes [issue #346](https://github.com/Mottie/tablesorter/issues/346).
* Only visible columns will be considered when fixing column widths. Fixes [issue #371](https://github.com/Mottie/tablesorter/issues/371).
* Merged in fix for jQuery version check ([pull #338](https://github.com/Mottie/tablesorter/pull/338)). This also fixes [issue #379](https://github.com/Mottie/tablesorter/issues/379). Thanks @lemoinem!
* Removed natural sort's ability to sort dates. This shouldn't be a problem since tablesorter uses parsers detect &amp; parse date columns automatically. Fixes [issue #373](https://github.com/Mottie/tablesorter/issues/373).
* Fixed [issue #381](https://github.com/Mottie/tablesorter/issues/381).
* Any class name that is set by an option and is later used to search for that element now has an empty default class name.
* The reasoning is that if a developer adds two class names to the option, the jQuery find breaks.
* All default single class name options are now contained within `$.tablesorter.css`
* Options affected include: tableClass, cssAsc, cssDesc, cssHeader, cssIcon, cssHeaderRow, cssProcessing in the core.
* Note that the `cssIcon` option retains it's default class name &amp; functionality to not add an `<i>` inside the table cell if this *extra class name* is undefined.
* Widget options affected include: filter_cssFilter and stickyHeaders.
* Removed `return false` from header mouse/keyboard interaction. Fixes [issue #305](https://github.com/Mottie/tablesorter/pull/305) &amp; [issue #366](https://github.com/Mottie/tablesorter/issues/366).
**Parsers**
* Fixed sugar date parser demo to point to the correct parser file and sugarjs resource.
* General cleaned up date, fraction and metric parsers &amp; fixing of minor bugs.
**Build Table Widget (new)**
* Build a table starting with an assortment of data types ( array, text (CSV, HTML) or object (json) ).
* This widget isn't really a widget because it is run and does it's processing before tablesorter has initialized; but the options for it are contained within the tablesorter `widgetOptions`.
**Column Widget**
* General cleanup
**Filter Widget**
* Exact matches can still be made if the user enters an exact match indicator twice (i.e. `John==` will still find `John` in the column; before it would think the user was looking for `John=` after the second `=` was typed)
* Dynamically added filter reset buttons will now work automatically. Added by [pull #327](https://github.com/Mottie/tablesorter/pull/327). Thanks @riker09!
* Chrome appears to have fixed the hidden input bug, so reverted changes to the basic filter demo. Fixes [issue #341](https://github.com/Mottie/tablesorter/issues/341).
* The filter widget will work properly with sub-tables. Fixes [issue #354](https://github.com/Mottie/tablesorter/issues/354). Thanks @johngrogg!
* Fixed issues with `filter_columnFilters` set to `false`. Fixes [issue #355](https://github.com/Mottie/tablesorter/issues/355).
* Searches now have accents replaced if the `sortLocaleCompare` option is `true`. Fixes [issue #357](https://github.com/Mottie/tablesorter/issues/357).
* Merged in enhancement for the filter widget & updated docs - add row to `filter_functions` parameters ([issue #367](https://github.com/Mottie/tablesorter/issues/367), [pull #368](https://github.com/Mottie/tablesorter/pull/368)). Thanks @gknights!
* FilterFormatter jQuery UI Datepicker now includes the user selected time for comparisons. Thanks @TheSin-!
* Another fix to the filteFormatter jQuery UI Datepicker to make it work properly with the sticky header widget. Thanks @TheSin-!
* Removed filter_cssFilter default class name. The "tablesorter-filter" class name is automatically added, and this option now contains any additional class names to add. Fixes [issue #381](https://github.com/Mottie/tablesorter/issues/381).
**Grouping Widget**
* The grouping widget now works across multiple tbodies.
* Added `group-false` header option which disables the grouping widget for a specific column. Fixes [issue #344](https://github.com/Mottie/tablesorter/issues/344).
* Added the `group_collapsed` option which when true and the `group_collapsible` option is also true, all groups will start collapsed. Fulfills [issue #352](https://github.com/Mottie/tablesorter/issues/352).
* You can now toggle *all* group rows by holding down the shift key while clicking on a group header.
* This widget now works properly with the pager addon (pager addon updated). Fixes [issue #281](https://github.com/Mottie/tablesorter/issues/281).
**StickyHeaders Widget**
* Caption outerheight now used to get the correct full height of the caption. Thanks @TheSin-!
* `stickyHeaders_zIndex` option added to allow users to customize their sticky header z-index. Fixes [issue #332](https://github.com/Mottie/tablesorter/pull/332). Thanks @TheSin-!
**UITheme widget**
* Updated Bootstrap theme to work with Bootstrap v3
* Only additions were made to the sorting icons class names within in the `$.tablesorter.themes.bootstrap` defaults (contained in the `jquery.tablesorter.widgets.js` file).
* So the theme will support all current versions of Bootstrap, just make sure you are using the appropriate icon class name (`icon-{name}` = v2; `glyphicon glyphicon-{name}` = v3).
* Removed the gradient background from the header &amp; footer cells.
* Added a reduced icon font side for header sort icons.
* Renamed the pager class from `pager` to `ts-pager` as Bootstrap adds a lot of padding to that class. See [Bootstrap theme demo](http://mottie.github.io/tablesorter/docs/example-widget-bootstrap-theme.html).
* Thanks @YeaYeah for sharing how to fix the top border in [issue #365](https://github.com/Mottie/tablesorter/issues/365).
**Pager**
* Fixed the `removeRows` option error when set to `true`.
* The pager now stores any object returned by the `ajaxProcessing` function in `table.config.pager.ajaxData`
* The object should contain attributes for `total` (numeric), `headers` (array) and `rows` (array of arrays).
* A replacement `output` option can also be loaded via this method and must be included in the `output` attribute (i.e. `ajaxData.output`).
* Additional attributes are also available to the output display by using the attribute key wrapped in curly brackets (e.g. `{extra}` from `ajaxData.extra`).
* Additional attributes can also be objects or arrays and can be accessed via the output string as `{extra:0}` (for arrays) or `{extra:key}` for objects.
* The page number is processed first, so it would be possible to use this string `{extra:{page}}` (`{page}` is a one-based index), or if you need a different value use `{page+1}` (zero-based index plus any number), or `{page-1}` (zero-based index minus any number).
* For more details, please see [issue #326](https://github.com/Mottie/tablesorter/issues/326).
* Thanks @camallen for the suggestions &amp; feedback!
* The "updateComplete" event should now properly trigger after an ansynchronous ajax call has completed. Fixes [issue #343](https://github.com/Mottie/tablesorter/issues/343).
* Added a new `savePages` option
* Requires requires the `$.tablesorter.storage` script within the `jquery.tablesorter.widget.js` file to work properly.
* When `true`, it saves pager page & size if the storage script is loaded (requires $.tablesorter.storage in jquery.tablesorter.widgets.js).
* The pager will continue to function properly without the storage script, it just won't save the current page or pager size.
* Fulfills enhancement request from [issue #345](https://github.com/Mottie/tablesorter/issues/345).
* Removed table update when using ajax with a server that is already doing all of the work. Fixes [issue #372](https://github.com/Mottie/tablesorter/issues/372) &amp; [issue #361](https://github.com/Mottie/tablesorter/issues/361). Thanks @sbine!
* Merged in change to count table th length after ajaxProcessing ([pull #383](https://github.com/Mottie/tablesorter/pull/383)). Thanks @harryxu!
* Reverted changes made in [pull #349](https://github.com/Mottie/tablesorter/pull/349) as the error row was not showing because the urls did not exactly equal each other.
* Child rows within the pager will now properly display/hide. Fixes [issue #348](https://github.com/Mottie/tablesorter/issues/348).
* Merged in fix for pager redundant ajax requests ([pull #336](https://github.com/Mottie/tablesorter/pull/336)). Thanks @camallen!
* Merged in fix for pager totalRows check ([pull #324](https://github.com/Mottie/tablesorter/pull/324)). Thanks @camallen!
**Internal fixes**
* Modified the pager plugin internal variables to use `p` for pager options and `c` for table config options - for consistency.
* Cleaned up the formatting of a few parsers (mostly cosmetic!)
* Some parser functions were added to the `$.tablesorter` object instead of keeping them as private functions, just because my OCD compelled me to do it.
* Some of the changes made the parsers are no longer backward compatible to the original version of tablesorter. Break away man, just do it!
**Thanks**
* Thanks to @thezoggy and @TheSin- for help maintaining and supporting the tablesorter github project while I was away!
* Also thanks to everyone else that contributed and even more thanks to those that helped troubleshoot and solve problems!
#### <a name="v2.10.8">Version 2.10.8</a> (6/3/2013)
* Updated the percent parser to only detect if the content is shorter than 15 characters. This prevents columns with a lot of content and one percent sign (%) from being set to be parsed as a percent numeric column. Fixes [issue #320](https://github.com/Mottie/tablesorter/issues/320).
@ -73,395 +166,3 @@ View the [complete listing here](https://github.com/Mottie/tablesorter/wiki/Chan
#### <a name="v2.10.5">Version 2.10.5</a> (5/30/2013)
* Filter formatter functions now works properly within sticky headers. Fixes issues [#290](https://github.com/Mottie/tablesorter/issues/290) &amp; [#317](https://github.com/Mottie/tablesorter/issues/317).
#### <a name="v2.10.4">Version 2.10.4</a> (5/28/2013)
* Added `stickyHeadersInit` event, which is triggered on the table after the sticky headers widget has completed initializing.
* Filtering child rows should now work properly; [fixes #306](https://github.com/Mottie/tablesorter/issues/306).
#### <a name="v2.10.3">Version 2.10.3</a> (5/27/2013)
* Updated pager `pageSize` method to properly store the set page size; [fixes #287](https://github.com/Mottie/tablesorter/issues/287).
#### <a name="v2.10.2">Version 2.10.2</a> (5/27/2013)
* The minified scripts are now updated =/.
#### <a name="v2.10.1">Version 2.10.1</a> (5/27/2013)
* Core fixes
* Fixed `updateAll` function to properly refresh the widgets.
* Added keyboard accessibility
* Header cells can now be accessed using the tab key and sorted by pressing enter when they have "focus".
* Thanks to [debugwand](https://github.com/debugwand) for sharing the code!
* Filter widget updates:
* Added `filter_onlyAvail` option
* Updated main &amp; filter demo page docs.
* Updated [custom filter demo](http://mottie.github.io/tablesorter/docs/example-widget-filter-custom.html) (see the Discount column).
* Fixes [issue #292](https://github.com/Mottie/tablesorter/issues/292).
* Thanks to [The Sin-](https://github.com/TheSin-) for sharing the idea and code!
* Added `compare` option to various filter formatter functions
* This addition was made to the "uiSpinner", "uiSlider", "html5Range", "html5Number" and the new "uiDateCompare" functions
* So, for example the html5Number function can be set up as follows:
```js
filter_formatter : {
0: function($cell, indx) {
return $.tablesorter.filterFormatter.html5Number( $cell, indx, {
value: 1,
min: 1,
max: 100,
delay: true,
addToggle: false,
exactMatch: false,
compare: '>='
})
}
}
```
now the number type input will allow filtering rows with values greater than or equal to the selected value.
* Thanks to [The Sin-](https://github.com/TheSin-) for sharing the idea and code in [issue #304](https://github.com/Mottie/tablesorter/issues/304).
* The jQuery UI Datepicker range filter formatter code has been updated:
* Use the new `uiDateCompare` filter formatter for one input comparisons, or use this `uiDatepicker` update to do comparisons within the two inputs.
* The two input now functions so that when the "to" input is empty, all dates greater than the "from" date are shown.
* If the "from" input is empty, all dates less than the "to" input date are shown.
* Added options `textFrom` (default is `from`) and `textTo` (default is `to`) to allow changing the text label language.
* Modified the logical "or" search such that it tries to find an exact match for each "or". For example:
* If `"1|2|3"` is entered into the filter, only column cells that exactly match `1`, `2`, or `3` will be visible.
* If `"Mike|Br|John"` is entered, only cells with `Mike`, `Br` and `John` will be visible. If you want to include `Bruce`, then use a wild card: `"Mike|Br*|John"`.
* To only match content using the logical "or" search, simply add the class name `filter-match` to the header cell, then `"1|2|3"` will show cells with `1`, `11`, `12`, etc.
* Updated the [basic filter widget demo](http://mottie.github.io/tablesorter/docs/example-widget-filter.html) to include a "filter-match" column toggle.
* Fixed javascript error from improper reference to the "dateFormat". Fixes [issue #306](https://github.com/Mottie/tablesorter/issues/306).
* Fixed `$.tablesorter.getFilters()` and `$.tablesorter.setFilters()` functions to work properly when the `filter_columnFilters` option is `false` (do not build filter row).
* Fixed filter widget numeric range error introduces in v2.10.0. Sorry =(.
* Fixed filter search delay issue, again. =(
* Fixed filter widget data comparisons, so now you can type in the filter something like `> 1/1/2010` (using the same date format as the column).
* Filter search input placeholders can now be set using jQuery data:
* Previously, only a data attribute could contain the filter placeholder text `data-placeholder="Enter something..."`
* Another method using script can now be used: `$('.tablesorter th:eq(0)').data('placeholder', 'Enter something...');` (where `eq()` contains a zero-based index of the column).
* Optimized filter queries to search already filtered rows if the previous search is contained within the current search. Fulfills part of [issue #313](https://github.com/Mottie/tablesorter/issues/313).
* Added a caution note in the filter widget (basic) demo stating the issue with Chrome not rendering search input text properly when previously hidden.
* For now, I set the `filter_hideFilters` option to `false` until the source of this problem is determined.
* Check out [this demo](http://jsfiddle.net/Mottie/Mjbab/1/) to see the issue (in Chrome); but I think I'm the only one seeing it.
* Updated the `$.tablesorter.storage()` function
* The update is to checking for localStorage browser support.
* It should now work properly in iOS with private browsing protection.
* Check out [this great summary](https://gist.github.com/paulirish/5558557) of [Modernizr](http://modernizr.com/) updates by Paul Irish.
* Documentation fixes
* Removed `console.log` from the documentation script. Fixes [issue #309](https://github.com/Mottie/tablesorter/issues/309).
* Updated all `<button>` elements in the documentation to include a type (`<button type="button">`) to prevent IE from triggering a form submit. Fixes [issue #285](https://github.com/Mottie/tablesorter/issues/285#issuecomment-17991235).
#### <a name="v2.10">Version 2.10</a> (5/8/2013)
* Core changes:
* Fixed/updated content selection &amp; form interaction in both headers and sticky headers.
* Added missing `sortBegin` event when the `sorton` method is used. YAY for unit testing!
* Fixed digit and currency parsers not returning appropriately formatted text, when encountered. Another point for unit testing! :P
* Added a public function `$.tablesorter.addHeaderResizeEvent`
* This function exists within the `jquery.tablesorter.widgets.js` file.
* There is no built-in resize event for non-window elements, so when this function is active it triggers a `resize` event when the header cell changes size.
* Enable the triggering of header cell resize events as follows:
```js
var table = $('table')[0],
disable = false,
options = {
timer : 250 // header cell size is checked every 250 milliseconds (1/4 of a second)
};
$.tablesorter.addHeaderResizeEvent( table, disable, options );
```
* To disable resize event triggering:
```js
var table = $('table')[0];
$.tablesorter.addHeaderResizeEvent( table, true );
```
* Filter widget updates:
* Triggered filter searches now properly update the filter column inputs. See [issue #146](https://github.com/Mottie/tablesorter/issues/146).
* Added disabled filter styling to the Bootstrap theme. Thanks to [riker09](https://github.com/riker09) ([issue #283](https://github.com/Mottie/tablesorter/pull/283)).
* Fixed `filter_liveSearch` option to properly work in non-webkit browsers. See [issue #285](https://github.com/Mottie/tablesorter/issues/285).
* Modified `filter_liveSearch` to allow adding a numeric value to the option, this sets a character threshold which triggers the search when met. Fulfills [issue #286](https://github.com/Mottie/tablesorter/issues/286).
* Fixed select dropdowns within the sticky header now work properly. Fixes [issue #288](https://github.com/Mottie/tablesorter/issues/288).
* Added a method to allow properly parsed dates to be comparible using `<`, `<=`, `>`, `>=` and date ranges. Fulfills [issue #302](https://github.com/Mottie/tablesorter/issues/302).
* Added `filter_filteredRow` option which contains the class name added to each visible filtered row. Used by the pager to properly count filtered rows.
* Fixed a problem with `filter_searchDelay` which was broken in v2.9.0. Opps, sorry!
* Minor tweaks to the filter formatter file to allow elements in multiple tables (removed some IDs). More fixing needed!
* Sticky Headers widget:
* Fixed/updated content selection &amp; form interaction in both headers and sticky headers. Fixes [issue #57](https://github.com/Mottie/tablesorter/issues/57).
* Fixed an issue with content resizing the table, but not the sticky header.
* Added `stickyHeaders_addResizeEvent` option to enable this updating.
* This option uses the new `$.tablesorter.addHeaderResizeEvent` function.
* Fixes [issue #289](https://github.com/Mottie/tablesorter/issues/289).
* Added `stickyHeaders_offset` option
* This option sets the point where the sticky header locks while scrolling. Allowing space for sticky navigation bars, etc.
* This option accepts:
* pixel value: `stickyHeaders_offset: 20`
* jQuery selector: `stickyHeaders_offset: '.navbar-fixed-top`
* jQuery object: `stickyHeaders_offset: $('.navbar-fixed-top')`
* Fullfills feature request [#294](https://github.com/Mottie/tablesorter/issues/294).
* Pager addon updates:
* Controls are now cached internally.
* `table.config.pager.$container` now stores the jQuery object targeted by the pager `container` option.
* `table.config.pager.$goto` stores the jQuery object targeted by `cssGoto`.
* `table.config.pager.$size` stores the jQuery object targeted by `cssPageSize`.
* Page size selectors should now update properly when the `pageSet` or `pageSize` methods are used.
* The pager should now properly target the *first sortable* tbody (it will skip any "info-only" tbodies).
* Fixed `pagerComplete` callback firing more than once while sorting or filtering. Fixes [issue #291](https://github.com/Mottie/tablesorter/issues/291).
* Fixed pager not updating when the filter widget reveals zero matches. Fixes [issue #297](https://github.com/Mottie/tablesorter/issues/297).
* The pager ajax function now does better error handling.
* Updated the pager ajax error displayed row; including updating all themes.
* Added `ajaxObject` option:
* You can now customize how the pager plugin interacts performs its ajax functioning.
* Modify the `ajaxObject` to include any of the [ajax settings](http://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings):
```js
ajaxObject: {
dataType: 'json'
}
```
* The only option that gets overwritten is the `url` option. It is set by the `ajaxUrl` and `customAjaxUrl` options.
* Fulfills [issue #280](https://github.com/Mottie/tablesorter/pull/280).
* Updated `ajaxProcessing` to now make returning rows optional, or it can now accept the rows as a jQuery object instead of an array. The addon triggers an "update" event internally, so no need to include that.
* Return a jQuery object
```js
ajaxProcessing: function(data, table){
if (data && data.hasOwnProperty('rows')) {
var r, row, c, d = data.rows,
// total number of rows (required)
total = data.total_rows,
// array of header names (optional)
headers = data.headers,
// all rows: array of arrays; each internal array has the table cell data for that row
rows = '',
// len should match pager set size (c.size)
len = d.length;
// this will depend on how the json is set up - see City0.json
// rows
for ( r=0; r < len; r++ ) {
rows += '<tr class="ajax-row">'; // new row array
// cells
for ( c in d[r] ) {
if (typeof(c) === "string") {
rows += '<td>' + d[r][c] + '</td>'; // add each table cell data to row array
}
}
rows += '</tr>'; // add new row array to rows array
}
// don't attach the $(rows) because it's difficult to tell old from new data
// and no need to trigger an update method, it's done internally
return [ total, $(rows), headers ];
}
}
```
* Build the table yourself (just return the total number of rows):
```js
ajaxProcessing: function(data, table){
if (data && data.hasOwnProperty('rows')) {
var r, row, c, d = data.rows,
// total number of rows (required)
total = data.total_rows,
// all rows: array of arrays; each internal array has the table cell data for that row
rows = '',
// len should match pager set size (c.size)
len = d.length;
// this will depend on how the json is set up - see City0.json
// rows
for ( r=0; r < len; r++ ) {
rows += '<tr class="ajax-row">'; // new row array
// cells
for ( c in d[r] ) {
if (typeof(c) === "string") {
rows += '<td>' + d[r][c] + '</td>'; // add each table cell data to row array
}
}
rows += '</tr>'; // add new row array to rows array
}
// find first sortable tbody, then add new rows
table.config.$tbodies.eq(0).html(rows);
return [ total ];
}
}
```
* Tablesorter unit testing updates; tests for the following have been added:
* `sortStart`, `sortBegin` &amp; `sortEnd` events.
* `updateComplete` event.
* empty cells: `emptyTo`, empty to `top`, `bottom` &amp; `zero`.
* strings in numeric columns: `stringTo`, string to `max`, `min`, `top`, `bottom` &amp; `none`.
* `sort` method
* table class, table header class &amp; tbody info only class.
#### <a name="v2.9.1">Version 2.9.1</a> (4/13/2013)
* Modified `stickHeaders`:
* Only visible cells within the sticky header will be adjusted
* Fixes [issue #278](https://github.com/Mottie/tablesorter/issues/278).
* Thanks to [Exinaus](https://github.com/Exinaus) for sharing his code!
* This change doesn't fix the lag on a table with a lot of visible columns; I don't have an exact number where it will start lagging, but the one in issue #278 had 68 columns.
#### <a name="v2.9.0">Version 2.9.0</a> (4/12/2013)
* **Core changes**
* Added a column sort method.
* With this method, you can target a header column and trigger a sort:
```javascript
$('table').find('th:eq(2)').trigger('sort');
```
* This method will maintain the sorting order; so, if the column is already sorted in ascending order, this method will act as if you manually clicked on the header.
* Whatever next sort order is applied is dependent on other option settings such as `initialSortOrder`, `lockedOrder` (set within the `headers`), `sortReset` option, `sortRestart` and will be ignored if the column sort is disabled (`sorter: false`).
* Triggering a `click` on the header cell will not work as expected.
* **Widgets, general**
* All of the current widgets within `jquery.tablesorter.widgets.js` and in the `js/widgets` directory use the newest addWidget template, and are **no longer compatible** with tablesorter versions older than 2.8!
* **Added widget priorities**
* Basically when a widget is added, it can be assigned a priority number and applied in that order from lowest to highest.
* The priority can be any number and can be thought of as similar to applying a z-index to an element in that multiple widgets can have the same priority.
* This is needed in case a widget is applied to the table, but is dependent on another widget. For example:
* The `uitheme` widget is the first to be applied (priority of `10`) because other widgets that copy/clone the table will need the jQuery UI/Bootstrap class names already applied to the table.
* The sticky headers widget (priority `60`) is applied after the filter widget (priority `50`), so that it knows to update the filters within the sticky header.
* Priorities are *optional*, and any widget applied without a priority value will automatically be assigned a priority of `10`.
* Updated the [writing custom widgets](http://mottie.github.io/tablesorter/docs/example-widgets.html) demo to show how to add a widget priority.
* I was planning on adding this in version 3.0, but the need arose sooner with the additions of all of the new widgets.
* **Updated Filter widget**
* Fixed a bug that only occurred when using the filter widget with the pager plugin getting ajax data
* The pager no longers repeatedly tries to get the first page of table content
* Fixes [issue #270](https://github.com/Mottie/tablesorter/issues/270).
* Fixed filter widget to correctly target the filter row cells.
* The current filter row cells (`td`'s) are now saved to `table.config.$filters`.
* Added a `filter_liveSearch` option:
* If `true` (default), a search is performed while the user is typing, after a short delay.
* If `false`, the user will have to press enter on the keyboard to initiate the search
* Added a filter get method to work with the filter inputs
* Use `$.tablesorter.getFilters( $('table') );` to get an array of the current filters applied to the table
* Added a filter set method to work with the filter inputs
* Use `$.tablesorter.setFilters( $('table'), ['abc', '1'] );` to set the first two filters values to "abc" and "1" respectively; but this does not initiate a search.
* Use `$.tablesorter.setFilters( $('table'), ['abc', '1'], true );` to set the filters values and initiate a search.
* The difference between `$.tablesorter.setFilters( $('table'), ['abc', '1'] );` and `$('table').trigger('search', [ ['abc', '1'] ]);` is that the `setFilters` method will update the actual filter inputs with the search query, whereas the triggered search will not.
* If the `$('table')` does not target a table with a filter widget applied, it will return `false`.
* **Updated Resizable widget**
* Added `resizable_addLastColumn` option which allows you to make the last column resizable, essentially making a non-full width table resizable.
* Updated [the resizable demo](http://mottie.github.io/tablesorter/docs/example-widget-resizable.html) to show this option.
* The resizable demo also now highlights the non-resizable "Age" column to make it more obvious.
* **Updated Sticky headers widget**
* Added a `stickyHeaders_cloneId` option
* This option is only used if the table has an ID defined, then the value from this option will be added to the end of the ID of the cloned sticky table.
* Default value is `-sticky`.
* Fixes [issue #271](https://github.com/Mottie/tablesorter/issues/271).
* Fixed an issue with scrolling lag:
* If the page had a large number of hidden tables (inside tabs), there would be a noticable delay while scrolling up.
* Only visible tables are now monitored.
* Fixes [issue #278](https://github.com/Mottie/tablesorter/issues/278).
* This widget will now include the table caption in the sticky header:
* Additional css was added to every theme to apply a background color to the caption, otherwise it would be transparent and content could then be seen to scroll behind it.
```css
caption { background: #fff; }
```
* This fullfills the enhancement request in [issue #126](https://github.com/Mottie/tablesorter/issues/126).
* This widget will now include the filter row in the sticky header:
* The filter row is duplicated, so searches within either filter row will update the content of the other filter row.
* This fullfills the enhancement request in [issue #249](https://github.com/Mottie/tablesorter/issues/249).
* Removed the processing icon from the sticky header (reported via email).
* **Added a content editable widget**
* Added a widget to enable content editing of the table (using the contenteditable attribute), by column.
* It has four options, used as follows:
```javascript
$('table.tablesorter').tablesorter({
widgets: ['editable'],
widgetOptions: {
editable_columns : [0,1,2], // array that points to the columns to make editable (zero-based index)
editable_enterToAccept : true, // press enter to accept content, or click outside if false
editable_autoResort : false, // auto resort after the content has changed.
editable_noEdit : 'no-edit' // class name of cell that is no editable
}
});
```
* Make a table cell uneditable by added the class `no-edit`, set in the `editable_noEdit` option.
* Added a [content editable widget demo](http://mottie.github.io/tablesorter/docs/example-widget-editable.html).
* **Added Repeat headers widget**
* This widget has always been the example used in the [Writing custom widgets](http://mottie.github.io/tablesorter/docs/example-widgets.html) demo.
* It has been updated and now follows the same format as the widget template for tablesorter version 2.9+
* As written, it will no longer work with tablesorter versions older than 2.8.
* Only one option for this widget is available:
```javascript
$('table.tablesorter').tablesorter({
widgets: ['zebra', 'scroller'],
widgetOptions : {
rowsToSkip : 4 // number of rows to show between the repeated headers
}
});
```
* **Added Scroller widget**
* This widget is a modified version of the scroller widget made by Tim Connell ([original demo](http://tconnell.com/samples/scroller/))
* It has four options, used as follows:
```javascript
$('table.tablesorter').tablesorter({
widgets: ['zebra', 'scroller'],
widgetOptions : {
scroller_height : 300, // height of scroll window
scroller_barWidth : 17, // scroll bar width
scroller_jumpToHeader : true, // header snap to browser top when scrolling the tbody
scroller_idPrefix : 's_' // cloned thead id prefix (random number added to end)
}
});
```
* Added a [scroller widget demo](http://mottie.github.io/tablesorter/docs/example-widget-scroller.html).
* **Updated Pager Plugin**
* Added all pager plugin options within the [widget options table](http://mottie.github.io/tablesorter/docs/index.html#Widget-options) on the main documentation page.
* Added a better example of how to use the `customAjaxUrl` function.
* Updated the `{page}` tag used withing the `ajaxUrl` option:
* Previously `{page}` was replaced with a zero-based index of the targetted page number, now this format can also be used `{page+1}`.
* A tag of `{page+1}` will be replaced with the targetted page number plus one, making it a one-based index.
* Actually any number can be added, or subtracted, from the page number using this format: `{page+2}`, `{page-1}`, `{page+10}`, etc.
* The `List` portion of the `{sortList:col}` and `{filterList:fcol}` tag are now optional:
* These tags are used within the `ajaxUrl` option.
* So, `{sort:col}` and `{filter:fcol}` can now be used. It just seems clearer/cleaner to me.
* The pager's `ajaxProcessing` function is now more flexible
* When returning the processed ajax data, it was required to return it in this form: `[ total, rows, headers ]`.
* With this update, you can now also return the data as `[ rows, total, headers ]`.
* If your database is dynamic and doesn't have a total, then you can just give it a really big number &amp; disable the "last" page button. The only reason the plugin needs the `total` is to calculate the total pages and to know what number to set when the user clicks on the last page button.
* **General documentation cleanup &amp; updates**
* Grouping widget corrections
* Updated the [repeat headers widget](http://mottie.github.io/tablesorter/docs/example-widgets.html) to use the newest widget template.
#### <a name="v2.8.2">Version 2.8.2</a> (3/28/2013)
* Updated the "ignore-leads" parser:
* Renamed the parser to "ignore-articles"
* Added language support and a few languages
* Added a method to add custom articles.
* Please see the [updated demo](http://mottie.github.io/tablesorter/docs/example-parsers-ignore-articles.html) (also renamed)
* Thanks for [thezoggy](https://github.com/thezoggy) for feedback.
* Fixed a bug in the grouping widget demo:
* The "priority (letter)" column was incorrectly parsing the data which, for some reason, worked in some browsers.
* Thanks again to [thezoggy](https://github.com/thezoggy) for reporting [this issue](https://github.com/Mottie/tablesorter/issues/267).

View File

@ -1,8 +1,9 @@
/*!
* tablesorter pager plugin
* updated 5/27/2013
* updated 10/10/2013
*/
/*jshint browser:true, jquery:true, unused:false */
/*global toString:true */
;(function($) {
"use strict";
/*jshint supernew:true */

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
{
"name": "tablesorter",
"version": "2.10.8",
"version": "2.11.0",
"dependencies": {
"jquery": ">=1.2.6"
}

View File

@ -1,37 +0,0 @@
{
"total": 80,
"headers" : [
"ID", "Name", "Country Code", "District", "Population"
],
"rows" : [
[ 1, "Kabul", "AFG", "Kabol", 1780000 ],
[ 2, "Qandahar", "AFG", "Qandahar", 237500 ],
[ 3, "Herat", "AFG", "Herat", 186800 ],
[ 4, "Mazar-e-Sharif", "AFG", "Balkh", 127800 ],
[ 5, "Amsterdam", "NLD", "Noord-Holland", 731200 ],
[ 6, "Rotterdam", "NLD", "Zuid-Holland", 593321 ],
[ 7, "Haag", "NLD", "Zuid-Holland", 440900 ],
[ 8, "Utrecht", "NLD", "Utrecht", 234323 ],
[ 9, "Eindhoven", "NLD", "Noord-Brabant", 201843 ],
[ 10, "Tilburg", "NLD", "Noord-Brabant", 193238 ],
[ 11, "Groningen", "NLD", "Groningen", 172701 ],
[ 12, "Breda", "NLD", "Noord-Brabant", 160398 ],
[ 13, "Apeldoorn", "NLD", "Gelderland", 153491 ],
[ 14, "Nijmegen", "NLD", "Gelderland", 152463 ],
[ 15, "Enschede", "NLD", "Overijssel", 149544 ],
[ 16, "Haarlem", "NLD", "Noord-Holland", 148772 ],
[ 17, "Almere", "NLD", "Flevoland", 142465 ],
[ 18, "Arnhem", "NLD", "Gelderland", 138020 ],
[ 19, "Zaanstad", "NLD", "Noord-Holland", 135621 ],
[ 20, "´s-Hertogenbosch", "NLD", "Noord-Brabant", 129170 ],
[ 21, "Amersfoort", "NLD", "Utrecht", 126270 ],
[ 22, "Maastricht", "NLD", "Limburg", 122087 ],
[ 23, "Dordrecht", "NLD", "Zuid-Holland", 119811 ],
[ 24, "Leiden", "NLD", "Zuid-Holland", 117196 ],
[ 25, "Haarlemmermeer", "NLD", "Noord-Holland", 110722 ]
],
"extra" : ["extra-info0-0", "extra-info0-1", "extra-info0-2", "extra-info0-3"]
}

View File

@ -1,37 +0,0 @@
{
"total": 80,
"headers" : [
"ID", "Name", "Country Code", "District", "Population"
],
"rows" : [
[ 26, "Zoetermeer", "NLD", "Zuid-Holland", 110214 ],
[ 27, "Emmen", "NLD", "Drenthe", 105853 ],
[ 28, "Zwolle", "NLD", "Overijssel", 105819 ],
[ 29, "Ede", "NLD", "Gelderland", 101574 ],
[ 30, "Delft", "NLD", "Zuid-Holland", 95268 ],
[ 31, "Heerlen", "NLD", "Limburg", 95052 ],
[ 32, "Alkmaar", "NLD", "Noord-Holland", 92713 ],
[ 33, "Willemstad", "ANT", "Curaçao", 2345 ],
[ 34, "Tirana", "ALB", "Tirana", 270000 ],
[ 35, "Alger", "DZA", "Alger", 2168000 ],
[ 36, "Oran", "DZA", "Oran", 609823 ],
[ 37, "Constantine", "DZA", "Constantine", 443727 ],
[ 38, "Annaba", "DZA", "Annaba", 222518 ],
[ 39, "Batna", "DZA", "Batna", 183377 ],
[ 40, "Sétif", "DZA", "Sétif", 179055 ],
[ 41, "Sidi Bel Abbès", "DZA", "Sidi Bel Abbès", 153106 ],
[ 42, "Skikda", "DZA", "Skikda", 128747 ],
[ 43, "Biskra", "DZA", "Biskra", 128281 ],
[ 44, "Blida (el-Boulaida)", "DZA", "Blida", 127284 ],
[ 45, "Béjaïa", "DZA", "Béjaïa", 117162 ],
[ 46, "Mostaganem", "DZA", "Mostaganem", 115212 ],
[ 47, "Tébessa", "DZA", "Tébessa", 112007 ],
[ 48, "Tlemcen (Tilimsen)", "DZA", "Tlemcen", 110242 ],
[ 49, "Béchar", "DZA", "Béchar", 107311 ],
[ 50, "Tiaret", "DZA", "Tiaret", 100118 ]
],
"extra" : ["extra-info1-0", "extra-info1-1", "extra-info1-2", "extra-info1-3"]
}

View File

@ -1,37 +0,0 @@
{
"total": 80,
"headers" : [
"ID", "Name", "Country Code", "District", "Population"
],
"rows" : [
[ 51, "Ech-Chleff (el-Asnam)", "DZA", "Chlef", 96794 ],
[ 52, "Ghardaïa", "DZA", "Ghardaïa", 89415 ],
[ 53, "Tafuna", "ASM", "Tutuila", 5200 ],
[ 54, "Fagatogo", "ASM", "Tutuila", 2323 ],
[ 55, "Andorra la Vella", "AND", "Andorra la Vella", 21189 ],
[ 56, "Luanda", "AGO", "Luanda", 2022000 ],
[ 57, "Huambo", "AGO", "Huambo", 163100 ],
[ 58, "Lobito", "AGO", "Benguela", 130000 ],
[ 59, "Benguela", "AGO", "Benguela", 128300 ],
[ 60, "Namibe", "AGO", "Namibe", 118200 ],
[ 61, "South Hill", "AIA", "", 961 ],
[ 62, "The Valley", "AIA", "", 595 ],
[ 63, "Saint John´s", "ATG", "St John", 24000 ],
[ 64, "Dubai", "ARE", "Dubai", 669181 ],
[ 65, "Abu Dhabi", "ARE", "Abu Dhabi", 398695 ],
[ 66, "Sharja", "ARE", "Sharja", 320095 ],
[ 67, "al-Ayn", "ARE", "Abu Dhabi", 225970 ],
[ 68, "Ajman", "ARE", "Ajman", 114395 ],
[ 69, "Buenos Aires", "ARG", "Distrito Federal", 2982146 ],
[ 70, "La Matanza", "ARG", "Buenos Aires", 1266461 ],
[ 71, "Córdoba", "ARG", "Córdoba", 1157507 ],
[ 72, "Rosario", "ARG", "Santa Fé", 907718 ],
[ 73, "Lomas de Zamora", "ARG", "Buenos Aires", 622013 ],
[ 74, "Quilmes", "ARG", "Buenos Aires", 559249 ],
[ 75, "Almirante Brown", "ARG", "Buenos Aires", 538918 ]
],
"extra" : ["extra-info2-0", "extra-info2-1", "extra-info2-2", "extra-info2-3"]
}

View File

@ -1,18 +0,0 @@
{
"total": 80,
"headers" : [
"ID", "Name", "Country Code", "District", "Population"
],
"rows" : [
[ 76, "La Plata", "ARG", "Buenos Aires", 521936 ],
[ 77, "Mar del Plata", "ARG", "Buenos Aires", 512880 ],
[ 78, "San Miguel de Tucumán", "ARG", "Tucumán", 470809 ],
[ 79, "Lanús", "ARG", "Buenos Aires", 469735 ],
[ 80, "Merlo", "ARG", "Buenos Aires", 463846 ]
],
"extra" : ["extra-info3-0", "extra-info3-1", "extra-info3-2", "extra-info3-3"]
}

View File

@ -52,6 +52,7 @@ p.small {padding-left: 25px;}
p.tip em, div.tip em {padding: 2px; background-color: #6cf; color: #fff;}
span.tip em {padding: 0 2px;background-color: #00ce53; color: #fff; font-size:90%; }
span.tip.old em { background-color: #cfd; color: #000; }
.beta:before { content: "Beta"; background: #888; border-radius: 3px; color: #fff; padding: 0 2px; margin: 0 4px 0 0; font-style: italic; }
span.warn em { background-color: #ce5300; }
.ui-slider .ui-slider-handle { width: 0.8em; height: 0.8em; }
div.digg {float: right;}

View File

@ -8,8 +8,10 @@
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<!-- Demo stuff -->
<link class="ui-theme" rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/cupertino/jquery-ui.css">
<link href="css/jq.css" rel="stylesheet">
<link href="css/prettify.css" rel="stylesheet">
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7/jquery-ui.min.js"></script>
<script src="js/prettify.js"></script>
<script src="js/docs.js"></script>
@ -24,6 +26,15 @@
<!-- Tablesorter: optional -->
<script src="../js/jquery.tablesorter.widgets.js"></script>
<script>
$(function(){
$('.accordion').accordion({
autoHeight: false,
collapsible : true
});
});
</script>
<script id="js">$(function(){
// Initialize tablesorter
@ -162,19 +173,39 @@
<div id="main">
<div class="tip">
<em>NOTE!</em>:
<p></p>
<br>
<div class="accordion">
<h3><a href="#">Notes</a></h3>
<div>
<ul>
<li>In <span class="version updated">v2.10</span>, The <code>ajaxProcessing</code> function was updated to only require a total number of rows to be returned, also instead of returning an array of table rows, you can build the table yourself and just return the jQuery object containing those rows. The addon triggers an update.</li>
<li>In <span class="version">v2.11</span>, the pager now stores any object returned by the `ajaxProcessing` function in `table.config.pager.ajaxData` (see the ajaxProcessing section below for more details).</li>
<li>In <span class="version updated">v2.10</span>, the <code>ajaxProcessing</code> function was updated to only require a total number of rows to be returned, also instead of returning an array of table rows, you can build the table yourself and just return the jQuery object containing those rows. The addon triggers an update.</li>
<li><code>{filterList:fcol}</code> was added to the <code>ajaxUrl</code> in version 2.6.</li>
<li><code>{sortList:col}</code> was added to the <code>ajaxUrl</code> in version 2.4.5.</li>
<li>This update to the pager plugin that interacts with a database via ajax was added in version 2.0.32 and can be applied to the original tablesorter.</li>
<li>The <code>ajaxUrl</code> and <code>ajaxProcessing</code> function are both required options for this interaction to work properly.</li>
<li>The <code>ajaxUrl</code> contains a replaceable string to send the requested page (<code>{page}</code>), block size (<code>{size}</code>) or sort order (<code>{sortList:name}</code>).</li>
<li>The <code>ajaxProcessing</code> function is needed to convert your custom JSON format into an array usable by the pager plugin (modified in 2.1.3)<br>
<br>
So, given this custom JSON format (this is only an example):
<pre class="prettyprint lang-javascript">{
<li>The table header and footer text will be updated to match the JSON "header column #" text; but there is an issue with the table rendering improperly if the number of columns in the HTML and the number of columns in the JSON don't match.</li>
<li><strong>Limitations of this demo</strong>:
<ul>
<li>This demo will not work when viewing it locally (except in Firefox) due to communication restrictions between the browser and your desktop.</li>
<li>The record size is limited to 25 records because this demo is not interacting with an actual database, but with four JSON files containing 25 records each.</li>
<li>Sorting of columns is disabled in this demo because no table data is cached when <code>serverSideSorting</code> is enabled. <del>Sorting of columns is enabled in this demo by setting the <code>serverSideSorting</code> option to <code>false</code> after initialization. It only sorts the current table contents because there is no server to return sorted data</del>.</li>
<li>The filters will only update the "Current Ajax url" because again, we're just working with JSON files here.</li>
</ul>
</li>
</ul>
<p class="small">* If you have a different JSON format and need help with the processing code, please ask the question on <a href="http://stackoverflow.com/questions/tagged/tablesorter">StackOverflow</a> or message me directly (gmail; wowmotty). Please don't open an issue for help with code.</p>
</div>
<h3><a href="#">ajaxProcessing</a></h3>
<div>
The <code>ajaxProcessing</code> function is needed to convert your custom JSON format into an array usable by the pager plugin (modified in 2.1.3)<br>
<br>
So, given this custom JSON format (this is only an example):
<pre class="prettyprint lang-javascript">{
"total_rows": 80,
"headers" : [
@ -202,8 +233,26 @@
"District": "Noord-Holland",
"Population": 110722
}]
}</pre>The <code>ajaxProcessing</code> function can return the data in the following format <code>[ total, rows, headers (optional) ]</code>, or in version 2.9+ <code>[ rows, total, headers (optional) ]</code>,
<br> or in <span class="version">v2.10</span>, return a jQuery object <code>[ total, $rows ]</code>, or just <code>[ total ]</code>:
}</pre>
<h3>OBJECT returned</h3>
<ul>
<li>In <span class="version">v2.11</span>, the <code>ajaxProcessing</code> can just return the above object directly (<strong>or don't even bother setting an <code>ajaxProcessing</code> function</strong>).
So, if an object is returned by the <code>ajaxProcessing</code> function, the data is stored in <code>table.config.pager.ajaxData</code>:
<ul>
<li>The object should contain attributes for <code>total</code> (numeric), <code>headers</code> (array) and <code>rows</code> (array of arrays).</li>
<li>A replacement <code>output</code> option can also be loaded via this method and must be included in the <code>output</code> attribute (i.e. <code>ajaxData.output</code>).</li>
<li>Additional attributes are also available to the output display by using the attribute key wrapped in curly brackets (e.g. <code>{extra}</code> from <code>ajaxData.extra</code>).</li>
<li>Additional attributes can also be objects or arrays and can be accessed via the output string as <code>{extra:0}</code> (for arrays) or <code>{extra:key}</code> for objects.</li>
<li>The page number is processed first, so it would be possible to use this string <code>{extra:{page}}</code> (<code>{page}</code> is a one-based index), or if you need a different value use <code>{page+1}</code> (zero-based index plus any number), or <code>{page-1}</code> (zero-based index minus any number).</li>
<li>For more details, please see <a href="https://github.com/Mottie/tablesorter/issues/326">issue #326</a>.</li>
</ul>
</li>
</ul>
<h3>ARRAY returned</h3>
<ul>
<li>The <code>ajaxProcessing</code> function can return the data in the following format <code>[ total, rows, headers (optional) ]</code>,
<br>or in version 2.9+ <code>[ rows, total, headers (optional) ]</code>,
<br>or in <span class="version">v2.10</span>, return a jQuery object within the array <code>[ total, $rows ]</code>, or just <code>[ total ]</code>:
<pre class="prettyprint lang-javascript">[
// total # rows contained in the database
80,
@ -216,19 +265,14 @@
],
[ "ID", "Name", "Country Code", "District", "Population" ] // [ "Header1", "Header2", ... "HeaderN" ] (optional)
]</pre></li>
<li>The table header and footer text will be updated to match the JSON "header column #" text; but there is an issue with the table rendering improperly if the number of columns in the HTML and the number of columns in the JSON don't match.</li>
<li><strong>Limitations of this demo</strong>:
<ul>
<li>This demo will not work when viewing it locally due to communication restrictions between the browser and your desktop.</li>
<li>The record size is limited to 25 records because this demo is not interacting with an actual database, but with four JSON files containing 25 records each.</li>
<li>Sorting of columns is enabled in this demo by setting the <code>serverSideSorting</code> option to <code>false</code> after initialization. It only sorts the current table contents because there is no server to return sorted data.</li>
<li>The filters will only update the "Current Ajax url" because again, we're just working with JSON files here.</li>
</ul>
</li>
</ul>
<p class="small">* If you have a different JSON format and need help with the processing code, please ask the question on <a href="http://stackoverflow.com/questions/tagged/tablesorter">StackOverflow</a> or message me directly (gmail; wowmotty). Please don't open an issue for help with code.</p>
</div>
</div>
<h1>Demo</h1>
Original Ajax url: <span id="origurl"></span><br>
Current Ajax url: <span id="url"></span>
@ -395,7 +439,7 @@ $('table')
$url.html(url);
})
.on('pagerInitialized', function(){
.on('pagerInitialized', function(){ console.log('pager init');
// allow THIS demo to sort the content; this variable is automatically set to true when ajax
// is used as there isn't any way to sort the server side data from the client side.
this.config.serverSideSorting = false;

View File

@ -301,7 +301,7 @@
<ul>
<li><a href="example-widget-filter.html">basic</a> (v2.0.18; <span class="version updated">v2.10</span>)</li>
<li><a href="example-widget-filter-custom.html">custom</a> (v2.3.6; <span class="version updated">v2.10.1</span>)</li>
<li>formatter (<a href="example-widget-filter-formatter-1.html">jQuery UI widgets</a> and <a href="">HTML5 Elements</a>) (v2.7.7).</li>
<li>formatter (<a href="example-widget-filter-formatter-1.html">jQuery UI widgets</a> and <a href="example-widget-filter-formatter-2.html">HTML5 Elements</a>) (v2.7.7).</li>
</ul>
</li>
<li><a href="example-widget-build-table.html">Build Table Widget</a> (<span class="version">v2.11</span>).</li>
@ -381,6 +381,10 @@
<li><a href="http://jsfiddle.net/Mottie/abkNM/325/">tablesorter basic demo using jQuery UI theme</a></li>
<li><a href="http://jsfiddle.net/Mottie/4mVfu/1/">tablesorter basic demo with pager plugin</a></li>
<li><a href="http://codepen.io/Mottie/pen/eqBbn">tableSorter LESS theme; modify the colors dynamically in this LESS theme demo!</a></li>
<li class="beta"> <a href="http://mottie.github.io/tablesorter/beta-testing/example-pager-custom-controls.html">Custom pager control script</a></li>
<li class="beta"> <a href="http://mottie.github.io/tablesorter/beta-testing/example-external-filters-using-select2.html">External filters using Select2 plugin</a></li>
<li class="beta"> <a href="http://mottie.github.io/tablesorter/beta-testing/example-widget-column-reorder.html">Column reorder widget</a> - not working 100% with sticky headers</li>
<li class="beta"> <a href="http://mottie.github.io/tablesorter/beta-testing/example-widget-sum-columns.html">Column sum widget</a> - still needs LOTS of work!</li>
<li>Check out the <a href="https://github.com/Mottie/tablesorter/wiki">home wiki page</a> <span class="tip"><em>more demos</em></span>!</li>
</ul>
@ -1473,7 +1477,7 @@ $(function(){
</thead>
<tbody>
<tr><td>30</td><td>columns</td><td>v1.2.6</td><td></td></tr>
<tr><td>50</td><td>filter</td><td>v1.4.3</td><td>1.4.3 (nextUntil)</td></tr>
<tr><td>50</td><td>filter</td><td>v1.4.3</td><td>1.4.3 (nextUntil &amp; delegate)</td></tr>
<tr><td>Last</td><td>pager</td><td>v1.2.6</td><td></td></tr>
<tr><td>40</td><td>resizable</td><td>v1.4.1*</td><td>1.4 (isEmptyObject); 1.4.1 (parseJSON)*</td></tr>
<tr><td>20</td><td>saveSort</td><td>v1.4.1</td><td>1.4.1 (parseJSON)*</td></tr>
@ -3603,7 +3607,7 @@ $.tablesorter.addHeaderResizeEvent( table, true );</pre></div>
<a id="Download"></a>
<h1>Download</h1>
<p><strong>Full release</strong> - Plugin, Documentation, Add-ons, Themes. Download: <a class="download zip" href="https://github.com/Mottie/tablesorter/zipball/master">zip</a> or <a class="download tar" href="https://github.com/Mottie/tablesorter/tarball/master">tar.gz</a></p>
<p><strong>Full release</strong> - Plugin, Documentation, Add-ons, Themes. Download: <a class="download zip" href="https://github.com/Mottie/tablesorter/archive/master.zip">zip</a> or <a class="download tar" href="https://github.com/Mottie/tablesorter/archive/master.tar.gz">tar.gz</a></p>
<p><strong>Pick n choose</strong> - Place at least the required files in a directory on your webserver that is accessible to a web browser. Record this location.</p>
@ -3615,7 +3619,7 @@ $.tablesorter.addHeaderResizeEvent( table, true );</pre></div>
<strong id="Download-Addons">Optional / Add-Ons:</strong>
<ul>
<li><a class="external" href="http://plugins.jquery.com/files/jquery.metadata.2.1.zip">jQuery Metadata 2.1</a> (4kb, required for setting <a href="#metadata">inline options</a>)</li>
<li><a class="external" href="https://github.com/jquery-orphans/jquery-metadata">jQuery Metadata 2.1</a> (4kb, required for setting <a href="#metadata">inline options</a>)</li>
<li><a href="../js/jquery.tablesorter.js">jquery.tablesorter.js</a> (47kb/<a href="../js/jquery.tablesorter.min.js">23kb min</a>)</li>
<li><a href="../addons/pager/jquery.tablesorter.pager.js">jquery.tablesorter.pager.js</a> (16kb/<a href="../addons/pager/jquery.tablesorter.pager.min.js">8kb min</a>, <a href="example-pager.html">demo</a>)</li>
<li><a href="../js/jquery.tablesorter.widgets.js">jquery.tablesorter.widgets.js</a> (36kb/<a href="../js/jquery.tablesorter.widgets.min.js">17kb min</a>, includes the jQuery UI theme, columns styling, resizable columns, filter, sticky header and save sort widgets.</li>

View File

@ -1,5 +1,5 @@
/*!
* TableSorter 2.10.8 - Client-side table sorting with ease!
* TableSorter 2.11.0 - Client-side table sorting with ease!
* @requires jQuery v1.2.6+
*
* Copyright (c) 2007 Christian Bach
@ -24,7 +24,7 @@
var ts = this;
ts.version = "2.10.8";
ts.version = "2.11.0";
ts.parsers = [];
ts.widgets = [];
@ -138,6 +138,7 @@
// $.isEmptyObject from jQuery v1.4
function isEmptyObject(obj) {
/*jshint forin: false */
for (var name in obj) {
return false;
}

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
/*! Filter widget formatter functions - updated 6/4/2013
/*! Filter widget formatter functions - updated 10/10/2013
* requires: tableSorter 2.7.7+ and jQuery 1.4.3+
*
* uiSpinner (jQuery UI spinner)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,7 @@
{
"name": "tablesorter",
"title": "tablesorter",
"version": "2.10.8",
"version": "2.11.0",
"description": "tablesorter is a jQuery plugin for turning a standard HTML table with THEAD and TBODY tags into a sortable table without page refreshes. tablesorter can successfully parse and sort many types of data including linked data in a cell.\n\nThis forked version adds lots of new enhancements including: alphanumeric sorting, pager callback functons, multiple widgets providing column styling, ui theme application, sticky headers, column filters and resizer, as well as extended documentation with a lot more demos.",
"author": {
"name": "Christian Bach",

View File

@ -1,7 +1,7 @@
{
"name": "tablesorter",
"title": "tablesorter",
"version": "2.10.8",
"version": "2.11.0",
"description": "tablesorter is a jQuery plugin for turning a standard HTML table with THEAD and TBODY tags into a sortable table without page refreshes. tablesorter can successfully parse and sort many types of data including linked data in a cell.\n\nThis forked version adds lots of new enhancements including: alphanumeric sorting, pager callback functons, multiple widgets providing column styling, ui theme application, sticky headers, column filters and resizer, as well as extended documentation with a lot more demos.",
"author": {
"name": "Christian Bach",