Friday 8th December, 2017

Editor 1.7.0 release notes

Editor 1.7! The headline feature in this latest release of Editor is the new server-side libraries for NodeJS. They provide full support for Editor and DataTables on the NodeJS platform, complimenting the existing PHP and .NET libraries for Editor. They use a similar API to the existing platforms, although customised for a native Node style of programming where suitable.

The other main change in 1.7 is also on the server-side, where the PHP validation and formatter functions now follow a functional approach, similar to that used in the .NET and NodeJS libraries. This provides far more expressive options in the validation and formatter methods, while also providing full support for IDE auto-completion tools. This change is fully backwards compatible, but the documentation has been updated to reflect the new style.

On the client-side, there aren't any major changes. The most noticeable is to update the Editor modal view, to have a more modern look and feel. There are a number of small additions such improve positioning of the datetime calendar, a new initSubmit which can be used to modify form values, and other relatively minor refinements to the API.

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
    • initSubmit event which can use the Editor API to modify field values (preSubmit is triggered after the data is read from the form).
    • mode() can now be used as a setter to change the form's mode of operation. e.g. you can change an edit into a create action, effectively duplicating a row.
    • field().multiRestore() method which can be used to programmatically undo any changes made to a field's value if using multi-row editing.
    • fields.compare - the ability to define a comparison method to check if a field's value has changed or not. This can be used with the submitChanged value for the submit property of form-options.
    • datetime now has an hoursAvailable option which can be used to restrict the hours which are user selectable.
    • submitSuccess and submitComplete now have an action parameter which can be used to determine what action was performed by the submit.
    • Editor will now throw an error if you attempt to access a field that does not exist on the instance. Previously the error would be undefined (i.e. it would cause an error in the field's method handle since it couldn't find the field) with an obscure error message. Now it states what the field name being accessed was.
    • The e-buttons() method will now accept button definition objects which use text and action as the text to show in the button and the function to run, respectively. This is to match the naming conventions used in Buttons. The change is backwards compatible and the label and fn names that were previously used will also be accepted by Editor's buttons() method. The documentation reflects the new style of naming.
  • PHP
    • Built in file validation methods (fileExtensions and fileSize). This replaces the allowedExtensions of the Upload class that was used previously, although that still remains for backwards compatibility.
    • SQL functions can now be used with read only fields, to have the database perform calculations.
    • Validator and formatter methods for Field instances are now function based, rather than using a function name as a string. This provides:
    • Better support with auto-complete in editors and IDEs
    • Easier and better defined passing of options to validators and functions
    • Matches the API style used by the .NET and Node libraries for Editor
    • It is important to note that this change is backwards compatible. You do not need to update your existing validator and formatter calls to the new format, although you are encouraged to do so (the legacy support will be removed in Editor v2). For this reason the documentation and examples have been updated to use the newer style for validators and formatters.
  • .NET
    • Editor.Process() now supports UnvalidatedRequestValues as an object that can be passed in to avoid triggering ASP.NET request validation.
    • Built in file validation methods (Validation.FileExtensions and Validation.FileSize). This replaces the AllowedExtensions of the Upload class that was used previously, although that still remains for backwards compatibility.
    • SQL functions can now be used with read only fields, to have the database perform calculations.
    • Editor.Model() method can now optionally accept a table name which will be used to prefix the field/column names.
    • Editor.Model() can be called multiple times to add multiple models. This is particularly useful when working with joined tables and you don't want to use nested classes.
  • NodeJS
    • Server-side libraries for NodeJS and a full package of examples!

Updates

  • Styling
    • Bubble layout has been updated to place the button(s) below the input elements. This allows more space for input and also addresses alignment issues when a field message is shown. There is no change to the mark up, just the CSS. The integration styling for Bootstrap 3/4, Foundation, jQuery UI and Semantic UI have also been improved for bubble editing.
    • DataTables styled buttons now match the styling of the paging buttons and Buttons
    • DataTables styling of the modal pop-up has been updated to reflect a more modern look.

Fixes

  • Javascript
    • Envelope display wasn't working in Bootstrap
    • A few minor code style changes due to JSHint notices
    • Date time picker could be shown out of the documents boundary if it was activated near to the right hand side of the window.
    • Fields which are dynamically added when the form is already displayed with Bootstrap styling would not correctly add a form-control class to the input elements.
  • PHP
    • Boolean validator would incorrectly fail for false values
    • Use error in JSON return rather than legacy sError for database connection error issues
    • Undefined variable was being used in where_group
  • .NET
    • Error in XML formatting of documentation comments.
    • Examples for link table specified the Options method twice by mistake
  • Styling
    • Button text colour in Firefox did not correctly inherit
    • When in error state, Bootstrap 3 styling would highlight field information messages in the error colour as well as the error message.
  • Documentation