secondaryColor
brand setting for the border color on selected items in the Treeview control (pages list)cms.databaseTemplates
to the winter:env
commandallowEmpty: true
Winter\Rain\Database\Attach\File
model's getPath()
now defines an optional $fileName
parameter, any custom classes that extend this method must have their method signatures updated to match this change.Winter\Rain\Database\Attach\File
model's getThumbFilename()
method has been changed from protected
to public
, any custom classes that extend this method must have their method signatures updated to match this change.getDisk()
method has been added to the Winter\Rain\Database\Attach\File
model which enables running all storage related commands on the File's actual storage disk instead of the default storage disk.Backend\Traits\PreferenceMaker
trait modelled after the SessionMaker
trait that stores minor user preference changes (such as backend list configurations) in the user's preferences.cms.enableBackendServiceWorkers
(defaulting to false) to allow the use of Service Workers in the backend. They have been disabled by default for security purposes to prevent any frontend Service Workers from leaking into the backend.$require
property are now case insensitive.type: relation
column configuration, previously this would warn that is was invalid in the system log and convert to type: text
automatically. Recommended replacement is to use whatever type the data actually is and then use the relation:
property to specify the relationship you want to get the value from.is_countable()
polyfill to the library for PHP < 7.3framework.js
ones. Previously both would fire leading to conflicts between what parameters jQuery sends vs what the AJAX framework. If access to the jQuery AJAX events is required, pass ajaxGlobal: true
to the options for $.request(handler, options)
or add data-request-ajax-global
for the Data Attributes AJAX API.$options
added to Zip::make()
that passes the options onto Zip->add()
. In addition, the includeHidden
option has been added which specifies that all hidden files (dot files) from the source should be included in the final Zip destination.maxFilesize
option to the FileUpload
FormWidget, defaults to the upload_max_filesize
from the serveraddDynamicProperty
testfalse
didn't properly disable them fully from displayingjsonable
properties in models under conditions where they might be double de/encoded for one reason or anotherdatabaseTemplates
functionalitydirName
setRelationController
behaviorfiles: true
as an AJAX framework option in newer browsersReportWidgets
using the objectList
property type for their properties.Auth::id()
, there was a typo in the method that rendered it unusable previously.any_template
(Template) column in the CMS Theme Log. To sort by template, change the list setup to show the "Old Template" and "New Template" columns and sort by those instead.DataFeed
support for Postgresdump()
Twig functioncms.enableBackendServiceWorkers
File
s that are marked as protected, the Backend\Controllers\Files
controller's getDownloadUrl()
and getThumbUrl()
methods now return temporary URLs to the actual asset instead of a URL that proxies the entire asset through the framework to the browser. The amount of time the temporary URL is valid for is configurable by setting cms.storage.uploads.temporaryUrlTTL
to a value in seconds (default 3600, an hour). This should dramatically improve performance of protected files that are located in storage drives that support the getTemporaryUrl()
method - and it is recommended that if you heavily utilize that feature that you utilize a storage drive that supports that method.{% framework %}
tagstheme:sync
command and for the --relative
option for the winter:mirror
command:focus-visible
CSS selector to the backend (https://github.com/WICG/focus-visible)event.key
in JS events to the backend (https://github.com/cvan/keyboardevent-key-polyfill)Sign up to our newsletter and receive updates on Winter releases, new features in the works, plugin and theme promotions and much more!