All Versions
336
Latest Version
Avg Release Cycle
7 days
Latest Release
839 days ago

Changelog History
Page 22

  • v3.3.4.1 Changes

    September 17, 2019

    πŸ›  Fixed

    • πŸ›  Fixed a bug where elements with enabled Lightswitch fields weren’t getting returned in element queries. (#4951)
  • v3.3.3 Changes

    September 12, 2019

    πŸ”„ Changed

    • The GraphQL API now prebuilds the schema for all introspection queries, regardless of whether Dev Mode is enabled.

    πŸ›  Fixed

    • πŸ›  Fixed a bug where Craft was ignoring the invalidUserTokenPath request when it was set to an empty string. (#1998)
    • πŸ›  Fixed a bug where the invalidUserTokenPath was affecting Control Panel requests.
    • πŸ›  Fixed a bug where revisions weren’t being sorted correctly in Structure sections.
    • πŸ›  Fixed a bug where Edit Entry pages weren’t working with certain versions of PHP if the user’s preferred language was set to French. (#4930)
  • v3.3.2 Changes

    September 11, 2019

    βž• Added

    • βž• Added the graphql/dump-schema and graphql/print-schema commands. (#4834)
    • It’s now possible to access a parent field on entries and categories when querying the GraphQL API. (#4880)
    • 🍱 It’s now possible to apply transforms to assets via url field arguments when querying the GraphQL API.

    πŸ”„ Changed

    • Craft now resets the dateCreated attribute when duplicating elements. (#4906)
    • It’s no longer possible to access the author field for entries when querying the GraphQL API, if the schema doesn’t include user data.
    • It’s no longer possible to access the photo field for users when querying the GraphQL API, if the schema doesn’t include the user photo volume.

    πŸ›  Fixed

    • πŸ›  Fixed a bug where Lightswitch fields weren’t returning a boolean value for the GraphQL API.
    • πŸ›  Fixed a bug where craft\web\View::renderString() and renderObjectTemplate() could leave Craft set to the site template mode if an error occurred when preparing or rendering the template. (#4912)
    • πŸ›  Fixed a bug where the Plugin Store wasn’t applying edition upgrade pricing for plugins if the higher edition was already installed as a trial.
  • v3.3.1 Changes

    September 06, 2019

    βž• Added

    • βž• Added support for setting offset and limit params to individual paths’ criteria when eager loading elements.
    • βž• Added the enableGql config setting. (#4836)
    • βž• Added the children field to the EntryInterface and CategoryInterface GraphQL types. (#4843)
    • βž• Added the markdown GraphQL directive. (#4832)

    πŸ”„ Changed

    • Preview target URIs can now be set to environment variables (e.g. $NEWS_INDEX) or URLs that begin with an alias (e.g. @rootUrl/news or @rootUrl/news/{slug}).
    • 🌐 Templates passed to craft\web\View::renderString() and renderObjectTemplate() can now include front-end templates.
    • 0️⃣ Element queries with the revisions param set will now return revisions ordered by num DESC by default. (#4825)
    • graphql/api responses now set the Access-Control-Allow-Headers: Content-Type header for preflight requests.
    • Craft no longer forces preview target URLs to use https if the current request is over SSL. (#4867)

    βœ‚ Removed

    • βœ‚ Removed craft\elements\MatrixBlock::getField(). (#4882)

    πŸ›  Fixed

    • πŸ›  Fixed a bug where Number fields weren’t showing validation errors when non-numeric values were entered. (#4849)
    • πŸ›  Fixed an error that occurred when accessing the GraphQL section in the Control Panel if the allowAdminChanges config setting was disabled. (#4884)
    • πŸ›  Fixed an error that could occur when executing a GraphQL query if a Matrix field had been converted to a different field type. (#4848)
    • πŸ›  Fixed a deprecation warning when running tests in PhpStorm. (#4772)
    • πŸ›  Fixed an SQL error that occurred when eager loading children for an element that wasn’t in a structure.
    • πŸ›  Fixed a bug that could cause queue jobs to fail when they were run automatically by Craft, if the enableCsrfProtection config setting was disabled. (#4854)
    • πŸ›  Fixed an error that could occur if the select clause had been completely overridden on an element query, but the asArray param wasn’t enabled. (#4886)
    • πŸ›  Fixed a bug where Craft wasn’t always respecting the site-specific status when saving new entries. (#4892)
  • v3.3.1.2 Changes

    September 08, 2019

    πŸ›  Fixed

    • πŸ›  Fixed an error that occurred after saving an element with a validation error. (#4898)
  • v3.3.1.1 Changes

    September 06, 2019

    πŸ”„ Changed

    • graphql/api preflight responses now explicitly allow Authorization headers. (#4830)
    • ⚑️ Updated Garnish to 0.1.30.

    πŸ›  Fixed

    • πŸ›  Fixed a bug where selecting Matrix blocks would cause the content container to scroll. (#3762)
    • πŸ›  Fixed an error that occurred if Stringy 5.2 was installed.
  • v3.3.0 Changes

    August 27, 2019

    βž• Added

    • βž• Added a built-in, autogenerated GraphQL API for content (Craft Pro only). (#4540)
    • βž• Added β€œHeadless Mode”, which optimizes the system and Control Panel for headless CMS implementations.
    • It’s now possible to create Single sections without URLs. (#3883)
    • βž• Added the hiddenInput() Twig function, which generates a hidden input tag.
    • βž• Added the input() Twig function, which generates an input tag.
    • βž• Added the tag() Twig function, which generates an HTML tag.
    • βž• Added the |attr Twig filter, which modifies the attributes on an HTML tag. (#4660)
    • βž• Added the |append and |prepend Twig filters, which add new HTML elements as children of an HTML tag. (#3937)
    • βž• Added the headlessMode config setting.
    • βž• Added the purgeStaleUserSessionDuration config setting.
    • πŸ‘» Admin users can now opt into getting the full stack trace view when an uncaught exception occurs when Dev Mode isn’t enabled. (#4765)
    • Admin users can now opt into having Twig templates profiled when Dev Mode isn’t enabled.
    • βž• Added the graphql/api controller action.
    • βž• Added craft\base\ApplicationTrait::getGql().
    • βž• Added craft\base\EagerLoadingFieldInterface::getEagerLoadingGqlConditions().
    • βž• Added craft\base\ElementInterface::getGqlTypeName().
    • βž• Added craft\base\ElementInterface::gqlScopesByContext().
    • βž• Added craft\base\ElementInterface::gqlTypeNameByContext().
    • βž• Added craft\base\Field::getEagerLoadingGqlConditions().
    • βž• Added craft\base\FieldInterface::getContentGqlType().
    • βž• Added craft\base\GqlInlineFragmentFieldInterface.
    • βž• Added craft\base\GqlInlineFragmentInterface.
    • βž• Added craft\controllers\GraphqlController.
    • βž• Added craft\errors\GqlException.
    • βž• Added craft\events\RegisterGqlDirectivesEvent.
    • βž• Added craft\events\RegisterGqlQueriesEvent.
    • βž• Added craft\events\RegisterGqlTypesEvent.
    • βž• Added craft\gql\arguments\elements\Asset.
    • βž• Added craft\gql\arguments\elements\Category.
    • βž• Added craft\gql\arguments\elements\Entry.
    • βž• Added craft\gql\arguments\elements\GlobalSet.
    • βž• Added craft\gql\arguments\elements\MatrixBlock.
    • βž• Added craft\gql\arguments\elements\Tag.
    • βž• Added craft\gql\arguments\elements\User.
    • βž• Added craft\gql\base\Arguments.
    • βž• Added craft\gql\base\Directive.
    • βž• Added craft\gql\base\ElementArguments.
    • βž• Added craft\gql\base\ElementResolver.
    • βž• Added craft\gql\base\GeneratorInterface.
    • βž• Added craft\gql\base\GqlTypeTrait.
    • βž• Added craft\gql\base\InterfaceType.
    • βž• Added craft\gql\base\ObjectType.
    • βž• Added craft\gql\base\Query.
    • βž• Added craft\gql\base\Resolver.
    • βž• Added craft\gql\base\StructureElementArguments.
    • βž• Added craft\gql\directives\FormatDateTime.
    • βž• Added craft\gql\directives\Transform.
    • βž• Added craft\gql\GqlEntityRegistry.
    • βž• Added craft\gql\interfaces\Element.
    • βž• Added craft\gql\interfaces\elements\Asset.
    • βž• Added craft\gql\interfaces\elements\Category.
    • βž• Added craft\gql\interfaces\elements\Entry.
    • βž• Added craft\gql\interfaces\elements\GlobalSet.
    • βž• Added craft\gql\interfaces\elements\MatrixBlock.
    • βž• Added craft\gql\interfaces\elements\Tag.
    • βž• Added craft\gql\interfaces\elements\User.
    • βž• Added craft\gql\interfaces\Structure.
    • βž• Added craft\gql\queries\Asset.
    • βž• Added craft\gql\queries\Category.
    • βž• Added craft\gql\queries\Entry.
    • βž• Added craft\gql\queries\GlobalSet.
    • βž• Added craft\gql\queries\Ping.
    • βž• Added craft\gql\queries\Tag.
    • βž• Added craft\gql\queries\User.
    • βž• Added craft\gql\resolvers\elements\Asset.
    • βž• Added craft\gql\resolvers\elements\Category.
    • βž• Added craft\gql\resolvers\elements\Entry.
    • βž• Added craft\gql\resolvers\elements\GlobalSet.
    • βž• Added craft\gql\resolvers\elements\MatrixBlock.
    • βž• Added craft\gql\resolvers\elements\Tag.
    • βž• Added craft\gql\resolvers\elements\User.
    • βž• Added craft\gql\TypeLoader.
    • βž• Added craft\gql\types\DateTime.
    • βž• Added craft\gql\types\elements\Asset.
    • βž• Added craft\gql\types\elements\Category.
    • βž• Added craft\gql\types\elements\Element.
    • βž• Added craft\gql\types\elements\Entry.
    • βž• Added craft\gql\types\elements\GlobalSet.
    • βž• Added craft\gql\types\elements\MatrixBlock.
    • βž• Added craft\gql\types\elements\Tag.
    • βž• Added craft\gql\types\elements\User.
    • βž• Added craft\gql\types\generators\AssetType.
    • βž• Added craft\gql\types\generators\CategoryType.
    • βž• Added craft\gql\types\generators\ElementType.
    • βž• Added craft\gql\types\generators\EntryType.
    • βž• Added craft\gql\types\generators\GlobalSetType.
    • βž• Added craft\gql\types\generators\MatrixBlockType.
    • βž• Added craft\gql\types\generators\TableRowType.
    • βž• Added craft\gql\types\generators\TagType.
    • βž• Added craft\gql\types\generators\UserType.
    • βž• Added craft\gql\types\Query.
    • βž• Added craft\gql\types\TableRow.
    • βž• Added craft\helpers\App::webResponseConfig().
    • βž• Added craft\helpers\ArrayHelper::whereMultiple().
    • βž• Added craft\helpers\ElementHelper::sourceElement().
    • βž• Added craft\helpers\Gql.
    • βž• Added craft\helpers\Html::a().
    • βž• Added craft\helpers\Html::actionInput().
    • βž• Added craft\helpers\Html::appendToTag().
    • βž• Added craft\helpers\Html::csrfInput().
    • βž• Added craft\helpers\Html::modifyTagAttributes().
    • βž• Added craft\helpers\Html::normalizeTagAttributes().
    • βž• Added craft\helpers\Html::parseTag().
    • βž• Added craft\helpers\Html::parseTagAttributes().
    • βž• Added craft\helpers\Html::prependToTag().
    • βž• Added craft\helpers\Html::redirectInput().
    • βž• Added craft\helpers\StringHelper::afterFirst().
    • βž• Added craft\helpers\StringHelper::afterLast().
    • βž• Added craft\helpers\StringHelper::append().
    • βž• Added craft\helpers\StringHelper::appendRandomString().
    • βž• Added craft\helpers\StringHelper::appendUniqueIdentifier().
    • βž• Added craft\helpers\StringHelper::at().
    • βž• Added craft\helpers\StringHelper::beforeFirst().
    • βž• Added craft\helpers\StringHelper::beforeLast().
    • βž• Added craft\helpers\StringHelper::capitalizePersonalName().
    • βž• Added craft\helpers\StringHelper::count().
    • βž• Added craft\helpers\StringHelper::dasherize().
    • βž• Added craft\helpers\StringHelper::endsWithAny().
    • βž• Added craft\helpers\StringHelper::escape().
    • βž• Added craft\helpers\StringHelper::extractText().
    • βž• Added craft\helpers\StringHelper::htmlDecode().
    • βž• Added craft\helpers\StringHelper::htmlEncode().
    • βž• Added craft\helpers\StringHelper::humanize().
    • βž• Added craft\helpers\StringHelper::is().
    • βž• Added craft\helpers\StringHelper::isBase64().
    • βž• Added craft\helpers\StringHelper::isBlank().
    • βž• Added craft\helpers\StringHelper::isHexadecimal().
    • βž• Added craft\helpers\StringHelper::isHtml().
    • βž• Added craft\helpers\StringHelper::isJson().
    • βž• Added craft\helpers\StringHelper::isSerialized().
    • βž• Added craft\helpers\StringHelper::isUtf8().
    • βž• Added craft\helpers\StringHelper::isWhitespace().
    • βž• Added craft\helpers\StringHelper::lastSubstringOf().
    • βž• Added craft\helpers\StringHelper::lineWrapAfterWord().
    • βž• Added craft\helpers\StringHelper::pad().
    • βž• Added craft\helpers\StringHelper::padBoth().
    • βž• Added craft\helpers\StringHelper::padLeft().
    • βž• Added craft\helpers\StringHelper::padRight().
    • βž• Added craft\helpers\StringHelper::removeHtml().
    • βž• Added craft\helpers\StringHelper::removeHtmlBreak().
    • βž• Added craft\helpers\StringHelper::repeat().
    • βž• Added craft\helpers\StringHelper::replaceAll().
    • βž• Added craft\helpers\StringHelper::replaceBeginning().
    • βž• Added craft\helpers\StringHelper::replaceEnding().
    • βž• Added craft\helpers\StringHelper::replaceFirst().
    • βž• Added craft\helpers\StringHelper::replaceLast().
    • βž• Added craft\helpers\StringHelper::safeTruncate().
    • βž• Added craft\helpers\StringHelper::shortenAfterWord().
    • βž• Added craft\helpers\StringHelper::shuffle().
    • βž• Added craft\helpers\StringHelper::slice().
    • βž• Added craft\helpers\StringHelper::slugify().
    • βž• Added craft\helpers\StringHelper::split().
    • βž• Added craft\helpers\StringHelper::startsWithAny().
    • βž• Added craft\helpers\StringHelper::stripCssMediaQueries().
    • βž• Added craft\helpers\StringHelper::stripEmptyHtmlTags().
    • βž• Added craft\helpers\StringHelper::stripHtml().
    • βž• Added craft\helpers\StringHelper::stripWhitespace().
    • βž• Added craft\helpers\StringHelper::substringOf().
    • βž• Added craft\helpers\StringHelper::surround().
    • βž• Added craft\helpers\StringHelper::tidy().
    • βž• Added craft\helpers\StringHelper::titleizeForHumans().
    • βž• Added craft\helpers\StringHelper::toBoolean().
    • βž• Added craft\helpers\StringHelper::toSpaces().
    • βž• Added craft\helpers\StringHelper::toTabs().
    • βž• Added craft\helpers\StringHelper::toTransliterate().
    • βž• Added craft\helpers\StringHelper::trimLeft().
    • βž• Added craft\helpers\StringHelper::trimRight().
    • βž• Added craft\helpers\StringHelper::upperCamelize().
    • βž• Added craft\helpers\StringHelper::upperCaseFirst().
    • βž• Added craft\helpers\Template::beginProfile().
    • βž• Added craft\helpers\Template::endProfile().
    • βž• Added craft\helpers\UrlHelper::buildQuery().
    • βž• Added craft\model\MatrixBlockType::getField().
    • βž• Added craft\models\GqlSchema.
    • βž• Added craft\records\GqlSchema.
    • βž• Added craft\services\Fields::getGroupByUid().
    • βž• Added craft\services\Gql.
    • βž• Added craft\services\Matrix::getAllBlockTypes().
    • βž• Added craft\services\Sections::getAllEntryTypes().
    • βž• Added craft\web\assets\graphiql\GraphiqlAsset.
    • βž• Added craft\web\assets\graphiql\VendorAsset.
    • βž• Added craft\web\twig\nodes\ProfileNode.
    • βž• Added craft\web\twig\nodevisitors\Profiler.

    πŸ”„ Changed

    • 0️⃣ Relational fields without a specific target site will now only return related elements from the same site as the source element by default, as they did before Craft 3.2. (#4751)
    • 0️⃣ Element arrays no longer include hasDescendants or totalDescendants keys by default. (#4820)
    • 0️⃣ Matrix block queries no longer include blocks owned by drafts or revisions by default. (#4790)
    • βͺ Entries’ drafts and revisions are now soft-deleted and restored along with their source elements. (#4797)
    • Global set reference tags can now refer to the global set by its handle. (#4645)
    • πŸ‘Œ Improved Twig template profiling to include blocks and macros.
    • Twig template profiling no longer occurs when Dev Mode isn’t enabled, unless an admin user is logged in and has opted into it.
    • πŸ‘ The actionInput(), csrfInput(), and redirectInput() Twig functions now support an options argument for customizing the HTML tag attributes.
    • ⚠ The _layouts/forms/field.html template now supports label, instructions, tip, warning, and input blocks that can be overridden when including the template with an {% embed %} tag.
    • πŸ‘ Editable tables now support a fullWidth setting, which can be set to false to prevent the table from spanning the full width of the page.
    • πŸ‘ Editable tables now support thin column settings.
    • πŸ‘ Editable tables now support headingHtml column settings.
    • πŸ—„ Craft no longer overrides the base Twig template class, unless the now-deprecated suppressTemplateErrors config setting is enabled. (#4755)
    • ⚑️ Edit Entry pages now get updated preview target URLs after saving a draft, in case the URLs have changed.
    • The confirmation dialog that can appear after running the Asset Indexes utility no longer will close by pressing the Esc key or clicking outside of the modal. (#4795)
    • ⚠ Section and Matrix β€œPropagation Method” settings now display warnings about the potential for data loss when appropriate.
    • ⚠ Site group settings now display a warning about the potential for data loss.
    • Control Panel subnav items can now have badge counts. (#4756)
    • πŸ‘Œ Improved the performance of element duplication on multi-site installs.
    • πŸ‘Œ Improved the performance of craft\web\View::renderString() for templates that don’t contain any Twig code.
    • craft\behaviors\DraftBehavior::getCreator() can now return null.
    • πŸ“œ craft\helpers\Db::parseParam() now has an optional $columnType argument. (#4807)
    • βœ… craft\test\TestSetup::setupCraftDb() no longer accepts a second argument. Ensure that craft\test\Craft::$testConfig is set before calling this function. (#4804)
    • 🌐 craft\web\Request::post() and getBodyParam() will now work with posted JSON data, if the request’s content type is set to application/json.
    • Switched from the stringy/stringy library to voku/stringy. (#4753)

    πŸ—„ Deprecated

    • πŸ—„ Deprecated the suppressTemplateErrors config setting.
    • πŸ—„ Deprecated craft\services\Sections::isSectionTemplateValid().
    • πŸ—„ Deprecated craft\web\twig\Template.

    βœ‚ Removed

    • βœ‚ Removed craft\base\ElementInterface::getSource(). (#4754)
    • βœ‚ Removed craft\web\twig\Extension::actionInputFunction().
    • βœ‚ Removed craft\web\twig\Extension::csrfInputFunction().
    • βœ‚ Removed craft\web\twig\Extension::redirectInputFunction().

    πŸ›  Fixed

    • πŸ›  Fixed an error that could occur if garbage collection was run while Craft 3.2 migrations were pending. (#4720)
    • πŸ›  Fixed a bug where the β€œPublish live changes for other authors’ entries” permission was being enforced when saving another author’s entry as a new entry. (#4758)
    • πŸ›  Fixed a bug where craft\helpers\UrlHelper methods would strip out array params in the query string. (#4778)
    • πŸ›  Fixed a SQL error that occurred when a {% cache %} tag was used on a page with a 4-byte character in the URI. (#4780)
    • πŸ›  Fixed a bug where Craft could show a nondescript error when navigating away from a Control Panel page if an Ajax request was currently in progress. (#4796)
    • πŸ›  Fixed an error that occurred when editing an entry with a draft that was created by a soft-deleted user. (#4800)
    • πŸ›  Fixed a bug where entry revisions and drafts would be deleted when the user that created them was hard-deleted.
    • πŸ›  Fixed a SQL error that could occur when executing an element query that had custom JOIN and WHERE clauses if the search param was also set. (#4788)
    • πŸ›  Fixed a bug where default field values weren’t being applied to Matrix blocks that were autocreated per the Min Blocks setting. (#4806)
    • πŸ›  Fixed Plugin Store dropdowns which were not working properly with Windows Edge browsers.
    • πŸ›  Fixed a SQL error that could occur when :empty: or not :empty: was passed to a date param on an element query when running MySQL 8. (#4808)
    • πŸ›  Fixed a bug where Dropdown and Multi-select fields’ Dropdown Options settings weren’t autofocusing on the first input when adding a new row with the keyboard. (#4823)
  • v3.3.0.1 Changes

    August 27, 2019

    πŸ”„ Changed

    • graphql/api responses now send CORS headers to allow crossdomain requests. (#4830)

    πŸ›  Fixed

    • πŸ›  Fixed a PHP error that could occur when editing an existing GraphQL schema. (#4827)
    • πŸ›  Fixed a PHP error that could occur when using PostgreSQL. (#4828)
  • v3.2.10 Changes

    August 13, 2019

    βž• Added

    • βž• Added craft\fields\BaseRelationField::settingsTemplateVariables(). (#4732)
    • βž• Added craft\services\Search::deleteOrphanedIndexes().
    • βž• Added craft\validators\UriFormatValidator::$disallowTriggers.
    • βž• Added the Craft.startsWith() JavaScript method.

    πŸ”„ Changed

    • πŸ‘Œ Improved garbage collection performance when hard-deleting hundreds of thousands of elements. (#4735)
    • Element queries’ title param will now accept a value of '0'.
    • craft\services\Elements::deleteElementById() now has a $hardDelete argument. (#4747)
    • It’s no longer possible to save routes or URI formats that begin with the actionTrigger or cpTrigger config settings. (#4154)
    • Categories fields’ selection modals now show the site menu. (#4749)

    βœ‚ Removed

    • βœ‚ Removed craft\records\Route.

    πŸ›  Fixed

    • πŸ›  Fixed a bug where Entry fixtures wouldn’t get unloaded. (#4663)
    • πŸ›  Fixed a bug where entry content wouldn’t get propagated to other sites if an entry was created and then saved before Craft had finished autosaving the draft. (#4423)
    • πŸ›  Fixed a bug where entry forms could miss the fact that a Matrix block had been deleted. (#4727)
    • Fixed a PHP error that could occur on environments where the Intl PHP extension was installed but the IDNA_NONTRANSITIONAL_TO_ASCII or INTL_IDNA_VARIANT_UTS46 constants weren’t defined. (#4722)
    • πŸ›  Fixed a PHP error that could occur if a plugin was configured with settings even though it didn’t support settings. (#4706)
    • πŸ›  Fixed an error that occurred when a validation error occurred on an entry while it was being created or updated from a draft. (#4733)
    • πŸ›  Fixed an infinite recursion bug that could occur when validating circular relations. (#4482)
    • πŸ›  Fixed a bug where elements with a title of β€œ0” would show their ID instead of their title in element indexes and relational fields. (#4745)
    • πŸ›  Fixed a bug where Craft was redirecting to the Dashboard when attempting to export elements, if the tokenParam config setting was set to something besides token. (#4737)
  • v3.2.9 Changes

    August 06, 2019

    βž• Added

    • βž• Added the ignorePlaceholders element query param.
    • βž• Added the cp.entries.edit.meta and cp.entries.edit.settings template hooks to the Edit Entry page.
    • βž• Added craft\base\ElementInterface::getSource().
    • βž• Added craft\base\ElementTrait::$newSiteIds.
    • βž• Added craft\models\Site::$dateCreated and $dateUpdated. (#4703)

    πŸ”„ Changed

    • πŸ‘Œ Improved the Control Panel header styling for mobile and on pages with long titles. (#4548)
    • Element references in the Control Panel now reveal the site the element was fetched from in their tooltips, on multi-site installs. (#4690)
    • Element editor HUDs now always show a header with the element’s site name on multi-site installs, even if the element is only editable in one site. (#4690)
    • 0️⃣ Entry preview tokens now respect the defaultTokenDuration config setting, rather than always expiring after 24 hours. (#4683)
    • πŸ‘Œ Improved disabled select field styling. (#4709)

    πŸ—„ Deprecated

    • πŸ—„ Deprecated craft\behaviors\DraftBehavior::getSource().
    • πŸ—„ Deprecated craft\behaviors\RevisionBehavior::getSource().

    πŸ›  Fixed

    • πŸ›  Fixed a bug where elements listed in a Structure view could be missing their descendant toggles even if all of their descendants were disabled. (#4685)
    • πŸ›  Fixed a bug where element CSV exports were limited to 50 elements if no limit was set. (#4692)
    • πŸ›  Fixed a 400 error that occurred when submitting an entry form that didn’t have an entryId param. (#4693)
    • πŸ›  Fixed a bug where craft\base\Element::getDescendants() and other structure methods could return the wrong results when called on a draft. (#4694)
    • πŸ›  Fixed a bug where Matrix blocks weren’t getting duplicated to newly-enabled sites for elements if the field’s Propagation Method setting wasn’t set to β€œSave blocks to all sites the owner element is saved in”. (#4698)
    • πŸ›  Fixed a bug where the Database Backup could result in a 404 error on load-balanced environments. (#4699)
    • πŸ›  Fixed a bug where the β€œCurrent” entry revision link wouldn’t always work. (#4705)
    • Fixed a bug where the craft\services\Search::EVENT_AFTER_SEARCH event wasn’t always firing. (#4710)
    • πŸ›  Fixed a bug where craft\services\Users::purgeExpiredPendingUsers() was attempting to delete already-trashed users.

    πŸ”’ Security

    • πŸ›  Fixed an XSS vulnerability.