5.2.0-beta1
Overview
- Security considerations
- Official support for
silverstripe/linkfield
-
- New ORM features
- GridField components now work with arbitrary data
- ErrorPage allowed codes configuration
- Create random passwords for new users
- Buttons to select all files and deselect all files
- Support for validation using
symfony/validator
- New searchable dropdown fields
- New
UrlField
- Create file variants with different extensions
- More nuanced permissions for
/dev/*
routes - Generic typehints
- New exception in React forms
- Other new features
- API changes
- Bug fixes
A full list of module versions included in CMS Recipe 5.2.0-beta1 is provided below. We recommend referencing recipes in your dependencies, rather than individual modules, to simplify version tracking. See Recipes.
Included module versions
Module | Version |
---|---|
bringyourownideas/silverstripe-composer-update-checker | 4.1.0-beta1 |
bringyourownideas/silverstripe-maintenance | 3.1.0-beta1 |
colymba/gridfield-bulk-editing-tools | 4.0.2 |
cwp/agency-extensions | 3.2.0-beta1 |
cwp/starter-theme | 4.1.0-beta1 |
cwp/watea-theme | 4.1.0-beta1 |
dnadesign/silverstripe-elemental | 5.2.0-beta1 |
dnadesign/silverstripe-elemental-userforms | 4.1.1 |
silverstripe-themes/simple | 3.3.1 |
silverstripe/admin | 2.2.0-beta1 |
silverstripe/asset-admin | 2.2.0-beta1 |
silverstripe/assets | 2.2.0-beta1 |
silverstripe/auditor | 3.1.0-beta1 |
silverstripe/blog | 4.2.0-beta1 |
silverstripe/campaign-admin | 2.2.0-beta1 |
silverstripe/cms | 5.2.0-beta1 |
silverstripe/config | 2.1.0 |
silverstripe/contentreview | 5.2.0-beta1 |
silverstripe/crontask | 3.0.3 |
silverstripe/documentconverter | 3.2.0-beta1 |
silverstripe/dynamodb | 5.0.1 |
silverstripe/elemental-bannerblock | 3.2.0-beta1 |
silverstripe/elemental-fileblock | 3.1.0 |
silverstripe/environmentcheck | 3.0.1 |
silverstripe/errorpage | 2.2.0-beta1 |
silverstripe/externallinks | 3.2.0-beta1 |
silverstripe/framework | 5.2.0-beta1 |
silverstripe/graphql | 5.2.0-beta1 |
silverstripe/gridfieldqueuedexport | 3.2.0-beta1 |
silverstripe/hybridsessions | 3.0.3 |
silverstripe/iframe | 3.2.0-beta1 |
silverstripe/installer | 5.2.0-beta1 |
silverstripe/ldap | 2.2.0-beta1 |
silverstripe/linkfield | 4.0.0-beta1 |
silverstripe/login-forms | 5.2.0-beta1 |
silverstripe/lumberjack | 3.1.0-beta1 |
silverstripe/mfa | 5.2.0-beta1 |
silverstripe/mimevalidator | 3.1.0-beta1 |
silverstripe/realme | 5.3.0-beta1 |
silverstripe/recipe-authoring-tools | 2.2.0-beta1 |
silverstripe/recipe-blog | 2.2.0-beta1 |
silverstripe/recipe-cms | 5.2.0-beta1 |
silverstripe/recipe-collaboration | 2.2.0-beta1 |
silverstripe/recipe-content-blocks | 3.2.0-beta1 |
silverstripe/recipe-core | 5.2.0-beta1 |
silverstripe/recipe-form-building | 2.2.0-beta1 |
silverstripe/recipe-kitchen-sink | 5.2.0-beta1 |
silverstripe/recipe-plugin | 2.0.0 |
silverstripe/recipe-reporting-tools | 2.2.0-beta1 |
silverstripe/recipe-services | 2.2.0-beta1 |
silverstripe/registry | 3.2.0-beta1 |
silverstripe/reports | 5.2.0-beta1 |
silverstripe/restfulserver | 3.0.0 |
silverstripe/securityreport | 3.1.0-beta1 |
silverstripe/segment-field | 3.2.0-beta1 |
silverstripe/session-manager | 2.2.0-beta1 |
silverstripe/sharedraftcontent | 3.2.0-beta1 |
silverstripe/siteconfig | 5.2.0-beta1 |
silverstripe/sitewidecontent-report | 4.2.0-beta1 |
silverstripe/spamprotection | 4.2.0-beta1 |
silverstripe/staticpublishqueue | 6.2.0-beta1 |
silverstripe/subsites | 3.2.0-beta1 |
silverstripe/tagfield | 3.2.0-beta1 |
silverstripe/taxonomy | 3.2.0-beta1 |
silverstripe/textextraction | 4.1.0-beta1 |
silverstripe/totp-authenticator | 5.2.0-beta1 |
silverstripe/userforms | 6.2.0-beta1 |
silverstripe/vendor-plugin | 2.0.2 |
silverstripe/versioned | 2.2.0-beta1 |
silverstripe/versioned-admin | 2.2.0-beta1 |
silverstripe/versionfeed | 3.2.0-beta1 |
silverstripe/webauthn-authenticator | 5.2.0-beta1 |
symbiote/silverstripe-advancedworkflow | 6.2.0-beta1 |
symbiote/silverstripe-gridfieldextensions | 4.0.5 |
symbiote/silverstripe-multivaluefield | 6.1.0-beta1 |
symbiote/silverstripe-queuedjobs | 5.1.0-beta1 |
tractorcow/silverstripe-fluent | 7.1.0-beta1 |
Security considerations
Some security fixes that were previously released in the January security release that are mentioned in the Silverstripe CMS security patches January 2024 blog post are listed below.
Review the individual vulnerability disclosure for more detailed descriptions of each security fix. We highly encourage upgrading your project to include the latest security patches.
We have provided a severity rating of the vulnerabilities below based on the CVSS score. Note that the impact of each vulnerability could vary based on the specifics of each project. You can read the severity rating definitions in the Silverstripe CMS release process.
-
CVE-2023-49783 - No permission checks for editing or deleting records with CSV import form Severity: Medium
- If you implement a custom subclass of
BulkLoader
or you're using aBulkLoader
directly in your code, there may be additional actions you need to take to secure your project.
- If you implement a custom subclass of
- CVE-2023-48714 - Record titles for restricted records can be viewed if exposed by GridFieldAddExistingAutocompleter Severity: Medium
- CVE-2023-44401 - View permissions are bypassed for paginated lists of ORM data in GraphQL queries Severity: Medium
Official support for silverstripe/linkfield
silverstripe/linkfield
4.0.0-beta1 has been released and will become a commercially supported module.
That means it will be covered by our minor release policy, our major release policy, and our security release process.
This module provides a Link
model and two new form fields: LinkField
and MultiLinkField
. The intention of the module is to provide a clear and consistent approach to managing links in the CMS.
This release of the module includes a bunch of features that were missing from earlier versions including:
- Support for
has_many
relations - Versioned support
- Validation
- The ability to declare which link types are allowed per field
- Improved UI including better keyboard navigation.
silverstripe/linkfield
4.0.0 requires silverstripe/framework
5.2.0 or higher due to its reliance on some new API.
You can install it as soon as you update your project.
composer require silverstripe/linkfield
Check out the linkfield documentation which includes guides to migrate from similar modules that you might already be using.
Features and enhancements
New ORM features
This release comes jampacked with new ORM features, granting you access to some new abstractions for more powerful and efficient queries.
Manipulating eager loaded relation queries
Filtering or sorting an EagerLoadedList
(i.e. after the eager loading query has been executed) requires filtering in PHP, which is less powerful and significantly slower than performing those manipulations on DataList
before executing the query. For example, you can't filter or sort EagerLoadedList
by fields on relations using dot notation (e.g. sort('MySubRelation.Title')
won't work).
To alleviate this problem, we've introduced a new syntax for eager loading relations that lets you manipulate the eager loading queries.
The old syntax is still supported, because it can be used in templates for simple scenarios.
In a test setup with looping through 100 records each with 100 related records (for a total of 10,000 records per test run), the following performance improvements were observed for different types of relations (early manipulations in the database vs manipulating results in PHP):
- HasMany - ~581% faster (0.1080s vs 0.7358s)
- ManyMany - ~612% faster (0.1264s vs 0.9002s)
- ManyManyThrough - ~327% faster (0.2511s vs 1.0719s)
You can pass an associative array into the DataList::eagerLoad()
method, with relation chains as the keys and callbacks as the values. The callback accepts a DataList
argument, and must return a DataList
.
use SilverStripe\ORM\DataList;
$teams = Team::get()->eagerLoad([
'Players' => fn (DataList $list) => $list->filter(['Age:GreaterThan' => 18]),
]);
It is very important to remember to return the list in your callback function.
There are a few edge cases to be aware of with this new feature. To learn more, see eager loading.
Multi-relational has_one
relations
Traditionally, if you wanted to have multiple has_many
relations for the same class, you would have to include a separate has_one
relation for each has_many
relation.
This release includes a new has_one
syntax to declare that your has_one
should be allowed to handle multiple reciprocal has_many
relations. The syntax for that is as follows:
Multi-relational has_one
relations must be polymorphic.
namespace App\Model;
use SilverStripe\ORM\DataObject;
use SilverStripe\ORM\DataObjectSchema;
class MyExample extends DataObject
{
// ...
private static array $has_one = [
'MyMultiRelationalRelation' => [
// The class here is the class for the has_one - it must be polymorphic.
'class' => DataObject::class,
// Setting this to true is what defines this has_one relation as multi-relational
DataObjectSchema::HAS_ONE_MULTI_RELATIONAL => true,
],
];
}
Multiple has_many
relations on a single class can point to the above has_one
relation, and they will be correctly saved and resolved when you get the relation list.
This new feature means sometimes the value in the associative has_one
configuration array will be an array, rather than a class name.
If you are relying on fetching this configuration to find the class names of has_one
relations, consider using
DataObject::hasOne()
or DataObjectSchema::hasOneComponent()
instead.
See multi-relational has_one
in the relations docs for more details about this relation type.
UNION clause
Abstractions for the SQL UNION
clause have been added to SQLSelect
and DataQuery
.
To add a UNION
clause to an SQLSelect
, call the SQLSelect::addUnion()
method and pass in the SQLSelect
query you want to combine using a union.
For the second argument, you can leave it blank for a default union (which is functionality equivalent to a distinct union in MySQL) - or you can pass in one of the SQLSelect::UNION_ALL
or SQLSelect::UNION_DISTINCT
constants for a UNION ALL
or UNION DISTINCT
clause respectively.
$baseQuery = SQLSelect::create()->setFrom($tableName)->addWhere(...);
$anotherQuery = SQLSelect::create()->setFrom($tableName)->addWhere(...);
$baseQuery->addUnion($anotherQuery, SQLSelect::UNION_DISTINCT);
To add a UNION
clause to an DataQuery
, call the DataQuery::union()
method and pass in either another DataQuery
or an SQLSelect
query you want to combine using a union. The same constants used for SQLSelect
can be passed in here as well.
$baseQuery = DataQuery::create(MyClass::class)->where(...);
$anotherQuery = DataQuery::create(MyClass::class)->where(...);
$baseQuery->union($anotherQuery, SQLSelect::UNION_ALL);
Common table expressions (CTE aka the WITH clause)
Abstractions for Common Table Expressions (aka the SQL WITH
clause) have been added to SQLSelect
and DataQuery
.
Common Table Expressions are a powerful tool both for optimising complex queries, and for creating recursive queries. This functionality is abstracted in the SQLSelect::addWith()
and DataQuery::with()
methods.
Older database servers don't support this functionality, and the core implementation is only valid for MySQL, so if you are using this functionality in an open source module or a project that you can't guarantee the type and version of database being used, you should wrap the query in a condition checking if CTEs are supported. You can do that by calling DB::get_conn()->supportsCteQueries()
.
Check out the SQL Queries and Data Model and ORM documentation for usage details and examples.
RIGHT JOIN clause
Abstractions for RIGHT JOIN
have been added with the new DataList::rightJoin()
, DataQuery::rightJoin()
, and SQLConditionalExpression::addRightJoin()
methods. The signature for these methods is identical to their LEFT JOIN
and INNER JOIN
counterparts.
Support for multiple (or no) tables in the FROM clause
Previously the SQLConditionalExpression
abstraction couldn't handle multiple table names being passed into its FROM
clause. This restriction has been removed, so you can now have queries selecting from multiple tables so long as your database supports it. If you were working around that limitation by adding an explicit comma to subsequent tables in the FROM
clause for your queries, you'll need to remove the comma.
You can also now choose to not have a FROM
clause in an SQLSelect
query, which can be useful for setting up simple queries to be used in unit tests.
Better support for custom column selections in DataQuery
When using DataQuery
, it is possible to use collations and other raw SQL field statements as part of the query's SELECT
clause. If these have an alias that matches the name of an existing database column, this results in an exception being thrown.
You can choose to allow those conflicts to be resolved via a CASE
statement. In that scenario, if the value in the database column is null, the value for your custom field statement will be used. This is enabled per query by passing true
to the new DataQuery::setAllowCollidingFieldStatements()
method.
$query = new DataQuery(MyClass::class);
$query->selectField('"my custom title" AS "Title"');
$query->setAllowCollidingFieldStatements(true);
GridField components now work with arbitrary data
It has historically been difficult to use a GridField
to display data that isn't represented by DataObject
records - and even more difficult to edit that data.
We have removed several barriers to using the GridField
to display arbitrary data. Descriptive exceptions will be thrown when specific information cannot be dynamically identified, such as which columns to display and what form fields to use when viewing or editing data. Note that these new exceptions do not break backwards compatibility. Any scenario that will throw an exception now would have already done so - but the old exception would not have been sufficiently descriptive to quickly understand what changes are required to get a functioning GridField
.
This applies to all GridFieldComponent
classes in silverstripe/framework
except for GridFieldAddExistingAutocompleter
and GridFieldLevelup
, which both explicitly require the model class for the associated GridField
to be a subclass of DataObject
.
See using GridField
with arbitrary data for more information.
ErrorPage allowed codes configuration
By default, all available error codes are present in the dropdown in the CMS. This can be overwhelming and there are a few (looking at you, 418) that can
be confusing. To that end, you can limit the codes in the dropdown with the config value allowed_error_codes
like so:
SilverStripe\ErrorPage\ErrorPage:
allowed_error_codes:
- 400
- 403
- 404
- 500
Create random passwords for new users
If a new user is created in the security section of the CMS with an empty password, then a strong random password will now be automatically assigned to the user which will not be visible to the person creating the user. The user will need to click the "I've forgotten my password" link in order to receive a password reset email so they can then enter a new password.
This is a behavioural change from the change introduced in Silverstripe CMS 5.1 where blank passwords were disallowed when creating a new user. This change in 5.1 meant the administrator setting up the user could know what the users password was until the user changed it. Prior to 5.1, blank passwords were allowed though users were unable to log in using them when the default Silverstripe member authenticator was used, thus forcing the user to reset their password.
This only applies to users created through the security section of the CMS. Users created programatically with an empty password will not have a random password automatically assigned to them. This is the current behaviour and is often used for non-production purposes such as unit-testing.
Buttons to select all files and deselect all files
The files section of the CMS now has buttons to select and deselect all files and folders currently on the screen, which is useful when you want to perform bulk operations. These buttons show at the bottom of the screen in the bulk actions toolbar. The deselect all button also shows the number of currently selected items. As these buttons are on the bulk actions toolbar they are only visible if at least one item has been selected.
Support for validation using symfony/validator
A new ConstraintValidator
class has been added which provides an abstraction around symfony/validator
, so you can easily validate values against symfony's validation constraints and get a ValidationResult
object as a result.
use SilverStripe\Core\Validation\ConstraintValidator;
/**
* @var \Symfony\Component\Validator\Constraint $constraint
* @var \SilverStripe\ORM\ValidationResult $result
*/
$result = ConstraintValidator::validate($valueToValidate, $constraint);
To test if a URL is valid, for example:
use SilverStripe\Core\Validation\ConstraintValidator;
use Symfony\Component\Validator\Constraints\Url;
$isValid = ConstraintValidator::validate($url, new Url())->isValid();
You can use most of the constraints listed in Symfony's supported constraints documentation, though note that some of them require additional symfony dependencies.
We explicitly don't support validation using constraints that rely on symfony/doctrine
.
New searchable dropdown fields
A pair of new dropdown form fields have been added which are particularly useful for dropdowns with a large number of options.
SearchableDropdownField
is similar to DropdownField
which allows selecting a single option, and SearchableMultiDropdownField
is similar to ListboxField
which allows selecting multiple options.
Both of these fields include a setIsLazyLoaded()
method which will load a limited number of options at a time using an AJAX request matching what a user has typed in. There are quite a few options to customise these, including optionally using SearchContext
to power the lazy-loaded search functionality. We encourage you to look at the API documentation for these new classes to see what you can do with them.
Note that these are both powered by react components, and are only intended to be used within the CMS. If you want to use them on the front-end of your project you will need to provide your own templates and JavaScript implementation for them.
Auto scaffolding of has_one
relations
A SearchableDropdownField
will now be used when automatically scaffolding has_one
relations on a form in the CMS. Previously a DropdownField
was used, and when there were over 100 items a NumericField
was used which was not user friendly.
Previously the DBForeignKey.dropdown_field_threshold
config property was used as the threshold of the number of options to decide when to switch between auto-scaffolding a DropdownField
and a NumericField
. This configuration property is now used as the threshold of the number of options to decide when to start using lazy-loading for the SearchableDropdownField
.
New UrlField
A new UrlField
has been added which is a subclass of TextField
with some additional validation rules. It will validate that the value entered is a valid absolute URL with a protocol and a host.
Create file variants with different extensions
A low-level API has been added which allows the creation of file variants with a different extension than the original extension. A file variant is a manipulated version of the original file - for example if you resize an image or convert a file to another format, this will generate a variant (leaving the original file intact).
Some examples of when you might want this are:
- Generating thumbnails for videos, documents, etc
- Converting images to
.webp
for faster page load times - Converting documents to
.pdf
so downloaded documents are more portable
See file manipulation for details about how to use this new API.
More nuanced permissions for /dev/*
routes
Previously, all /dev/*
routes registered with DevelopmentAdmin
(for example /dev/tasks/MyBuildTask
) could only be access by administrator users, and this couldn't be configured.
Now, all of the controllers which handle these routes that come packaged in a core or supported module have a new init_permissions
configuration property (e.g. TaskRunner.init_permissions
). This new configuration can be used to grant non-administrative users access to these routes.
You can also now optionally implement a canView()
method on your BuildTask
implementations to restrict accessed for specific tasks even further. This means you can grant access to some tasks to specific users or groups without granting access to all tasks.
Generic typehints
Typehints using PHPStan-style generic types have been added to PHPDocs in many areas of the codebase of supported modules. The primary goal of this is to improve the developer experience by correctly reporting to your IDE what types it should expect, for example when looping through a DataList
. In many cases your IDE will now know what types to expect without needing you to prompt it with @var
annotation comments.
There are some cases where this goal conflicts with having types that are correctly identified by PHPStan itself (or other static analysis tools). For example conditional return types aren't supported as widely in IDEs as generics themselves are, so we opted to not use conditional return types even when those would result in a more accurate type for static analysis tools.
While you should see some improvements immediately after updating, there are some changes you can make to your own codebase to best use the new generic type hints.
See Generics By Examples | PHPStan and Generics in PHP using PHP DocComments | DEVSENSE for more information about PHP generic typehints.
Generic typehints when returning lists
In your project code, any time you return an instance of SS_List
(such as a DataList
or ArrayList
), you can add a generic typehint to declare what kind of object the returned list contains. This example will hint to the IDE that it returns a DataList
containing CarouselItem
records:
use App\Model\CarouselItem;
use SilverStripe\ORM\DataList;
/**
* @return DataList<CarouselItem>
*/
function getCarouselItems(): DataList
{
return CarouselItem::get();
}
Generic typehints in Extension
subclasses
The generic typing on the Extension
class can be used to tell your IDE what type to expect for the $owner
property and getOwner()
method.
For this to be useful, you need to tell your IDE that your subclass @extends
the Extension
class, and tell it what type the owner should be.
Don't forget to include a use
statement, even if you're not explicitly referencing the type anywhere in your actual code. Your IDE needs the use
statement to resolve the FQCN for the class you're referencing in the typehint.
namespace App\Extension;
use SilverStripe\Core\Extension;
use SilverStripe\SiteConfig\SiteConfig;
/**
* @extends Extension<SiteConfig>
*/
class SiteConfigExtension extends Extension
{
// ...
}
This is also a useful way to indicate to developers at a glance what type(s) the extension is designed to be applied to.
For example you might have an extension that can apply to any SiteTree
class, or to LeftAndMain
and GridFieldDetailForm_ItemRequest
classes, which you can indicate using a union typehint: @extends Extension<LeftAndMain|GridFieldDetailForm_ItemRequest>
.
Generic typehints in ContentController
subclasses
If you use the data()
method or the $dataRecord
property in your page controllers, you may find it useful for your IDE to know specifically what page class that data represents.
For this to work, you need to make sure your base PageController
class has a @template
type to extend. Any time you use @extends
, the class being extended needs to have a @template
type so that your IDE knows what the type you're passing in is going to be used for.
namespace {
use SilverStripe\CMS\Controllers\ContentController;
/**
* @template T of Page
* @extends ContentController<T>
*/
class PageController extends ContentController
{
// ...
}
}
namespace App\PageType;
use PageController;
/**
* @extends PageController<HomePage>
*/
class HomepageController extends PageController
{
// ...
}
New exception in react forms
A LogicException
is now thrown by FormSchema::getSchema()
if a react component was not found for a field type.
If your project or a module you're using is currently trying to include a field which doesn't have a react component into a react-rendered form, it will have been silently failing. The form will have been rendering everything except for the field(s) which have no react component.
This will now fail by throwing an exception, which means your form won't render at all until you remove or replace the field(s).
Other new features
- A new
SiteTree.hide_pagetypes
configuration property has been added. UnlikeSiteTree.hide_ancestor
(which has now been deprecated), this is an array. This allows you to define all page types that should be hidden in a single configuration property in your YAML configuration. - A new
DBText.summary_sentence_separators
configuration property has been added. This is used to split sentences in theDBText::Summary()
method. The default configuration value includes.
,!
, and?
. Previously, only.
was used to split sentences. - You can now upload Braille ASCII file format (
.brf
) files to the CMS without needing to modify the allowed file types. - The assets admin section now respects the
Upload_Validator.default_max_file_size
configuration ifAssetAdmin.max_upload_size
has not been explicitly set for your project. Previously, asset admin would ignoreUpload_Validator.default_max_file_size
and just use the PHPupload_max_filesize
ini configuration by default. - Redirector pages with a link to a missing or unpublished page/file will now return a 404 response. You can revert to the previous behaviour by setting the
RedirectorPageController.missing_redirect_is_404
configuration property tofalse
. - Developers can now opt in to including a comment on all ORM database queries indicating where they were executed from. See debugging database queries for details.
API changes
silverstripe/framework
The following legacy subclasses of PasswordEncryptor
have been deprecated, and will be removed in a future major release. If you are using one of these password encryptors in your projects, we strongly recommend swapping to one that has not been deprecated (PasswordEncryptor_Blowfish
is the current recommendation, and is the default encryptor for passwords in new installations). Note that changing the password encryptor will also require that all of your members reset their passwords.
PasswordEncryptor_None
PasswordEncryptor_LegacyPHPHash
PasswordEncryptor_MySQLOldPassword
PasswordEncryptor_MySQLPassword
The following unused API have been deprecated and will be removed in a future major release:
- Configuration property
DataObject.subclass_access
- Public static method
DataObject::disable_subclass_access()
- Public static method
DataObject::enable_subclass_access()
The ViewableData::getIterator()
method has been deprecated and will be removed in a future major release.
silverstripe/cms
The SiteTree.hide_ancestor
configuration property has been deprecated. Use SiteTree.hide_pagetypes
instead.
silverstripe/versioned
The $having
parameter in the Versioned::Versions()
method has been deprecated. This parameter was never used, and has been removed from the method signature.
Bug fixes
This release includes a number of bug fixes to improve a broad range of areas. Check the change logs for full details of these fixes split by module. Thank you to the community members that helped contribute these fixes as part of the release!
Change log
Security
-
silverstripe/framework (5.1.0 -> 5.2.0-beta1)
- 2023-12-06 4b1b48704 Allow permission checks in BulkLoader (Guy Sartorelli) - See cve-2023-49783
- 2023-11-29 873b721b6 Don't show or add records the member isn't allowed to (Guy Sartorelli) - See cve-2023-48714
-
silverstripe/admin (2.1.0 -> 2.2.0-beta1)
- 2023-12-06 9b96bbde Opt in to permission checks in bulk loaders (Guy Sartorelli) - See cve-2023-49783
-
silverstripe/graphql (5.1.0 -> 5.2.0-beta1)
- 2023-10-31 8e64567 Ensure canView() checks are run (Steve Boyd) - See cve-2023-44401
Features and enhancements
-
silverstripe/recipe-cms (5.1.0 -> 5.2.0-beta1)
- 2024-01-17 9dbd01e Add generic types (#79) (Guy Sartorelli)
-
silverstripe/assets (2.1.0 -> 2.2.0-beta1)
-
silverstripe/framework (5.1.0 -> 5.2.0-beta1)
- 2024-02-20 528344d1b Allow manipulating eagerloading queries (#11140) (Guy Sartorelli)
- 2024-02-16 a3ce922f1 Allow better subclassing of MoneyField (Dominik Beerbohm)
- 2024-02-16 8664d2c4e Allow all valid true-like ini values (Guy Sartorelli)
- 2024-02-08 5e53dbcdb Add a trace comment for queries in dev mode (#11065) (Guy Sartorelli)
- 2024-02-02 2e4bc9515 Add UrlField (Steve Boyd)
- 2024-02-02 7f7169533 Wire up symfony/validator (#11123) (Guy Sartorelli)
- 2024-01-30 9d335f73d HasOneRelationFieldInterface (Steve Boyd)
- 2024-01-17 357ed7ad7 Add generic types (#11108) (Guy Sartorelli)
- 2023-12-21 2487c4085 Create Requirements::customScriptWithAttributes (#11076) (Finlay Metcalfe)
- 2023-12-18 e66c1aec0 Use SearchableDropdownField for autoscaffolded has_one relationships (Steve Boyd)
- 2023-12-14 23eca53df SearchableDropdownField (Steve Boyd)
- 2023-12-11 c405ed6cf Allow a single has_one to manage multiple reciprocal has_many (#11084) (Guy Sartorelli)
- 2023-11-22 fdb329913 Throw exception when no react component (Steve Boyd)
- 2023-11-14 3d64eac12 Make most GridField components work with arbitrary data (Guy Sartorelli)
- 2023-11-14 5838772b1 Explicitly require DataObject for some gridfield components (Guy Sartorelli)
- 2023-11-13 b1295af28 Provide an easy way to filter arbitrary ViewableData in gridfields (Guy Sartorelli)
- 2023-11-03 b9b891d05 handle sub-urls (Andrew Paxley)
- 2023-11-02 2cb84e90d remove devbuild bypass (Andrew Paxley)
- 2023-11-02 5d4327b23 replace permission checks with canView check on TestDBTask (Andrew Paxley)
- 2023-10-31 78444a44c add DevAdminConfirmationMiddleware (Andrew Paxley)
- 2023-10-19 159112ca8 Generate a random password if a blank password is entered (Steve Boyd)
- 2023-10-03 a0cbebb2d allow stacked messages on FormMessage (Andrew Paxley)
- 2023-10-02 44b170098 Add ORM abstraction for "WITH" clauses (#10943) (Guy Sartorelli)
- 2023-09-27 7d5c62ed5 Add rightJoin method to DataList (#10961) (Guy Sartorelli)
- 2023-09-24 fac335673 Enable allowing collisions for field statements (#10957) (Guy Sartorelli)
- 2023-09-24 bbc0295f8 Add abstraction for sql RIGHT JOIN (#10954) (Guy Sartorelli)
- 2023-09-24 b28749db4 Allow selecting multiple (or no) tables (#10953) (Guy Sartorelli)
- 2023-09-19 b3b1d0761 Deprecate old password encryptors (#10948) (Guy Sartorelli)
- 2023-08-04 76da701b6 Add sql UNION abstraction (Guy Sartorelli)
- 2023-07-12 3244b44a5 add permissions for build tasks (Andrew Paxley)
- 2021-12-04 bf629dfab Split sentences by configurable punctuation for summary (Guy Sartorelli)
-
silverstripe/admin (2.1.0 -> 2.2.0-beta1)
- 2024-02-26 41f8bd3f Refactor FormBuilderModal and split up the Modal into its own component (#1631) (Maxime Rainville)
- 2024-02-13 6d183e4d Add
extra_requirements_i18n
config toLeftAndMain
(#1678) (Guy Sartorelli) - 2024-01-29 73e30a0f Add jsonSuccess() (Steve Boyd)
- 2024-01-25 c16fb0f3 Refactor sslink slightly for easier maintenance (#1661) (Guy Sartorelli)
- 2024-01-24 493909d0 Remove background form description and unclickable fields (#1652) (Sabina Talipova)
- 2024-01-17 75b51fc1 Add generic types (#1648) (Guy Sartorelli)
- 2023-12-13 c63d0136 SearchableDropdownField (Steve Boyd)
-
silverstripe/asset-admin (2.1.0 -> 2.2.0-beta1)
- 2024-01-18 badbc4fd Add generic types (#1433) (Guy Sartorelli)
- 2024-01-08 a144ac18 Let AssetAdmin default to Upload_Validator default upload limits (#1430) (Guy Sartorelli)
- 2023-12-13 32480e20 Use SearchableMultiDropdownField (Steve Boyd)
- 2023-11-07 b160b1c6 Select all and clear all functionality (Steve Boyd)
-
silverstripe/campaign-admin (2.1.0 -> 2.2.0-beta1)
-
silverstripe/versioned-admin (2.1.0 -> 2.2.0-beta1)
- 2024-01-18 ad08d76 Add generic types (#319) (Guy Sartorelli)
-
silverstripe/cms (5.1.0 -> 5.2.0-beta1)
-
silverstripe/errorpage (2.1.0 -> 2.2.0-beta1)
-
silverstripe/siteconfig (5.1.0 -> 5.2.0-beta1)
-
silverstripe/versioned (2.1.0 -> 2.2.0-beta1)
-
silverstripe/graphql (5.1.0 -> 5.2.0-beta1)
-
silverstripe/session-manager (2.1.0 -> 2.2.0-beta1)
- 2024-01-18 94c0603 Add generic types (#177) (Guy Sartorelli)
-
silverstripe/login-forms (5.1.0 -> 5.2.0-beta1)
- 2024-01-18 3a820bd Add generic types (#162) (Guy Sartorelli)
-
silverstripe/iframe (3.1.0 -> 3.2.0-beta1)
- 2024-01-23 53008d0 Add generic types (#77) (Guy Sartorelli)
-
silverstripe/tagfield (3.1.0 -> 3.2.0-beta1)
- 2024-01-23 556772b Add generic types (#277) (Guy Sartorelli)
-
silverstripe/taxonomy (3.1.0 -> 3.2.0-beta1)
- 2024-01-23 336d1c7 Add generic types (#102) (Guy Sartorelli)
-
silverstripe/blog (4.1.0 -> 4.2.0-beta1)
- 2024-01-18 3b80922 Add generic types (#739) (Guy Sartorelli)
-
silverstripe/spamprotection (4.1.0 -> 4.2.0-beta1)
- 2024-01-18 77aba75 Add generic types (#108) (Guy Sartorelli)
-
silverstripe/contentreview (5.1.0 -> 5.2.0-beta1)
- 2024-01-18 f04e9fa Add generic types (#220) (Guy Sartorelli)
-
silverstripe/sharedraftcontent (3.1.0 -> 3.2.0-beta1)
- 2024-01-18 b78b1af Add generic types (#222) (Guy Sartorelli)
-
symbiote/silverstripe-advancedworkflow (6.1.0 -> 6.2.0-beta1)
- 2024-01-23 65ec116 Add generic types (#511) (Guy Sartorelli)
-
silverstripe/userforms (6.1.0 -> 6.2.0-beta1)
-
silverstripe/externallinks (3.1.0 -> 3.2.0-beta1)
-
silverstripe/securityreport (3.0.0 -> 3.1.0-beta1)
- 2024-01-18 2e8f342 Add generic types (#72) (Guy Sartorelli)
-
silverstripe/sitewidecontent-report (4.1.0 -> 4.2.0-beta1)
- 2024-01-18 00ca457 Add generic types (#76) (Guy Sartorelli)
-
bringyourownideas/silverstripe-maintenance (3.0.1 -> 3.1.0-beta1)
- 2023-06-14 32cccc9 Update translations (Steve Boyd)
-
bringyourownideas/silverstripe-composer-update-checker (4.0.0 -> 4.1.0-beta1)
- 2023-06-14 3719b52 Update translations (Steve Boyd)
-
silverstripe/versionfeed (3.1.0 -> 3.2.0-beta1)
- 2024-01-18 b7b4ff8 Add generic types (#94) (Guy Sartorelli)
-
dnadesign/silverstripe-elemental (5.1.0 -> 5.2.0-beta1)
-
silverstripe/auditor (3.0.0 -> 3.1.0-beta1)
- 2024-01-18 8c847f5 Add generic types (#67) (Guy Sartorelli)
-
silverstripe/registry (3.1.0 -> 3.2.0-beta1)
- 2024-01-23 a42be22 Add generic types (#90) (Guy Sartorelli)
-
silverstripe/mfa (5.1.0 -> 5.2.0-beta1)
- 2024-01-19 97e6c80 Add generic types (#524) (Guy Sartorelli)
-
silverstripe/gridfieldqueuedexport (3.1.0 -> 3.2.0-beta1)
- 2024-01-18 6fb435f Add generic types (#94) (Guy Sartorelli)
-
silverstripe/ldap (2.1.0 -> 2.2.0-beta1)
- 2024-01-19 894f204 Add generic types (#67) (Guy Sartorelli)
-
silverstripe/textextraction (4.0.0 -> 4.1.0-beta1)
- 2024-01-22 cc43a12 Add generic types (#86) (Guy Sartorelli)
-
silverstripe/realme (5.2.0 -> 5.3.0-beta1)
- 2024-01-18 5971936 Add generic types (#128) (Guy Sartorelli)
-
silverstripe/subsites (3.1.0 -> 3.2.0-beta1)
- 2024-01-23 11a941f Add generic types (#554) (Guy Sartorelli)
-
silverstripe/lumberjack (3.0.2 -> 3.1.0-beta1)
- 2024-01-17 dd5f929 Add generic types (#137) (Guy Sartorelli)
-
silverstripe/staticpublishqueue (6.1.0 -> 6.2.0-beta1)
-
cwp/agency-extensions (3.1.0 -> 3.2.0-beta1)
- 2024-01-22 0dc9d10 Add generic types (#110) (Guy Sartorelli)
-
symbiote/silverstripe-gridfieldextensions (4.0.3 -> 4.0.5)
- 2024-01-23 78fa8ba Make toast message "Records reordered." localisable (#321) (Tom Oude Rengerink)
-
symbiote/silverstripe-queuedjobs (5.0.2 -> 5.1.0-beta1)
- 2024-01-23 9cf0162 Add generic types (#415) (Guy Sartorelli)
-
tractorcow/silverstripe-fluent (7.0.0 -> 7.1.0-beta1)
-
silverstripe/linkfield (3.0.0-beta1 -> 4.0.0-beta1)
- 2024-02-20 87e8c17 Avoid potential data disclosure (#233) (Guy Sartorelli)
- 2024-02-15 c75615f More standardisation (#223) (Guy Sartorelli)
- 2024-02-14 3e97f0d Better versioned history (Steve Boyd)
- 2024-02-13 0c0cdaa Globally disallow link types (Steve Boyd)
- 2024-02-13 f3de6ac LinkField Behat tests (#201) (Sabina Talipova)
- 2024-02-13 5d604a7 Icon alignment (Sabina Talipova)
- 2024-02-12 fac2d31 Improve keyboard support (Steve Boyd)
- 2024-02-12 05c7b42 Remove unused code (Guy Sartorelli)
- 2024-02-12 28b833f Standardise naming and improve code quality (Guy Sartorelli)
- 2024-02-12 51acf4f Add strong typing where possible (Guy Sartorelli)
- 2024-02-12 d334cbc Move LeftAndMain requirements into config (Guy Sartorelli)
- 2024-02-12 04ae65c Allow developers to exclude LinkText field (#215) (Guy Sartorelli)
- 2024-02-12 afef74f Refactor link field traits into abstract class (Guy Sartorelli)
- 2024-02-08 4e43d54 Rename and move Title field (Steve Boyd)
- 2024-02-06 0099636 Improved validation (Steve Boyd)
- 2024-01-31 5155f17 Set Published button dirty state when Link is an unpublished state (Steve Boyd)
- 2024-01-29 8fbe94b Standardise API responses (Steve Boyd)
- 2024-01-29 836d665 Improve hover active and focus state styling (Steve Boyd)
- 2024-01-25 4ba8267 Add disabled field state (Steve Boyd)
- 2024-01-24 0c01fcf Hide the open in new window checkbox from phone and email links (Steve Boyd)
- 2024-01-24 9bb3a1a Add Readonly field status (#172) (Sabina Talipova)
- 2024-01-24 e6f7705 Confirm user wishes to delete link (Steve Boyd)
- 2024-01-18 2927d50 Show a cannot create message when types is empty (Steve Boyd)
- 2024-01-17 343c3d2 MutliLinkField sorting (Steve Boyd)
- 2024-01-16 eb88dd0 Join endpoint path segments (Steve Boyd)
- 2024-01-11 6644853 Link type icon (Sabina Talipova)
- 2024-01-11 912816c Add sorting by link type (Sabina Talipova)
- 2024-01-10 09ca349 Show loading component during ajax read requests (Steve Boyd)
- 2024-01-10 9d3a6f0 Gracefully handle AJAX failures (Steve Boyd)
- 2024-01-10 c563394 Show save record first text on unsaved owners (Steve Boyd)
- 2024-01-09 0ea34be Used on table extension (Steve Boyd)
- 2024-01-09 2086a38 Change clear text to delete (Steve Boyd)
- 2023-12-22 279cfb5 Save relations on link creation (Steve Boyd)
- 2023-12-19 ea28fe1 Remove LinkFieldController from cms menu (Steve Boyd)
- 2023-12-14 84824c7 Allowed link types (Sabina Talipova)
- 2023-12-11 ffb1ae0 Add versioning to Link (Steve Boyd)
- 2023-12-05 5e35a84 Add permission methods based on owner (Guy Sartorelli)
- 2023-11-30 1e1083d Default link title for each link type (Sabina Talipova)
- 2023-11-28 1be5f0d Add MultiLinkField for managing many-type relations (Guy Sartorelli)
- 2023-11-28 acb9c84 Refactor LinkField in preparation for MultiLinkField (Guy Sartorelli)
- 2023-11-14 64f5829 Add localization support (#119) (Sabina Talipova)
- 2023-11-06 6035de8 LinkFieldController to handle FormSchema (Steve Boyd)
- 2023-09-26 345c828 Allow projects to define their own subclass templates (Steve Boyd)
- 2023-06-21 d667d94 Query string support. (Mojmir Fendek)
- 2023-06-20 6b69001 New extension points added (JSON field). (Mojmir Fendek)
- 2023-06-14 3478f28 Extension points for link model manipulation. (Mojmir Fendek)
- 2023-06-07 77c7319 Allow form validation. (Mojmir Fendek)
- 2023-06-06 3041730 Insert / edit link button label. (Mojmir Fendek)
- 2023-06-06 d425b33 Allow model-level for customisation. (Mojmir Fendek)
- 2023-06-05 6e8183a Extensibility improvements for link migration task. (Mojmir Fendek)
- 2021-11-11 3e0f699 Empty link title fallbacks to Page. (#37) (Mojmir Fendek)
Bugfixes
-
silverstripe/vendor-plugin (2.0.1 -> 2.0.2)
- 2023-10-10 175505b Method CopyMethod::copy as deprecated (Sabina Talipova)
-
silverstripe/assets (2.1.0 -> 2.2.0-beta1)
-
silverstripe/framework (5.1.0 -> 5.2.0-beta1)
- 2024-02-14 d33332cb9 Add eagerloaded data to ALL relevant lists (#11139) (Guy Sartorelli)
- 2024-02-12 b56e771ed add missing rawurlencode (#11105) (Thomas Portelange)
- 2024-02-08 e87c72470 Don't assume mysql handle is an object (#11129) (Guy Sartorelli)
- 2024-02-07 1dd81488a fix unknown table (Thomas Portelange)
- 2024-01-24 afd53d1d6 HTMLEditorField::setRows with Elemental (Sabina Talipova)
- 2024-01-11 ff3a6f72d HTMLEditorField::setRows minimal hieght (#10965) (Sabina Talipova)
- 2024-01-09 9bfb731bc Handle polymorphic relationships that use Owner instead of Parent (Steve Boyd)
- 2024-01-08 e456de11b Fix clobbering of the upload size validation (#10059) (Nick)
- 2023-12-19 7dc1a7a12 Correctly mark ConfirmedPasswordField children as required (Guy Sartorelli)
- 2023-12-13 dd3a0dba2 Don't break the page if password recover email fails to send (Guy Sartorelli)
- 2023-12-13 446810bc5 Allow new password to save even if there's an error sending email (Guy Sartorelli)
- 2023-12-04 40b888eaf UnsavedRelationList::last() sometimes returned an ID instead of an item (Loz Calver)
- 2023-12-04 e28af9a5a UnsavedRelationList first/last to return null if list is empty (fixes #11083) (Loz Calver)
- 2023-11-29 6d903848a Don't replace config manifest for nested kernels (#11082) (Guy Sartorelli)
- 2023-11-21 7eab49f85 Ensure environment is checked before enabling deprecations (#11055) (Guy Sartorelli)
- 2023-11-16 05f1d9ab8 Make deprecation enabled check faster (Guy Sartorelli)
- 2023-11-13 4dbbf04ba Add extraEmptyValues to TreedropdownField (Steve Boyd)
- 2023-10-31 d883719c1 ModelAdmin toast elements (Sabina Talipova)
- 2023-09-25 55e42683f Match multi-line JOIN statements (#10960) (Guy Sartorelli)
-
silverstripe/admin (2.1.0 -> 2.2.0-beta1)
- 2024-02-26 60563dbd Support nested redux forms (Guy Sartorelli)
- 2024-02-25 7918318d Don't panic if classname isn't set (#1687) (Guy Sartorelli)
- 2024-02-22 129a94a2 Rebuild bundle (Mohamed Alsharaf)
- 2024-02-22 b3e16081 Remove current active tab from session storage after use (Mohamed Alsharaf)
- 2024-02-08 8a3833e8 Set the CSV importer based on the tab, not the model (#1676) (Guy Sartorelli)
- 2024-02-01 725a9a11 Use valid class for model importers (#1670) (Guy Sartorelli)
- 2024-01-25 359a3953 Type error (Sabina Talipova)
- 2024-01-24 925e06f4 Add tinymce link menuitems per editor instance (#1653) (Guy Sartorelli)
- 2024-01-24 799add9e HTMLEditorField::setRows with Elemental (Sabina Talipova)
- 2024-01-23 c06b2f2a Use valid class for model importers (Guy Sartorelli)
- 2024-01-17 79955d24 Elemental no longer allows saving of HTMLEditorField (#1651) (Sabina Talipova)
- 2024-01-11 bc92e1f1 HTMLEditorField::setRows method (#1588) (Sabina Talipova)
- 2024-01-09 4dd2432b Remove unstable prefix from useBlocker (Steve Boyd)
- 2024-01-07 12e97880 Rebuild bundle (Steve Boyd)
- 2023-12-21 d949db14 decode entities in toast message (Thomas Portelange)
- 2023-12-19 0755502d Ensure react-select field menus are always on top (#1637) (Guy Sartorelli)
- 2023-12-15 5d39d877 Set z-index of list (Steve Boyd)
- 2023-12-01 4c53dece Prevents horizontal scrollbar in non-firefox (Lukas Erni)
- 2023-11-08 c862349c Handle extra empty values (Steve Boyd)
- 2023-10-31 22d5471f ModelAdmin toast elements (Sabina Talipova)
- 2023-10-19 d393424b Make CanView/Edit group toggle logic more robust (#1610) (Guy Sartorelli)
-
silverstripe/asset-admin (2.1.0 -> 2.2.0-beta1)
-
silverstripe/versioned-admin (2.1.0 -> 2.2.0-beta1)
- 2024-02-12 cd3fcb2 Use correct modelClass with others tab (Steve Boyd)
-
silverstripe/cms (5.1.0 -> 5.2.0-beta1)
- 2024-01-24 dfc42e7c Add tinymce link menuitems per editor instance (#2916) (Guy Sartorelli)
- 2023-12-19 9202ce9a Ensure react-select field menus are always on top (#2910) (Guy Sartorelli)
- 2023-11-19 579986a6 Handle exceptions when using /0 as a URL (#2825) (Will Rossiter)
- 2023-11-07 dd2bd613 Limit Member map to 100 (Steve Boyd)
-
silverstripe/versioned (2.1.0 -> 2.2.0-beta1)
-
silverstripe/graphql (5.1.0 -> 5.2.0-beta1)
-
silverstripe/tagfield (3.1.0 -> 3.2.0-beta1)
-
silverstripe/blog (4.1.0 -> 4.2.0-beta1)
- 2022-08-22 99d1063 Allow multibyte to be configured (#605) (Will Rossiter)
-
silverstripe/spamprotection (4.1.0 -> 4.2.0-beta1)
- 2023-09-10 17106d8 fix: if no spam protector set, fail sliently (Will Rossiter)
-
colymba/gridfield-bulk-editing-tools (4.0.0 -> 4.0.2)
- 2023-11-22 9a8cc37 Remove deprecated convert API for SS5.0 (#260) (Bram de Leeuw)
-
silverstripe/sharedraftcontent (3.1.0 -> 3.2.0-beta1)
- 2023-11-09 e490370 Infinite recursion sanity checks with more helpful error messages (#214) (Nathan J. Brauer)
-
symbiote/silverstripe-advancedworkflow (6.1.0 -> 6.2.0-beta1)
- 2023-12-14 7286f14 Use correct namespace for imports (Steve Boyd)
-
silverstripe/sitewidecontent-report (4.1.0 -> 4.2.0-beta1)
- 2024-01-24 e6638ec update defensive check on tags field method (Phillip King)
-
silverstripe/versionfeed (3.1.0 -> 3.2.0-beta1)
-
dnadesign/silverstripe-elemental (5.1.0 -> 5.2.0-beta1)
- 2024-02-26 f571da9 Remove workaround for nested redux form. (Guy Sartorelli)
- 2024-01-30 95c31bd Failed Behat test (Sabina Talipova)
- 2024-01-29 b23847a Behat test for badges (Sabina Talipova)
- 2024-01-18 935e46d Null submit handler for element component (Steve Boyd)
- 2023-12-06 d986b7d Handle empty element formstate (Steve Boyd)
- 2023-09-20 7f1daf8 Element::getPage returning the wrong page (Will Rossiter)
- 2023-09-19 215fadf Fix some bits in the readme (Ed Wilde)
-
silverstripe/auditor (3.0.0 -> 3.1.0-beta1)
-
silverstripe/gridfieldqueuedexport (3.1.0 -> 3.2.0-beta1)
- 2024-01-16 48b454f Undefined Exception on makeDir method (Marco Hermo)
-
cwp/watea-theme (4.0.0 -> 4.1.0-beta1)
- 2023-09-04 8bfba56 Update .nvmrc (Steve Boyd)
-
symbiote/silverstripe-queuedjobs (5.0.2 -> 5.1.0-beta1)
- 2022-10-04 7cdce8f grabMutex job lock query on SQLite (Maxime Rainville)
-
tractorcow/silverstripe-fluent (7.0.0 -> 7.1.0-beta1)
- 2023-08-15 28056e5 fix stylesheet path (Thomas Portelange)
-
silverstripe/linkfield (3.0.0-beta1 -> 4.0.0-beta1)
- 2024-02-26 1a30c3e Remove workaround for nested redux form. (Guy Sartorelli)
- 2024-02-12 c347b35 Archive record from live table on delete (Steve Boyd)
- 2024-02-07 31d9ffa Do not show delete button when disabled (Steve Boyd)
- 2024-01-31 09f637c Add HasOneRelationFieldInterface to LinkField (Steve Boyd)
- 2024-01-30 790c561 Elemental non-inline editing (Steve Boyd)
- 2024-01-25 da9ce9b Prevent nested asset-admin forms from submitting modal (Steve Boyd)
- 2024-01-19 15f02d3 Defaul link type title and icon for disabled link types (Sabina Talipova)
- 2024-01-15 f7fd63a Don't change scroll position when loading (#171) (Guy Sartorelli)
- 2024-01-11 082657d Console warning about required type (#163) (Sabina Talipova)
- 2024-01-08 bdf0b36 Nicely truncate link title/URL (#153) (Guy Sartorelli)
- 2023-12-04 3c8edfd Don't render links that don't exist (#130) (Guy Sartorelli)
- 2023-08-03 f2fd7bb Revert change that broke file modal (Maxime Rainville)
- 2023-06-20 8533d27 Allow CMS fields customisations via extension to be executed after the default setup. (Mojmir Fendek)
- 2023-06-11 61a27e5 File link URL generation corrected. (Mojmir Fendek)
- 2023-06-06 8df6554 Corrected variable name (typo). (Mojmir Fendek)
- 2023-06-06 f09a385 URL generation fix for internal link. (Mojmir Fendek)
- 2023-06-01 b328570 Fix link migration task. (Mojmir Fendek)
- 2023-05-25 9744bd8 List types can now be disabled via configuration (existing config, missing feature). (Mojmir Fendek)
- 2023-02-15 677ae80 Fix Github actions. (Mojmir Fendek)
- 2022-05-13 1e9c0ec Bump PHP versions. (Mojmir Fendek)
- 2022-05-12 5239704 Fix Composer autoload settings. (Mojmir Fendek)
- 2021-10-21 2eb755e Change link type in via a GridField edit form. (Mojmir Fendek)
Api changes
-
silverstripe/assets (2.1.0 -> 2.2.0-beta1)
- 2021-07-20 595c5a5 allow chaining for Upload_Validator (Will Rossiter)
-
silverstripe/framework (5.1.0 -> 5.2.0-beta1)
-
silverstripe/cms (5.1.0 -> 5.2.0-beta1)
- 2023-11-02 e826152f Add new SiteTree.hide_pagetypes configuration (Guy Sartorelli)
-
silverstripe/versioned (2.1.0 -> 2.2.0-beta1)
- 2023-11-05 4d38781 Deprecate Versions() having parameter (Steve Boyd)
-
silverstripe/linkfield (3.0.0-beta1 -> 4.0.0-beta1)
- 2023-12-12 7f65d4f Add new Owner relation for handling permissions (#127) (Guy Sartorelli)
Dependencies
-
silverstripe/recipe-kitchen-sink (5.1.0 -> 5.2.0-beta1)
- 2023-09-28 fa436ba Add silverstripe/linkfield (Steve Boyd)
-
silverstripe/framework (5.1.0 -> 5.2.0-beta1)
- 2023-11-12 bc47d65cc Deprecate configurable silent failures in GridField components (Guy Sartorelli)
-
silverstripe/admin (2.1.0 -> 2.2.0-beta1)
-
silverstripe/asset-admin (2.1.0 -> 2.2.0-beta1)
-
silverstripe/campaign-admin (2.1.0 -> 2.2.0-beta1)
-
silverstripe/versioned-admin (2.1.0 -> 2.2.0-beta1)
-
silverstripe/cms (5.1.0 -> 5.2.0-beta1)
-
silverstripe/session-manager (2.1.0 -> 2.2.0-beta1)
-
silverstripe-themes/simple (3.3.0 -> 3.3.1)
- 2023-11-17 d3228db Update jQuery to 3.7.1 (Garion Herman)
-
silverstripe/login-forms (5.1.0 -> 5.2.0-beta1)
-
silverstripe/documentconverter (3.1.0 -> 3.2.0-beta1)
-
silverstripe/tagfield (3.1.0 -> 3.2.0-beta1)
-
silverstripe/taxonomy (3.1.0 -> 3.2.0-beta1)
- 2024-01-08 8a4a0b1 Update deps to specify new auto-scaffolded has-one field (Steve Boyd)
-
silverstripe/blog (4.1.0 -> 4.2.0-beta1)
-
silverstripe/contentreview (5.1.0 -> 5.2.0-beta1)
-
silverstripe/sharedraftcontent (3.1.0 -> 3.2.0-beta1)
-
symbiote/silverstripe-advancedworkflow (6.1.0 -> 6.2.0-beta1)
- 2023-08-31 85e3f97 Update JS dependencies (Steve Boyd)
-
silverstripe/segment-field (3.1.0 -> 3.2.0-beta1)
-
silverstripe/userforms (6.1.0 -> 6.2.0-beta1)
-
silverstripe/externallinks (3.1.0 -> 3.2.0-beta1)
-
silverstripe/sitewidecontent-report (4.1.0 -> 4.2.0-beta1)
-
bringyourownideas/silverstripe-maintenance (3.0.1 -> 3.1.0-beta1)
-
dnadesign/silverstripe-elemental (5.1.0 -> 5.2.0-beta1)
-
silverstripe/elemental-bannerblock (3.1.0 -> 3.2.0-beta1)
-
silverstripe/totp-authenticator (5.1.0 -> 5.2.0-beta1)
-
silverstripe/mfa (5.1.0 -> 5.2.0-beta1)
-
silverstripe/gridfieldqueuedexport (3.1.0 -> 3.2.0-beta1)
-
silverstripe/realme (5.2.0 -> 5.3.0-beta1)
-
silverstripe/webauthn-authenticator (5.1.0 -> 5.2.0-beta1)
-
silverstripe/subsites (3.1.0 -> 3.2.0-beta1)
-
silverstripe/lumberjack (3.0.2 -> 3.1.0-beta1)
-
cwp/starter-theme (4.0.0 -> 4.1.0-beta1)
- 2024-01-08 d762ea9 Update JS dependencies (#240) (Guy Sartorelli)
- 2024-01-08 fdf930e Bump @babel/traverse from 7.23.0 to 7.23.7 (dependabot[bot])
- 2023-10-28 6a2dff8 Bump browserify-sign from 4.2.1 to 4.2.2 (dependabot[bot])
- 2023-10-03 5de9fba Update JS dependencies (#233) (github-actions[bot])
- 2023-08-31 b79bcbd Bump minimatch from 3.0.4 to 3.0.8 (dependabot[bot])
- 2023-08-29 0adbddc Bump semver from 5.7.1 to 5.7.2 (dependabot[bot])
- 2023-08-28 2a0d10f Bump url-parse from 1.5.1 to 1.5.10 (dependabot[bot])
- 2023-08-28 2ee7c94 Bump eventsource from 1.0.7 to 1.1.2 (dependabot[bot])
- 2023-08-28 8b3912f Bump follow-redirects from 1.13.0 to 1.15.2 (dependabot[bot])
- 2023-08-28 3bec8aa Bump async from 2.6.3 to 2.6.4 (dependabot[bot])
- 2023-08-28 e8cb249 Bump path-parse from 1.0.6 to 1.0.7 (dependabot[bot])
- 2023-08-28 83b1e25 Bump hosted-git-info from 2.8.5 to 2.8.9 (dependabot[bot])
- 2023-08-28 743463a Bump tar from 4.4.15 to 4.4.19 (dependabot[bot])
- 2023-08-28 f0ef7f0 Bump color-string from 1.5.3 to 1.9.1 (dependabot[bot])
- 2023-08-28 5a84ae2 Bump ajv from 6.10.2 to 6.12.3 (dependabot[bot])
- 2023-08-28 81c5a23 Bump lodash from 4.17.19 to 4.17.21 (dependabot[bot])
- 2023-08-28 167a10f Bump decode-uri-component from 0.2.0 to 0.2.2 (dependabot[bot])
- 2023-08-28 eeee5c7 Bump json5 from 1.0.1 to 1.0.2 (dependabot[bot])
- 2022-12-10 c3c8d4a Bump express from 4.17.1 to 4.18.2 (dependabot[bot])
-
cwp/agency-extensions (3.1.0 -> 3.2.0-beta1)
-
cwp/watea-theme (4.0.0 -> 4.1.0-beta1)
- 2024-01-01 415858c Update JS dependencies (github-actions)
- 2023-10-01 c407d54 Update JS dependencies (github-actions)
- 2023-08-29 902113b build(deps): bump semver from 5.6.0 to 5.7.2 (dependabot[bot])
- 2023-08-28 78c47a5 build(deps): bump dot-prop from 4.2.0 to 4.2.1 (dependabot[bot])
- 2023-08-28 3f0de59 build(deps): bump path-parse from 1.0.6 to 1.0.7 (dependabot[bot])
- 2023-08-28 878cc6a build(deps): bump hosted-git-info from 2.7.1 to 2.8.9 (dependabot[bot])
- 2023-08-28 8781c5a build(deps): bump json5 from 1.0.1 to 1.0.2 (dependabot[bot])
-
symbiote/silverstripe-multivaluefield (6.0.2 -> 6.1.0-beta1)
- 2023-07-11 99564be Update eslint module (#97) (Sabina Talipova)
-
silverstripe/linkfield (3.0.0-beta1 -> 4.0.0-beta1)
- 2024-01-08 bddcb6e Explicitly require framework ^5.2 (Steve Boyd)
Documentation
-
silverstripe/session-manager (2.1.0 -> 2.2.0-beta1)
- 2023-11-05 2305049 Fix link (Steve Boyd)
-
silverstripe/tagfield (3.1.0 -> 3.2.0-beta1)
- 2023-11-20 946d92a Update readme example (Steve Boyd)
-
silverstripe/userforms (6.1.0 -> 6.2.0-beta1)
- 2024-02-01 c893194 Update syntax for callout blocks (#1263) (Guy Sartorelli)
-
dnadesign/silverstripe-elemental (5.1.0 -> 5.2.0-beta1)
- 2023-08-30 fe95f59 fix not needed duplication when restoring a page from archived state (Aljoša Balažic)
-
silverstripe/developer-docs (5.1.0 -> 5.2.0-beta1)
- 2024-03-04 cc5be721 Add composer runtime api mention (#464) (Thomas Portelange)
- 2024-02-29 164b66f1 Refer to release policies to avoid stale information (#462) (Guy Sartorelli)
- 2024-02-28 6bc37ea3 Document LTS support for databases (Guy Sartorelli)
- 2024-02-23 621a9f40 Fix placement of urlfield docs (#460) (Guy Sartorelli)
- 2024-02-20 aa9ef537 Document manipulating eager loading queries (#456) (Guy Sartorelli)
- 2024-02-18 22fd700d Document official support for linkfield (#457) (Guy Sartorelli)
- 2024-02-08 fee67b67 Add new query trace comment to changelog (#404) (Guy Sartorelli)
- 2024-02-02 b8012e86 Document using symfony/validator (#454) (Guy Sartorelli)
- 2024-02-02 e5f5434b Update syntax for callout blocks (#455) (Guy Sartorelli)
- 2024-02-01 e77dd474 Update syntax for callout blocks (#452) (Guy Sartorelli)
- 2024-02-01 c47892db Update syntax for callout blocks (#449) (Guy Sartorelli)
- 2024-01-30 d9735932 Add UrlField (Steve Boyd)
- 2024-01-29 f5a095af CMS JSON API's (Steve Boyd)
- 2024-01-29 9f5ea80e Document PHPDoc as a PHP coding standard (#448) (Guy Sartorelli)
- 2024-01-25 3136033f Add description for type/other label and clarify affects labels (Steve Boyd)
- 2024-01-18 8ec4dfd6 fix minor typo on class name in code sample (Ravindu)
- 2024-01-18 04437708 Document making variants with different file extensions (Guy Sartorelli)
- 2024-01-17 65b1ab1c Refactor docs about file manipulation into its own page (Guy Sartorelli)
- 2024-01-17 81574844 Document deprecated API (#440) (Guy Sartorelli)
- 2024-01-14 9fffd6d8 Document added generic types (Guy Sartorelli)
- 2024-01-08 980c4b95 Document new redirector 404 in changelog (#437) (Guy Sartorelli)
- 2024-01-08 3ad9dce5 Document new config for splitting summary sentences (#428) (Guy Sartorelli)
- 2024-01-08 c3f61e59 Document changes to asset admin file size config (#430) (Guy Sartorelli)
- 2024-01-08 d01a1eb4 Fix spelling issue (#436) (Sabina Talipova)
- 2024-01-07 52c71d71 Update changelog for
.brf
support (Ed Wilde) - 2023-12-19 1d517716 Auto scaffolding has_one relations (Steve Boyd)
- 2023-12-18 a0054052 Document lazy loading (Guy Sartorelli)
- 2023-12-14 ea47bc59 Document another exception to catch when dealing with email (#421) (Guy Sartorelli)
- 2023-12-14 e1cc2c28 Add SearchableDropdownField to 5.2.0 changelog (Steve Boyd)
- 2023-12-12 e2c2ff19 Update supported PHP version for CMS 5.2 (Sabina Talipova)
- 2023-12-11 fd9af106 Document multi-reciprocal has_one relations (#417) (Guy Sartorelli)
- 2023-12-11 137bdaa0 Update changelog for security patches (Guy Sartorelli)
- 2023-12-10 3657480d Document gridfield with arbitrary data (Guy Sartorelli)
- 2023-12-10 78e53226 Nested RequestHandlers (Steve Boyd)
- 2023-11-29 1a514d10 Document new staticpublishqueue configuration (#413) (Guy Sartorelli)
- 2023-11-27 7aaf5358 Document using GridField with arbitrary data (Guy Sartorelli)
- 2023-11-26 2dcd339c Update coding conventions (Steve Boyd)
- 2023-11-26 0786b201 Add SortPlugin to the docs (Sabina Talipova)
- 2023-11-23 554e4f0c Include method signatures in public API definition (Guy Sartorelli)
- 2023-11-22 51cba6cc LogicException when no react component (Steve Boyd)
- 2023-11-14 d9893215 Document new dev admin permissions (#399) (Guy Sartorelli)
- 2023-11-07 6f0861b0 Select all and deselect all files (Steve Boyd)
- 2023-11-06 3b59d4e2 Deprecated $having parameter (Steve Boyd)
- 2023-11-02 adb81fb1 prefix (Steve Boyd)
- 2023-11-02 5b23e3e7 Remove references to old Addons website (#389) (Maxime Rainville)
- 2023-11-02 7c7ed947 Document new community roles (Guy Sartorelli)
- 2023-11-02 c04c2e03 Document new hide_pagetypes config (Guy Sartorelli)
- 2023-10-25 951c9c81 Update 01_Code.md (Andrew Paxley)
- 2023-10-25 f708c403 Restructure the contributing docs (#385) (Guy Sartorelli)
- 2023-10-24 3dcdc188 Update maintainer guidelines (#383) (Guy Sartorelli)
- 2023-10-24 8566c1f0 Update contributing code docs (#379) (Guy Sartorelli)
- 2023-10-24 caf0c452 Specify what makes a "core" module different (#384) (Guy Sartorelli)
- 2023-10-24 94aff599 Update triage resources (#382) (Guy Sartorelli)
- 2023-10-24 a6d4f746 Update documentation about documenation (#380) (Guy Sartorelli)
- 2023-10-24 4bdfce04 Update issues/bugs page (#378) (Guy Sartorelli)
- 2023-10-24 71785917 Update translation doc (#381) (Guy Sartorelli)
- 2023-10-19 4e669f12 Create new users with random passwords (Steve Boyd)
- 2023-10-17 36f9313a Update eagerloading docs to explicitly say no relation filter (#376) (Guy Sartorelli)
- 2023-10-17 a9966929 Mention that SS_TRUSTED_PROXY_IPS supports subnets (Johannes Hammersen)
- 2023-10-02 c6525f22 Document ORM changes for CMS 5.2 (#351) (Guy Sartorelli)
- 2023-09-25 ce291746 add errorpage allowed_error_codes to 5.2.0 changelog (Andrew Paxley)
- 2023-09-19 2177d6a9 Document deprecation of old password encryptors (#348) (Guy Sartorelli)
-
silverstripe/linkfield (3.0.0-beta1 -> 4.0.0-beta1)
- 2024-02-25 d820d0b Fix docs links in readme (Guy Sartorelli)
- 2024-02-20 7c11469 Link field User manual (Sabina Talipova)
- 2024-02-18 a79f97d Provide proper developer documentation (#224) (Guy Sartorelli)
- 2024-02-13 2b0eef1 Automatic publishing of linked pages and files (Steve Boyd)
- 2024-02-12 c5f91c4 Update PHPDocs (Guy Sartorelli)
- 2023-12-05 22fcdcc Update PHPDoc for link models (#136) (Guy Sartorelli)
- 2023-12-05 5b86669 Update sentence in README (Steve Boyd)
- 2023-11-29 cc21f8a Update README (Guy Sartorelli)
Translations
-
silverstripe/assets (2.1.0 -> 2.2.0-beta1)
-
silverstripe/framework (5.1.0 -> 5.2.0-beta1)
- 2024-02-08 c40602957 Update translations (#11130) (Guy Sartorelli)
- 2024-02-07 f952183cd Update translations (#11126) (Guy Sartorelli)
- 2024-02-06 26273bf37 Update translations (#11125) (Guy Sartorelli)
- 2023-11-06 3c98264f8 Update translations (Steve Boyd)
- 2023-11-03 5ff6811b0 Update translations (Steve Boyd)
-
silverstripe/mimevalidator (3.0.0 -> 3.1.0-beta1)
- 2024-02-07 7fd4a96 Update translations (#72) (Guy Sartorelli)
-
silverstripe/admin (2.1.0 -> 2.2.0-beta1)
-
silverstripe/asset-admin (2.1.0 -> 2.2.0-beta1)
-
silverstripe/campaign-admin (2.1.0 -> 2.2.0-beta1)
- 2024-02-07 7d3c679 Update translations (#294) (Guy Sartorelli)
-
silverstripe/versioned-admin (2.1.0 -> 2.2.0-beta1)
-
silverstripe/cms (5.1.0 -> 5.2.0-beta1)
-
silverstripe/errorpage (2.1.0 -> 2.2.0-beta1)
-
silverstripe/reports (5.1.0 -> 5.2.0-beta1)
-
silverstripe/siteconfig (5.1.0 -> 5.2.0-beta1)
-
silverstripe/versioned (2.1.0 -> 2.2.0-beta1)
-
silverstripe/session-manager (2.1.0 -> 2.2.0-beta1)
-
silverstripe/login-forms (5.1.0 -> 5.2.0-beta1)
-
silverstripe/documentconverter (3.1.0 -> 3.2.0-beta1)
- 2024-02-07 1bd09d5 Update translations (#69) (Guy Sartorelli)
-
silverstripe/iframe (3.1.0 -> 3.2.0-beta1)
- 2024-02-07 a8243f3 Update translations (#80) (Guy Sartorelli)
-
silverstripe/taxonomy (3.1.0 -> 3.2.0-beta1)
-
silverstripe/blog (4.1.0 -> 4.2.0-beta1)
- 2024-02-07 95a2808 Update translations (#742) (Guy Sartorelli)
-
silverstripe/spamprotection (4.1.0 -> 4.2.0-beta1)
- 2024-02-07 5badc34 Update translations (#111) (Guy Sartorelli)
-
silverstripe/contentreview (5.1.0 -> 5.2.0-beta1)
- 2024-02-07 bb3eec1 Update translations (#223) (Guy Sartorelli)
-
silverstripe/sharedraftcontent (3.1.0 -> 3.2.0-beta1)
- 2024-02-07 5531318 Update translations (#225) (Guy Sartorelli)
-
symbiote/silverstripe-advancedworkflow (6.1.0 -> 6.2.0-beta1)
-
silverstripe/segment-field (3.1.0 -> 3.2.0-beta1)
- 2024-02-07 8e0e850 Update translations (#98) (Guy Sartorelli)
-
silverstripe/userforms (6.1.0 -> 6.2.0-beta1)
-
silverstripe/externallinks (3.1.0 -> 3.2.0-beta1)
- 2024-02-07 b12e686 Update translations (#120) (Guy Sartorelli)
-
silverstripe/securityreport (3.0.0 -> 3.1.0-beta1)
- 2024-02-07 51c745e Update translations (#75) (Guy Sartorelli)
-
silverstripe/versionfeed (3.1.0 -> 3.2.0-beta1)
- 2024-02-07 8287278 Update translations (#99) (Guy Sartorelli)
-
dnadesign/silverstripe-elemental (5.1.0 -> 5.2.0-beta1)
- 2024-02-07 e1d6370 Update translations (#1144) (Guy Sartorelli)
-
silverstripe/hybridsessions (3.0.2 -> 3.0.3)
- 2024-02-06 402c6e4 Update translations (Guy Sartorelli)
-
silverstripe/registry (3.1.0 -> 3.2.0-beta1)
- 2024-02-07 8209e0d Update translations (#93) (Guy Sartorelli)
-
silverstripe/totp-authenticator (5.1.0 -> 5.2.0-beta1)
- 2024-02-07 bc196b2 Update translations (#145) (Guy Sartorelli)
-
silverstripe/mfa (5.1.0 -> 5.2.0-beta1)
- 2023-11-07 9390a7d Update translations (Steve Boyd)
-
silverstripe/crontask (3.0.2 -> 3.0.3)
- 2024-02-07 1d2db78 Update translations (#86) (Guy Sartorelli)
-
silverstripe/gridfieldqueuedexport (3.1.0 -> 3.2.0-beta1)
- 2024-02-07 299929e Update translations (#98) (Guy Sartorelli)
-
silverstripe/realme (5.2.0 -> 5.3.0-beta1)
-
silverstripe/webauthn-authenticator (5.1.0 -> 5.2.0-beta1)
- 2023-11-07 81e45fe Update translations (Steve Boyd)
-
silverstripe/subsites (3.1.0 -> 3.2.0-beta1)
-
silverstripe/lumberjack (3.0.2 -> 3.1.0-beta1)
- 2024-02-07 cae40f4 Update translations (#140) (Guy Sartorelli)
-
dnadesign/silverstripe-elemental-userforms (4.1.0 -> 4.1.1)
- 2024-02-07 ce60338 Update translations (#88) (Guy Sartorelli)
-
symbiote/silverstripe-gridfieldextensions (4.0.3 -> 4.0.5)
- 2024-02-07 c84d8af Update translations (#381) (Guy Sartorelli)
-
symbiote/silverstripe-queuedjobs (5.0.2 -> 5.1.0-beta1)
- 2024-02-07 892dbba Update translations (#419) (Guy Sartorelli)
Other changes
-
silverstripe/assets (2.1.0 -> 2.2.0-beta1)
- 2023-10-25 63bd612 Add support for braille format files (#574) (Ed Wilde)
-
silverstripe/framework (5.1.0 -> 5.2.0-beta1)
- 2024-02-27 59177dd31 Delete tests/php/Core/Manifest/fixtures/VersionProviderTest directory (Thomas Portelange)
- 2024-02-27 2921d68a5 Update composer.json (Thomas Portelange)
- 2024-02-26 a06ce0493 use VersionParser instead of comparator (Thomas Portelange)
- 2024-02-26 80e197fe4 make error message more readable (Thomas Portelange)
- 2024-02-26 a1d1e977c use composer/semver (Thomas Portelange)
- 2024-02-26 071333f77 add composer/semver (Thomas Portelange)
- 2024-02-26 68b79e11e missing import (Thomas Portelange)
- 2024-02-26 269692202 update return type (Thomas Portelange)
- 2024-02-26 1cf3dde9f Update src/Core/Manifest/VersionProvider.php (Thomas Portelange)
- 2024-02-26 2b64e98af Update VersionProviderTest.php (Thomas Portelange)
- 2024-02-26 b53148c03 add deprecation, remove class_exists (Thomas Portelange)
- 2024-02-26 2600b2661 add composer-runtime-api (Thomas Portelange)
- 2024-02-26 e649310f7 Update src/Core/Manifest/VersionProvider.php (Thomas Portelange)
- 2024-02-26 a2486c085 Update src/Core/Manifest/VersionProvider.php (Thomas Portelange)
- 2024-02-26 a19671950 Update src/Core/Manifest/VersionProvider.php (Thomas Portelange)
- 2024-02-23 bc0912718 use composer runtime api (Thomas Portelange)
- 2024-02-08 e0107e020 Update src/ORM/DataQuery.php (Thomas Portelange)
- 2024-02-08 2ac68a55a rename var (Thomas Portelange)
- 2023-12-12 b6c646ffb Also remove the unused
$last_idx
assignment (Ed Wilde) - 2023-12-12 81541db89 Remove unused line in
findTab()
(Ed Wilde) - 2023-11-09 b9da08a30 Update task-not-found messaging (Andrew Paxley)
- 2023-11-09 c77a77d58 Flip canView logic and combine into taskEnabled check (Andrew Paxley)
- 2023-10-15 e5eb98cc3 Use field editorconfig when sanitising content (Bernie Hamlin)
- 2023-10-11 af536a88d Add support for braille format files (Ed Wilde)
-
silverstripe/mimevalidator (3.0.0 -> 3.1.0-beta1)
- 2023-10-11 25bfefc Add support for braille format files (Ed Wilde)
-
silverstripe/admin (2.1.0 -> 2.2.0-beta1)
- 2024-02-15 6f468685 rename var (Thomas Portelange)
- 2024-02-14 6bcccbbf use innerText, rename (Thomas Portelange)
- 2024-02-07 4c0247cd Revert "TLN Update translations (#1673)" (Steve Boyd)
- 2023-10-27 3c969733 Define a minimum width for the logo (Ed Wilde)
- 2023-10-27 050b8b93 Add the new CMS logo locally (Ed Wilde)
- 2023-10-12 7cda7c7e Update Storybook logo to the 5.1 OSS logo (Ed Wilde)
-
silverstripe/asset-admin (2.1.0 -> 2.2.0-beta1)
- 2023-12-12 4fe280ed Update sort param (Vivienne Tubbs)
-
silverstripe/cms (5.1.0 -> 5.2.0-beta1)
-
silverstripe/versioned (2.1.0 -> 2.2.0-beta1)
- 2023-10-30 7eddb6b Apply suggestions from code review (Mojmir Fendek)
- 2023-10-19 f21edce PR fixes. (Mojmir Fendek)
- 2023-10-19 5ed82fe PR fixes. (Mojmir Fendek)
- 2023-10-19 76568ac PR fixes. (Mojmir Fendek)
- 2023-10-18 d6490ce PR fixes. (Mojmir Fendek)
- 2023-10-16 d2efe5a PR fixes. (Mojmir Fendek)
- 2021-04-06 97d1ac6 PR fixes. (Mojmir Fendek)
- 2021-04-06 dd2674f Update src/RecursiveStagesService.php (Mojmir Fendek)
-
silverstripe/graphql (5.1.0 -> 5.2.0-beta1)
- 2023-10-19 addf529 add canInit method and CAN_DEV_GRAPHQL permissions (Andrew Paxley)
-
silverstripe/login-forms (5.1.0 -> 5.2.0-beta1)
- 2023-09-11 b0d6c3e Small typo in README.md (Vinnie)
-
silverstripe/tagfield (3.1.0 -> 3.2.0-beta1)
-
silverstripe/blog (4.1.0 -> 4.2.0-beta1)
-
silverstripe/spamprotection (4.1.0 -> 4.2.0-beta1)
- 2023-09-11 2210891 Revert "fix: if no spam protector set, fail sliently" (Guy Sartorelli)
-
colymba/gridfield-bulk-editing-tools (4.0.0 -> 4.0.2)
- 2023-06-01 3006076 SS5 Fix: Replace json2array with json_decode (James Cocker)
-
silverstripe/sharedraftcontent (3.1.0 -> 3.2.0-beta1)
- 2023-10-16 58a795e Fixes internal infinite recursion on Nginx/PHP-FPM environments (Nathan J. Brauer)
-
silverstripe/userforms (6.1.0 -> 6.2.0-beta1)
- 2023-11-12 26a4816 Add extension hook to control file attachments per recipient and field (Michal Kleiner)
-
dnadesign/silverstripe-elemental (5.1.0 -> 5.2.0-beta1)
- 2023-09-21 eeb4546 Revert Github specific markdown to maintain portability (Ed Wilde)
-
silverstripe/developer-docs (5.1.0 -> 5.2.0-beta1)
- 2023-12-14 844f4755 Update 05_Simple_Contact_Form.md (erangaddd)
- 2023-12-06 c516a99b Update 04_Upgrading_project.md (Tim)
- 2023-11-28 deacfc1a Fixed: link to formatting/modifying/casting variables (Patrick Côté)
- 2023-11-02 0033a971 Update a example code comment (Nate Devereux)
- 2023-10-19 3e546176 Apply suggestions from code review (Johannes Hammersen)
-
silverstripe/subsites (3.1.0 -> 3.2.0-beta1)
-
symbiote/silverstripe-gridfieldextensions (4.0.3 -> 4.0.5)
- 2023-03-07 1637e78 Make link color white. (Robin)
-
tractorcow/silverstripe-fluent (7.0.0 -> 7.1.0-beta1)
-
silverstripe/linkfield (3.0.0-beta1 -> 4.0.0-beta1)
- 2023-10-18 653071d Fixing typo of $Link.OpenInew to $Link.OpenInNew (Daniel Hurd)
- 2023-08-30 245cdcc MISC: Docs update. (Mojmir Fendek)
- 2023-07-28 437a915 MISC: File link test. (Mojmir Fendek)
- 2022-10-27 8f1a258 Add PhoneField. Add migration helpers from Linkable (#48) (Chris Penny)
- 2022-06-29 636c679 PHP 8.1: Suppress deprecation notice (Chris Penny)
- 2022-05-13 c1f42f2 Debug. (Mojmir Fendek)
- 2021-11-16 1068b78 Update namespace. Add table_name config to all models (#39) (Chris Penny)