Merge branch '4.5' into 4

This commit is contained in:
Serge Latyntcev 2019-12-19 11:26:38 +13:00
commit eaf6bca706
4 changed files with 229 additions and 18 deletions

View File

@ -1,18 +1,38 @@
# 4.5.0 (Unreleased)
# 4.5.0
## Overview {#overview}
* [PHP 7.1 is the lowest supported version](#php71)
* [Apache >=2.4 is now recommended](#apache24)
* [Installer UI has been removed](#installer-ui) and offered as a separate module.
* [Generic login form styling](#login-forms)
* [Generic login form styling](#login-forms) is now available as an optional module
* Removed `use_gzip` option on `HtmlEditorField` which used to compress the rich text editor dependency.
No longer required since compression is performed as part of the CMS build automatically.
See (#832)(https://github.com/silverstripe/silverstripe-admin/issues/832)
## Installer UI has been removed
Until now, core releases of SilverStripe would put drop an `install.php` file in the
## PHP 7.1 is the minimum supported version {#php71}
Starting with this release we do not support PHP 5.6 and 7.0 anymore.
As such, 7.1 is the lowest supported version. The prior releases will
keep supporting older PHP versions for their lifetime.
## Apache >=2.4 is now recommended {#apache24}
The cms recipes for new application installations and some of our asset migration scripts
are now generating ".htaccess" using the Apache 2.4 syntax. This does not affect any existing
".htaccess" files, but only auto-generated ones.
Apache 2.2 has reached its EOL in 2017, so we do not proactively support it anymore.
You also may amend any auto-generated ".htaccess" files manually in case you want to
run CMS on a different software.
## Installer UI has been removed {#installer-ui}
Until now, core releases of SilverStripe would put an `install.php` file in the
public root that, when accessed with a browser, would offer an installation
UI prompting the user for all the necessary configuration of your project
UI prompting the user for all the necessary configuration of your project
and environment, and validating it before performing the installation.
While this may be an important part of the onboarding experience for newcomers
@ -41,17 +61,17 @@ See [#9232](https://github.com/silverstripe/silverstripe-framework/issues/9232)
## Generic login form styling {#login-forms}
Login forms in SilverStripe are traditionally embedded in your page template.
This often requires style adjustments in your website, for example to cover variations
This often requires style adjustments in your website, for example, to cover variations
such as error messages and validation feedback. It also complicates
more advanced login flows such as multi-factor authentication.
Starting with this release, new installations include the
Starting with this release, you could install
[silverstripe/login-forms](https://github.com/silverstripe/silverstripe-login-forms)
module. It provides generic styles which look great without any adjustments.
You can choose to add your own logo, or customise the templates.
You can choose to add your own logo or customise the templates.
The URLs to login functionality have not changed (e.g. `Security/login`).
Existing SilverStripe websites upgrading to this release can opt in to using
Existing SilverStripe websites upgrading to this release can opt into using
login forms via composer:
```
@ -63,17 +83,19 @@ no longer apply when this module is installed. If you have customised the login
by adding form fields, or through custom handlers such as SAML or LDAP,
you'll need to review those before starting to use the module.
Starting with `Silverstripe CMS 4.6` this module will be included in new installations by default.
## New PasswordExpirationMiddleware now proactively invalidates members with expired passwords
A new PasswordExpirationMiddleware has been implemented.
It checks passwords of authenticated users for expiration and either enforces a redirection
to a change password form, or resets the user for a request being processed (sets current user to null).
It checks passwords of authenticated users for expiration and either enforce a redirection
to a change password form, or resets the user for a request being processed (sets the current user to null).
This is considered to be a security enhancement, but potentially might interfere with some custom logic
around password expiration if you have it implemented.
around password expiration, if you have it implemented.
Ideally you should test your setup when upgrading if you use the password expiration functionality.
Ideally, you should test your setup when upgrading if you use the password expiration functionality.
If you'd like to deactivate the middleware, you can unregister it in your application config like this:
@ -94,3 +116,161 @@ SilverStripe\Core\Injector\Injector:
* `PasswordValidator` methods `minLength`, `characterStrength`, and `checkHistoricalPasswords` are now deprecated from
4.5.0 onwards (previously 5.0).
## Change Log
### API Changes
* 2019-10-31 [e2bea6b41](https://github.com/silverstripe/silverstripe-framework/commit/e2bea6b41f05f2ad9d492d2e96a535dfff9f16ef) Add `withConfig` method (#9011) (Mojmir Fendek)
* 2019-10-09 [e236ce5](https://github.com/silverstripe/silverstripe-admin/commit/e236ce576d51f902e61f7eed547411c9670a3da1) Add onBlur and onFocus handlers to Input field (Maxime Rainville)
* 2019-08-06 [4380d7d15](https://github.com/silverstripe/silverstripe-framework/commit/4380d7d1552f498f43ff3bb6d6056b2cd7a6bce4) Add option to disable user-agent header session validation (Maxime Rainville)
* 2019-06-18 [83661c7](https://github.com/silverstripe/silverstripe-versioned/commit/83661c7fa52c892ab97e124e02dd6da0e15772b1) Add deprecation warnings to Versioned::VersionsList() and allVersions() (Robbie Averill)
* 2019-05-30 [0520d7746](https://github.com/silverstripe/silverstripe-framework/commit/0520d77461ce6c30343c1d8edbc6d67c3c8a2212) checkHistoricalPasswords(), characterStrength() and minLength() are now correctly deprecated from 4.5.0 onwards (#9008) (Guy Marriott)
* 2019-05-27 [9bfce8c1a](https://github.com/silverstripe/silverstripe-framework/commit/9bfce8c1a48759fe2493d3cb841807cf5ec43592) Add extension points to MigrateFileTask (#8994) (Maxime Rainville)
* 2019-05-24 [d87377995](https://github.com/silverstripe/silverstripe-framework/commit/d8737799560ac757f1218da4185ea5ec3560109a) checkHistoricalPasswords(), characterStrength() and minLength() are now correctly deprecated from 4.5.0 onwards (Robbie Averill)
* 2019-05-23 [5184cb9](https://github.com/silverstripe/silverstripe-campaign-admin/commit/5184cb95b4431c018f3035a007b356111ac6fb69) Bump minimum PHP version to 7.1 (Robbie Averill)
* 2019-05-23 [c262dd3](https://github.com/silverstripe/silverstripe-assets/commit/c262dd308f9fb75fa7b95a69b19f3613b0eb9ca7) Bump minimum PHP version to 7.1 (Robbie Averill)
* 2019-05-23 [002cb6b](https://github.com/silverstripe/silverstripe-installer/commit/002cb6b61d4b62881e4b3709720ae9b033a9a1f5) Bump minimum PHP version to 7.1 (Robbie Averill)
* 2019-05-23 [ac3534404](https://github.com/silverstripe/silverstripe-framework/commit/ac35344041e812e0ab842ee9f03961ac2abc4c5a) Drop PHP 5.6 and PHP 7.0 support in SS 4.5 (Sam Minnee)
### Features and Enhancements
* 2019-11-13 [fbc5ca2](https://github.com/silverstripe/silverstripe-assets/commit/fbc5ca22056fc7869f1db93807db2bbbb899096f) Tweak attribute filter logic to allow 'falsey' values (Garion Herman)
* 2019-10-24 [0173abc](https://github.com/silverstripe/silverstripe-admin/commit/0173abc9966f2b8a4b6ab529024d29d459d5a54b) Add Injector.init callback (#974) (Aaron Carlino)
* 2019-10-22 [bed3f2b3c](https://github.com/silverstripe/silverstripe-framework/commit/bed3f2b3c691d3b157f615f1c0b6137f0908a40d) Add type declarations to Tip API, add TippableFieldInterface (Garion Herman)
* 2019-10-22 [195417b06](https://github.com/silverstripe/silverstripe-framework/commit/195417b06120d1d7f2ec51b7ffff18259be1facc) Extract Tip from TextField, add test coverage (Garion Herman)
* 2019-10-21 [e0f919d](https://github.com/silverstripe/silverstripe-asset-admin/commit/e0f919d3c6a6b0415ae06c9e91da5bf37da99672) Add HTML editor button to switch to image size preset (#1018) (Maxime Rainville)
* 2019-10-21 [e59625fe5](https://github.com/silverstripe/silverstripe-framework/commit/e59625fe5ab7bd1e199feee7c822fb24ab2140e2) Add ability to define image size preset for the TinyMCE editor. (#9276) (Maxime Rainville)
* 2019-10-21 [530b86e](https://github.com/silverstripe/silverstripe-asset-admin/commit/530b86e0a187f022335aa8124a80fbcb69e06cc8) Add tip to Alt Text field in Insert Media dialog (Garion Herman)
* 2019-10-17 [ce97ec1](https://github.com/silverstripe/silverstripe-admin/commit/ce97ec1f3ac0be839339e6a84c13566ede324b0e) Add tests for Tip component, fix proptypes and story (Garion Herman)
* 2019-10-15 [3c7ba6d](https://github.com/silverstripe/silverstripe-admin/commit/3c7ba6d558986691054d3986b20410fd38ae6ffd) Extract Tip UI to independent component, add knobs to TextField (Garion Herman)
* 2019-10-11 [bbc6854](https://github.com/silverstripe/silverstripe-admin/commit/bbc68541147bbcd53453b53f97bcd70f067af50b) Tweak Tip UI render methods, remove autoOpen, add importance prop (Garion Herman)
* 2019-10-11 [efc7ba952](https://github.com/silverstripe/silverstripe-framework/commit/efc7ba95200f761831477290cfde58011a2ec537) Tweak TextField Tip API to match changes to component (Garion Herman)
* 2019-10-09 [b4d2b92](https://github.com/silverstripe/silverstripe-admin/commit/b4d2b928f86facc2cd9512b137fcc65d7cd83693) Add Tip UI to InputField component, document on TextField (Garion Herman)
* 2019-10-09 [08a0811](https://github.com/silverstripe/silverstripe-admin/commit/08a0811a8c410af23ecc18b7f36218e75ee446c9) Update icon font with new lamp, flag and ticket icons (Garion Herman)
* 2019-10-09 [74c350a](https://github.com/silverstripe/silverstripe-asset-admin/commit/74c350aa71d426dceb27a3f24b640add8b618d7e) Add `Download file` action to file meatballs button (#1011) (Andre Kiste)
* 2019-10-08 [4bb83ee](https://github.com/silverstripe/silverstripe-admin/commit/4bb83ee3ffd172397a303f3e828daf87d4e10877) Add Markdown loader to Pattern Library for advanced docs (Garion Herman)
* 2019-10-06 [a44bc5bcf](https://github.com/silverstripe/silverstripe-framework/commit/a44bc5bcf3ff920c43b58d835d3c25b5185afd5c) Add support for Tip UI in TextField (Garion Herman)
* 2019-10-02 [c437316](https://github.com/silverstripe/silverstripe-asset-admin/commit/c43731637aff9439d65e1af3a5f83e956cf6654b) UploadField dropzone validates filesize before uploading (Serge Latyntcev)
* 2019-10-01 [904b677](https://github.com/silverstripe/silverstripe-asset-admin/commit/904b677c17499489fe1ead9e5518a9e3b9926db5) Enable 'upload_folder_id' config to set dialog folderid (#1009) (Damian Mooyman)
* 2019-09-29 [58c080db5](https://github.com/silverstripe/silverstripe-framework/commit/58c080db5a6a0b313cf16600f5450d1817efd799) Option placeholder for upload folder id (#9262) (Damian Mooyman)
* 2019-09-16 [bcbf90a83](https://github.com/silverstripe/silverstripe-framework/commit/bcbf90a8374a379c71689b3372b86a0981d9c420) Introduce supported database transaction mode check (Michal Kleiner)
* 2019-09-12 [233e0e7aa](https://github.com/silverstripe/silverstripe-framework/commit/233e0e7aa06be06c8e25eda6abba407041c69089) PasswordExpirationMiddleware implementation (#9207) (Serge Latyntsev)
* 2019-09-11 [da6582f59](https://github.com/silverstripe/silverstripe-framework/commit/da6582f593de22a6a9ad04e7f35de19cf05f2868) Remove web installer, move to separate package (#9231) (Aaron Carlino)
* 2019-09-06 [22a6a5b1e](https://github.com/silverstripe/silverstripe-framework/commit/22a6a5b1e36e29b2935671a948360cd8ae9b132c) Add getLastName() method to Member.php (#9222) (Hels666)
* 2019-08-20 [c6f2070](https://github.com/silverstripe/silverstripe-admin/commit/c6f20706d8b64329641c2f2be2a142fa165e001b) Add a `canMove` callback which makes it possible to add conditional logic before moving nodes around the tree (bergice)
* 2019-08-19 [759601741](https://github.com/silverstripe/silverstripe-framework/commit/759601741d0d03fc0ef8c13ac2178c1f8e78cbf0) Use templates to render embed shortcodes (closes #8762) (Loz Calver)
* 2019-08-02 [7533ac709](https://github.com/silverstripe/silverstripe-framework/commit/7533ac7099db82ffc8e14e1b9fd582f817e54e67) HTTPRequest now has hasSession() to determine whether a ses… (#9159) (Guy Marriott)
* 2019-08-01 [0672f8b76](https://github.com/silverstripe/silverstripe-framework/commit/0672f8b76bdffee2076563e96fe8b533589e75f0) HTTPRequest now has hasSession() to determine whether a session exists for it (Robbie Averill)
* 2019-07-26 [be4ff49](https://github.com/silverstripe/silverstripe-installer/commit/be4ff49c1229b24b231b5d5e166c8f2a246a1aaa) Enhancement / Update travis config to use Xenial (Serge Latyntcev)
* 2019-07-22 [dd21ce2](https://github.com/silverstripe/silverstripe-graphql/commit/dd21ce2ae8ee781f3f66603014eab93359a96712) Add universal permission checking for queries (#222) (Aaron Carlino)
* 2019-07-21 [cb91f5fa0](https://github.com/silverstripe/silverstripe-framework/commit/cb91f5fa06ec5f5ca2b4f5f93a94edb95c6c947c) Added SRI support for Requirements::css, Requirements::javascript (#9139) (Chee Wai)
* 2019-07-08 [ec66d366d](https://github.com/silverstripe/silverstripe-framework/commit/ec66d366d2c0c5f96baede7ae1de806d63bf88f8) Deprecated PDO in favour of native drivers (#9052) (Guy Marriott)
* 2019-07-05 [6c9c6cd](https://github.com/silverstripe/silverstripe-asset-admin/commit/6c9c6cdc20399b76ba568ccc4994737d71edb236) Large thumbnails fallback on URL (#964) (Aaron Carlino)
* 2019-07-05 [844d2ef13](https://github.com/silverstripe/silverstripe-framework/commit/844d2ef134a344bca0e39ecc4c5d8bdd75de4171) DBDate and DBDatetime now support modify() with a strtotime() style adjustment string (#9105) (Robbie Averill)
* 2019-07-02 [571a4d9ac](https://github.com/silverstripe/silverstripe-framework/commit/571a4d9ace754ad8c803abf4762943dbd6cc772a) Added support for config condition if PHP extension is loaded (UndefinedOffset)
* 2019-06-11 [a968e7a](https://github.com/silverstripe/silverstripe-installer/commit/a968e7ad479b3f32fef180b4b2917a93977b32a1) Change .env.example to default to MySQL native driver (Sam Minnee)
* 2019-06-11 [27ace0327](https://github.com/silverstripe/silverstripe-framework/commit/27ace0327382015c74e2830ff4b1c68dac930f59) Deprecated PDO in favour of native drivers (Sam Minnee)
* 2019-05-28 [b7c2491](https://github.com/silverstripe/silverstripe-errorpage/commit/b7c24910f23596084edc849157c6241619389c87) Allow error pages for 402 and 451 status codes (Elliot Sawyer)
* 2019-05-27 [a7f0b5a](https://github.com/silverstripe/silverstripe-errorpage/commit/a7f0b5a069e14d695d5b7da8fc9197e6dbb9a8c9) Add technical message to error page on dev environments (Sam Minnee)
* 2019-05-15 [350888bf5](https://github.com/silverstripe/silverstripe-framework/commit/350888bf502ef1b79693b0e794745ea3593fdd71) Adding a shuffle method to ArrayList (#8984) (Guy Marriott)
* 2019-05-09 [43b8000](https://github.com/silverstripe/silverstripe-installer/commit/43b8000fd6303a20007ea8b4da9e5de6b655a5f4) Disable legacy resolution for new projects (#253) (Maxime Rainville)
* 2019-05-02 [5dc57518c](https://github.com/silverstripe/silverstripe-framework/commit/5dc57518c24d34d5a659aaa9fe0504b047795e33) Filter out authenticators that are falsy (Indy Griffiths)
* 2019-04-30 [fec0b4c](https://github.com/silverstripe/silverstripe-graphql/commit/fec0b4c0c7fad1829010ba41f027db8d04f18804) Added ability to disable type caching on flush (Guy Marriott)
* 2019-04-17 [2d298d4](https://github.com/silverstripe/silverstripe-admin/commit/2d298d4d1db22084ac409563032d296200320bc0) Add VersionedBadge for displaying versioning states in the CMS (Robbie Averill)
* 2019-03-12 [3a6a6e485](https://github.com/silverstripe/silverstripe-framework/commit/3a6a6e4850a590172709fb6c18def097eacf70df) Add PHP 7.4s daily snapshot to the travis suite. (Sam Minnee)
### Bugfixes
* 2019-11-26 [ed5dbc725](https://github.com/silverstripe/silverstripe-framework/commit/ed5dbc725cb5379240971475f77350280eb28de9) Fix extra blank Group being created when creating a new Group (#9325) (Andre Kiste)
* 2019-11-18 [8be36604](https://github.com/silverstripe/silverstripe-reports/commit/8be36604092caf8e9919c076070f68fcd3ffe87e) Linting failure (Garion Herman)
* 2019-11-13 [ea2a2b478](https://github.com/silverstripe/silverstripe-framework/commit/ea2a2b4786bd5731e015f57ebe38b855408b2c28) Adjust HTMLEditorField tests to support alt attr changes in assets (Garion Herman)
* 2019-11-12 [9648801](https://github.com/silverstripe/silverstripe-versioned-admin/commit/9648801aa0eb8ad5ef8b78c9f28c3617a7fe3a03) Gracefully handle lack of actions in HistoryViewer (Serge Latyntcev)
* 2019-11-12 [7045082a](https://github.com/silverstripe/silverstripe-cms/commit/7045082a06e56d5a4b5070475998a929a41b0452) Cache page icons (#2493) (Adrian Humphreys)
* 2019-11-07 [3a00ecc](https://github.com/silverstripe/silverstripe-admin/commit/3a00ecc388c24d52ee7fa5830c5ed57f2dba1e84) Lowercase PHPUnit in composer.json to allow packagist to resolve 1.2.x-dev (Maxime Rainville)
* 2019-11-05 [c4c688f](https://github.com/silverstripe/silverstripe-admin/commit/c4c688fd479a445feb7fe2de544ff4c72576d837) Do not include moment locales in bundle (Maxime Rainville)
* 2019-10-31 [f47ff4c](https://github.com/silverstripe/silverstripe-admin/commit/f47ff4c9140e4ff46da364130724acda2f724496) Fix toast popping up forever (bergice)
* 2019-10-28 [f03b3a0](https://github.com/silverstripe/silverstripe-admin/commit/f03b3a085e8e8b5675c5a1e3b100eaab619b6a31) fixed creating multiple duplicate data objects (#961) (Guy Marriott)
* 2019-10-23 [15b21fc](https://github.com/silverstripe/silverstripe-admin/commit/15b21fcf502a6de90169c2f6a1940270c9176e4f) Remove deprecated uppercase characters from composer.json (#982) (Garion Herman)
* 2019-10-23 [5fc94b9](https://github.com/silverstripe/silverstripe-admin/commit/5fc94b9b523951a85a878039bc0e272c355100bb) Revert scope change of TreeDropdownField hack and suppress linter (Garion Herman)
* 2019-10-22 [c96b7be](https://github.com/silverstripe/silverstripe-admin/commit/c96b7becf66738039925fea94eb9dc85def87138) Use arrow syntax to avoid unnamed function linting error (Garion Herman)
* 2019-10-21 [626d7c9](https://github.com/silverstripe/silverstripe-installer/commit/626d7c9f995800ca5d93ff017b0ce9075d05bfa9) Update changelog template location config (Garion Herman)
* 2019-10-20 [2496de6](https://github.com/silverstripe/silverstripe-admin/commit/2496de6ce3cb8e6dce2b18b79e6b1859a6d89772) Fix ModelAdmin ignoring page_length (Damian Mooyman)
* 2019-10-20 [9004b50](https://github.com/silverstripe/silverstripe-admin/commit/9004b50dc3d7b0009a47c90ff3b5f8e5076a5908) Tidy variable use, shift padding out of example in Tip story (Garion Herman)
* 2019-10-20 [7a54920](https://github.com/silverstripe/silverstripe-admin/commit/7a549203ba54a6429787b877ec7829da924343f5) Translate Tip aria-label, add docs, improve knobs (Garion Herman)
* 2019-10-09 [57e481f](https://github.com/silverstripe/silverstripe-admin/commit/57e481f8b864e9489d61ef24f5f22a94019b9194) Add support for disabling the smallfield holder label on react FieldGroup (Maxime Rainville)
* 2019-10-09 [eb369ed](https://github.com/silverstripe/silverstripe-versioned-admin/commit/eb369edba887b43e78c63f96c80792e94079afe0) Gracefully handle lack of versions in HistoryViewer (Serge Latyntcev)
* 2019-10-08 [3a3705d](https://github.com/silverstripe/silverstripe-versioned/commit/3a3705dc83ce866e253f82b1abc5c7287ec5f5b6) archive relationships, not related objects (Dylan Wagstaff)
* 2019-10-07 [d182f06](https://github.com/silverstripe/silverstripe-admin/commit/d182f06e7e12345ed5ac679ec7e7114f50d4b2b4) Minor code formatting improvement. (Maxime Rainville)
* 2019-10-03 [f1594fd99](https://github.com/silverstripe/silverstripe-framework/commit/f1594fd991b701d4b97b164919844242f45ae15e) Ensure that canCreate() context matches that respected by GridFieldAddNewButton (Damian Mooyman)
* 2019-10-03 [b3ccd48](https://github.com/silverstripe/silverstripe-admin/commit/b3ccd48cb9bc0567f9ce53a74d5d465be4e77d90) Remove buggy code from LeftAndMain Breadcrumb (Maxime Rainville)
* 2019-10-02 [7db524bd9](https://github.com/silverstripe/silverstripe-framework/commit/7db524bd9065dc1918fd812bf20e207740b57dd0) DebugViewFrendlyErrorFormatter handle of admin_email (Serge Latyntcev)
* 2019-09-30 [be44178](https://github.com/silverstripe/silverstripe-admin/commit/be441785aeb79ea77bd56a5e74a668d809e92530) fixed creating multiple duplicate data object by locking out save button on submit (Makreig)
* 2019-09-30 [daf995da6](https://github.com/silverstripe/silverstripe-framework/commit/daf995da6398a9eb7bcb2fbbe802d58477bd89b9) Fix syntax error in DataList docs (Loz Calver)
* 2019-09-29 [2799265](https://github.com/silverstripe/silverstripe-asset-admin/commit/2799265675ac251c4590c80258f717a08d199273) Honour AssetAdminFile insert dimentions when inserting a new image (#1015) (Maxime Rainville)
* 2019-09-29 [f475826](https://github.com/silverstripe/silverstripe-assets/commit/f4758265ad245e3b05f8e5fcf9c87fb490de5853) Fix inlinting issue (Maxime Rainville)
* 2019-09-29 [30d816e](https://github.com/silverstripe/silverstripe-assets/commit/30d816ef386f13a774b4d037620d2435d65af42f) Flush cache before every test in Sha1FileHashingServiceTest (Maxime Rainville)
* 2019-09-29 [52b2b3a](https://github.com/silverstripe/silverstripe-asset-admin/commit/52b2b3afca0533e01d4fd9430484726dedec2780) Fix minor typos in the comments (Maxime Rainville)
* 2019-09-26 [959da81](https://github.com/silverstripe/silverstripe-assets/commit/959da8137684fcadd50701111355e3f71d4c9fe1) Store the timestamp in the cache (Maxime Rainville)
* 2019-09-25 [255bf2f](https://github.com/silverstripe/silverstripe-admin/commit/255bf2f485963b403b627d887bb943412a73f83b) JSTree error if callback isn't passed (fixes #958) (Loz Calver)
* 2019-09-24 [fb36e03](https://github.com/silverstripe/silverstripe-admin/commit/fb36e032db48446db074ed09b5d1720bf58370b3) Search for both Save and Apply change when running behat tests (Maxime Rainville)
* 2019-09-24 [f110bec](https://github.com/silverstripe/silverstripe-assets/commit/f110becda902b26894bab0acd31bd6ffedb38b2c) Force alt attribute to render, remove fallback to image Title (Garion Herman)
* 2019-09-23 [aa7c05742](https://github.com/silverstripe/silverstripe-framework/commit/aa7c05742242f8e2ec77f97b52839e0365ec7e1a) Don't force-add view button to readonly GridField (fixes #… (#9254) (Guy Marriott)
* 2019-09-23 [190b2f284](https://github.com/silverstripe/silverstripe-framework/commit/190b2f28429cd870c791f689def055061665ee58) run member CMS validator when editing via groups (fixes #9… (#9255) (Guy Marriott)
* 2019-09-23 [efdb9cc71](https://github.com/silverstripe/silverstripe-framework/commit/efdb9cc718517c09800a47bb53374bff787b54fa) run member CMS validator when editing via groups (fixes #9184) (Loz Calver)
* 2019-09-23 [d85ff3bc4](https://github.com/silverstripe/silverstripe-framework/commit/d85ff3bc4463d47edd6b662b34569162e3861a88) Don't force-add view button to readonly GridField (fixes #9249) (Loz Calver)
* 2019-09-23 [a2ddef0](https://github.com/silverstripe/silverstripe-asset-admin/commit/a2ddef09fa48aa429b51f7a9798847fe92aec32e) Fix build (Maxime Rainville)
* 2019-09-23 [a6a108b](https://github.com/silverstripe/silverstripe-asset-admin/commit/a6a108b572c5ba81cc74135bde8fedd550801ecf) Fix bad description for bulk delete actions (Maxime Rainville)
* 2019-09-23 [f177606](https://github.com/silverstripe/recipe-core/commit/f1776060fec34ba5ac83f1be9f88906e055b1c20) Update Apache .htaccess for new access directives (Dylan Wagstaff)
* 2019-09-23 [3f96b28](https://github.com/silverstripe/silverstripe-asset-admin/commit/3f96b28e52f87943ece14711b44d4f8b58e5c8e1) Fix broken existing tests (Maxime Rainville)
* 2019-09-11 [51f05c0](https://github.com/silverstripe/silverstripe-asset-admin/commit/51f05c06753db10bfbc2206cc8d1159e709c12aa) Fix Used On tab showing file links (bergice)
* 2019-09-10 [3510cc0](https://github.com/silverstripe/silverstripe-asset-admin/commit/3510cc02ae1e3c9f0d77a75cac6c9fe14a228ce5) Add a status column to the table view (#980) (Maxime Rainville)
* 2019-09-08 [c16556158](https://github.com/silverstripe/silverstripe-framework/commit/c165561580312114d6a827d71fed1fb72bd8815c) Fix typos (Maxime Rainville)
* 2019-09-06 [f788a8a92](https://github.com/silverstripe/silverstripe-framework/commit/f788a8a92704474ed8665b222ea6e8e8e05166fe) Member::getLastName() now correctly returns the Member surn… (#9226) (Guy Marriott)
* 2019-09-06 [e8c2f963f](https://github.com/silverstripe/silverstripe-framework/commit/e8c2f963fde9eeac87d758a423965f1e6a17f714) Member::getLastName() now correctly returns the Member surname (Robbie Averill)
* 2019-08-28 [10c10d5](https://github.com/silverstripe/silverstripe-admin/commit/10c10d5a788e94216aaa50783ec395c7bce9a823) When using the esc key to exist a popover, refocus to the target element (Maxime Rainville)
* 2019-08-22 [8e307292](https://github.com/silverstripe/silverstripe-cms/commit/8e3072922f5227caf7e0394478dd3d55c12fa34c) Disable caching on page previews (CMSPreviews or stage=Stage) (Garion Herman)
* 2019-08-19 [cddd423](https://github.com/silverstripe/silverstripe-admin/commit/cddd42368d41a78397a911ed6ce83423488456a4) Sort action menus using numeric valuesrather than boolean (Maxime Rainville)
* 2019-08-16 [9d44a3b](https://github.com/silverstripe/silverstripe-asset-admin/commit/9d44a3bb44b44b63c0807ddc853689105fb1f6fe) Optimise AssetAdminFile::nestedFolderIDs (Guy Marriott)
* 2019-08-13 [f8506c1](https://github.com/silverstripe/silverstripe-admin/commit/f8506c1cbe6b5b457e19a3d784edd859bfee7a9e) re-enable ability to insert anchors (Dylan Wagstaff)
* 2019-08-12 [d9cc265](https://github.com/silverstripe/silverstripe-asset-admin/commit/d9cc2655c09a3f81eb139457f1d4fc9a4c85f712) Set better order for insert link menu (Maxime Rainville)
* 2019-08-12 [4960cc35](https://github.com/silverstripe/silverstripe-cms/commit/4960cc3542a92a08f5932577889b2afee40b69a5) Set better order for insert link menu (Maxime Rainville)
* 2019-08-12 [d0f94b3](https://github.com/silverstripe/silverstripe-admin/commit/d0f94b3fc4837b0a93443e63128481b8a3f6b43a) Set better order for insert link menu (Maxime Rainville)
* 2019-08-02 [6ec02da57](https://github.com/silverstripe/silverstripe-framework/commit/6ec02da577c0561cd62e001400f7ac425ef15cbe) Allow multi-line content in grid field cells (Sam Minnee)
* 2019-08-02 [d088354f4](https://github.com/silverstripe/silverstripe-framework/commit/d088354f46e39fa02de68fb0edc3ccbf143001a1) Write relations when saving in grid-field item edit form (Sam Minnee)
* 2019-07-26 [89eb6c88b](https://github.com/silverstripe/silverstripe-framework/commit/89eb6c88b2cc508ca0e582c589efda279a0797f7) Do not try and load fixtures from directories, fixes PHP 7.4 build errors (Robbie Averill)
* 2019-07-24 [d1c927ff2](https://github.com/silverstripe/silverstripe-framework/commit/d1c927ff2372a422ca8d5145aee6ba5192355f80) Remove curly brace access to string offsets, deprecated in PHP 7.4 (Robbie Averill)
* 2019-07-19 [79fa61edf](https://github.com/silverstripe/silverstripe-framework/commit/79fa61edf8cf45a581e9aa4ef065812fb33432a2) Type safety on nullable argument, fixes PHP 7.4 test (Robbie Averill)
* 2019-07-18 [2287da9](https://github.com/silverstripe/silverstripe-asset-admin/commit/2287da92935dd307b41bcb907672fbfe3d2fd670) Fix ambiguous UploadField labels (Jonathon Menz)
* 2019-07-17 [c11d0f3](https://github.com/silverstripe/silverstripe-admin/commit/c11d0f38fdba347d9fa9b7e8513737954fae5ba0) Resolving an issue where no .stories.js file would error (Guy Marriott)
* 2019-07-10 [f4913c5](https://github.com/silverstripe/silverstripe-admin/commit/f4913c5e52d1cf9cd87700bf5f4698eab827a5c1) Refresh icons (#905) (Guy Marriott)
* 2019-07-10 [04077d6](https://github.com/silverstripe/silverstripe-admin/commit/04077d6758af1659408c72cbf908574d9986e0e0) Refresh icons. (Maxime Rainville)
* 2019-06-30 [a638651](https://github.com/silverstripe/silverstripe-graphql/commit/a638651c9f4367f19ce6577fafa3dd743030f913) Fix some inconsistencies in the GraphQL docs. (bergice)
* 2019-06-26 [8917545](https://github.com/silverstripe/silverstripe-admin/commit/8917545657cc74f54f3f365482486eceac94998f) /NEW: Stories are now fetched dynamically from related modules (Guy Marriott)
* 2019-06-23 [6425852](https://github.com/silverstripe/silverstripe-assets/commit/6425852a19e8a69651c8faf832aac51eedd11a93) Fix the `TagsToShortcodeTask` segment so it matches the class name, like every other BuildTask we have. (#297) (Andre Kiste)
* 2019-06-18 [e652b3e42](https://github.com/silverstripe/silverstripe-framework/commit/e652b3e4214c8bbe06d33102340bcbd79ea6a5cd) fix #9075 log example yml-config in docs (lerni)
* 2019-06-17 [093c3cf](https://github.com/silverstripe/silverstripe-admin/commit/093c3cf78231435da09dfce82db6ff04550fd47e) Hide iframe while loading in preview component (Guy Marriott)
* 2019-06-14 [1ee03da65](https://github.com/silverstripe/silverstripe-framework/commit/1ee03da657575436f307df5e7ffc169a415c91d5) Fix PHPUnit operation on PHP 7.4 (Sam Minnee)
* 2019-06-14 [ea04c8c](https://github.com/silverstripe/silverstripe-admin/commit/ea04c8cc326e2fda5ee237ef2ff84a37c2396b60) Remove unused gzip tinemce third party lib (Maxime Rainville)
* 2019-06-14 [abce98886](https://github.com/silverstripe/silverstripe-framework/commit/abce98886cf950f75e8f1f6cd7fd5b9a41d254b6) Temporarilly allow PHP 7.4 build to fail without failing the entire build (Maxime Rainville)
* 2019-06-13 [b3093b7a1](https://github.com/silverstripe/silverstripe-framework/commit/b3093b7a1a77dcddf88ad01fe6620fb1798e1c21) Allow state to be shared across nested GridFields (Aaron Carlino)
* 2019-06-10 [654156d46](https://github.com/silverstripe/silverstripe-framework/commit/654156d46d109e1cca0198c069aa6b657b574aad) Fix bug when confirmed password is changed but not the password. (#9012) (Sam Minnée)
* 2019-06-05 [acfb84e](https://github.com/silverstripe/silverstripe-admin/commit/acfb84eda3a09139728697a8e96e34991165c44e) Update modal designs to match design pattern library (Guy Marriott)
* 2019-05-28 [469e7ca0](https://github.com/silverstripe/silverstripe-cms/commit/469e7ca01bf05a7fe7e87515ddf0d4e188ebf680) Make test comparison less brittle in MigrateSiteTreeLinkingTaskTest (Sam Minnee)
* 2019-05-27 [7ef604807](https://github.com/silverstripe/silverstripe-framework/commit/7ef604807cceb75c335b52b179dd9f5de608a3b5) Enable file hash caching when running the file migration task (#8993) (Maxime Rainville)
* 2019-05-27 [983d36b7e](https://github.com/silverstripe/silverstripe-framework/commit/983d36b7eed36fe43bfb9536f81f245e12aee562) Better message when form action handler not found. (Sam Minnee)
* 2019-05-27 [7407096e9](https://github.com/silverstripe/silverstripe-framework/commit/7407096e997b6178c5ccbedc8010dad7ec3e9b06) List default items in the readonly view of ListboxField (Sam Minnee)
* 2019-05-20 [3142b35](https://github.com/silverstripe/recipe-core/commit/3142b3531689eb7d17a461ebb1db99934c7d52bb) #42: Remove excess RewriteCond and clean up comments to reflect current functionality. (Patrick Nelson)
* 2019-05-17 [1b3a4aea](https://github.com/silverstripe/silverstripe-cms/commit/1b3a4aea96873792b59ae0788057a7e340d13f50) Page Type listed in Page Type dropdown when $can_be_root is false (Nic Horstmeier)
* 2019-05-14 [368c88d59](https://github.com/silverstripe/silverstripe-framework/commit/368c88d59aafd4378dbc981e24e9558f59386e71) Fix link to related lesson (Federico Jaramillo Martínez)
* 2019-05-14 [207cf75dc](https://github.com/silverstripe/silverstripe-framework/commit/207cf75dc42a4f7333d53233339ef501a6519a10) Fix link to npmjs (Federico Jaramillo Martínez)
* 2019-05-14 [08e08160c](https://github.com/silverstripe/silverstripe-framework/commit/08e08160c1582ed1af921c8f0e60cc331c0b58d5) Fix link to es6features (Federico Jaramillo Martínez)
* 2019-05-10 [ce9f6e3](https://github.com/silverstripe/silverstripe-admin/commit/ce9f6e3d9a9de0fccd00236bfefa281b51696404) Add offending class to exception message (Guy Marriott)
* 2019-05-10 [db5b2f8](https://github.com/silverstripe/silverstripe-admin/commit/db5b2f8ae1768e1b8766f5e88af0dac4a3a74ce7) Fix OptionField component title generation (Serge Latyntcev)
* 2019-05-08 [8a7327b](https://github.com/silverstripe/recipe-core/commit/8a7327bad1369255ecc5689b9643e0e5361eb5a4) Fix travis dependencies (Aaron Carlino)
* 2019-05-06 [4d21f34](https://github.com/silverstripe/silverstripe-errorpage/commit/4d21f3495e54d9fa916839003873c9e1b928e69c) Fix composer.json merge (Aaron Carlino)
* 2019-04-29 [cfba4cb](https://github.com/silverstripe/silverstripe-installer/commit/cfba4cbe3602c666bd3481b9786b5b9bd5932336) Fixed core dependency to 4.x-dev (Ingo Schommer)
* 2019-04-29 [f02c756](https://github.com/silverstripe/silverstripe-admin/commit/f02c75675053d8fe51cfcaef9e3eca45ef3c438f) Remove unused variable (Guy Marriott)
* 2019-04-15 [f63973f](https://github.com/silverstripe/recipe-core/commit/f63973f062757f7faa90358d411e9070cb74f277) Disable uneeded File ID Helper on new project (Maxime Rainville)
* 2019-04-09 [91f168955](https://github.com/silverstripe/silverstripe-framework/commit/91f168955dc6f314615f25f22220032f3679a9aa) Fix reference to webconfig.php, an invalid file (Matt Peel)
* 2019-02-01 [031740e](https://github.com/silverstripe/silverstripe-admin/commit/031740edcb412ff66b9436f0df6bb62cfb55b4e6) Scrolling out of auto-selected edit mode not switches back to split mode (Robbie Averill)

View File

@ -0,0 +1,14 @@
# 4.5.0-rc2
<!--- Changes below this line will be automatically regenerated -->
## Change Log
### Bugfixes
* 2019-11-26 [75b15890a](https://github.com/silverstripe/silverstripe-framework/commit/75b15890a22e4b1d90b622f8212cd5c8cfd7f153) Fix extra blank Group being created when creating a new Group (#9325) (Andre Kiste)
<!--- Changes above this line will be automatically regenerated -->

View File

@ -1643,6 +1643,11 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity
*/
private function skipWriteComponents($recursive, DataObject $target, array &$skip)
{
// skip writing component if it doesn't exist
if (!$target->exists()) {
return true;
}
// We only care about the skip list if our call is meant to be recursive
if (!$recursive) {
return false;

View File

@ -1011,6 +1011,12 @@ class DataObjectTest extends SapphireTest
DB::query("SELECT \"CaptainID\" FROM \"DataObjectTest_Team\" WHERE \"ID\" = $team->ID")->value()
);
// Can write to component directly
$this->assertEquals(false, $team->Captain()->IsRetired);
$team->Captain()->IsRetired = true;
$team->Captain()->write();
$this->assertEquals(true, $team->Captain()->IsRetired, 'Saves writes to components directly');
/* After giving it a value, you should also be able to set it back to null */
$team->CaptainID = '';
$team->write();
@ -2169,7 +2175,10 @@ class DataObjectTest extends SapphireTest
// Write object with components
$ceo->Name = 'Edward Scissorhands';
$ceo->write(false, false, false, true);
$this->assertTrue($ceo->Company()->isInDB(), 'write() writes belongs_to components to the database.');
$this->assertFalse(
$ceo->Company()->isInDB(),
'write() does not write belongs_to components to the database that do not already exist.'
);
$newCEO = DataObject::get_by_id(DataObjectTest\CEO::class, $ceo->ID);
$this->assertEquals(
@ -2199,7 +2208,7 @@ class DataObjectTest extends SapphireTest
'belongs_to returns the right results.'
);
// Test automatic creation of class where no assigment exists
// Test automatic creation of class where no assignment exists
$ceo = new DataObjectTest\CEO();
$ceo->write();
@ -2208,11 +2217,14 @@ class DataObjectTest extends SapphireTest
'DataObjects across polymorphic belongs_to relations are automatically created.'
);
$this->assertEquals($ceo->ID, $ceo->CompanyOwned()->OwnerID, 'Remote IDs are automatically set.');
$this->assertInstanceOf($ceo->CompanyOwned()->OwnerClass, $ceo, 'Remote class is automatically set');
$this->assertInstanceOf($ceo->CompanyOwned()->OwnerClass, $ceo, 'Remote class is automatically set.');
// Write object with components
// Skip writing components that do not exist
$ceo->write(false, false, false, true);
$this->assertTrue($ceo->CompanyOwned()->isInDB(), 'write() writes belongs_to components to the database.');
$this->assertFalse(
$ceo->CompanyOwned()->isInDB(),
'write() does not write belongs_to components to the database that do not already exist.'
);
$newCEO = DataObject::get_by_id(DataObjectTest\CEO::class, $ceo->ID);
$this->assertEquals(