Friday 3rd February, 2023

Editor 2.1.0 release notes

Editor 2.1.0 doesn't focus on just one specific area of Editor, but rather has improvements and addresses bugs throughout the entire code base. Full support for ESModule loading and Typescript definitions that operate with DataTables 1.13+, new options for form-options to provide a more complete inline editing experience and big performance improvements in search-side processing with SearchPanes are just scratching the surface.

See below for the full list of changes.

Downloads

Downloads of specific versions of Editor are only available to license holders. Please see the download page for information about the current release version.

Release notes

Core

New

  • New: cancelHtml and cancelTrigger options for form-options to provide a helper cancel button when using inline editing. The example has been updated to show this.
  • New: The cancelTrigger and submitTrigger options for form-options can now be given as a CSS selector that will pick any element from the row being inline edited.
  • New: bubble() positioning responds to the page's scrolling to keep the bubble in view as long as possible. New: bubble() will display above or below the target more consistently - if a previous view was below the target, the next view will be as well (assuming it will fit into the viewport)
  • New: Easier styling integration for modal headers. Integrations can now specify a tag and class to use for the modal's header making internationalisation much easier. Used for Bootstrap 3-5 and Bulma.
  • New: Example showing datetime being used with Luxon New: e-datetime can now be used with Luxon (Moment.js is also still supported) Fix: momentLocale and momentStrict properties are propagated to DateTime library
  • New: Support for Bootstrap 5's floating labels
  • New: Typescript definitions rewritten to fully interoperate with DataTables own Typescript definitions.
  • New: Upload error messages can now be translated through a new errors property for the upload and uploadMany field types

Updates

  • Updated: DataTables styling - improved use of space for wider inputs such as datatable Updated: Improved styling for tablet sized devices
  • Updated: Typescript definitions for API methods now includes override specific signatures
  • Update - example: Nested editing example now gets data from Ajax data source for nested table

Fixes

  • Fix: Allow access via $.fn.DataTable after updates to build system
  • Fix: Bubble editing would appear to stop working after the first edit when using jQuery Slim
  • Fix: Class names were not being applied to an inlineCreate() row if there wasn't already a row in the table.
  • Fix: Decoding entities with a leading 0
  • Fix: Error message wasn't shown in Chrome if an invalid file was uploaded, the create / edit cancelled and then the same file uploaded again.
  • Fix: If dependent() was set on a field that is then also used for submission by pressing enter, the dependent action would not complete before the submission happens.
  • Fix: Multiple buttons in the footer would show reversed
  • Fix: Nested tables were not populating options based on options found in an Ajax response.
  • Fix: <select> fields shouldn't extend further than the display limit if they contain long label strings
  • Fix: Tidy documentation for datetime and point the configuration object for DateTime to its own documentation
  • Fix: Translation example didn't include translations for datetime field
  • Fix: When scrolling is enabled in a datatable field we now automatically scroll to the first selected row (similar to how the paging was already changed to the page of data which has the first selected row).
  • Fix: When using dependent() with a function for the data attribute in the options, it would be overwritten with the value it returns.
  • Fix: Improvements to CSS for alignment for upload elements
  • Fix: Bootstrap 5 - add modal classes only when using modal for form. This allows other display controllers such as "Off Canvas" to be used to display the form
  • Fix - example: Parent / Child editing with DataTable now has the inner editor hidden while creating a parent row.

.NET

New

  • New: Support for Microsoft.Data.SqlClient data provider
  • New: Ability to specify a custom primary key value on upload by adding it to the list of properties to set
  • New: Add library version to debug information when debug is enabled
  • New: Support for left joins from Mjoin instances using the new Mjoin.leftJoin() method, which has the same signature as Editor's leftJoin() method New: Support for left joins from Options instances using the new Options.leftJoin() method, which has the same signature as Editor's leftJoin() method
  • New: Upload.Db() now has an optional fourth parameter that allows a post data fetch formatting function

Updates

  • Updated: Improvements to server-side processing performance with SearchPanes

Fixes

  • Fix: Null values were not being written to the database (Postgres)
  • Fix: Postgres auto-type detection was too loose. Made it much tighter while also providing methods to allow easier override through the Field.DbType method.

Node.js

New

  • New: Ability to specify a custom primary key value on upload by adding it to the list of properties to set
  • New: Add database connection as a parameter to the upload validators
  • New: Add library version to debug information when debug is enabled
  • New: Database post file processing update ability. A custom upload action can now execute a callback function to update the database row created by the db() method, or insert a new row.
  • New: Support for left joins from Mjoin instances using the new Mjoin.leftJoin() method, which has the same signature as Editor's leftJoin() method New: Support for left joins from Options instances using the new Options.leftJoin() method, which has the same signature as Editor's leftJoin() method
  • New: Upload.db() has a fourth parameter now that allows a post data fetch formatting function to be passed in

Updates

  • Update: export database types
  • Update: Pass field to postUpload event handler

Fixes

  • Fix: Add missing postUpload event
  • Fix: Custom upload action now has the correct Typescript definitation (rather than just 'Function')
  • Fix: dBClean was executed without an await which could result in trying to work with a transaction that has already completed
  • Fix: Options will use a DISTINCT query now
  • Fix: Update dependencies to latest versions

PHP

New

  • New: Ability to specify a custom primary key value on upload by adding it to the list of properties to set
  • New: Add library version to debug information when debug is enabled
  • New: leftJoin() method for Options class to allow easy referencing of information from other tables
  • New: Support for left join from an Mjoin (Mjoin->leftJoin() with the same signature as Editor->leftJoin())
  • New: Upload->db() now has an optional fourth parameter that allows a post data fetch formatting function

Fixes

  • Fix: Address PHP 8.1 warning over use of explode with null values
  • Fix: Compatibility error with 8.1 for the Upload data fetch
  • Fix: Performance of SearchPanes server-side processing was significantly degraded due to O(n^2) looping and redundant SQL queries
  • Fix: PHP 8.2 compatability
  • Fix: Update HTMLawed to 1.2.10
  • Fix: When using a callable function for a database column, set the value immediately rather than using - which can cause type errors
  • Fix: When wrapping a field name in quotes, we might need to escape the quote characters in the string