DataTables releases feed http://www.datatables.net/ en-us Software release information for DataTables and its extensions Buttons 3.2.1 released A patch release with a couple of bug fixes and better support for React / Vue.

Fixes

  • Javascript error when showing fixed popover
  • If an HTML node is returned for a data point, the content of the node should be used on data export. This applies particularly to the Vue and React components for DataTables which allow templates to be used, which are HTML nodes when rendered.
  • Bootstrap 5 dark mode integration didn't show the info popover as dark

Download Buttons 3.2.1

]]>
Wed, 22 Jan 2025 14:27:41 GMT http://www.datatables.net/#649 http://www.datatables.net/
DataTables 2.2.1 released A quick patch release to address two issues found with column sizing in 2.2.

Fixes

  • Tables with borders would overflow when scrolling was enabled
  • The automatic resize handling wouldn't allow the content to get smaller

Download DataTables 2.2.1

]]>
Thu, 09 Jan 2025 15:15:53 GMT http://www.datatables.net/#648 http://www.datatables.net/
Select 3.0.0 released Two significant new features for this release of Select - keyboard navigation options and improved APIs for selection with server-side processing.

New

  • select.keys option - enabled row navigation and selection by keyboard of a DataTable. Also includes supporting methods, types and example.
  • Improved support for server-side processing through new additive / subtractive modes

Download Select 3.0.0

]]>
Tue, 07 Jan 2025 16:07:54 GMT http://www.datatables.net/#647 http://www.datatables.net/
DateTime 1.5.5 released A patch release with a handful of fixes, including better support for dark mode with Bulma and Bootstrap 5.

Fixes

  • Add a return type for the static use method for strict compiling
  • Dark mode wasn't applied using the Bootstrap or Bulma standard method of enabling dark mode.
  • When focus is blurred programmatically rather than a user input, the picker would not be hidden. It is now.
  • If using the API to set the input's value to the value that is already is, don't trigger a change event.

Download DateTime 1.5.5

]]>
Tue, 07 Jan 2025 15:06:57 GMT http://www.datatables.net/#646 http://www.datatables.net/
Editor 2.4.0 released A big update for Editor, with the headline feature being built in auto-complete support through the new autocomplete and tags built-in field types. These field types compliment the existing ones, and are very useful for cases where you want to provide predefined options, but also allow extra flexibility. The server-side libraries (.NET, PHP and Node.js) all have full support for these new field types.

There are a number of other new features such as i18n.field, easier integration with Bootstrap and other styling frameworks, support for Bulma dark mode and much more. For full details, please see the release notes below.

Core

New

  • autocomplete field which can be used to provide a list of options for a text input field for fast data entry.
  • tags field type which is a cross between an autocomplete and a select list. A drop down shows a list of options that a user can add to a collection of tags.
  • i18n.field language object which holds the defaults for the strings used by the various field types. This allows full translation through a single language object or Ajax loaded file.
  • i18n.field.upload and i18n.field.uploadMany language objects, providing the default strings for the upload field types. This can be overridden as before on the configuration object for the field, but now it is also possible to set them as part of the language object, including having it load from the DataTables Ajax language file.
  • field().submittable() method to be able to dynamically change the submit flag for a field (fields.submit).
  • field().type() method to get the field type as a string
  • i18n() method for accessing Editor internationalisation records
  • dependent() will be triggered when multi-row editing and multiple different values exist for a field. Previously dependent would only trigger if the values all matched. Note that the value for the field passed in to the callback function is undefined. You may wish to use the multi-row editing API if this is a situation that your program might encounter and need to handle.
  • insertPoint option for bubble() to tell Editor where to insert the bubble node.
  • Bootstrap and Foundation integration can work with DataTable.use() to get the styling library (i.e. the modal). This requires DataTables 2.1.9 or newer.
  • During file upload the field will show its processing indicator
  • Integration with Bulma 1.0, including support for dark mode
  • Options for fields are updated automatically if included in the JSON response for Editor Ajax actions.
  • When nested editing, the form title will now reflect that you are editing multi-layers deep to give the end user an indication that they are in a nested editor.
  • Form can be left in its state after submission through the onComplete option of form-options or the hide parameter of submit().

Fixes

  • Editor requires at least DT 1.11.
  • SCSS 1.77.7 compatibility
  • Demos - MySQL tables now explicitly use utf8mb4
  • dependent() callback was being triggered twice when starting a create action.
  • dependent() was being triggered when options were loaded (typically on page load), but no form was active.
  • inlineCreate() would trigger a change event twice on fields when called.
  • datatable would throw an error if performing nested editing on a non-Ajax table.
  • Field processing indicator was misaligned when used with Bootstrap 5
  • getFormatter was not being used for multi-row editing
  • If a field is hidden due to a dependent() action and gains focus at the same time, focus will automatically be moved on to the next field, rather than leaving focus on a now hidden field.
  • If an array data source is used for the DataTable rows, Editor should work with arrays as well, rather than an object with number properties.
  • If a template element is not found, don't attempt to append to it
  • Include Typescript defs for the buttons that Editor provides for the DataTables "Buttons" extension.
  • jQuery UI integration displayNode() now returns the modal, rather than the scrolling container inside it. This is consistent with the other styling integrations.
  • Multiple row editing information text was not translatable
  • New rows didn't have a "flash" to indicate the row that was just created (matching the flash of a row after edit).
  • Reference API docs redirects in HTML rather than Nginx
  • Remove for attribute on the label element for a hidden field type as there is no matching input in the DOM.
  • Select2 was not working if added in an init* event.
  • Use field().input() to get the element to focus on, rather than assuming input, textarea or select.
  • When resembling the DOM structure, do so with the header and footer as well. Semantic UI specifically needs this when editing a second row without closing the modal.
  • When server-side processing and KeyTable with editOnFocus enabled, only every second cell would be editable when tabbing through a table.
  • When using arrays inside a nested object, on edit the array wouldn't be fully replaced (as it would be at the top level).
  • Bulma when used with a modal and triggering editing again without closing the modal would duplicate the close icon at the top.
  • Bulma - error styling could apply to the whole field (if in an error state), rather than just the error message.

Examples

  • New examples for autocomplete
  • New examples for tags
  • New example showing "create and add another" for data entry
  • New example showing dropdown control in the table for editing control
  • Create a new "triggering" group of examples showing different ways in which editing can be triggered.
  • Correct comment syntax in MySQL demo file
  • Tweak the SQL order for MySQL to drop in sequence if rebuilding the demo database
  • Import / export shouldn't include the footer

.NET

New

  • Add a .NET8 target
  • Ability to run global validators after field validation. Previously the global validator would run before the field validation, but now it is possible to also run validators after. This is done by passing true as the first argument to the Editor.validator() method and then the validation function as the second parameter. The original behaviour is maintained when either false is given as the first parameter, or if the validation function is given as the first parameter (i.e. a new overload has been introduced).
  • Mjoin can now operate off data points which have been LeftJoined.
  • Mjoin now supports EditorIgnore, EditorGet and EditorSet attributes for models, matching the capabilities of the core Editor class.
  • new Options() can now be passed parameters for easy creation of options without needing the chained methods, for the most simple of use cases.
  • Options class can have ordering completely disabled by passing false to the Order() method.
  • Support for autocomplete and tags via the Options class

Updates

  • AspNetCore includes for .NET8 - NETSDK1080 error

Fixes

  • Compatibility with Npgsql 6+
  • Server-side processing with SQL Server would give an error when entering into the neutral sort (i.e. third click of a column header
  • Use of .Split(char) was causing an error in .NET Framework

Node.js

New

  • Ability to run global validators after field validation. Previously the global validator would run before the field validation, but now it is possible to also run validators after. This is done by passing true as the first argument to the Editor.validator() method and then the validation function as the second parameter. The original behaviour is maintained when either false is given as the first parameter, or if the validation function is given as the first parameter.
  • new Options() can now be passed parameters for easy creation of options without needing the chained methods, for the most simple of use cases.
  • Options class can have ordering completely disabled by passing false to the order() method.
  • Support for autocomplete and tags.

New

  • Options class now considers add()ed options for search, limit and ordering.
  • Server-side processing with SQL Server would give an error when entering into the neutral sort (i.e. third click of a column header)

PHP

New

  • Ability to run global validators after field validation. Previously the global validator would run before the field validation, but now it is possible to also run validators after. This is done by passing true as the first argument to the Editor->validator() method and then the validation function as the second parameter. The original behaviour is maintained when either false is given as the first parameter, or if the validation function is given as the first parameter.
  • List of options is returned after create and edit commands, to allow new options created from the action to be included in the lists. New: If this behaviour is not desirable (as it is an extra query), the Field->alwaysRefresh() method can be used to disable it.
  • new Options() can now be passed parameters for easy creation of options without needing the chained methods, for the most simple of use cases.
  • Options class can have ordering completely disabled by passing false to the order() method.
  • Support for Editor's new options search command
  • Support for including database columns other than the label and value in Options response

Fixes

  • Compatibility with PHP 8.4
  • Consistent code style with CS Fixer
  • Many (but not all, yet) PHPStan level 6 warnings
  • Options class now considers add()ed options for ordering, filtering and limiting.
  • PHP 8.3 deprecation error for strcmp with a null second argument
  • Server-side processing with SQL Server would give an error when entering into the neutral sort (i.e. third click of a column header)

Download Editor 2.4.0

]]>
Mon, 06 Jan 2025 15:05:35 GMT http://www.datatables.net/#645 http://www.datatables.net/
DataTables 2.2.0 released Kicking the new year off with a significant release of DataTables! This release makes the manual calling of columns.adjust() redundant by doing it automatically as a table is resized! There are also improvements in state restoring, styling framework integrations and more. Please see the release notes below for full details.

New

  • Automatic resizing when the table's container changes width (uses ResizeObserver). The upshot of this is that you don't need to call columns.adjust() any more if the table is made visible, having initially been hidden, or its container otherwise changes width due to some other resizing on the page.
  • Support for state restoring when columns have been reordered, added to or removed. This requires that columns.name be set to allow a column to be uniquely identifies. If it is not set then column state will not be loaded if the number of columns in the table changes (i.e. similar to 2.1-).
  • html-utf8 data type which supports correct diacritic sorting - i.e. it is the same as string-utf8, but with support for HTML in the string.
  • DataTable.use() can now have Bootstrap (5) and Foundation JS libraries set so extensions such as Editor and Responsive can use the JS function (e.g. Modal). They had their own methods for that in the past (which will work for backwards compatibility), but this provides a single common approach for all libraries that DataTables components can use.
  • CSS variables to control row hover alpha

Updated

  • Moved the tab focus (for keyboard access to ordering) to the ordering icon, rather than the full header cells. This makes a lot more sense as it acts as a button to trigger ordering, and it addresses a spec violation error which dictates that you cannot have aria-sort and tabindex on the same elements.
  • State restore will still attempt to restore the state for paging, page length and search, even if the number of columns has changed.
  • The state object now includes a name property for the columns array and if a column name is set, in the sorting array.

Fixes

  • If columns.className is used to define an alignment class such as dt-left, it will now take priority over the automatic type detection classes.
  • Update columns.orderData documentation to note that you will likely want to include the original source column so the order indicator at the top of the table is correctly shown.
  • layout's output depended for a row depended on the order Start and End were given in. That is no longer the case and Start will always precede End in the DOM.
  • Remove the name attribute from the length dropdown select (pageLength). This prevents it from being submitted in a form.
  • Headers which used colspan with a single row would throw an error
  • tabIndex wasn't being obeyed for the column headers
  • Don't set aria-disabled on the ellipsis element for the pagination control
  • Set the tfoot to be hidden when it is empty to improve accessability
  • Bulma dark mode without a table footer would show a white border at the bottom of the table.
  • .use() method wasn't using strict type checking for one check, which caused problems with ESM imports
  • DataTable.ext.classes.thead.row wouldn't apply to a header row that had been dynamically created by DataTables (only to existing header rows). The same with .tfoot.row as well.
  • Potential stack overflow issues in Chrome when making large arrays
  • When server-side processing is enabled, the columns could go out of alignment when paging
  • Date render helpers wrt. setting locales in Luxon
  • typeDetect option name was documented incorrectly
  • When using a CSS selector for the column selector (columns()) the order is now guaranteed to be in column index order.
  • Very old Safari (7/8) doesn't support Array.from which was used in one unprotected position. Support for DataTables is the main browsers for the last 10 years, so this has been addressed.
  • Sizing of columns when scrolling is enabled
  • Check that the paging control has any width before triggering responsive control

Typescript

  • Make the returned Node types more specific (e.g. HTMLTableCellElement and friends)
  • Correct language.aria types
  • Tighten up the types for headerCallback and other functions.

Docs

  • Correct signature parameters names for preXhr
  • Correct old error event to be dt-error

Examples

  • Handle the readyState = interactive condition when loading and adding libraries to be loaded.
  • Fix error in BS4 dark mode message
  • Fix link to auto rendering example

Download DataTables 2.2.0

]]>
Mon, 06 Jan 2025 09:03:53 GMT http://www.datatables.net/#644 http://www.datatables.net/
Buttons 3.2.0 released This release of Buttons has a reworking of how the dropdown icon is shown in individual buttons, and it can now be enabled using the buttons.buttons.dropIcon option, which is particularly useful when working with modals.

There are a number of other new features and fixes - see release notes below for full details.

New

  • buttons.buttons.dropIcon - ability to show a dropdown icon per button to indicate to the end user that further interaction will be required when the button is activated.
  • Buttons with a split can now be enabled and disabled like normal buttons
  • Split button will disable automatically if there are no enabled buttons inside it, and then enable itself if a button is enabled (e.g. from an action such as selecting a row in the table).
  • Add escapeExcelFormula to buttons.exportData() and enable it by default for the CSV export button to prevent possible formula injection.
  • When closing a popover, trigger a buttons-popover-hide.dt event on the body.
  • sort option for colvis which can be set to be alphabetic to have the buttons shown in the dropdown sort alphabetically.

Fixes

  • If a popover is fixed position, then attach it to the body, rather than next to the host button
  • Clicking on a button from a split list will now cause the collection to hide.
  • An error would occur if an export button was used as a split
  • Update structure of some elements for SASS update. No functional change
  • Dropup wasn't working when in an offset parent with a low position top

Typescript

  • Fix collection button type

Download Buttons 3.2.0

]]>
Tue, 12 Nov 2024 08:17:28 GMT http://www.datatables.net/#643 http://www.datatables.net/
RowGroup 1.5.1 released Fixes and updates to the Typescript defs only. No functional change in the software.

Typescript

  • level parameter was missing from startRender and endRender
  • The rendering functions get an ApiRowMethods object, not just a plain API one.
  • dataSrc can accept an array of values to represent the levels

Download RowGroup 1.5.1

]]>
Thu, 07 Nov 2024 08:18:02 GMT http://www.datatables.net/#642 http://www.datatables.net/