Return 404 when attempting to visit /error directly when debugging mode disabled. Added ability to make wildcard URL parameters optional.
UX/UI Improvements
- Force values that would overflow a
.form-controlcontainer to wrap to the next line instead of overflowing the field - Fixed minor visual glitch in the Insert URL popup of Froala
API Changes
- Added
oc.inputPreset.beforeUpdateJS event to theinput.preset.jslogic - Added support for optional
$optionsparameter to theFormController'sformRenderField($name, $options)method to be passed to theFormwidget'srenderField($name, $options)method. - Added
role="form"attribute to output ofForm::open() - Added automatic conversion of array notation to dot notation in validation rules (
attribute[nested]toattribute.nested, etc) - Added
cacheattribute to attributes supported byaddJs($script, $attributes)to enable disabling the CloudFlare RocketLoader which causes issues in the backend. - Simplified how the
RepeaterFormWidget works internally which should resolve some sporadic issues. - Now using an embedded
Formwidget to processFileUploadfile properties (liketitleanddescription). This enables dynamic extension of this form. - Added automatic mimetype detection of
.svgfiles asimage/svg+xml - Added
relationGetManageWidget()andrelationGetViewWidget()methods to theRelationControllerbehavior. - Added
hasFatalError()andgetFatalError()methods to theErrorMakertrait - Return 404 when attempting to visit
/errordirectly when debug mode disabled - Added ability to make wildcard URL parameters optional.
- Added support for morphOne relations in backend list columns
Bug Fixes
- Fixed issue with the
DataTableFormWidget being unable to dynamically get dropdown options - Fixed issue where
Formwidgets attached to the CMS backend controller would have a different alias on every request causing features that relied on consistent aliases to break (namely grouped repeaters in the CMS / RainLab.Pages section) - Fixed issue where the
textfilter used a hardcoded widget alias instead ofgetEventHandler() - Fixed issue where when inserting an image with the
mediafinderinto aricheditorfield, the image could sometimes be inserted at the top of the content instead of where the cursor was when it was originally selected - Fix ability to clear
RecordFinderfields whenuseRelationis set tofalse - Fixed issues introduced in Build #449 with regards to the "Image not found" message showing up at incorrect times for the
MediaFinderformwidget - Fixed a bug where
track-inputtriggered requests could return incorrect results by waiting until input is finished to fire requests triggered by tracking input - Fixed bug where inserting a link reference to a home page (
/) in the RichEditor through the page selection dialog would actually insert an empty link reference instead. - Fixed issue where a scheduled command could be run before the database is initially populated which could cause issues if that command attempted to access the database.
- Fixed support for Laravel's automatic package discovery feature
Security Improvements
- Prevent public functions on backend
ControllerBehaviors from being run as controller actions unless intended to do that.
Translation Improvements
- Improved Arabic translation
- Improved Hungarian translation
- Improved Spanish (Argentina) translation
Performance Improvements
- Added preloading of all essential scripts in the backend to improve performance
- Improved performance when utilizing remote storage drivers by caching the results of
hasFile(). - Cached the parsed theme configuration to improve performance on subsequent page loads
Dependencies
- Updated jQuery from V3.3.1 to V3.4.0