2024 CMS (SaaS) release notes

  • Updated

Follow this article to receive email notifications when Optimizely Content Management System (SaaS) features are available for 2024.

November 21, 2024

Enhancement

  • Added all supported CMS UI languages to new features, including the Visual Builder.

Bug fixes

  • CMS-37316 – Fixed an issue in LinkItem, ContentReference, and URL that caused an error to display in the console and you were not redirected to the selected content item.
  • CMS-37387 – Fixed an issue in Settings Import Data that caused the import to fail for valid data files of 175 MB. CMS supports data files up to 500MB.
  • CMS-37317 – Fixed publishing content return validation errors where only the first error was displayed.
  • CMS-37406 – Fixed an issue that prevented the Tab key from selecting categories to set focus on Cancel or OK.

October 24, 2024

Bug fixes

  • CMS-36237 – Fixed an issue where you could not save a content type with the required LinkItem property in the CMS (SaaS) API. The following content type was created through the UI and fetched from the API.
    {
      "key": "MenuItem",
      "displayName": "[Atom] Menu Item",
      "description": "",
      "baseType": "component",
      "properties": {
        "link": {
          "type": "component",
          "contentType": "link",
          "displayName": "Link",
          "description": "",
          "localized": false,
          "required": true,
          "group": "Information",
          "sortOrder": 0,
          "editorSettings": {}
        }, ...
      }
    }

    When you tried to save it back through the API, an error occurred.

  • CMS-32451 – Fixed an issue where items dragged into editors were not saved if you hovered over the TinyMCE editor during dragging the item.
  • CMS-35539 – Fixed an issue that failed to synchronize the content type when you imported a content type that contained a property where the name was the same as a reserved text for Optimizely Graph, such as RichText, ContentUrl, Link and so on, even though the job ran "successfully."
  • CMS-36274 – Fixed an issue that would not display the value of custom audience criteria with int property inside a model.
  • CMS-36464 – Fixed an issue that did not support generic database contexts for migrations using dotnet ef migrations commands, so you could not specify migrations for aspnet identity contexts.
  • CMS-36553 – Fixed an issue where the following resources for the SpellChecker plugin were not translated:
    • Ignore
    • Ignore All
  • CMS-36575 – Fixed an issue in the personalization popup window that closed after you selected a single group, instead of letting you select multiple groups.
  • CMS-36635 – Fixed an issue that prevented the importing of empty properties in a non-master language.
  • CMS-36733 – Fixed an issue by having the pattern matcher attempt to match the Index action when no pattern is specified. The default endpoint selector chooses the first matching endpoint, but the wildcard content endpoint lacked a specific pattern (such as Action=Index), so it could correspond to any function in the controller.

October 18, 2024

Enhancements

  • Moved the toolbar to one row to make it easier to scan and also aligned it with Visual Builder. See User interface. The toolbar contains features like preview and view options and lets you add items such as pages or blocks. Left to right toolbar options:
    • Toggle Navigation Pane (Content tree)
    • Create content
    • Breadcrumb (where applicable; for example, Mosey Bank / Insights)
    • Title (editable)
    • Language selector
    • Show Comments
    • Compare Different Versions
    • Toggle Preview Mode
    • Publish or Options menu
    • View menu/buttons (see below)
    • Toggle Assets Pane

    The Visual Builder toolbar has a Select view menu. (See the different icons next to the title.)

    new-toolbar.png

    VB-options.png

    There were a couple of other minor changes:

    • Hid the view button.
    • Moved the Autosave message to the left in designs.
  • Updated hostname validation to be less strict to align with the official RFC on hostname format. You can start with a non-letter. but a hostname must have between 2 and 255 characters and a well-formed standard URL. 

    Valid examples:

    • https://www.шеллы.ru
    • http://localhost:5690
    • http://localhost:56900

    Invalid examples:

    • abc_$
    • http://localhost:56907897890
    • https://www.longlonglonglonglonglonglonglonglongonglonglonglonglonglonglonglonglonglonglonglongonglonglonglonglonglonglonglonglonglonglonglongonglonglonglonglonglonglonglonglonglonglonglongonglonglonglonglonglonglonglonglonglonglonglonglonglonglongonglonglonglonglonglonglonglonglonglonglonglongonglonglonglongl.com
  • Added the ability to translate any content item from the page tree or the language selection dialog box in the edit toolbar. 
  • You are prevented from deleting a page that is configured as the start page of an application. You cannot move a start page to trash because it, or one of its subpages, is set as the start page for the ApplicationName application. To delete a start page, you must delete the application.

Bug fixes

  • CMS-36075 – Fixed an issue in the menu for TinyMCE on XhtmlString fields that contained the justify formatting instead of center alignment.
  • CMS-36041 – Fixed an issue where you could not load one or more of your requested types.

    The issue occurred because EagerCompileProxies was called in a background thread, and if there were many ContentTypes, it takes time to generate proxies. During this proxy generation, if someone accessed types using AppDomain.CurrentDomain.GetAssemblies() and subsequently attempted to access those types, an exception occurred.

  • CMS-36116 – Fixed an issue where synchronization of content types (during initialization) caused an SQL timeout exception because a list function was called when it could instead call a faster function that just checked for existence.
  • CMS-35842 – Fixed a category property validation failure that occurred when multiple content types were saved in the same batch where one of the content types had a property referencing one of the other content types. For example:
    var contentType1 = new ContentType { GUID = Guid.NewGuid(), Name = "a2c1b172cd122", Base = ContentTypeBase.Block };
    var contentType2 = new ContentType { GUID = Guid.NewGuid(), Name = "b8036a5c0442c", Base = ContentTypeBase.Block };
    
    contentType1.PropertyDefinitions.Add(new PropertyDefinition
    {
        Name = "BlockList",
        Kind = PropertyDefinitionKind.List,
        Type = new BlockPropertyDefinitionType
        {
            BlockType = new() { GUID = contentType2.GUID }
        }
    });
    
    contentTypeRepository.Save(new[] { contentType1, contentType2 }, new());
    
    Block type 'a2c1b172cd122' corresponding to property 'BlockList' on content type 'Unknown' with id '60' could not be loaded.
    
       at EPiServer.DataAbstraction.Internal.DefaultPropertyDefinitionRepository.ContainsCategoryProperty(PropertyDefinition propertyDefinition, String contentType, String& blockTypeName)
       at EPiServer.DataAbstraction.Internal.DefaultPropertyDefinitionRepository.Validate(PropertyDefinition propertyDefinition)
       at EPiServer.DataAbstraction.Internal.DefaultPropertyDefinitionRepository.Save(PropertyDefinition propertyDefinition, Boolean forceCacheClear)
       at EPiServer.DataAbstraction.PropertyDefinitionRepository.Save(PropertyDefinition propertyDefinition)
       at EPiServer.DataAccess.Internal.ContentTypeDB.<>c__DisplayClass35_0.b__0()
       at EPiServer.Data.Providers.Internal.SqlDatabaseExecutor.<>c__DisplayClass27_0.b__0()
       at EPiServer.Data.Providers.Internal.SqlDatabaseExecutor.<>c__DisplayClass28_0`1.b__0()
       at EPiServer.Data.Providers.Internal.NoRetriesPolicy.Execute[TResult](Func`1 method)
       at EPiServer.Data.Providers.Internal.SqlDatabaseExecutor.ExecuteTransaction[TResult](Func`1 action)
       at EPiServer.Data.Providers.Internal.SqlDatabaseExecutor.ExecuteTransaction(Action action)
       at EPiServer.DataAccess.Internal.ContentTypeDB.Save(IEnumerable`1 contentTypes)
       at EPiServer.DataAbstraction.Internal.DefaultContentTypeRepository.Save(IEnumerable`1 contentTypes, ContentTypeSaveOptions options)</></></>

    The referenced content type could not be loaded because the transaction was not yet committed.

  • CMS-36035 – Fixed an issue where ViewData.Model was not populated correctly when rendering ContentArea properties with HtmlHelper. The following code samples yield different values.
    @Html.PropertyFor(x = Model.CurrentPage.RelatedContentArea)

    With TagHelper the actual view model is available in ViewData.Model while the model is null with the HtmlHelper. Same thing occurred with ViewData.ModelExplorer.

  • CMS-34426 – Fixed an issue that caused an application crash due to a circular reference in a block types with block List properties.
  • CMS-35784 – Fixed an issue where the Select Content window displayed content alphabetically instead of the content tree order.
  • CMS-36248 – Fixed an issue to ensure that the Name column in the list of scheduled jobs will wrap over multiple lines on smaller screens and allocate more screen space to result in fewer lines.

September 20, 2024

Enhancements

  • Added missing translations for supported languages in various dialog boxes (primarily in Settings).
  • Added the ability to copy content (for pages, blocks, and experiences in the Visual Builder) from one of the existing language variants instead of starting from scratch. 
  • Added the ability to set a preferred user interface language in your user profile for CMS (SaaS).

CMS (SaaS) supports 12 user interface languages. English is the master language, and the others are translated languages. You can have many more content languages.

  • DA – Danish
  • DE – German
  • EN – English
  • ES – Spanish
  • FI – Finnish
  • FR – French
  • IT – Italian
  • JA – Japanese
  • NL – Dutch
  • NO – Norwegian
  • SV – Swedish
  • ZH – Simplified Chinese

Bug fixes

  • CMS-33803 – Fixed an issue where SynchronizingRolesSecurityEntityProvider::SearchAsync did not support pagination because the underlying _synchingUsersRepository did not support it, resulting in a search of the entire tblusers.
  • CMS-34233 – Fixed an issue that sorted pages incorrectly according to master language settings when they were in mixed languages.
  • CMS-35228 – Fixed an issue that sorted by status when an asset belonged to the For This Page folder and the page was moved to Trash.
  • CMS-35703 – Fixed an issue that did not always put in the URL state when content was selected in the content tree making it unavailable in the content context.
  • CMS-35781 – Fixed an issue by updating the Microsoft.Data.SqlClient dependency to 5.2.2. Earlier versions of the SQL client cause the following problem: GitHub Issue #2378.

    Microsoft.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 35 - An internal exception was caught)
    ---> System.TimeoutException: The socket couldn't connect during the expected 14965 remaining time.

  • CMS-26133 – Fixed an issue that caused invalid export packages when you used an event handler to cancel an export.
  • CMS-33674 – Fixed an issue that did not specify DateTimeKind.UTC information in ScheduledJobLogItem.CompletedUtc.
  • CMS-33926 – Fixed an issue that incorrectly displayed a warning when a reference field on another content item was originally set to being CultureSpecific, and the orphaned references were inserted during this time on translated items. When the property was converted to not being CultureSpecific the references on translations linger, even if they were updated on the main content item.
  • CMS-33987 – Fixed an issue with EPiServer.Web.SiteDefinition.Current that returned the wrong site when you set up multiple sites that contained PunyCode in domain (https://en.wikipedia.org/wiki/Punycode) of one site.
  • CMS-34052 – Fixed an issue in IUrlResolver.GetUrl() that generated the wrong URL to a master language page instead of the second-language page.
    If the second-language page had a version in the master language, the generated URL pointed to the second-language page correctly.
  • CMS-34325 – Fixed Shortcut cannot reference itself issue when you created a shortcut to the same page but in another language as an external link.
    You should append an additional query string, ?epslanguage=lang to the external link where lang is the language segment.
  • CMS-34452 – Fixed a ViewedCategoriesCriterion exception that prevented other criteria from evaluating the content when the VisitedPage event was raised from a Commerce node controller.
  • CMS-35015 – Improved performance when working with deep-nested hierarchies of ILists of blocks.
  • CMS-35079 – Fixed an issue where a setting stayed on manual when you switched to custom settings.
  • CMS-35616

    Fixed a discrepancy between using an injected instance of IUrlResolver and (abstract) UrlResolver that appended the action parameter to the URL.

    This change might produce unwanted side effects if IUrlResolver is being used and VirtualPathArguments is being passed in. Previously VirtualPathArguments.ValidateTemplate was not considered because that property is not available in UrlResolverArguments. Now templates are validated by default.
  • CMS-35643 – Fixed an invalid Norwegian translation of Manage users menu option.
  • CMS-35659 – Fixed an issue that intermixed the numbering of elements from lists in the UI when you built content with a list of blocks that had their own list.
  • CMS-35982 – Fixed a bug that prevented double-click action on a ContentReference property when it had an existing value of type block.
  • CMS-36128 – Fixed an issue where the user profile criterion threw a null reference exception when mixed-mode authentication was implemented.
  • 34221 – Fixed an issue where a value disappeared from the UI when you moved an element containing a TinyMCE property editor in the Visual Builder.
  • 12329 – Fixed an issue where LocalizationService did not support fallback to CultureInfo.InvariantCulture.
  • 30431 – Fixed a transformation error for list properties when exporting translations.
  • 32662 – Fixed an issue where you could not move or remove a single item in an IList property.
  • 35880 – Fixed an issue in the blueprint thumbnail generation causing the screenshot to fail when the browser was zoomed.
  • 34765 – Fixed an issue that caused CMS to crash when blueprints were initialized during startup.
  • 20370 – Fixed an issue that caused inconsistent routing and loading; changed EvaluatePublishDates to true as default in
  • LanguageLoaderOption to ensure that routing and content loading are consistent.
  • 35547 – Fixed an issue where blueprints with thumbnails could not be imported if the option Update existing content items with matching ID was not selected.

September 11, 2024

Enhancement

  • When creating language variants for content, you can copy content (for pages, blocks, and experiences in the Visual Builder) from one of the existing language variants instead of starting from scratch.

Bug fixes

  • CMS-35419 – Fixed an issue where the name and value were interchanged when defining a choice property in the Admin UI.
  • CMS-35793 – Fixed an issue where you could bypass the validation of Application API-key by using browser auto-complete.
  • CMS-35660 – Fixed an issue where the verification message Blueprint deleted did not show after deleting the last blueprint in the Admin UI.

August 28, 2024

Enhancements

Bug fixes

  • CMS-34255 – Fixed an issue that caused an error when importing content from CMS 12 to SaaS.
  • CMS-34425 – Fixed an issue that displayed a content type in both the allowed and restricted lists. This happened when all implementations were allowed and some implementations were restricted, causing the conflict.
  • CMS-34598 – Fixed a sign-out issue that did not redirect you to the identity provider and sign you out; it only removed the sign-in cookie.
  • CMS-34913 – Fixed an issue where you could not change Display in edit view for block types.
  • CMS-35297 – Fixed an issue that displayed device-specific preview buttons when no preview was configured in Visual Builder.
  • CMS-35530 – Fixed an issue where an image thumbnail was not shown for ContentReference properties with Images set as the only Allowed type.
  • CMS-35549 – Fixed an issue where the editor could not select a media file for ContentReference properties with Allowed types defined either in code or in admin view.

August 15, 2024

Enhancements

  • Updated the user interface translations.
  • Improved the appearance of the blueprint manager page to make it more consistent with other Settings functions.
  • Improved the appearance of the Visual Builder toolbar, removing redundant functionality.
  • Added icons in the different edit modes help you navigate to the correct version of the editor.
  • Improved error handling in the import and export functions by making the error messages persistent.
  • Added a notification when a preview is unavailable because you have not configured it yet. Follow the on-screen instructions to configure it.

Bug fixes

  • CMS-34964 – Optimizely Graph sync broke if you used reserved names when you defined custom content types. You now get an error message if you try to use reserved names.
  • CMS-34799 – Fixed an issue where the expanded TinyMCE toolbar prevented links and images from being inserted into a text area.
  • CMS-32922 – Fixed an issue where the Select Content window displayed content alphabetically instead of the content tree order.
  • CMS-32667 – Fixed an issue where the Inline block inside a ContentArea property always had IsModified set to true even when the value was unchanged.
  • CMS-32451 – Fixed an issue where items dragged into editors were not saved if you hovered over the TinyMCE editor during dragging the item.
  • CMS-30510 – Fixed an issue where the dialog box for adding to a PropertyList became too large, depending on its content (such as an XhtmlString property), and it did not display correctly in the window.