Commits on Jun 4, 2011
  1. DataTables 1.8.0 :-)

    committed Jun 4, 2011
Commits on May 30, 2011
  1. New: mDataProp can now be a function as well as either a string or an

    integer. This allows dynamic reading of information from the source
    object (for example getting the length of an array in the data source
    object) as well as the deep object reading and array index reading
    already available. The function is called with a single argument (the
    data object) when being read and two arguments (the data object, new
    value) when being set. This can be seen as an alternative to fnRender
    but it makes sense to include this functionality here as an option.
    committed May 30, 2011
Commits on May 29, 2011
  1. Update: Unit tests which text the argument count for fnServerData upd…

    …ated to include oSettings being passed as fourth argument
    New: sLoadingRecords tests added for Ajax source loading
    committed May 29, 2011
Commits on May 28, 2011
  1. Fix: When using server-side processing the new sLoadingRecords messag…

    …e is not used since the draw doesn't progress that far. As a result the same issue as was fixed in commit cc1908b could occur and needs to be addressed here by checking for server-side processing. Regression picked up by unit tests
    committed May 28, 2011
  2. Fix: Treat null the same as an empty string for type detection - i.e.…

    … don't try to detect a type on it. Regression picked up by unit tests
    committed May 28, 2011
Commits on May 27, 2011
  1. Fix: The check against sAjaxSource for the 'loading...' message shoul…

    …d be null rather than an empty string since null is the default for sAjaxSource. This error would result in the loading message being shown if the table has no results initially
    committed May 27, 2011
  2. New: The object returned by $.ajax is assigned to jqXHR in the table'…

    …s settings object now. This means that you can access the XHR in fnDrawCallback (or any of the other callback functions, or anything with access to the settings object!) to do further data manipulation if you wish.
    committed May 27, 2011
Commits on May 26, 2011
  1. Fix: The return false in the click handler for the full numbers pagin…

    …ation numbers was somewhat too harsh and stopped other
    events from being attached to those elements if the developer wanted. Just use preventDefault instead - 5105
    committed May 26, 2011
Commits on May 19, 2011
  1. Fix: If there was a nested table in the thead of our target table, th…

    …en the getElementsByTagName was getting the wrong element - so use a more specific jQuery selector.
    committed May 19, 2011
Commits on May 18, 2011
Commits on May 17, 2011
  1. Fix: The automatic type detection algorithim can incorrect give preci…

    …dence to numeric sorting when an empty cell is found. This means that a column of dates with a single empty cell would be sorted as a string. The fix is to skip type detection on empty cells. This also means that the sorting algorithim needs to be updated since sType might not be defined for a column when it is sorted on now (if the data in the column is empty).
    Fix: iDataSort, sDataType in the sort function should be declared as local parameters - should give a tiny bit more speed to the sort
    committed May 17, 2011
Commits on May 15, 2011
  1. DataTables 1.8 beta 4 development starting point

    Fix: If state saving is enabled, but sorting is not - then any saved filter would not be automatically applied. The fix is to call the filtering function at start up. Thanks to Michael Hamann and Roland Ramthun for finding and fixing this issue.
    committed May 15, 2011
Commits on May 14, 2011
  1. DataTables 1.8 beta 3

    committed May 14, 2011
  2. Fix: Tidy up the fnGetPosition API method and allow it to cope with g…

    …etting a TH cell's position in the table as well as TR and TD elements. The input and output options for the function have not changed - just it's internal operation.
    committed May 14, 2011
  3. New: fnUpdate has been updated (oh the irony) to accept either an ind…

    …ividual value, an array or an object as the first parameter passed to it. The individual and array options behave exactly as they did before this change - the new option is the object being passed in. This allows fnupdate to be given a data object which is identical to data objects used by the table when using complex objects and mDataProp. How fnUpdate itself actually operates has also changed to be self calling, which makes the multipe column updates for arrays and objects much easier.
    Fix: fnUpdate now works with TH elements in the body as well as TD elements
    committed May 14, 2011
Commits on May 13, 2011
  1. New: New callback function fnPreDrawCallback which is called at the v…

    …ery start of each table draw (so rather like fnDrawCallback, just before the
    draw!). This function is, like all other DataTables callbacks, execuated with the DataTables instance scope, and also takes a single parameter -
    the DataTables settings object. The attached function can cancel the draw by returning false, anyother return (including undefined) results in the
    full draw occuring).
    committed May 13, 2011
  2. New: New language option sLoadingRecords which is used when the table…

    …'s data is Ajax sourced, and at the first draw only. This provides an
    indication that the data is currently being sourced from the server (i.e. Loading...) rather than showing 'No data available in table' - which is
    not particularly friendly. Note that for server-side processing, DataTables will leave whatever is in TBODY when it makes the first Ajax request,
    so with server-side processing you would need to put in a TR/TD into the static HTML table.
    committed May 13, 2011
  3. Dev fix: The insertBefore for column visibility was incorrect if the …

    …next column was hidden as well. Need to 'fast-forward' to the next visible column to get the insert point.
    committed May 13, 2011
Commits on May 12, 2011
  1. Fix: fnSetColumnVis didn't cope with TH elements in the body due to t…

    …he use of a 'td' selector. The fix for this is to use _fnGetTdNodes() (since that can get an array of TD|TH nodes, which in turn allows a nice tidy up of the insert part of the function.
    committed May 12, 2011
  2. Fix: fnSetColumnVis was broken when used with deferred rendering due …

    …to the offset calculation done with the huge flat array of TD nodes. The fix is to simplify this somewhat and get an array for each row (when it is available) and process that using the optional parameter for _fnGetTdNodes. This doesn't result any any extra computation time, other than the addional time to call the function (but not to execute it), since it is just moving where the loop is.
    committed May 12, 2011
  3. Fix: New algorithim for calculating the column widths for a table whe…

    …n x-scrolling is enabled. Basically browsers need a bit of a hand when a width is assigned to any columns when x-scrolling as they tend to collapse the table to the min-width, even if we sent the column widths. So we need to keep track of what the table width should be by summing the user given values, and the automatic values
    committed May 12, 2011
  4. Fix: Passing an integer for sWidth would cause the column width calcu…

    …lations to go completely off since they weren't actually used by the browser. Make use of the _fnStringToCss helper function for exactly this kind of thing.
    committed May 12, 2011
  5. New: New column option - sContentPadding. What this option does is ta…

    …g on an extra string to the content of the columns in the width calculation table, in order to take account of the fact that 'iii' is actually less wide than 'mm', but DataTables will pick 'iii' as the longer due to the string width. With sContentPadding you can add an extra string to any column to force DataTables to take account of this during the width calculation - the string in sContentPadding is not used anywhere else and is empty by default. This option will remain undocumented for the moment, since I suspect it will confuse more than help, but it is very useful to have around when x-scrolling.
    committed May 12, 2011
  6. Fix: When calculating the string width for column sizes, we know that…

    … we are going to be using strings for the display - so cast as a string, which means that we can take the length of any primitive (particularly numbers).
    Fix: The max string width calculation was including HTML, which is just plain wrong since the HTML will be hidden. This is still not perfect since "iiii" takes less space than "mmm" in the browser display, but addressing that would take some serious clocks cycles, and this is good enough for now.
    committed May 12, 2011
  7. Fix: _fnGetTdNodes works on a column data array basis, not visible co…

    …lumns, so _fnGetWidestNode need only deal with column indexes. It was possible before that the width calculation would be done in the wrong column if using hidden columns
    committed May 12, 2011
  8. Fix: fnGetData should give the original data object, rather than the …

    …array that DataTables uses for rendering the actual table. This was part of the original commit for the 1.8 object handling, but in retrospect, the original data is much more useful.
    committed May 12, 2011
Commits on May 11, 2011
  1. Fix: When calculating the column widths, we should get the data to di…

    …splay, otherwise a null element (particularly when using a null mDataProp) can
    cause issues with columns being skipped (due to the null return)
    committed May 11, 2011
Commits on May 10, 2011
  1. Fix: When using fnRender with a null mDataProp, although the renderin…

    …g function was called, it wasn't actually saved anywhere. This meant that when the cell was actually created and the data source attempted to be read, the rendered string wasn't available - thus you got an empty cell (4943). This fix is to add a condition to the rendering call to delay until the node is created. Note that there is still a quirk here, in that the rendered data cannot be used for sorting or filtering, since again it isn't stored anywhere when the data source is null.
    committed May 10, 2011
Commits on May 9, 2011
  1. New: sDefaultContent property for aoColumns / aoColumDefs. This new p…

    …roperty allows a default value to be given for a column's data, and will be used whenever a null data source is encountered (this can be because mDataProp is set to null, or because the data source itself is null). In addition to this, when set if the mDataProp value is undefined, the default will be used instead (and no error given). If sDefaultContent is not set (default is null), and the mDataProp value is undefined, an error will be given as it currently is.
    committed May 9, 2011