Editor 1.9.0 release notes
Previous iterations of the Editor 1.x series have seen major new features such as multi-row editing and server-side libraries for .NET Core and NodeJS added. 1.9 takes a slightly different tack focusing primarily on addressing known issues and rounding off the API. That said the main reason for moving to 1.9 releases is the new time picker for the datetime input. The new time picker provides the ability to very quickly select a time, rather than needing to use multiple clicks and scrolling through select lists.
A new example is also available which shows CSV importing into Editor. This will be broken down in detail in a blog post soon.
Please see the release notes for full details.
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
New
- Javascript
- The
ajaxoption ofuploadcan now be used as a function, allowing complete control of the upload process on the client-side. - The DateTime picker's
onChangecallback will now execute in the scope of the date time instance and pass two arguments: 1. The selected value (as a string) and 2. TheDate()object for the selected date / time. Note this is only useful if you are using theDateTimeobject outside of Editor. - Ability to disable
showandhideanimation via adependent()return object undependent()method to remove any event listeners added by thedependent()methoddatetimetime picker rewritten to be much easier and quicker to use. The previous version usedselectelements giving a narrow area where the user would need to click to open and then click to select a value (including possibly scrolling). The new UI uses more screen space, but allows single click selection of times.
- The
- PHP
- Validation for
Mjoininstances as an array holder (not just on a per field basis). This allows validation of the number of items selected / uploaded. New - PHP:Validate::mjoinMinCountandValidate::mjoinMaxCountvalidation methods which can be used with the new Mjoin group validation Editor->validator()can be used multiple times to apply multiple different validation methods, rather than just one per instance.
- Validation for
- .NET
- Validation for
mjoininstances as an array holder (not just on a per field basis). This allows validation of the number of items selected / uploaded. Editor.Validator()can be used multiple times to apply multiple different validation methods, rather than just one per instance.
- Validation for
- NodeJS
Editor.validator()can be used multiple times to apply multiple different validation methods, rather than just one per instance.- Introduce support for a
schema()method on theEditorclass to allow Editor to easily use schemas other than the default path. - Validation for
mjoininstances as an array holder (not just on a per field basis). This allows validation of the number of items selected / uploaded.
- Examples
- CSV import example
readTable()example for the server-side which demonstrates the ability to read from a VIEW and update to the base table.
Updates
- Javascript
- Using
mode()to move out of create mode into edit or remove will now throw an error. - Throw an error with a specific message (rather than a generic JS error) stating that a field of a given name does not exist if the server returns error information about a field that the client-side doesn't know about.
- Using
- PHP
Validate::minLenandValidate::maxLenare now multi-byte aware, bringing them into line with the validators for .NET and NodeJS
- NodeJS
- TypeScript types for the request object structure (
IDtRequest) and response object structure (IDtResponse) are now exposed at the top level - e.g.import {IDtRequest} from 'datatables.net-editor-server';.
- TypeScript types for the request object structure (
Fixes
- Javascript
- Bootstrap 4 styling for buttons had conflicting classes applied, resulting in rendering errors
envelopedisplay controller wouldn't work correctly whentablehad a DataTables API instance passed in- Potential compatibility issue with WebPack and CommonJS loaders in general. The built in display plugins would attempt to use jQuery from a global rather than the passed in version and throw an error if not found.
- If using
mode()to create a new row when inline editing an existing one, the existing row would still show an editing input box after submission add()when used to add multiple new fields after a specified existing field would always just add the new fields at the end of the field list, rather than the specified target.- It wasn't possible before to use multiple DataTables / Editors that both referenced the same files table for
upload. It now is. - If using server-side processing, with KeyTable and inline editing and
drawTypeset tonone, navigating to the final row on the last page would be impossible if you edited the final row on the second last page and navigated away using the arrow keys. - It was possible to navigate to one month before a
minDatein thedatetimepicker - jQuery UI date picker (used with
datewhen jQuery UI DatePicker is loaded - note thatdatetimeis recommended overdate) will no longer show the button for the calender icon (which was missing from the distribution). - Performance for getting a field value from the DOM when multi-row editing was poor due to repeatedly requesting the value from the DOM rather than just holding a local cache.
- Editor would remove rows that had been edited when server-side processing was enabled. There was no visible effect to the end user as the table would immediately redraw, but it could potentially cause confusion with the API (counting rows) and cause unnecessary work.
- Ensure that
canReturnSubmitis defined on a plug-in before using it.
- PHP
- Error when passing in arguments to
Query->get()as an array - File information for multiple fields from the same table would result in only one field getting the file information
- Oracle support improved. Now part of our unit tests. Sorting with server-side processing is not yet fully functional
- Oracle with server-side processing now sorts correctly over the full data set
- PHP 7.3 deprecates
definedwith a case insenstive option. - Reset all date fields to 0 by default for
dateFormatToSql - Server-side processing with
orderingdisabled would cause a PHP error - Support for Oracle with Mjoin linked tables
- Error when passing in arguments to
- .NET
- Fix: Upload error when neither a string nor function action was specified
- NodeJS
- Typing for the
Editor.field()method was not correct. The function performed correctly, but the TypeScript overload was not correct. Update - NodeJS: Update TypeScript to 3.1.6 - Oracle support for the demo. Now use the official
oracledbdriver and set the db pool options to use date information as ISO8601
- Typing for the
- Docs
tableoption had a typo in the example
- Examples
- Demo SQL for SQL Server could cause an error on systems configured for something other than ymd (ydm for example!).
- Update Mjoin example to demonstrate the new Mjoin grouping validation