Version 4 supported
This version of Silverstripe CMS is still supported though will not receive any additional features. Go to documentation for the most recent stable version.

4.2.0-beta1

Change log

Security

  • 2018-05-08 19fdebfa2 Remove dotm, potm, jar, css, js, xltm from default File.allowed_extensions (Robbie Averill) - See ss-2018-014
  • 2018-04-23 d42bd6e File.allowed_extensions can have values removed via YAML configuration (Robbie Averill) - See ss-2018-014
  • 2018-04-23 30e2d9c4d Allow forced redirects to HTTPS for responses with basic authentication (Robbie Averill) - See ss-2018-009
  • 2018-04-11 577138882 Restrict non-admins from being assigned to admin groups (Damian Mooyman) - See ss-2018-001
  • 2018-04-10 0b7e665 Enable oembed to be disabled serverside (Damian Mooyman) - See ss-2018-003
  • 2018-04-10 7c2886d87 Update docs for oembed (Damian Mooyman) - See ss-2018-003
  • 2018-04-09 326b1ff Implement stronger oembed white/blacklist (Damian Mooyman) - See ss-2018-002

API changes

  • 2018-06-15 53dded8cf Remove @internal from new 4.2 methods (Damian Mooyman)
  • 2018-06-12 ec956a682 Moving tests to use transactions (Daniel Hensby)
  • 2018-04-16 b1e8db1 Implement rollbackRecursive() / rollbackSingle() (Damian Mooyman)
  • 2018-04-16 c8b359309 Form::makeReadonly() returns self (Damian Mooyman)
  • 2018-04-06 6c616f5f Implement polymorphic sitetree link tracking (#2123) (Damian Mooyman)
  • 2018-03-22 7351caf48 Allow non-DataExtension Extensions to decorate dataobject (Damian Mooyman)
  • 2018-03-21 257ff69e3 Implement many_many through polymorphic (from only) (#7928) (Damian Mooyman)
  • 2018-03-21 32dcc4d add withVersionedMode() to safely isolate reading mode modifications (Damian Mooyman)
  • 2018-03-20 87afe84 Customise type names and operation names (#143) (Aaron Carlino)
  • 2018-03-05 3a1c813b2 Add getContentCSS() / setContentCSS() to allow per-config customisation of content_css (Damian Mooyman)
  • 2018-02-21 ced2ba1f6 Move CSV writing/reading to league/csv library (Daniel Hensby)
  • 2018-02-07 860fa2a05 Add excludeAny() and tests for complicated excludes/filters (#7838) (Andrew Aitken-Fincham)
  • 2017-09-12 c54b07a95 Update to use new chromedriver + behat-extension + facebook/webdriver (Damian Mooyman)

Features and enhancements

  • 2018-06-13 a88257efa Add version to HTTPRequest and create raw string representation (Daniel Hensby)
  • 2018-05-21 865ebb339 Improve upgrading experience. (#8025) (Damian Mooyman)
  • 2018-05-20 1d34d19 Make FormAlert injectable (Robbie Averill)
  • 2018-05-17 e3237f96 Add revert mutation and refactor injector transformations (#2158) (Robbie Averill)
  • 2018-05-17 8ffa9dd Make Preview component injectable (#505) (Robbie Averill)
  • 2018-05-11 1a57c7c1d Add getJoinTable to MMTL (Daniel Hensby)
  • 2018-05-02 660e8bd static caching of schema types, as well as dynamic endpoint (Aaron Carlino)
  • 2018-05-01 aae318e Register fieldHolder HOCs with injector (Dylan Wagstaff)
  • 2018-04-27 e0b4d50 Add Loading indicator component, implement into FormBuilderLoader (#490) (Robbie Averill)
  • 2018-04-26 0494be7 Ensure that popover has correct container assigned (Damian Mooyman)
  • 2018-04-23 1b24bf6 Consolidate type / operation name generation (#151) (Damian Mooyman)
  • 2018-04-23 f50438e Ensure that default caches are segmented based on versioned state (Damian Mooyman)
  • 2018-04-19 7c3980a Refactor for more consistent use of union and inheritance types (#150) (Aaron Carlino)
  • 2018-04-19 1509a12fd Only run coverage test as a cron (Damian Mooyman)
  • 2018-04-11 4ddee82 Allow Preview class names to be overridden, and add i18n to messages (Robbie Averill)
  • 2018-04-11 c4f8af54 Add AbsoluteLink to history viewer page GraphQL query (#2142) (Robbie Averill)
  • 2018-04-10 0fa15f4 Ensure invalid stage values are throws as exceptions (Damian Mooyman)
  • 2018-04-09 87d69ba7 Use i18n template for page tree title (Damian Mooyman)
  • 2018-04-09 19e45a9 Open modal default upload folder (#763) (Maxime Rainville)
  • 2018-04-04 2c266c2 Allow cleanupVersionedOrphans to be disabled (Damian Mooyman)
  • 2018-04-03 47bcac930 Add config var to skip confirm logout (#7977) (Andrew Aitken-Fincham)
  • 2018-04-02 14af3b8 Add --inverted modifier for Badge component with pattern library examples (Robbie Averill)
  • 2018-03-21 d88415b Decorate TestSession with stage params (Damian Mooyman)
  • 2018-03-21 26402f3bb Enable request handlers to be extended (Damian Mooyman)
  • 2018-03-21 9a6d18a Set default reading mode in admin (disables stage=Stage rewrite links) (Damian Mooyman)
  • 2018-03-14 f51ea4d use scss variable than hard-coded color (#460) (Chris Joe)
  • 2018-03-12 8294ab3 Allow badge-pill class to be modified in Badge component (Robbie Averill)
  • 2018-03-12 79db975 add status badge to uploadfield item (Christopher Joe)
  • 2018-03-12 c92e5fe Ensure that publishSingle() updates local version (Damian Mooyman)
  • 2018-03-08 5db03d0 Add isLiveVersion and isLatestDraftVersion to Versioned and GraphQL DataObject scaffolding (Robbie Averill)
  • 2018-03-05 1a82f036 Add page GraphQL query HOC for history viewer component (Robbie Averill)
  • 2018-03-05 083308f Update table border colour to lighter grey (Robbie Averill)
  • 2018-02-28 4d424dd34 get_by_id: alternate signature to allow MyDataObject::get_by_id($id) (Damian Mooyman)
  • 2018-02-28 5735beeb Upgrade to Bootstrap 4.0.0-stable and change to reactstrap 5.0.0-beta (#2101) (Luke Edwards)
  • 2018-02-28 62eb29e Upgrade to Bootstrap 4.0.0-stable and change to reactstrap 5.0.0-beta (#88) (Luke Edwards)
  • 2018-02-27 f181ba3 Upgrade to Bootstrap 4.0.0-stable and change to reactstrap 5.0.0-beta (#737) (Luke Edwards)
  • 2018-02-27 8094c26 Decouple preview from campaign admin (Damian Mooyman)
  • 2018-02-27 5825958 Upgrade to Bootstrap 4.0.0-stable and change to reactstrap 5.0.0-beta (#441) (Luke Edwards)
  • 2018-02-27 9474deb Add bulk insert feature for UploadField (Christopher Joe)
  • 2018-02-26 85dae1b Add warning when unpublishing owned files (#739) (Aaron Carlino)
  • 2018-02-26 c4e705a removed max width for content in intro screen (Christopher Joe)
  • 2018-02-25 1202807 Add warning for unpublishing owned records #444 (Aaron Carlino)
  • 2018-02-25 fe9f729 Add warning when unpublishing owned records (#122) (Aaron Carlino)
  • 2018-02-17 a2143680e Add record count to dev/build output. (Sam Minnee)
  • 2018-02-15 de0b76dff Fall back to SSViewer::get_themes when using themeResourceLoaders (Andrew Aitken-Fincham)
  • 2018-02-12 00ff3ba4b Make dropdownFieldThreshold configurable on DBForeignKey (#7789) (Andrew Aitken-Fincham)
  • 2018-02-09 01514490 remove File extension for backlink tracking in favour of UsedOnTable form field (Christopher Joe)
  • 2018-02-08 5f0a7cc add a Usage tab showing owners of files (Christopher Joe)
  • 2018-02-08 c370e3c Add a used-on table component for recorded ownerships (Christopher Joe)
  • 2018-02-07 dd8282024 Allow GridFieldConfig::addComponents to accept an array (#7844) (Robbie Averill)
  • 2018-02-07 b084fe81 Convert page history notice to use Bootstrap 4 info alert (Robbie Averill)
  • 2017-11-30 910381633 Add php 7.2 support (Daniel Hensby)
  • 2017-09-26 2c121e8a0 approach (Daniel Hensby)

Bugfixes

  • 2018-06-15 74ef975 mark legacy migration test as skipped temporarily (Damian Mooyman)
  • 2018-06-15 e70e46e Fix missing .graphql file category (Damian Mooyman)
  • 2018-06-15 8f7893f Fix unit tests for 4.2 core regressions (Damian Mooyman)
  • 2018-06-14 c41438822 DatetimeFieldTest (Damian Mooyman)
  • 2018-06-14 d52c4dd60 Make regression in #7839 safer (Damian Mooyman)
  • 2018-06-14 acc8d48b1 SapphireTest can load relative fixtures in subfolders, switch "needs db" priority check order (Robbie Averill)
  • 2018-06-13 927469241 core tests (Damian Mooyman)
  • 2018-06-13 59ba208df HTTPTest (Damian Mooyman)
  • 2018-06-13 6f3276226 unit tests (Damian Mooyman)
  • 2018-06-13 aa1ba0ef9 inverted condition (Damian Mooyman)
  • 2018-06-13 a2a8004 Update user help link to 4 (Sacha Judd)
  • 2018-06-13 02ae2e7ed Fix internal date formatting inheriting default locale (Damian Mooyman)
  • 2018-06-12 befd81d0c Bug with forms being cached (Daniel Hensby)
  • 2018-06-12 7c875918c make sure we create ETags from the body, not the request (Daniel Hensby)
  • 2018-06-12 7b04949ca Remove duplicate key (Damian Mooyman)
  • 2018-06-12 c9bcc07 Remove duplicate .upgrade.yml keys (Damian Mooyman)
  • 2018-06-12 674b92c Fix invalid .upgrade.yml (Damian Mooyman)
  • 2018-06-11 2a51f34c3 Prevent canonical URL causing a redirect on CLI unless explicitly enabled (Damian Mooyman)
  • 2018-06-10 d842225df Codesniffer style violations with comments (Robbie Averill)
  • 2018-06-09 4e6f45c2e updateCMSFields example (Juan Molina)
  • 2018-06-07 29f9b1c18 linting issues (Damian Mooyman)
  • 2018-06-07 e37e3e174 Fix test that relies on implicit ID order breaking postgres (Damian Mooyman)
  • 2018-06-07 66f57bd4d Only set MYSQL_ATTR_INIT_COMMAND when using mysql driver (fixes #8103) (Loz Calver)
  • 2018-06-06 31ad3cdaa Allow buttons to opt out of display (#8113) (Aaron Carlino)
  • 2018-06-06 c070e989c Safely handle empty injector factory responses (Damian Mooyman)
  • 2018-06-05 0aa13da0d Backport bugfix for belongs_many_many with many_many through. (Damian Mooyman)
  • 2018-06-05 bf07ba30f Make error messages available to extensions (Jonathon Menz)
  • 2018-06-04 41e601a03 Regression from #8009 (Daniel Hensby)
  • 2018-06-01 5a5ba1e5c negative values in read only currency field (Jonathon Menz)
  • 2018-06-01 8064ed822 Minor updates to unit tests to pass with HTML5 parser and various themes (Robbie Averill)
  • 2018-06-01 582c69d32 Fix issue with Disabled DateField always display (not set). (Maxime Rainville)
  • 2018-06-01 a9e2af6 Remove incorrect classmap for Page and PageController (Robbie Averill)
  • 2018-05-31 4b3e76a97 missing braces (Aaron Carlino)
  • 2018-05-30 d1af098 linting (Aaron Carlino)
  • 2018-05-29 1cbf27e0f PHP 5.3 compat for referencing $this in closure, and make method public for same reason (Robbie Averill)
  • 2018-05-22 c308416af Add macron to Māori language name (Robbie Averill)
  • 2018-05-16 396ac65 es per flameohr (Aaron Carlino)
  • 2018-05-15 11c85c6 Infinite render loop due to unchecked setState, incorrect binding of handleDrop() (Aaron Carlino)
  • 2018-05-14 ea999e3 Coerce textfield value attributes to empty strings (Raissa North)
  • 2018-05-10 e22d1ec behat test (Aaron Carlino)
  • 2018-05-10 1993454 broken delete close editor (Aaron Carlino)
  • 2018-05-10 553ab92 checkbox select behat step (Aaron Carlino)
  • 2018-05-04 37b70f6 Modify z-index values so that TinyMCE is working properly in full view (Raissa North)
  • 2018-05-03 bef4d99d Import SilverStripe\Versioned\RecursivePublishable in SiteConfigLeftAndMain (Daniel Hensby)
  • 2018-05-02 80bf0fc48 bad syntax (Daniel Hensby)
  • 2018-04-30 abb1011 Expose Badge in injector registrations (Robbie Averill)
  • 2018-04-30 1d3e83838 phpdoc for relation method (namespace) (JorisDebonnet)
  • 2018-04-27 6b39b25e2 es a count() php warning without an api change (azt3k)
  • 2018-04-23 b07e13d2f Fix incorrect installer base tag generation (#8018) (Damian Mooyman)
  • 2018-04-20 3f5c3ec Fix graphql regressions (Damian Mooyman)
  • 2018-04-19 9727052 Ensure that nested rollbacks don't reset root version (Damian Mooyman)
  • 2018-04-18 4585b0b38 a broken link to the versioning page. (Maxime Rainville)
  • 2018-04-18 fe4b90edc Duplicating many_many relationships looses the extra fields in 4.0 (UndefinedOffset)
  • 2018-04-18 eef0ef1 behat for 1.1 branch (Damian Mooyman)
  • 2018-04-18 a71b821 behat test (Damian Mooyman)
  • 2018-04-17 f83691e7f Make invalid dev actions 404 not 500 error (Damian Mooyman)
  • 2018-04-17 9a12fac21 Prevent password validator min score producing false negatives (Damian Mooyman)
  • 2018-04-17 af3a9f3ec Duplicating many_many relationships looses the extra fields (fixes #7973) (UndefinedOffset)
  • 2018-04-17 a69c181 Fix travis install (Damian Mooyman)
  • 2018-04-17 57b006c Re-implement flexbox classes for preview window (Robbie Averill)
  • 2018-04-16 0d40b545 FIx rollback button from not working (Damian Mooyman)
  • 2018-04-16 02d7989 Ensure FormBuilder loading indicator has a minimum height of the image (Robbie Averill)
  • 2018-04-14 dfa0915 Make 'id' a required prop (Raissa North)
  • 2018-04-13 478e5dc invalid htaccess (Damian Mooyman)
  • 2018-04-12 d21e03d4e branch alias (Damian Mooyman)
  • 2018-04-11 51173a72 Fixture the 'app' dir instead of mysite in unit tests (Robbie Averill)
  • 2018-04-11 5da708d2 Fixture the 'app' dir instead of mysite in unit tests (Robbie Averill)
  • 2018-04-11 1041b65 Add loading indicator for FormBuilderLoader (#481) (Luke Edwards)
  • 2018-04-10 e11ba9a2d Fix many_many through crashing ModelAdmin (Damian Mooyman)
  • 2018-04-10 80e0f4d File modified indicator missing and draft indicator incorrect style (Luke Edwards)
  • 2018-04-09 79e4f9c Don't add redundant href="#" to tabs (Damian Mooyman)
  • 2018-04-09 f569785 gridfield style issues with negative margins (#474) (Luke Edwards)
  • 2018-04-08 eeac1d1 Fix issue with selected values in large trees breaking initialisation (#476) (Damian Mooyman)
  • 2018-04-06 be8287fef Prevent failover / extensions interfering with composite field properties (#7988) (Damian Mooyman)
  • 2018-04-05 e15a5af Fix gridfield being cut off on sides (Luke Edwards)
  • 2018-04-04 85f4e65 Ensure extra fields have correct casting (Damian Mooyman)
  • 2018-04-04 251276158 invalid markup in SelectionGroup selected values (Will Rossiter)
  • 2018-04-04 b127422 linting (Aaron Carlino)
  • 2018-04-04 50ad0ad Fix double popup for unpublish and incorrect confirm (#758) (Damian Mooyman)
  • 2018-03-28 dd44deacb for "too few parameters" error when using DBMultiEnum (Andreas Lindahl)
  • 2018-03-28 878dc1f86 Change inverse polymorphic inference to silent-empty instead of explicit error (Damian Mooyman)
  • 2018-03-27 484e0a7 Ensure polymorphic ownership works (Damian Mooyman)
  • 2018-03-27 9cb974c61 several mistakes in example code (Aaron Carlino)
  • 2018-03-27 ec37e67 Don't crash on polymorphic ownership (Damian Mooyman)
  • 2018-03-27 4307351 Use correct base dir for file migration (Damian Mooyman)
  • 2018-03-27 e35971b revert to live (Damian Mooyman)
  • 2018-03-22 cf5a0984 Correct SilverStripeNavigator correctly in templates (Daniel Hensby)
  • 2018-03-22 436d473 Fix regression in canViewVersioned (Damian Mooyman)
  • 2018-03-21 ba94e020e FunctionalTest not setting persistent versioned mode (Damian Mooyman)
  • 2018-03-20 e277f19 merge regressions (Damian Mooyman)
  • 2018-03-15 8568259 id for scaffolded objects (Christopher Joe)
  • 2018-03-15 b2e2a6b bugs with execution (Christopher Joe)
  • 2018-03-15 61ce4771f ing HTMLEditorField API documentation (3Dgoo)
  • 2018-03-15 d17d93f7 Remove SearchForm results() function from allowed_actions (Steve Dixon)
  • 2018-03-14 23af7ea Ensure consistent strict equality checks in version numbers (Robbie Averill)
  • 2018-03-14 a9cc4d484 Ensure consistent return type for FieldList::removeByName (Robbie Averill)
  • 2018-03-14 97f22cbaa ing FormAction API documentation (3Dgoo)
  • 2018-03-13 b06bcc2 Fix regressions from testing cms unit tests (Damian Mooyman)
  • 2018-03-13 e3e5edb "container" logic for FormBuilder and PopoverField, improves accessibility (#459) (Chris Joe)
  • 2018-03-11 6f18e35 sorting issue with versioned test (Damian Mooyman)
  • 2018-03-09 9bed12b Fix issue in latest_version (Damian Mooyman)
  • 2018-03-08 2e43291 Fix archive date erroring if stage omitted (Damian Mooyman)
  • 2018-03-08 3e698c1 remaining tests (Damian Mooyman)
  • 2018-03-08 be0b274 testDeleteNestedOwnedWithoutRepublishingOwner (Damian Mooyman)
  • 2018-03-08 0be2a9d Fix WasDraft not being written (Damian Mooyman)
  • 2018-03-08 35cff90 missing date for deleted _Versioned rows (Damian Mooyman)
  • 2018-03-08 3454600 archive / unpublish / delete creating deleted row (Damian Mooyman)
  • 2018-03-08 e839d10 responsive modals (#744) (Chris Joe)
  • 2018-03-08 38fbb92 responsive modals (#457) (Chris Joe)
  • 2018-03-07 ff78a3b up testDeleteOwnedWithoutRepublishingOwner (Damian Mooyman)
  • 2018-03-07 640c8f7 postgres issue (Damian Mooyman)
  • 2018-03-06 4f8a10d invalid joins (Damian Mooyman)
  • 2018-03-06 75168cf multi-select shouldn't show insert button on form (Christopher Joe)
  • 2018-03-06 67fa8e9 aligns Form actions container with the rest of the "bottom bars" (Christopher Joe)
  • 2018-03-06 36b6b30 up progress indicators (Damian Mooyman)
  • 2018-03-05 c209aff Consolidate queued and read files for Gallery (Christopher Joe)
  • 2018-03-01 49a3970 Resolve Published version field to Versioned_Version::Published() correctly (#125) (Robbie Averill)
  • 2018-03-01 6523d7a6e ing HTMLEditorField API documentation (3Dgoo)
  • 2018-03-01 c96b6dc aesthetic annoyance where deselect+select code will make the bulk actions animate unnecessarily (Christopher Joe)
  • 2018-03-01 222eec8 Add missing published state filter (Robbie Averill)
  • 2018-02-27 c755f7728 indentation (Aaron Carlino)
  • 2018-02-27 6274ccc behat failure (Aaron Carlino)
  • 2018-02-27 7677c68 Remove max-width from form-fields and items (#446) (Chris Joe)
  • 2018-02-27 efe5c0f fileSchema abolishing actions from previous props (Christopher Joe)
  • 2018-02-21 0647dee8 travis (Daniel Hensby)
  • 2018-02-16 86addea1d Split HTML manipulation to onadd, so elements are not accidentally duplicated (Christopher Joe)
  • 2018-02-14 d019f88 php field to fallback to the form's record and added logic to handle no record available (or not saved) (Christopher Joe)
  • 2018-02-13 42fd4d6 Fix display logic for password fields (Damian Mooyman)
  • 2018-02-12 6570599aa Fix incorrect display logic on password field (Damian Mooyman)
  • 2018-02-07 b5f68ebe warning appearing when button is disabled for rollback (Christopher Joe)
  • 2018-02-07 19832000a Fix installer checking wrong location for files (Damian Mooyman)
  • 2018-02-02 1d17f40 travis builds (Christopher Joe)
  • 2018-01-19 5849820 compatibility issue with chromedriver (Damian Mooyman)
  • 2017-12-01 74a3ba54a count size of $relations (Daniel Hensby)