-
Notifications
You must be signed in to change notification settings - Fork 13
Feature/cms 13 upgrade #52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| [submodule "sub/geta-foundation-core"] | ||
| path = sub/geta-foundation-core | ||
| url = https://github.com/Geta/geta-foundation-core | ||
| branch = upgrade/cms13-2 | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,52 @@ | ||
| # Changelog | ||
|
|
||
| All notable changes to this project are documented in this file. | ||
|
|
||
| The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), | ||
| and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). | ||
|
|
||
| ## [Unreleased] | ||
|
|
||
| First release targeting **.NET 10** and **Optimizely CMS 13**. This is a major version; upgrading from 1.x requires retargeting and recompiling your solution. See [Upgrading to Optimizely CMS 13](README.md#upgrading-to-optimizely-cms-13) in the README. | ||
|
|
||
| ### Changed | ||
|
|
||
| - **BREAKING:** Upgraded to .NET 10 and Optimizely CMS 13 (`EPiServer.CMS.* 13.1.0`). Earlier versions target .NET 6 / Optimizely CMS 12. | ||
| - Rewrote the category property editor as native ES6 JavaScript modules, replacing the legacy Dojo/Dijit widgets (required by the CMS 13 editing UI). | ||
|
|
||
| ### Removed | ||
|
|
||
| - **BREAKING:** `[AllowedTypes(typeof(CategoryData))]` on a `ContentReference` / `IList<ContentReference>` property no longer renders a category picker. On CMS 13 the native content reference picker does not resolve the base `CategoryData` type to its concrete category types, so the picker comes up empty. Use the `[Categories]` attribute, `[UIHint(CategoryUIHint.Categories)]`, or `[UIHint(CategoryUIHint.Category)]` instead. This is a source-only change — stored category references are unaffected and no data migration is required. | ||
| - Removed the legacy Dojo category selector widgets (`module/ClientResources/Scripts/widget/*`). | ||
|
|
||
| ## [1.1.3] - 2025-01-31 | ||
|
|
||
| - Removed an unused constructor parameter from `DefaultCategoryContentLoader` ([#41](https://github.com/Geta/geta-optimizely-categories/pull/41)). | ||
|
|
||
| ## [1.1.2] - 2025-01-23 | ||
|
|
||
| - Category hierarchy handling and routing improvements ([#30](https://github.com/Geta/geta-optimizely-categories/pull/30)). | ||
|
|
||
| ## [1.1.1] - 2023-12-27 | ||
|
|
||
| - Removed version constraints on the `Geta.Optimizely.Categories.Find` package. | ||
|
|
||
| ## [1.1.0] - 2023-12-27 | ||
|
|
||
| - Build/release pipeline improvements. | ||
|
|
||
| ## [1.0.0] - 2022-05-27 | ||
|
|
||
| - First stable release for Optimizely CMS 12 / .NET 6. | ||
|
|
||
| ## [0.0.1] - 2022-05-18 | ||
|
|
||
| - Initial release. | ||
|
|
||
| [Unreleased]: https://github.com/Geta/geta-optimizely-categories/compare/v1.1.3...HEAD | ||
| [1.1.3]: https://github.com/Geta/geta-optimizely-categories/compare/v1.1.2...v1.1.3 | ||
| [1.1.2]: https://github.com/Geta/geta-optimizely-categories/compare/v1.1.1...v1.1.2 | ||
| [1.1.1]: https://github.com/Geta/geta-optimizely-categories/compare/v1.1.0...v1.1.1 | ||
| [1.1.0]: https://github.com/Geta/geta-optimizely-categories/compare/v1.0.0...v1.1.0 | ||
| [1.0.0]: https://github.com/Geta/geta-optimizely-categories/compare/v0.0.1...v1.0.0 | ||
| [0.0.1]: https://github.com/Geta/geta-optimizely-categories/releases/tag/v0.0.1 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,42 +1,119 @@ | ||
| | ||
| Microsoft Visual Studio Solution File, Format Version 12.00 | ||
| # Visual Studio Version 17 | ||
| VisualStudioVersion = 17.2.32516.85 | ||
| MinimumVisualStudioVersion = 10.0.40219.1 | ||
| Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Geta.Optimizely.Categories", "src\Geta.Optimizely.Categories\Geta.Optimizely.Categories.csproj", "{B98D1645-CBE3-4466-BCDA-09B0E4044449}" | ||
| EndProject | ||
| Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sandbox", "sandbox", "{3139E63B-C823-4FBE-934D-F1B7CAB3D34C}" | ||
| EndProject | ||
| Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Foundation", "sandbox\Foundation\src\Foundation\Foundation.csproj", "{FD55722F-036D-45D4-84B4-3B97317DF2E7}" | ||
| EndProject | ||
| Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Geta.Optimizely.Categories.Find", "src\Geta.Optimizely.Categories.Find\Geta.Optimizely.Categories.Find.csproj", "{1B0B8069-16AE-4156-8D96-5E65B3022CC5}" | ||
| EndProject | ||
| Global | ||
| GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||
| Debug|Any CPU = Debug|Any CPU | ||
| Release|Any CPU = Release|Any CPU | ||
| EndGlobalSection | ||
| GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||
| {B98D1645-CBE3-4466-BCDA-09B0E4044449}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
| {B98D1645-CBE3-4466-BCDA-09B0E4044449}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
| {B98D1645-CBE3-4466-BCDA-09B0E4044449}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
| {B98D1645-CBE3-4466-BCDA-09B0E4044449}.Release|Any CPU.Build.0 = Release|Any CPU | ||
| {FD55722F-036D-45D4-84B4-3B97317DF2E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
| {FD55722F-036D-45D4-84B4-3B97317DF2E7}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
| {FD55722F-036D-45D4-84B4-3B97317DF2E7}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
| {FD55722F-036D-45D4-84B4-3B97317DF2E7}.Release|Any CPU.Build.0 = Release|Any CPU | ||
| {1B0B8069-16AE-4156-8D96-5E65B3022CC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
| {1B0B8069-16AE-4156-8D96-5E65B3022CC5}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
| {1B0B8069-16AE-4156-8D96-5E65B3022CC5}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
| {1B0B8069-16AE-4156-8D96-5E65B3022CC5}.Release|Any CPU.Build.0 = Release|Any CPU | ||
| EndGlobalSection | ||
| GlobalSection(SolutionProperties) = preSolution | ||
| HideSolutionNode = FALSE | ||
| EndGlobalSection | ||
| GlobalSection(NestedProjects) = preSolution | ||
| {FD55722F-036D-45D4-84B4-3B97317DF2E7} = {3139E63B-C823-4FBE-934D-F1B7CAB3D34C} | ||
| EndGlobalSection | ||
| GlobalSection(ExtensibilityGlobals) = postSolution | ||
| SolutionGuid = {EC4AAEB0-EC5C-4B9D-AEC3-D2BCB8D89226} | ||
| EndGlobalSection | ||
| EndGlobal | ||
| | ||
| Microsoft Visual Studio Solution File, Format Version 12.00 | ||
| # Visual Studio Version 17 | ||
| VisualStudioVersion = 17.2.32516.85 | ||
| MinimumVisualStudioVersion = 10.0.40219.1 | ||
| Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Geta.Optimizely.Categories", "src\Geta.Optimizely.Categories\Geta.Optimizely.Categories.csproj", "{B98D1645-CBE3-4466-BCDA-09B0E4044449}" | ||
| EndProject | ||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Geta.Optimizely.Categories.Web", "src\Geta.Optimizely.Categories.Web\Geta.Optimizely.Categories.Web.csproj", "{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}" | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The project Geta.Optimizely.Categories.Web is configured with the legacy C# project type GUID ({FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}). Since this is a modern .NET project, it should use the SDK-style project type GUID ({9A19103F-16F7-4668-BE54-9A1E7A4F7556}) for consistency and better tooling support. |
||
| EndProject | ||
| Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "geta-foundation-core", "geta-foundation-core", "{637F7C28-82DB-4DFA-ADB4-B6061538FC11}" | ||
| EndProject | ||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Foundation", "sub\geta-foundation-core\src\Foundation\Foundation.csproj", "{482B37E4-8CBF-426A-865C-8AB7E4E145DA}" | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The project Foundation is configured with the legacy C# project type GUID ({FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}). It should be updated to use the SDK-style project type GUID ({9A19103F-16F7-4668-BE54-9A1E7A4F7556}). |
||
| EndProject | ||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Foundation.AppHost", "sub\geta-foundation-core\src\Foundation.AppHost\Foundation.AppHost.csproj", "{21873564-1FF0-41B3-B9EE-3D1EAF274763}" | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The project Foundation.AppHost is configured with the legacy C# project type GUID ({FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}). It should be updated to use the SDK-style project type GUID ({9A19103F-16F7-4668-BE54-9A1E7A4F7556}). |
||
| EndProject | ||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Foundation.AppHost.ServiceDefaults", "sub\geta-foundation-core\src\Foundation.AppHost.ServiceDefaults\Foundation.AppHost.ServiceDefaults.csproj", "{FF8CF906-96C1-4205-8E53-CFE933F054A2}" | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The project Foundation.AppHost.ServiceDefaults is configured with the legacy C# project type GUID ({FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}). It should be updated to use the SDK-style project type GUID ({9A19103F-16F7-4668-BE54-9A1E7A4F7556}). |
||
| EndProject | ||
| Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0AB3BF05-4346-4AA6-1389-037BE0695223}" | ||
| EndProject | ||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Geta.Optimizely.Categories.Tests", "tests\Geta.Optimizely.Categories.Tests\Geta.Optimizely.Categories.Tests.csproj", "{08CA7750-BA09-4987-BC55-2D6F7638C381}" | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The project Geta.Optimizely.Categories.Tests is configured with the legacy C# project type GUID ({FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}). It should be updated to use the SDK-style project type GUID ({9A19103F-16F7-4668-BE54-9A1E7A4F7556}). |
||
| EndProject | ||
| Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{827E0CD3-B72D-47B6-A68D-7590B98EB39B}" | ||
| EndProject | ||
| Global | ||
| GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||
| Debug|Any CPU = Debug|Any CPU | ||
| Debug|x64 = Debug|x64 | ||
| Debug|x86 = Debug|x86 | ||
| Release|Any CPU = Release|Any CPU | ||
| Release|x64 = Release|x64 | ||
| Release|x86 = Release|x86 | ||
| EndGlobalSection | ||
| GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||
| {B98D1645-CBE3-4466-BCDA-09B0E4044449}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
| {B98D1645-CBE3-4466-BCDA-09B0E4044449}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
| {B98D1645-CBE3-4466-BCDA-09B0E4044449}.Debug|x64.ActiveCfg = Debug|Any CPU | ||
| {B98D1645-CBE3-4466-BCDA-09B0E4044449}.Debug|x64.Build.0 = Debug|Any CPU | ||
| {B98D1645-CBE3-4466-BCDA-09B0E4044449}.Debug|x86.ActiveCfg = Debug|Any CPU | ||
| {B98D1645-CBE3-4466-BCDA-09B0E4044449}.Debug|x86.Build.0 = Debug|Any CPU | ||
| {B98D1645-CBE3-4466-BCDA-09B0E4044449}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
| {B98D1645-CBE3-4466-BCDA-09B0E4044449}.Release|Any CPU.Build.0 = Release|Any CPU | ||
| {B98D1645-CBE3-4466-BCDA-09B0E4044449}.Release|x64.ActiveCfg = Release|Any CPU | ||
| {B98D1645-CBE3-4466-BCDA-09B0E4044449}.Release|x64.Build.0 = Release|Any CPU | ||
| {B98D1645-CBE3-4466-BCDA-09B0E4044449}.Release|x86.ActiveCfg = Release|Any CPU | ||
| {B98D1645-CBE3-4466-BCDA-09B0E4044449}.Release|x86.Build.0 = Release|Any CPU | ||
| {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
| {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
| {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x64.ActiveCfg = Debug|Any CPU | ||
| {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x64.Build.0 = Debug|Any CPU | ||
| {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x86.ActiveCfg = Debug|Any CPU | ||
| {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x86.Build.0 = Debug|Any CPU | ||
| {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
| {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|Any CPU.Build.0 = Release|Any CPU | ||
| {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x64.ActiveCfg = Release|Any CPU | ||
| {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x64.Build.0 = Release|Any CPU | ||
| {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x86.ActiveCfg = Release|Any CPU | ||
| {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x86.Build.0 = Release|Any CPU | ||
| {482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
| {482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
| {482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Debug|x64.ActiveCfg = Debug|Any CPU | ||
| {482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Debug|x64.Build.0 = Debug|Any CPU | ||
| {482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Debug|x86.ActiveCfg = Debug|Any CPU | ||
| {482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Debug|x86.Build.0 = Debug|Any CPU | ||
| {482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
| {482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Release|Any CPU.Build.0 = Release|Any CPU | ||
| {482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Release|x64.ActiveCfg = Release|Any CPU | ||
| {482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Release|x64.Build.0 = Release|Any CPU | ||
| {482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Release|x86.ActiveCfg = Release|Any CPU | ||
| {482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Release|x86.Build.0 = Release|Any CPU | ||
| {21873564-1FF0-41B3-B9EE-3D1EAF274763}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
| {21873564-1FF0-41B3-B9EE-3D1EAF274763}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
| {21873564-1FF0-41B3-B9EE-3D1EAF274763}.Debug|x64.ActiveCfg = Debug|Any CPU | ||
| {21873564-1FF0-41B3-B9EE-3D1EAF274763}.Debug|x64.Build.0 = Debug|Any CPU | ||
| {21873564-1FF0-41B3-B9EE-3D1EAF274763}.Debug|x86.ActiveCfg = Debug|Any CPU | ||
| {21873564-1FF0-41B3-B9EE-3D1EAF274763}.Debug|x86.Build.0 = Debug|Any CPU | ||
| {21873564-1FF0-41B3-B9EE-3D1EAF274763}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
| {21873564-1FF0-41B3-B9EE-3D1EAF274763}.Release|Any CPU.Build.0 = Release|Any CPU | ||
| {21873564-1FF0-41B3-B9EE-3D1EAF274763}.Release|x64.ActiveCfg = Release|Any CPU | ||
| {21873564-1FF0-41B3-B9EE-3D1EAF274763}.Release|x64.Build.0 = Release|Any CPU | ||
| {21873564-1FF0-41B3-B9EE-3D1EAF274763}.Release|x86.ActiveCfg = Release|Any CPU | ||
| {21873564-1FF0-41B3-B9EE-3D1EAF274763}.Release|x86.Build.0 = Release|Any CPU | ||
| {FF8CF906-96C1-4205-8E53-CFE933F054A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
| {FF8CF906-96C1-4205-8E53-CFE933F054A2}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
| {FF8CF906-96C1-4205-8E53-CFE933F054A2}.Debug|x64.ActiveCfg = Debug|Any CPU | ||
| {FF8CF906-96C1-4205-8E53-CFE933F054A2}.Debug|x64.Build.0 = Debug|Any CPU | ||
| {FF8CF906-96C1-4205-8E53-CFE933F054A2}.Debug|x86.ActiveCfg = Debug|Any CPU | ||
| {FF8CF906-96C1-4205-8E53-CFE933F054A2}.Debug|x86.Build.0 = Debug|Any CPU | ||
| {FF8CF906-96C1-4205-8E53-CFE933F054A2}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
| {FF8CF906-96C1-4205-8E53-CFE933F054A2}.Release|Any CPU.Build.0 = Release|Any CPU | ||
| {FF8CF906-96C1-4205-8E53-CFE933F054A2}.Release|x64.ActiveCfg = Release|Any CPU | ||
| {FF8CF906-96C1-4205-8E53-CFE933F054A2}.Release|x64.Build.0 = Release|Any CPU | ||
| {FF8CF906-96C1-4205-8E53-CFE933F054A2}.Release|x86.ActiveCfg = Release|Any CPU | ||
| {FF8CF906-96C1-4205-8E53-CFE933F054A2}.Release|x86.Build.0 = Release|Any CPU | ||
| {08CA7750-BA09-4987-BC55-2D6F7638C381}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
| {08CA7750-BA09-4987-BC55-2D6F7638C381}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
| {08CA7750-BA09-4987-BC55-2D6F7638C381}.Debug|x64.ActiveCfg = Debug|Any CPU | ||
| {08CA7750-BA09-4987-BC55-2D6F7638C381}.Debug|x64.Build.0 = Debug|Any CPU | ||
| {08CA7750-BA09-4987-BC55-2D6F7638C381}.Debug|x86.ActiveCfg = Debug|Any CPU | ||
| {08CA7750-BA09-4987-BC55-2D6F7638C381}.Debug|x86.Build.0 = Debug|Any CPU | ||
| {08CA7750-BA09-4987-BC55-2D6F7638C381}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
| {08CA7750-BA09-4987-BC55-2D6F7638C381}.Release|Any CPU.Build.0 = Release|Any CPU | ||
| {08CA7750-BA09-4987-BC55-2D6F7638C381}.Release|x64.ActiveCfg = Release|Any CPU | ||
| {08CA7750-BA09-4987-BC55-2D6F7638C381}.Release|x64.Build.0 = Release|Any CPU | ||
| {08CA7750-BA09-4987-BC55-2D6F7638C381}.Release|x86.ActiveCfg = Release|Any CPU | ||
| {08CA7750-BA09-4987-BC55-2D6F7638C381}.Release|x86.Build.0 = Release|Any CPU | ||
| EndGlobalSection | ||
| GlobalSection(SolutionProperties) = preSolution | ||
| HideSolutionNode = FALSE | ||
| EndGlobalSection | ||
| GlobalSection(NestedProjects) = preSolution | ||
| {482B37E4-8CBF-426A-865C-8AB7E4E145DA} = {637F7C28-82DB-4DFA-ADB4-B6061538FC11} | ||
| {21873564-1FF0-41B3-B9EE-3D1EAF274763} = {637F7C28-82DB-4DFA-ADB4-B6061538FC11} | ||
| {FF8CF906-96C1-4205-8E53-CFE933F054A2} = {637F7C28-82DB-4DFA-ADB4-B6061538FC11} | ||
| {08CA7750-BA09-4987-BC55-2D6F7638C381} = {0AB3BF05-4346-4AA6-1389-037BE0695223} | ||
| EndGlobalSection | ||
|
Comment on lines
+110
to
+115
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The solution folder src (GUID {827E0CD3-B72D-47B6-A68D-7590B98EB39B}) was added to the solution, but the main projects Geta.Optimizely.Categories (GUID {B98D1645-CBE3-4466-BCDA-09B0E4044449}) and Geta.Optimizely.Categories.Web (GUID {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}) are not nested under it in the NestedProjects section. This will cause them to appear at the root of the solution in the IDE instead of inside the src folder. |
||
| GlobalSection(ExtensibilityGlobals) = postSolution | ||
| SolutionGuid = {EC4AAEB0-EC5C-4B9D-AEC3-D2BCB8D89226} | ||
| EndGlobalSection | ||
| EndGlobal | ||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -1,8 +1,8 @@ | ||||||
| # Geta Optimizely Categories | ||||||
|
|
||||||
| [](https://sonarcloud.io/summary/new_code?id=Geta_geta-optimizely-categories) | ||||||
| [)](https://docs.microsoft.com/en-us/dotnet/) | ||||||
| [](http://world.episerver.com/cms/) | ||||||
| [)](https://docs.microsoft.com/en-us/dotnet/) | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The markdown link for the .NET platform badge is malformed and contains nested/mismatched brackets and parentheses. It should be simplified to a standard markdown link format.
Suggested change
|
||||||
| [](http://world.episerver.com/cms/) | ||||||
|
|
||||||
| ## Description | ||||||
|
|
||||||
|
|
@@ -74,6 +74,35 @@ Instead of going to admin mode to manage categories, you now do it in edit mode, | |||||
|
|
||||||
|  | ||||||
|
|
||||||
| ## Upgrading to Optimizely CMS 13 | ||||||
|
|
||||||
| This version targets .NET 10 and Optimizely CMS 13. Besides the framework upgrade (which requires retargeting and recompiling your solution), there is one behavioural breaking change to be aware of. | ||||||
|
|
||||||
| ### `[AllowedTypes(typeof(CategoryData))]` no longer renders the category picker | ||||||
|
|
||||||
| On Optimizely CMS 12 you could skip the `[Categories]` attribute and apply `[AllowedTypes(typeof(CategoryData))]` to an `IList<ContentReference>` / `ContentReference` property to reuse the native content reference editor for categories. | ||||||
|
|
||||||
| On Optimizely CMS 13 the native content reference picker no longer resolves the base `CategoryData` type to its concrete category content types, so such a property opens an **empty picker** ("No Contents"). | ||||||
|
|
||||||
| Switch the property to the package's own editor (the `[Categories]` attribute or a `CategoryUIHint`), which is unaffected: | ||||||
|
|
||||||
| ```csharp | ||||||
| // Before (CMS 12) — no longer works on CMS 13 | ||||||
| [AllowedTypes(typeof(CategoryData))] | ||||||
| public virtual IList<ContentReference> Categories { get; set; } | ||||||
|
|
||||||
| // After (CMS 13) — use one of these | ||||||
| [Categories] | ||||||
| public virtual IList<ContentReference> Categories { get; set; } | ||||||
|
|
||||||
| [UIHint(CategoryUIHint.Categories)] | ||||||
| public virtual IList<ContentReference> Categories { get; set; } | ||||||
| ``` | ||||||
|
|
||||||
| For a single category, use `[UIHint(CategoryUIHint.Category)]` on a `ContentReference` (unchanged). | ||||||
|
|
||||||
| This is a **source-only** change — stored category references are not affected and no data migration is required. | ||||||
|
|
||||||
| ## Configuration | ||||||
|
|
||||||
| - CategorySeparator - defaults to **"__"** | ||||||
|
|
@@ -118,14 +147,14 @@ There is a context menu in the selector where you quickly can create and auto pu | |||||
|
|
||||||
|  | ||||||
|
|
||||||
| If you prefer to use the native content reference list editor for your categories you can skip the CategoriesAttribute: | ||||||
| If you prefer a `UIHint` over the `[Categories]` attribute, use `CategoryUIHint.Categories` for a multi-select list: | ||||||
|
|
||||||
| ```csharp | ||||||
| [AllowedTypes(typeof(CategoryData))] | ||||||
| [UIHint(CategoryUIHint.Categories)] | ||||||
| public virtual IList<ContentReference> Categories { get; set; } | ||||||
| ``` | ||||||
|
|
||||||
|  | ||||||
| > **Note:** On Optimizely CMS 12 you could instead apply `[AllowedTypes(typeof(CategoryData))]` and reuse the native content reference editor. This is **no longer supported on Optimizely CMS 13** — see [Upgrading to Optimizely CMS 13](#upgrading-to-optimizely-cms-13). | ||||||
|
|
||||||
| If you want a single category on your content type just add a ContentReference property: | ||||||
|
|
||||||
|
|
||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tracking a temporary feature/upgrade branch (upgrade/cms13-2) in .gitmodules is risky because once the upgrade is merged and the branch is deleted, future submodule updates tracking this branch will fail. It is recommended to track a stable branch (e.g., main or master) or remove the branch configuration entirely to default to the repository's default branch.