From 80ea5b73878a0fdb88b5229d8bbdbd10531ac06a Mon Sep 17 00:00:00 2001 From: Mike Alhayek Date: Thu, 24 Oct 2024 07:46:17 -0700 Subject: [PATCH] adding release notes --- src/docs/releases/2.1.0.md | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/docs/releases/2.1.0.md b/src/docs/releases/2.1.0.md index eb7267d8c2e..980f2169335 100644 --- a/src/docs/releases/2.1.0.md +++ b/src/docs/releases/2.1.0.md @@ -120,7 +120,6 @@ For backward compatibility, the current behavior still allows this code to retur {% assign isAuthorized = User | has_permission: "AccessAdminPanel" %} ``` - #### New Methods Added to `IRoleService` Two new methods have been introduced to the `IRoleService` interface: `ValueTask IsAdminRoleAsync(string role)` and `ValueTask IsSystemRoleAsync(string role)`. To prevent breaking changes in the current release, these methods have been provided with default implementations. @@ -165,6 +164,30 @@ The `NamedRecipeStepHandler` class has been introduced to streamline the impleme A new abstract class, `DeploymentSourceBase`, has been introduced to streamline and simplify deployment source implementations. Instead of directly implementing the `IDeploymentSource` interface, it is now recommended to inherit from `DeploymentSourceBase`. This change reduces complexity and improves the maintainability of deployment sources. +### Content Types + +#### New Event Handlers + +We have introduced new events to the `IContentDefinitionEventHandler` interface, enabling you to hook into the content definition building process before these definitions are cached. These events provide more granular control over content type definitions during their construction. + +- `BuildingContentType(BuildingContentTypeContext context)` +- `BuildingContentTypePart(BuildingContentTypePartContext context)` +- `BuildingContentPartField(BuildingContentPartFieldContext context)` +- `BuildingContentPartDefinition(BuildingContentPartDefinitionContext context)` + +#### Code-Managed Content Parts + +The new events above enable a scenario where you can inject content parts into content definitions programmatically. These parts are designated as code-managed, meaning they cannot be removed by users through the UI or modified via recipes. For an example of how to inject a code-managed part into the content definition, refer to the `DashboardPartContentTypeDefinitionHandler` class. This ensures that specific content parts are always present in the content definition, maintaining consistent structure across the application. + +### Admin Dashboard + +#### Creating Admin Widgets No Longer Requires `DashboardPart` + +Thanks to the newly introduced Code-Managed capability, it is no longer necessary to attach `DashboardPart` to an admin dashboard. To create a new admin dashboard content type, simply assign the `DashboardWidget` stereotype to the content type. This streamlined process reduces complexity while ensuring that admin widgets are properly categorized without additional manual configuration. + +!!! note + The `DashboardPart` will no longer be available as an attachable part by default. + ## Added Features ### Azure Communication Services SMS Feature