From 18866ccfcdb35ffe9a2718a4b380738a8dd11846 Mon Sep 17 00:00:00 2001 From: sofietoft Date: Tue, 12 Nov 2024 09:55:03 +0100 Subject: [PATCH 1/5] Add new articles to release candidate guide --- 15/umbraco-cms/SUMMARY.md | 2 +- 15/umbraco-cms/release-candidate-guide.md | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/15/umbraco-cms/SUMMARY.md b/15/umbraco-cms/SUMMARY.md index 99b886c5b12..09e817fb285 100644 --- a/15/umbraco-cms/SUMMARY.md +++ b/15/umbraco-cms/SUMMARY.md @@ -109,7 +109,7 @@ * [Using Umbraco services](reference/management/using-services/README.md) * [Content Type Service](reference/management/using-services/contenttypeservice.md) * [Management API](reference/management-api/README.md) - * [External Access](reference/management-api/external-access.md) + * [External Access](reference/management-api/external-access.md) * [Cache & Distributed Cache](reference/cache/README.md) * [Cache Seeding](reference/cache/cache-seeding.md) * [Examples](reference/cache/examples/README.md) diff --git a/15/umbraco-cms/release-candidate-guide.md b/15/umbraco-cms/release-candidate-guide.md index 4d150146e46..70b836b67a9 100644 --- a/15/umbraco-cms/release-candidate-guide.md +++ b/15/umbraco-cms/release-candidate-guide.md @@ -67,6 +67,14 @@ Here is a list of all the articles that are new to this version or have been upd * [Creating a Custom Seed Key Provider](extending/creating-custom-seed-key-provider.md) * [Cache Settings](reference/configuration/cache-settings.md) * [Cache Seeding](reference/cache/cache-seeding.md) +* [API Users](fundamentals/data/users/api-users.md) +* [External Access](reference/management-api/external-access.md) + +* New UI for the Rich Text Editor: Tiptap + * [Rich Text Editor](fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/README.md) + * [Configuration](fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/configuration.md) + * [Blocks](fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/blocks.md) + * [Change Rich Text Editor UI](fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/change-rich-text-editor-ui.md) ### Updated articles From 16834e09f9ed15e4f6a9640ea13e0cfdd985e634 Mon Sep 17 00:00:00 2001 From: sofietoft Date: Tue, 12 Nov 2024 09:56:55 +0100 Subject: [PATCH 2/5] Add #6631 --- .../fundamentals/setup/server-setup/azure-web-apps.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/15/umbraco-cms/fundamentals/setup/server-setup/azure-web-apps.md b/15/umbraco-cms/fundamentals/setup/server-setup/azure-web-apps.md index c4c7e739681..83708d80af7 100644 --- a/15/umbraco-cms/fundamentals/setup/server-setup/azure-web-apps.md +++ b/15/umbraco-cms/fundamentals/setup/server-setup/azure-web-apps.md @@ -33,7 +33,9 @@ You need to add these configuration values. E.g in a json configuration source l } } ``` + You can also copy the following JSON directly into your Azure Web App configuration via the Advanced Edit feature. + ![image](https://github.com/umbraco/UmbracoDocs/assets/11179749/ae53a26b-c45a-4b71-932a-0682f3d264a8) ```json @@ -54,6 +56,8 @@ You can also copy the following JSON directly into your Azure Web App configurat } ``` +Remember to add an `ASPNETCORE_ENVIRONMENT` variable with values `Development`, `Staging`, or `Production`. + The minimum recommended Azure SQL Tier is "S2", however noticeable performance improvements are seen in higher Tiers If you are load balancing or require the scaling ("scale out") ability of Azure Web Apps then you need to consult the [Load Balancing documentation](load-balancing/). This is due to the fact that a lot more needs to be configured to support scaling/auto-scaling. From d830e884736109aa8f57582269185a8e091f7393 Mon Sep 17 00:00:00 2001 From: sofietoft Date: Tue, 12 Nov 2024 10:01:34 +0100 Subject: [PATCH 3/5] Add #6634 for 14 --- .../advanced/repositories.md | 10 ++++ .../collections/related-collections.md | 46 +++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/14/umbraco-ui-builder/advanced/repositories.md b/14/umbraco-ui-builder/advanced/repositories.md index a460ef49b59..f49db720184 100644 --- a/14/umbraco-ui-builder/advanced/repositories.md +++ b/14/umbraco-ui-builder/advanced/repositories.md @@ -45,6 +45,16 @@ public class PersonRepository : Repository { protected override long GetCountImpl(Expression> whereClause) { ... } + + protected override IEnumerable GetRelationsByParentIdImpl(int parentId, string relationAlias) + { + ... + } + + protected override TJunctionEntity SaveRelationImpl(TJunctionEntity entity) + { + ... + } } ```` diff --git a/14/umbraco-ui-builder/collections/related-collections.md b/14/umbraco-ui-builder/collections/related-collections.md index d1b40d5b54f..cb8ef2345ba 100644 --- a/14/umbraco-ui-builder/collections/related-collections.md +++ b/14/umbraco-ui-builder/collections/related-collections.md @@ -72,6 +72,7 @@ public class StudentCourse ## Defining a related collection You can get started with related collection through a two step process: + 1. Add collection definition 2. Add related collection entity picker and definition @@ -118,3 +119,48 @@ collectionConfig.Editor(editorConfig => {% hint style="info" %} **Relation Config Alias:** The relation config alias must correspond to the related collection picker field alias! (e.g. `studentsCourses`) {% endhint %} + +## Defining repository methods + +### **IEnumerable GetRelationsByParentIdImpl(int parentId, string relationAlias)** + +Retrieves the related collections based on the ID of the parent entity. + +```csharp +{ + var db = _scopeProvider.CreateScope().Database; + var sql = db.SqlContext.Sql() + .Select(new[] { "StudentId", "CourseId" } ) + .From("StudentsCourses") + .Where($"studentId = @0", parentId); + + var result = db.Fetch(sql); + + return result; +} +``` + +### **StudentCourse SaveRelationImpl(StudentCourse entity)** + +Adds a new related collection to the current parent entity. + +```csharp +{ + var db = _scopeProvider.CreateScope().Database; + + var type = entity.GetType(); + var studentId = type.GetProperty("StudentId").GetValue(entity); + var courseId = type.GetProperty("CourseId").GetValue(entity); + + // delete relation if exists + db.Execute("DELETE FROM StudentsCourses WHERE StudentId = @0 AND CourseId = @1", + studentId, + courseId); + + db.Execute("INSERT INTO StudentsCourses (StudentId, CourseId) VALUES (@0, @1)", + studentId, + courseId); + + return entity; +} +``` From 90e18a8f79d0d3b24319c650395accf53288a075 Mon Sep 17 00:00:00 2001 From: sofietoft Date: Tue, 12 Nov 2024 10:13:37 +0100 Subject: [PATCH 4/5] Update link in commerce --- 15/umbraco-commerce/key-concepts/webhooks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/15/umbraco-commerce/key-concepts/webhooks.md b/15/umbraco-commerce/key-concepts/webhooks.md index 2961df4937a..391a6d5be3d 100644 --- a/15/umbraco-commerce/key-concepts/webhooks.md +++ b/15/umbraco-commerce/key-concepts/webhooks.md @@ -4,7 +4,7 @@ description: Webhook configuration in Umbraco Commerce. # Webhooks -Umbraco Commerce makes use of the webhooks feature added in Umbraco v13. See the [Webooks documentation](/umbraco-cms/reference/webhooks) for general webooks configuration. +Umbraco Commerce makes use of the webhooks feature added in Umbraco v13. See the [Webhooks documentation](https://docs.umbraco.com/umbraco-cms/reference/webhooks) for general webooks configuration. # Events From 799445a51dd7e4dd1e6ab45243a31d1ab61ae3a5 Mon Sep 17 00:00:00 2001 From: sofietoft Date: Tue, 12 Nov 2024 10:17:25 +0100 Subject: [PATCH 5/5] Update license references --- .../getting-started/the-licensing-model.md | 4 +++- 15/umbraco-deploy/installation/the-licensing-model.md | 8 ++++++-- 15/umbraco-workflow/installation/licensing.md | 4 +++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/15/umbraco-commerce/getting-started/the-licensing-model.md b/15/umbraco-commerce/getting-started/the-licensing-model.md index 7e26653ae39..b9f20e99a53 100644 --- a/15/umbraco-commerce/getting-started/the-licensing-model.md +++ b/15/umbraco-commerce/getting-started/the-licensing-model.md @@ -62,7 +62,9 @@ Once you have received your license code it needs to be installed on your site. ```json "Umbraco": { "Licenses": { - "Umbraco.Commerce": "YOUR_LICENSE_KEY" + "Products": { + "Umbraco.Commerce": "YOUR_LICENSE_KEY" + } } } ``` diff --git a/15/umbraco-deploy/installation/the-licensing-model.md b/15/umbraco-deploy/installation/the-licensing-model.md index a7bc4929eb4..2a945852563 100644 --- a/15/umbraco-deploy/installation/the-licensing-model.md +++ b/15/umbraco-deploy/installation/the-licensing-model.md @@ -60,7 +60,9 @@ For example, in `appsettings.json`: ... }, "Licenses": { - "Umbraco.Deploy.OnPrem": "" + "Products": { + "Umbraco.Deploy.OnPrem": "" + } }, "Deploy": { ... @@ -120,7 +122,9 @@ Then configure a random string as an authorization key in configuration. This is ```json "Umbraco": { "Licenses": { - "Umbraco.Deploy.OnPrem": "" + "Products": { + "Umbraco.Deploy.OnPrem": "" + } }, "LicensesOptions": { "EnableScheduledValidation": false, diff --git a/15/umbraco-workflow/installation/licensing.md b/15/umbraco-workflow/installation/licensing.md index 87358c901b4..70332f30e35 100644 --- a/15/umbraco-workflow/installation/licensing.md +++ b/15/umbraco-workflow/installation/licensing.md @@ -17,7 +17,9 @@ Once you have received your license code it needs to be installed on your site. ```json "Umbraco": { "Licenses": { - "Umbraco.Workflow": "YOUR_LICENSE_KEY" + "Products": { + "Umbraco.Workflow": "YOUR_LICENSE_KEY" + } } } ```