Editor 1.9.1 release notes
Tuesday 1st October, 2019
Our first patch release for the 1.9.x Editor series. It has been quite a while since our last release of Editor, so this is a cumulative update with a number of fixes for issues that have been discovered since 1.9.0. Of particular interest in this release is the focus on the datetime input which now has displayFormat and wireFormat options allowing it to edit a format different from what is shown. It will also display the date and time pickers side by side now for better use of space.
For details on the changes in 1.9, please refer to the 1.9.0 release notes.
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
- Ability to have a different format for the datetime fields for the value from what the end user sees. This is achieved using the
displayFormat(which superseedsdisplay) andwireFormatoptions. Examples have been updated to reflect this. - e-field datetime
can take a default value of--now` which will be automatically translated into the current date. This allows the field default to be transferred via JSON initEditorwhich can be listened for on thedocumentto determine when a new Editor instance has been created.openedandclosedevents which are similar to the existingopenandclosebut called when the form is shown/hidden (taking account of any animations).uploadanduploadManynow support theattroption that most other field types support, allowing attributes to be set directly on theinputelementactionNameparameter which can be used to change the intent parameter name for data submission to the server (for integration with WordPress)i18n.create.messageandi18n.edit.messageoptions
- Ability to have a different format for the datetime fields for the value from what the end user sees. This is achieved using the
- PHP
Editor->actionName()parameter which can be used to change the inbound intent parameter name (defaultaction). To be used withactionName.
- NodeJS
- Can use an
asalias for the Editor main table and Mjoin tables now
- Can use an
- Example
- Parent / child editing example
Updates
- Javascript
- Pass the event parameter into the
actioncallback forbuttons(). datetimewhen showing both date and time will now show the date and time pickers horizontally, rather than vertically stacked (if there is enough width in the window, otherwise it will be vertically stacked still). Just date or just time has no difference.
- Pass the event parameter into the
- Styling
- Bootstrap 4 integration now uses
modal-dialog-scrollablewhich was introduced in Bootstrap 4.3 (no change for 4.0 - 4.2).
- Bootstrap 4 integration now uses
Fixes
- Javascript
- Allow
fields.idto operate on theuploadanduploadManyfield types ajaxDataforuploadis now passed theFileobject for the file being uploaded- Bootstrap 3 and 4 integrations now use a model per Editor instance (for support of the CSV import)
- Bootstrap 4 modal integration rewritten to use a different modal per Editor instance. This allows for CSV import which uses two different Editors.
- Bootstrap 4 - starting a click in the modal and then dragging outside before releasing the mouse button would result in the modal closing, which could result in changes being lost by mistake.
- Clicking Clear button in file upload in Bootstrap would reload the page.
- Don't close Bootstrap modals if a click starts inside the modal and then drags outside of it
dependent()'s callback function (if used as a function rather than Ajax) is executed with the scope of the Editor instance.initSubmitcould not be cancelled with areturn false;it required aPromiseto be returned. It will now work with both.datetimewas triggering achangeevent when a value was selected by the end user, but it did so indicating that it was Editor that set the value (using an optional second parameter to the change callback), which was incorrect.- Encoded £ characters were not being decoded
- Hide datetime picker on scroll so it doesn't flow out of the container and look disconnected.
- Inline editing with KeyTable and FixedColumns would edit a fixed column's cell, but behind the fixed column! This is now addressed, but note that it requires FixedColumns 3.8.0.
- jQuery UI integration -
focus: nullfor the form options wouldn't work - Semantic UI integration, the
focusform option had no effect - Throwing an error when can't find DataTables will now give a stack trace
- Throw warning if uploading with
ajax.dataas a plain object. It must be a function for upload to work. - When
uploadanduploadManyfields were disabled, it was still possible to use the clear buttons to change their values - Tidy up the envelope display when hiding it by removing from the document
- Allow
- .NET
- Better support for database types. New
Field.DbType()method which can be used to specify a specific data type - Exceptions were being shown in the output log. They were caught and handled, but they were messy!
- Mjoin upload database referenced files wouldn't be populated on data load
- Only run file upload clean when validation passes
- Oracle case sensitive for id fetching
- Possible to bypass validation for create / edit by changing the
actionto something unexpected - Support for delete with an aliased table name
- Support for server-side processing search on non-text fields with Postgres
- Table names with sub-string matching for mjoin could result in an SQL error
- When no upload action was given, the primary key for the newly uploaded file's record did not propagate from the Upload instance to Editor (null was used)
- Better support for database types. New
- NodeJS
- Aliased tables couldn't have rows deleted
Editor.where()method was adding conditions as arrays (lack of spread operator).- Knex builder can be used as the db type being passed in
- Mjoin when used without a link table, and with two tables which have an
idcolumn would result in an SQL error - Only run file upload clean if validation passes
- Possible to bypass validation for create / edit by changing the
actionto something unexpected postRemoveserver event was passing the row ids that were removed with prefixes. All other events removed the prefixes. Fix - NodeJS:postRemoveserver event now only triggered for rows that were actually deleted (previously it was also for any rows which were individually cancelled as well).- Update npm dependencies
Upload.Dbshould have beenUpload.DbOptsper the docs- Wasn't waiting for any joined tables to be inserted before returning a result
- With larger datasets file upload information wouldn't be loaded
preRemovereturningfalsewould result in an error- Support for server-side processing search on non-text fields with Postgres
- Allow https on URL validation
- Improved typing support related to Knex upgrade
- PHP
- Added support for aliased parent tables in join
- 5.3 compatibility
- Aliased table names now support deleting rows (in databases which support aliasing of table names for a delete command)
- Allow ordering on concatenated fields when using server-side processing
- Composer fails to autoload Editor libraries
- Error message for boolean validation failing would not be used
- If more parameters are submitted than PHP allows, an error is now shown.
- If using a database name in the constructor it wasn't possible to delete data from a table. You can now, but you must also specify the database and table names in the field names (to protect against possible naming conflicts which Editor doesn't automatically check for like SQL does)
- Invalid SQL could be generated when using
where ... in .... mb_strlencan be disabled in PHP. The minLen and maxLen validators need to allow for that.- Mjoin validators wouldn't run
- Possible to bypass validation for create / edit by changing the
actionto something unexpected - Run file upload clean only if the validation passes
- Support for server-side processing search on non-text fields with Postgres
- Docs
formatToSqlDatefor the NodeJS formatter was incorrectly named Site: Fix generator for Node datetimes
- Examples
- Responsive example didn't allow inline editing when the value of a collapsed cell was empty
- PHP REST example used incorrect URLs
- XML source files for examples were incorrectly included in the download bundles