- Collapsed Matrix blocks now show their entries’ UI labels as preview text, whenever possible. (#18484)
- Element-level actions within nested element management fields (Matrix, Addresses, etc.) now consistently affect all selected elements, when performed on a selected element. (#18561)
- Elements within Matrix and Addresses fields now have “Paste above” actions when a compatible element is copied. (#17406)
- Addresses fields now have a “Copy all addresses” field-level action. (#18561)
- Matrix fields’ “Expand”, “Collapse”, and “Copy” field-level actions now always affect all nested entries, regardless of whether any entries are selected. (#18561)
- Matrix fields no longer have “Duplicate” and “Delete” field-level actions. (#18561)
- Number fields now show their selected currency beside their input, if their Preview Format setting is set to “As currency values”. (#18498)
- Color field previews are now blank for fields without a value. (#18614)
- Text condition rules now have “does not equal” operators.
- Editable table columns now set
min-widthstyles based on their configured widths, if set. (#18534) - Entry post dates are no longer automatically set until the entry is fully saved as enabled. (#18642)
- Address edit screens now have “Field settings” action menu items. (#18544)
- Asset edit screens now have “Volume settings” and “Filesystem settings” action menu items. (#18544)
- Entries’ “Entry type settings” and “Section settings” action menu items are now only shown for element edit screens’ primary action menus.
- Category indexes can now have “Group” columns. (#18553)
- Element slideouts now automatically refresh when the same element is updated in another tab/slideout. (#18625)
- Added the “Time Zone” user preference. (#8518)
- Element indexes now automatically refresh after duplicating elements and the queue is completed, if there’s an active search term. (#18636)
- Timestamps in the control panel now include their time zone abbreviation. (#18639)
- Generated field values are no longer truncated within element cards. (#18646)
- Sections now have a “Min Authors” setting. (#18662)
- Time fields’ “Max Time” settings can now be set to an earlier time than “Min Time”, for overnight time ranges. (#18575)
- Newlines in system message bodies are now replaced with
<br>tags. (#18058) - Added the
--to-defaultoption toresavecommands. (#18522)
- Added the
heading()/h()andh1()…h6()Twig functions. (#18524) - The
tag()function now accepts a string for its second argument. (#18524) - The
|timeand|datetimeTwig filters now have$withTimeZonearguments. (#18639) - The
|timestampfilter now returns the current time, if applied to anull/empty string value. (#18642) deleteGraphQL queries now have ahardDeleteargument. (#18511)- Entry
postDatevalues are nownullon creation, rather than set to thedateCreatedvalue. (#18642) - Assets’
urlGraphQL fields’immediatelyarguments are no longer deprecated. (#18581) - Added
craft\filters\SecFetchSiteFilterfor request origin verification. (#18641) craft\fields\data\LinkData::getUrl()now has an$anyStatusargument, which can be set tofalseto prevent a value from being returned if a disabled/pending/expired element is linked. (#18527)- Markdown parsing now respects the first number of ordered lists. (#18671)
- Added
craft\base\DefaultableFieldInterface. (#18522) - Added
craft\base\ElementInterface::setDirtyFieldTracking(). - Added
craft\elements\PopulateElementEvent::$content. - Added
craft\models\Section::$minAuthors. (#18662) - Added
craft\validators\TimeValidator::$outOfRange. (#18575) - Added
Craft.CpScreenSlideout::reload(). (#18625) - Added
craft\helpers\Markdown. (#18671) craft\elements\PopulateElementEvent::$rowno longer includesfieldValuesorgeneratedFieldValueskeys.craft\helpers\DateTimeHelper::timeZoneAbbreviation()is no longer deprecated, and now has a$dateargument.craft\i18n\Formatter::asTime()andasDatetime()now have$withTimeZonearguments. (#18639)Craft.CPnow triggers aqueueCompletedevent when the last queue job is completed.
- Improve the image quality of WEBP transforms, when
optimizeImageFilesizeis disabled. (#18635) - Updated Twig to 3.24. (#18259, #18454)
- Fixed a bug where nested entries weren’t getting loaded with their content, if they had an entry type that was no longer allowed by their Matrix field.
- Fixed the wording of the validation error when saving a nested entry with an invalid entry type. (#18506)