Skip to content

Releases: craftcms/cms

5.2.3

20 Jun 21:20
5.2.3
b024ed4
Compare
Choose a tag to compare
  • Fixed MariaDB support. (#15232)
  • Fixed a potential vulnerability with TOTP authentication.
  • Deprecated craft\helpers\Db::prepareForJsonColumn().

5.2.2

18 Jun 22:15
5.2.2
68a250e
Compare
Choose a tag to compare
  • Added craft\base\conditions\BaseNumberConditionRule::$step.
  • Added craft\helpers\Db::parseColumnPrecisionAndScale().
  • Added Garnish.muteResizeEvents().
  • Fixed a JavaScript performance degradation bug. (#14510)
  • Fixed a bug where scalar element queries weren’t working if distinct, groupBy, having, or union params were set on them during query preparation. (#15001)
  • Fixed a bug where Edit Asset screens would warn about losing unsaved changes when navigating away, if the file was replaced but nothing else had changed.
  • Fixed a bug where Edit Asset screens would show a notification with a “Reload” button after the file was replaced.
  • Fixed a bug where Number fields’ condition rules weren’t allowing decimal values. (#15222)
  • Fixed a bug where Number field element query params didn’t respect decimal values. (#15222)
  • Fixed a bug where asset thumbnails weren’t getting updated after using the “Replace file” action. (#15217)

4.10.2

18 Jun 22:12
4.10.2
81cd6ce
Compare
Choose a tag to compare
  • Added craft\base\conditions\BaseNumberConditionRule::$step.
  • Added Garnish.muteResizeEvents().
  • Fixed a JavaScript performance degradation bug. (#14510)
  • Fixed a bug where scalar element queries weren’t working if distinct, groupBy, having, or union params were set on them during query preparation. (#15001)
  • Fixed a bug where Edit Asset pages would warn about losing unsaved changes when navigating away, if the file was replaced but nothing else had changed.
  • Fixed a bug where Edit Asset pages would show a notification with a “Reload” button after the file was replaced.
  • Fixed a bug where Number fields’ condition rules weren’t allowing decimal values. (#15222)

5.2.1

17 Jun 20:13
5.2.1
9beea76
Compare
Choose a tag to compare
  • Element index table views now show provisional drafts’ canonical elements’ values for the “Ancestors”, “Parent”, “Link”, “URI”, “Revision Notes”, “Last Edited By”, and “Drafts” columns.
  • Improved the styling of disabled status indicators. (#15195, #15206)
  • Added craft\web\View::getModifiedDeltaNames().
  • craft\web\View::registerDeltaName() now has a $forceModified argument.
  • Fixed a bug where changed field values could be forgotten within Matrix fields, if a validation error occurred. (#15190)
  • Fixed a bug where the graphql/create-token command was prompting for the schema name, when it meant the token name. (#15205)
  • Fixed a bug where keyboard shortcuts weren’t getting registered properly for modals and slideouts opened via a disclosure menu. (#15209)
  • Fixed a styling issue with the global sidebar when collapsed. (#15186)
  • Fixed a bug where it wasn’t possible to query for authors via GraphQL on the Team edition. (#15187)
  • Fixed a bug where it wasn’t possible to close elevated session modals. (#15202)
  • Fixed a bug where element chips and cards were displaying provisional draft data even if the current user didn’t create the draft. (#15208)
  • Fixed a bug where element indexes weren’t displaying structured elements correctly if they had a provisional draft. (#15214)

4.10.1

17 Jun 20:11
4.10.1
511e827
Compare
Choose a tag to compare
  • Added craft\web\View::getModifiedDeltaNames().
  • craft\web\View::registerDeltaName() now has a $forceModified argument.
  • Fixed a bug where changed field values could be forgotten within Matrix fields, if a validation error occurred. (#15190)
  • Fixed a bug where the graphql/create-token command was prompting for the schema name, when it meant the token name. (#15205)
  • Fixed an error that could occur when applying a draft. (#15211)
  • Fixed a bug where keyboard shortcuts weren’t getting registered properly for modals and slideouts opened via a disclosure menu. (#15209)

5.2.0

12 Jun 16:37
5.2.0
1b2dd98
Compare
Choose a tag to compare

Content Management

  • Live Preview now supports tabs, UI elements, and tab/field conditions. (#15112)
  • Live Preview now has a dedicated “Save” button. (#15112)
  • It’s now possible to edit assets’ alternative text from the Assets index page. (#14893)
  • Double-clicking anywhere within a table row on an element index page will now open the element’s editor slideout. (#14379)
  • Element index checkboxes no longer have a lag when deselected, except within element selection modals. (#14896)
  • Relational field condition rules no longer factor in the target elements’ statuses or sites. (#14989)
  • Element cards now display provisional changes, with an “Edited” label. (#14975)
  • Improved mobile styling. (#14910)
  • Improved the look of slideouts.
  • Table views within element index pages are no longer scrolled directly. (#14927)
  • Improved the look of user gradicons when selected.
  • “Save and continue editing” actions now restore the page’s scroll position on reload.
  • “Remove” element actions within relational fields will now remove all selected elements, if the target element is selected. (#15078)
  • Action menus are now displayed within the page toolbar, rather than in the breadcrumbs. (#14913, #15070)
  • Site menus within element selector modals now filter out sites that don’t have any sources. (#15091)
  • The meta sidebar toggle has been moved into the gutter between the content pane and meta sidebar. (#15117)
  • Element indexes will now show a confirmation dialog when cancelling a bulk inline edit. (#15139, #15142)
  • Matrix fields in cards view and Addresses fields now show which nested entries/addresses contain validation errors. (#15161)
  • Nested entry edit pages now redirect to their owner element’s edit page. (#15169)

Accessibility

  • Added the “Status” column option to category, entry, and user indexes. (#14968)
  • Element cards now display a textual status label rather than just the indicator. (#14968)
  • Darkened the color of page sidebar toggle icons to meet the minimum contrast for UI components.
  • Darkened the color of context labels to meet the minimum contrast for text.
  • Darkened the color of footer links to meet the minimum contrast for text.
  • Set the language of the Craft edition in the footer, to improve screen reader pronunciation for non-English languages.
  • The accessible name of “Select site” buttons is now translated to the current language.
  • Improved the accessibility of two-step verification steps on the control panel login screen. (#15145)
  • Improved the accessibility of global nav items with subnavs. (#15006)
  • The secondary nav is now kept open during source selection for mobile viewports, preventing focus from being dropped. (#14946)
  • User edit screens’ document titles have been updated to describe the page purpose. (#14946)
  • Improved the styling of selected global nav items. (#15061)

Administration

  • Added the --format option to the db/backup and db/restore commands for PostgreSQL installs. (#14931)
  • The db/restore command now autodetects the backup format for PostgreSQL installs, if --format isn’t passed. (#14931)
  • The install command and web-based installer now validate the existing project config files at the outset, and abort installation if there are any issues.
  • The resave/entries command now has an --all-sections flag.
  • The web-based installer now displays the error message when installation fails.
  • Edit Entry Type pages now have a “Delete” action. (#14983)
  • After creating a new field, field layout designers now set their search value to the new field’s name. (#15080)
  • GraphQL schema edit pages now have a “Save and continue editing” alternate action.
  • Volumes’ “Subpath” and “Transform Subpath” settings can now be set to environment variables. (#15087)
  • The system edition can now be defined by a CRAFT_EDITION environment variable. (#15094)
  • The rebrand assets path can now be defined by a CRAFT_REBRAND_PATH environment variable. (#15110)

Development

  • Added the {% expires %} tag, which simplifies setting cache headers on the response. (#14969)
  • Added the withCustomFields element query param. (#15003)
  • Entry queries now support passing * to the section param, to filter the results to all section entries. (#14978)
  • Element queries now support passing an element instance, or an array of element instances/IDs, to the draftOf param.
  • Added craft\elements\ElementCollection::find(), which can return an element or elements in the collection based on a given element or ID. (#15023)
  • Added craft\elements\ElementCollection::fresh(), which reloads each of the collection elements from the database. (#15023)
  • The collect() Twig function now returns a craft\elements\ElementCollection instance if all of the items are elements.
  • craft\elements\ElementCollection::contains() now returns true if an element is passed in and the collection contains an element with the same ID and site ID; or if an integer is passed in and the collection contains an element with the same ID. (#15023)
  • craft\elements\ElementCollection::countBy(), collapse(), flatten(), keys(), pad(), pluck(), and zip() now return an Illuminate\Support\Collection object. (#15023)
  • craft\elements\ElementCollection::diff() and intersect() now compare the passed-in elements to the collection elements by their IDs and site IDs. (#15023)
  • craft\elements\ElementCollection::flip() now throws an exception, as element objects can’t be used as array keys. (#15023)
  • craft\elements\ElementCollection::map() and mapWithKeys() now return an Illuminate\Support\Collection object, if any of the mapped values aren’t elements. (#15023)
  • craft\elements\ElementCollection::merge() now replaces any elements in the collection with passed-in elements, if their ID and site ID matches. (#15023)
  • craft\elements\ElementCollection::only() and except() now compare the passed-in values to the collection elements by their IDs, if an integer or array of integers is passed in. (#15023)
  • craft\elements\ElementCollection::unique() now returns all elements with unique IDs, if no key is passed in. (#15023)

Extensibility

  • Improved type definitions for craft\db\Query, element queries, and craft\elements\ElementCollection.
  • Added craft\base\NestedElementTrait::$updateSearchIndexForOwner.
  • Added craft\db\getBackupFormat().
  • Added craft\db\getRestoreFormat().
  • Added craft\db\setBackupFormat().
  • Added craft\db\setRestoreFormat().
  • Added craft\enums\Color::tryFromStatus().
  • Added craft\events\InvalidateElementcachesEvent::$element.
  • Added craft\fields\BaseRelationField::existsQueryCondition().
  • Added craft\helpers\Cp::componentStatusIndicatorHtml().
  • Added craft\helpers\Cp::componentStatusLabelHtml().
  • Added craft\helpers\Cp::statusLabelHtml().
  • Added craft\helpers\DateTimeHelper::relativeTimeStatement().
  • Added craft\helpers\DateTimeHelper::relativeTimeToSeconds().
  • Added craft\helpers\ElementHelper::postEditUrl().
  • Added craft\helpers\ElementHelper::swapInProvisionalDrafts().
  • Added craft\helpers\StringHelper::indent().
  • Added craft\models\Volume::getTransformSubpath().
  • Added craft\models\Volume::setTransformSubpath().
  • Added craft\queue\Queue::getJobId().
  • Added craft\web\twig\SafeHtml, which can be implemented by classes whose __toString() method should be considered HTML-safe by Twig.
  • craft\base\Element::defineTableAttributes() now returns common attribute definitions used by most element types.
  • craft\elements\ElementCollection::with() now supports collections made up of multiple element types.
  • craft\models\Volume::getSubpath() now has a $parse argument.
  • craft\services\Drafts::applyDraft() now has a `...
Read more

4.10.0

12 Jun 16:33
4.10.0
db4292c
Compare
Choose a tag to compare

Content Management

  • Relational field condition rules no longer factor in the target elements’ statuses or sites. (#14989)
  • “Save and continue editing” actions now restore the page’s scroll position on reload.

Administration

  • Added the --format option to the db/backup and db/restore commands for PostgreSQL installs. (#14931)
  • The db/restore command now autodetects the backup format for PostgreSQL installs, if --format isn’t passed. (#14931)
  • The install command and web-based installer now validate the existing project config files at the outset, and abort installation if there are any issues.
  • The web-based installer now displays the error message when installation fails.
  • GraphQL schema edit pages now have a “Save and continue editing” alternate action.
  • The system edition can now be defined by a CRAFT_EDITION environment variable. (#15094)
  • The rebrand assets path can now be defined by a CRAFT_REBRAND_PATH environment variable. (#15110)

Development

  • Added the {% expires %} tag, which simplifies setting cache headers on the response. (#14969)
  • Added craft\elements\ElementCollection::find(), which can return an element or elements in the collection based on a given element or ID. (#15023)
  • Added craft\elements\ElementCollection::fresh(), which reloads each of the collection elements from the database. (#15023)
  • The collect() Twig function now returns a craft\elements\ElementCollection instance if all of the items are elements.
  • craft\elements\ElementCollection::contains() now returns true if an element is passed in and the collection contains an element with the same ID and site ID; or if an integer is passed in and the collection contains an element with the same ID. (#15023)
  • craft\elements\ElementCollection::countBy(), collapse(), flatten(), keys(), pad(), pluck(), and zip() now return an Illuminate\Support\Collection object. (#15023)
  • craft\elements\ElementCollection::diff() and intersect() now compare the passed-in elements to the collection elements by their IDs and site IDs. (#15023)
  • craft\elements\ElementCollection::flip() now throws an exception, as element objects can’t be used as array keys. (#15023)
  • craft\elements\ElementCollection::map() and mapWithKeys() now return an Illuminate\Support\Collection object, if any of the mapped values aren’t elements. (#15023)
  • craft\elements\ElementCollection::merge() now replaces any elements in the collection with passed-in elements, if their ID and site ID matches. (#15023)
  • craft\elements\ElementCollection::only() and except() now compare the passed-in values to the collection elements by their IDs, if an integer or array of integers is passed in. (#15023)
  • craft\elements\ElementCollection::unique() now returns all elements with unique IDs, if no key is passed in. (#15023)

Extensibility

  • Improved type definitions for craft\db\Query, element queries, and craft\elements\ElementCollection.
  • Added craft\db\getBackupFormat().
  • Added craft\db\getRestoreFormat().
  • Added craft\db\setBackupFormat().
  • Added craft\db\setRestoreFormat().
  • Added craft\events\InvalidateElementcachesEvent::$element.
  • Added craft\fields\BaseRelationField::existsQueryCondition().
  • Added craft\helpers\DateTimeHelper::relativeTimeStatement().
  • Added craft\helpers\DateTimeHelper::relativeTimeToSeconds().
  • Added craft\helpers\StringHelper::indent().
  • Added craft\queue\Queue::getJobId().
  • craft\elements\ElementCollection::with() now supports collections made up of multiple element types.
  • Added the reloadOnBroadcastSave setting to Craft.ElementEditor. (#14814)

System

  • Improved the performance of exists() element queries.
  • The Debug Toolbar now pre-serializes objects stored as request parameters, fixing a bug where closures could prevent the entire Request panel from showing up. (#14982)
  • Batched queue jobs now verify that they are still reserved before each step, and before spawning additional batch jobs. (#14986)
  • Updated Yii to 2.0.50. (#15124)
  • Updated inputmask to 5.0.9.
  • Updated punycode to 2.3.1.

5.2.0-beta.6

11 Jun 22:46
5.2.0-beta.6
4270a4c
Compare
Choose a tag to compare
5.2.0-beta.6 Pre-release
Pre-release
  • Nested entry edit pages now redirect to their owner element’s edit page. (#15169)
  • Improved the styling of selected global nav items. (#15061)
  • Added craft\helpers\ElementHelper::postEditUrl().
  • Fixed a styling bug with entry cards within CKEditor fields.
  • Fixed a bug where validation errors weren’t being shown within slideouts.
  • Fixed a bug where exceptions due to missing templates weren’t being thrown when rendering an element partial. (#15176)
  • Fixed a bug where error summaries were bleeding out of their containers. (#15181)
  • Fixed a bug where craft\base\Element::getIsFresh() was incorrectly returning false in some cases. (#15179)

5.2.0-beta.5

08 Jun 14:35
5.2.0-beta.5
8db60d9
Compare
Choose a tag to compare
5.2.0-beta.5 Pre-release
Pre-release
  • Fixed an error that occurred when using a multi-environment config. (#15154)
  • Fixed a bug where the users/login action wasn’t checking if someone was already logged in. (#15168)

5.2.0-beta.4

07 Jun 22:02
5.2.0-beta.4
3cedc80
Compare
Choose a tag to compare
5.2.0-beta.4 Pre-release
Pre-release
  • Matrix fields in cards view and Addresses fields now show which nested entries/addresses contain validation errors. (#15161)
  • Improved the accessibility of two-step verification steps on the control panel login screen. (#15145)
  • Improved the accessibility of global nav items with subnavs. (#15006)
  • The secondary nav is now kept open during source selection for mobile viewports, preventing focus from being dropped. (#14946)
  • User edit screens’ document titles have been updated to describe the page purpose. (#14946)
  • Fixed an error that could occur if a Local filesystem wasn’t configured with a base path.
  • Fixed a bug where some entries could be missing content after upgrading to Craft 5. (#15150)
  • Fixed a bug where it wasn’t always possible to add new entries to Matrix fields in inline-editable blocks view, if the field’s Max Entries setting had been reached before page load. (#15158)
  • Fixed an error that could occur when rendering the “My Drafts” widget. (#14749)
  • Fixed a bug where element indexes’ “Date Created” columns were mislabeled as “Date Uploaded”. (#15155)
  • Fixed a bug where the content pane had extra padding on pages without a meta sidebar.
  • Fixed a bug where reordered field layout tabs/elements weren’t getting saved. (#15154)
  • Fixed a PHP error. (#15160)