Releases: craftcms/cms
Releases · craftcms/cms
4.5.3
- Fixed a bug where custom fields could be marked as changed within element editor slideouts, if they modified their input values on initialization. (craftcms/ckeditor#128)
- Fixed a bug where elements were getting saved a second time after being converted to a provisional draft within a slideout. (#13604)
- Fixed a JavaScript error. (#13605)
- Fixed support for storing PHP session info in the database on PostgreSQL.
- Fixed a bug where search inputs within element selector modals weren’t getting focus rings.
- Fixed a bug where boolean menu inputs were initially treating
null
values astrue
. - Fixed a bug where boolean menu inputs weren’t toggling other fields. (#13613)
- Fixed a bug where
Craft.namespaceId()
wasn’t working properly if the namespace ended in a]
character. - Fixed a bug where the
|replace
Twig filter wasn’t identifying regular expressions that contained escaped slashes. (#13618) - Fixed a bug where entries that were cloned from a provisional draft weren’t getting propagated to other sites initially. (#13599)
- Fixed an error that could occur when cloning a multi-site provisional draft that contained nested Matrix/Neo/Super Table blocks.
4.5.2
craft\helpers\UrlHelper::buildQuery()
is no longer deprecated. (#12796)- Fixed a bug where control panel notifications weren’t always closing automatically if they contained interactive elements. (#13591)
- Fixed a bug where default user avatars were getting black backgrounds when displayed within Vue apps. (#13597)
- Fixed a bug where the Username and Email fields weren’t required for public registrations forms, if “Deactivate users by default” was enabled. (#13596)
- Fixed a bug where switching sites when editing a global site wasn’t working. (#12796, #13603)
- Fixed a bug where page shortcuts weren’t working after a related element was saved via a slideout. (#13601)
4.5.1
- Control panel notifications no longer block page keyboard shortcuts. (#13591)
Garnish.uiLayerManager.addLayer()
now supports abubble
option, which allows non-matching keyboard shortcuts to bubble up to the parent layer.- Fixed an error that could occur when Craft was performing a Composer operation, if no
HOME
environment variable was set for PHP. (#13590) - Fixed a bug where
craft\fields\Matrix::serializeValue()
was settingfields
keys to a closure. (#13592) - Fixed a bug where time values weren’t saving properly for Greek locales. (#9942)
- Fixed a bug where the “Status” lightswitch would always be enabled on edit pages for single-site elements. (#13595)
3.9.1
4.5.0
Content Management
- Entry and category edit pages now show other authors who are currently editing the same element. (#13420)
- Entry and category edit pages now display a notification when the element has been saved by another author. (#13420)
- Entry and category edit pages now display a validation error summary at the top of the page, including a mention of errors from other sites. (#11569, #12125)
- Table fields can now have a “Row heading” column. (#13231)
- Table fields now have a “Static Rows” setting. (#13231)
- Table fields no longer show a heading row, if all heading values are blank. (#13231)
- Element slideouts now show their sidebar content full-screen for elements without a field layout, rather than having an empty body. (#13056, #13053)
- Relational fields no longer track the previously-selected element(s) when something outside the field is clicked on. (#13123)
- Element indexes now use field layouts’ overridden field labels, if all field layouts associated with an element source use the same label. (#8903)
- Element indexes now track souces’ filters in the URL, so they can be sharable and persisted when navigating back to the index page via the browser history. (#13499)
- Users’ default thumbnails are now the user initials over a unique color gradient. (#13511)
- Improved the styling and max height of Selectize inputs. (#13065, #13176)
- Selectize inputs now support click-and-drag selection. (#13273)
- Selectize single-select inputs now automatically select the current value on focus. (#13273)
- It’s now possible to create new entries from entry select modals when a custom source is selected, if the source is configured to only show entries from one section. (#11499)
- The Entries index page now shows a primary “New entry” button when a custom source is selected, if the source is configured to only show entries from one section. (#13390)
- Invalid Dropdown fields now automatically select their default option and get marked as changed (if they have a default option). (#13540)
Accessibility
- Image assets’ thumbnails and
<img>
tags generated viacraft\element\Asset::getImg()
no longer use the assets’ titles asalt
fallback values. (#12854) - Element index pages now have visually-hidden “Sources” headings for screen readers. (#12961)
- Element metadata fields now have visually-hidden “Metadata” headings for screen readers. (#12961)
- Structure elements within element indexes now convey their levels to screen readers. (#13020)
- Non-image asset thumbnails in the control panel now have
alt
attributes set to the file extension. (#12724) - Improved copy-text buttons for screen readers. (#13073)
- Improved the contrast of asset file type icons. (#13262)
Administration
- Added the “Slug Translation Method” setting to entry types. (#8962, #13291)
- Added the “Show the Status field” setting to entry types. (#12837, #13265)
- Added the
setup/cloud
command, which prepares a Craft install to be deployed to Craft Cloud. - Added the
setup/message-tables
command, which can be run to set the project up for database-stored static translations via DbMessageSource. (#13542) - Entry types created via the
entrify/global-set
command now have “Show the Status field” disabled by default. (#12837) - Added the
defaultCountryCode
config setting. (#13478) - Custom element sources can now be configured to only appear for certain sites. (#13344)
- The “My Account” page no longer shows a “Require a password reset on next login” checkbox.
- The Asset Indexes utility no longer shows the “Cache remote images” option on ephemeral environments. (#13202)
- It’s now possible to configure UK addresses to show a “County” field. (#13361)
- The “Login Page Logo” and “Site Icon” general settings’ image previews now have checkered backgrounds. (#13210, #13229)
- Empty field layout tabs are no longer pruned out. (#13132)
active
,addresses
,admin
,email
,friendlyName
,locked
,name
,password
,pending
,suspended
, andusername
are now reserved user field handles. (#13579)
Development
- Added a new
_globals
global Twig variable for front-end templates, which can be used to store custom values in a global scope. (#13050, #12951) - The
|replace
Twig filter now supports passing in a hash with regular expression keys. (#12956) {% exit %}
tags now support passing a message after the status code. (#13166)- Built-in element types’ GraphQL queries now support passing
null
torelatedToAssets
,relatedToEntries
,relatedToUsers
,relatedToCategories
,relatedToTags
, andrelatedToAll
arguments. (#7954) - Elements now include custom field values when being iterated over, and when being merged. (#13009)
- Dropdown and Radio Buttons fields now have a “Column Type” setting, which will be set to
varchar
for existing fields, and defaults to “Automatic” for new fields. (#13025, #12954) - Successful
users/login
JSON responses now include information about the logged-in user. (#13374)
Extensibility
- Filesystem types can now register custom file uploaders. (#13313)
- When applying a draft, the canonical elements’
getDirtyAttributes()
andgetDirtyFields()
methods now return the attribute names and field handles that were modified on the draft for save events. (#12967) - Admin tables can be configured to pass custom query params to the data endpoint. (#13416)
- Admin tables can now be programatically reloaded. (#13416)
- Admin table properties are now reactive. (#13558, #13520)
- Native element sources can now define a
defaultFilter
key, which defines the default filter condition that should be applied when the source is selected. (#13499) - Added
craft\addresses\SubdivisionRepository
. (#13361) - Added
craft\base\Element::showStatusField()
. (#13265) - Added
craft\base\Element::thumbSvg()
. (#13262) - Added
craft\base\ElementInterface::getIsSlugTranslatable()
. - Added
craft\base\ElementInterface::getSlugTranslationDescription()
. - Added
craft\base\ElementInterface::getSlugTranslationKey()
. - Added
craft\base\ElementInterface::getThumbHtml()
. - Added
craft\base\ElementInterface::modifyCustomSource()
. - Added
craft\base\ElementInterface::setDirtyFields()
. - Added
craft\base\ElementInterface::setFieldValueFromRequest()
. (#12935) - Added
craft\base\FieldInterface::normalizeValueFromRequest()
. (#12935) - Added
craft\base\FieldLayoutProviderInterface
. (#13250) - Added
craft\base\FsInterface::getShowHasUrlSetting()
. (#13224) - Added
craft\base\FsInterface::getShowUrlSetting()
. (#13224) - Added
craft\base\FsTrait::$showHasUrlSetting
. (#13224) - Added
craft\base\FsTrait::$showUrlSetting
. (#13224) - Added `craft\behaviors\EventB...
3.9.0
- Updated Yii to 2.0.48.1. (#13444)
- Loosened the Composer constraint to
^2.2.19
. (#13396) - Internal Composer operations now use a bundled
composer.phar
file, rather than Composer’s PHP API. (#13519) craft\services\Assets::getAllDescendantFolders()
now has an$asTree
argument. (#13535)- Fixed a bug where asset exports could be blank if only subfolders were selected.
4.5.0-beta.2
- Added
craft\events\AssetBundleEvent
. - Added
craft\web\View::EVENT_AFTER_REGISTER_ASSET_BUNDLE
. - Added support for the
CRAFT_LOG_ALLOW_LINE_BREAKS
environment variable. (#13544) - Fixed multiple issues with Selectize inputs.
- Fixed a bug where Command/Ctrl + clicks on “New entry” button menu options would open the Entries index page in a new tab, and redirect to the Edit Entry page in the current tab. (#13550)
- Fixed a bug where autosuggest fields weren’t mouse-selectable. (#13553)
- Fixed a bug where
craft\events\MoveElementEvent::$targetElementId
was getting set incorrectly. (#13552)
4.5.0-beta.1
Content Management
- Entry and category edit pages now show other authors who are currently editing the same element. (#13420)
- Entry and category edit pages now display a notification when the element has been saved by another author. (#13420)
- Entry and category edit pages now display a validation error summary at the top of the page, including a mention of errors from other sites. (#11569, #12125)
- Table fields can now have a “Row heading” column. (#13231)
- Table fields now have a “Static Rows” setting. (#13231)
- Table fields no longer show a heading row, if all heading values are blank. (#13231)
- Element slideouts now show their sidebar content full-screen for elements without a field layout, rather than having an empty body. (#13056, #13053)
- Relational fields no longer track the previously-selected element(s) when something outside the field is clicked on. (#13123)
- Element indexes now use field layouts’ overridden field labels, if all field layouts associated with an element source use the same label. (#8903)
- Element indexes now track souces’ filters in the URL, so they can be sharable and persisted when navigating back to the index page via the browser history. (#13499)
- Users’ default thumbnails are now the user initials over a unique color gradient. (#13511)
- Improved the styling and max height of Selectize inputs. (#13065, #13176)
- Selectize inputs now support click-and-drag selection. (#13273)
- Selectize single-select inputs now automatically select the current value on focus. (#13273)
- It’s now possible to create new entries from entry select modals when a custom source is selected, if the source is configured to only show entries from one section. (#11499)
- The Entries index page now shows a primary “New entry” button when a custom source is selected, if the source is configured to only show entries from one section. (#13390)
- Invalid Dropdown fields now automatically select their default option and get marked as changed (if they have a default option). (#13540)
Accessibility
- Image assets’ thumbnails and
<img>
tags generated viacraft\element\Asset::getImg()
no longer use the assets’ titles asalt
fallback values. (#12854) - Element index pages now have visually-hidden “Sources” headings for screen readers. (#12961)
- Element metadata fields now have visually-hidden “Metadata” headings for screen readers. (#12961)
- Structure elements within element indexes now convey their levels to screen readers. (#13020)
- Non-image asset thumbnails in the control panel now have
alt
attributes set to the file extension. (#12724) - Improved copy-text buttons for screen readers. (#13073)
- Improved the contrast of asset file type icons. (#13262)
Administration
- Added the “Slug Translation Method” setting to entry types. (#8962, #13291)
- Added the “Show the Status field” setting to entry types. (#12837, #13265)
- Added the
setup/message-tables
command, which can be run to set the project up for database-stored static translations via DbMessageSource. (#13542) - Entry types created via the
entrify/global-set
command now have “Show the Status field” disabled by default. (#12837) - Added the
defaultCountryCode
config setting. (#13478) - Custom element sources can now be configured to only appear for certain sites. (#13344)
- The “My Account” page no longer shows a “Require a password reset on next login” checkbox.
- The Asset Indexes utility no longer shows the “Cache remote images” option on ephemeral environments. (#13202)
- It’s now possible to configure UK addresses to show a “County” field. (#13361)
- The “Login Page Logo” and “Site Icon” general settings’ image previews now have checkered backgrounds. (#13210, #13229)
- Empty field layout tabs are no longer pruned out. (#13132)
Development
- Added a new
_globals
global Twig variable for front-end templates, which can be used to store custom values in a global scope. (#13050, #12951) - The
|replace
Twig filter now supports passing in a hash with regular expression keys. (#12956) {% exit %}
tags now support passing a message after the status code. (#13166)- Built-in element types’ GraphQL queries now support passing
null
torelatedToAssets
,relatedToEntries
,relatedToUsers
,relatedToCategories
,relatedToTags
, andrelatedToAll
arguments. (#7954) - Elements now include custom field values when being iterated over, and when being merged. (#13009)
- Dropdown and Radio Buttons fields now have a “Column Type” setting, which will be set to
varchar
for existing fields, and defaults to “Automatic” for new fields. (#13025, #12954) - Successful
users/login
JSON responses now include information about the logged-in user. (#13374)
Extensibility
- Filesystem types can now register custom file uploaders. (#13313)
- When applying a draft, the canonical elements’
getDirtyAttributes()
andgetDirtyFields()
methods now return the attribute names and field handles that were modified on the draft for save events. (#12967) - Admin tables can be configured to pass custom query params to the data endpoint. (#13416)
- Admin tables can now be programatically reloaded. (#13416)
- Native element sources can now define a
defaultFilter
key, which defines the default filter condition that should be applied when the source is selected. (#13499) - Added
craft\addresses\SubdivisionRepository
. (#13361) - Added
craft\base\Element::showStatusField()
. (#13265) - Added
craft\base\Element::thumbSvg()
. (#13262) - Added
craft\base\ElementInterface::getIsSlugTranslatable()
. - Added
craft\base\ElementInterface::getSlugTranslationDescription()
. - Added
craft\base\ElementInterface::getSlugTranslationKey()
. - Added
craft\base\ElementInterface::getThumbHtml()
. - Added
craft\base\ElementInterface::modifyCustomSource()
. - Added
craft\base\ElementInterface::setDirtyFields()
. - Added
craft\base\ElementInterface::setFieldValueFromRequest()
. (#12935) - Added
craft\base\FieldInterface::normalizeValueFromRequest()
. (#12935) - Added
craft\base\FieldLayoutProviderInterface
. (#13250) - Added
craft\base\FsInterface::getShowHasUrlSetting()
. (#13224) - Added
craft\base\FsInterface::getShowUrlSetting()
. (#13224) - Added
craft\base\FsTrait::$showHasUrlSetting
. (#13224) - Added
craft\base\FsTrait::$showUrlSetting
. (#13224) - Added
craft\behaviors\EventBehavior
. (#13502) - Added
craft\controllers\AssetsControllerTrait
. - Added
craft\elements\db\ElementQuery::EVENT_BEFORE_POPULATE_ELEMENT
. - Added
craft\events\DefineAddressSubdivisionsEvent
. (#13361) - Added
craft\events\MoveElementEvent::$action
. (#13429) - Added
craft\events\MoveElementEvent::$targetElementId
. ([#13429...
4.4.17
meta.__names__
values in the project config are now updated throughout the process of applying incoming project config changes, rather than at the end of the request.- The
project-config/rebuild
command now rebuilds themeta.__names__
array from scratch. (#13456) - Fixed a bug where
Craft.BaseElementIndexView::this.canSelectElement()
wasn’t getting applied for lazy-loaded elements. - Fixed a bug where setting an element query’s
status
param toarchived
would always yield zero results. (#13465) - Fixed a bug where
update
commands could fail on some environments. - Fixed a bug where element thumbnails weren’t getting loaded for expanded relational field previews within element indexes.
- Fixed an error that occurred when deleting a volume with a missing filesystem type.
- Fixed a bug where Color field values were illegible within selected element index rows.
- Fixed a bug where multi-site content could be overwritten when creating a draft. (#13451)
- Fixed a bug where some nested component names weren’t getting deleted from the
meta.__names__
array in the project config. (#13456) - Fixed a bug where
craft\helpers\DateTimeHelper::toDateInterval()
didn’t support negative integers. (#13463) - Fixed a bug where admin tables were initially displaying an empty results message rather than a loading spinner, when the initial data was loading via Ajax. (#13459)
- Fixed a bug where garbage collection could terminate prematurely if an exception was thrown when deleting a pending user. (#13490)
- Fixed an error that occurred if the
purify
Twig filter was applied to anull
value. (#13495) - Fixed an error that could occur if a console controller’s
runAction()
method returnednull
. - Fixed a bug where image transforms weren’t respecting their
format
settings. (#13493) - Fixed an information disclosure vulnerability.
3.8.17
- Fixed a bug where
Craft.BaseElementIndexView::this.canSelectElement()
wasn’t getting applied for lazy-loaded elements. - Fixed a bug where setting an element query’s
status
param toarchived
would always yield zero results. (#13465) - Fixed a bug where
update
commands could fail on some environments. - Fixed an information disclosure vulnerability.