UX/UI Improvements
- The base Snowboard framework has been included in the Backend by default, allowing people to use Snowboard requests and included functionality in their plugin's backend pages if they wish. Please see #548 for more information on what is included.
- Dates displayed on the Theme Logs & Event Logs pages in the backend now display in the current user's preferred locale & timezone.
API Changes
- Dependency checking and management for Snowboard plugins has been improved. Singletons that have a
ready
callback will not be fired until dependencies are loaded. - Added a
flash.create
andflash.remove
global event in Snowboard to listen when a flash message is created and removed, respectively. - Added URL handling and base URL detection in Snowboard via the
Snowboard.url()
plugin. - Added
sortable
property to the Repeater FormWidget, defaults totrue
. - Added a
mix:update
command to allow updating of Node dependencies for Mix assets. - Added support for
type: nestedform
fields to theThemeData
theme customization forms. - Added helper methods for Snowboard event listening - the
on
method registers a simple listener for a Snowboard event, theoff
de-registers the listener. Theready
method is a shortcut method that registers a listener for when the DOM is ready, synonymous with$(document).ready()
in jQuery. - Added an Asset Loader component for Snowboard, which is now included in the extras and allows simple loading of script, style and image assets on the fly.
- Added a Data Configuration component for Snowboard, which is now included in the extras and allows widgets to retrieve configuration from an element's data attributes, similar to the current widgets within Winter CMS.
- Added the public flag
trimStringAttributes
toWinter\Storm\Database\Model
to make it possible to disable the default behaviour of automatically trimming string attribute values on model instances.
Bug Fixes
- Improved support for read-only filesystems by using the Storage facade to handle the disabled plugins cache file instead of directly interacting with the local disk and checking if the local filesystem is writable before attempting to create the temporary directory required by the
UpdateManager
. - Fixed the System Status dashboard widget on read-only filesystems.
- Fixed issue where calling
Snowboard.request()
with the element parameter set to false or null would fail. - Fixed issue where changes made to
$this->vars
in a Partial's PHP code section wouldn't be available in the Twig section. - Fixed issue where a Snowboard plugin that had been removed could not be re-added.
- Backported a fix from the 1.2 branch which resolves timeout issues with the
mix:install
command. - Fixed issue where using the
useRelationCount
option with a relation in a List widget would not retrieve the count if the relation name was not snake-cased. - Fixed an issue where passing configuration that had been generated by
$this->makeConfig()
to aReportContainer
would cause it to fail to initialize. - Fixed missing variable in error message with
mix:watch
command if packages are missing from the overall workspace. - Fixed issue where Snowboard requests in the Backend did not include the CSRF token.
- Fixed issue where using a time limit with
data-track-input
in Snowboard for input debouncing was being overwritten on entering a value due to misnamed variable. - Fixed issue where any value returned by a success or error callback in Snowboard would prevent further execution (including no value); instead of just preventing execution on receiving a value of
false
. - Fixed issue where string values (query selectors) were not able to be provided as the
data-request-form
attribute to Snowboard as it was requiring an instance of an element. - Fixed issue where passing an already URL-encoded string to the UrlGenerator could cause its query parameter keys to become double encoded, disrupting the original data structure.
Security Improvements
- Improved reliability of the CMS Safe Mode feature. See GHSA-q37h-jhf3-85cj for more information
- Improved reliability of
Winter\Storm\Database\Attach\File->fromData()
. See GHSA-8v7h-cpc2-r8jp for more information.
Translation Improvements
- Improved German translation
- Improved Spanish translation
- Improved Farsi translation
Community Improvements
- Fixed file language hinting for backend controller views for VS Code
Dependencies
- The Winter core modules now report via composer that they replace the associated version of the October core modules to improve compatibility with the October ecosystem.
New Contributors
- @der-On made their first contribution in #457
- @marcomessa made their first contribution in #485
- @davidlueder made their first contribution in #563
- @multiwebinc made their first contribution in #603