Optimizely - update 450

Release summary

New features for Optimizely Content Management System (CMS) and Optimizely TinyMCE. Bug fixes for Optimizely Content Management System (CMS) and Optimizely TinyMCE.

Released items April 18, 2023

Area ID Type Description Released
CMS-26713
chevron_right User interface language depends on culture of host.

Fixed a language issue had gadgets such as Sites, Versions, Assets and content tabs in the wrong language. For example. if you enabled the en, sv, and de languages for your website and configured the site as follows:

Host Culture
host:8000 no culture specific
host:8001 SV
host:8002 DE

When you set the Personal Language to Deutsch in My Settings and opened host:8001 => login and went into Edit view, the gadgets were in Swedish and not German, (even though the global menu and general information section of content were in German as expected).

EPiServer.CMS.Core 12.14.0; (Or a related package);
Apr 18, 2023
CMS-27037 star
chevron_right Add Length validation for ContentArea property

Length validation for ContentArea property is supported.

EPiServer.CMS.Core 12.14.0; (Or a related package);
Apr 18, 2023
CMS-26801
chevron_right CD GET does not return list block value in ContentArea inlineBlock

Fixed an issue where the CD GET did not return a list block value in ContentArea inlineBlock.

Steps to reproduce:

1. Call Content Definition API to create a block type BlockWithListBlockAndInteger, properties BlockList and Interger (or any property type)

{
    "name": "BlockWithListBlockAndInteger",
    "baseType": "Block",
    "properties": [
        {
            "name": "BlockList",
            "dataType": "PropertyCollection",
            "itemType": "EditorialBlock",
            "branchSpecific": false,
            "editSettings": {
                "visibility": "default",
                "displayName": "BlockList",
                "groupName": "Information",
                "sortOrder": 0
            }
        },
        {
            "name": "PropInteger",
            "dataType": "PropertyNumber",
            "branchSpecific": false,
            "editSettings": {
                "visibility": "default",
                "displayName": "PropInteger",
                "groupName": "Information",
                "sortOrder": 0
            }
        }
    ]
}

 2. Call Content Management API to create a ProductPage content, ContentArea has inlineBlock is BlockWithListBlockAndInteger

{
    "language": {
        "name": "sv"
    },
    "name": "InlineBlock_Page",
    "contentType": [
        "Block",
        "ProductPage"
    ],
    "parentLink": {
        "id": {{testContainerPageId}}
    },
    "status": "Published",
    "UniqueSellingPoints": {
        "value": [
            "1"
        ]
    },
    "RelatedContentArea": {
        "value": [
            {
                "displayOption": "wide",
                "tag": null,
                "inlineBlock": {
                    "contentType": [
                        "Block",
                        "BlockWithListBlockAndInteger"
                    ],
                    "blockList": {
                        "value": [
                            {
                                "name": "BlockList",
                                "propertyDataType": "PropertyBlock",
                                "propertyItemType": "EditorialBlock",
                                "mainBody": {
                                    "value": "EditorialBlock mainbody",
                                    "propertyDataType": "PropertyXhtmlString"
                                }
                            }
                        ],
                        "propertyDataType": "PropertyCollection",
                        "propertyItemType": "PropertyBlock"
                    },
                    "propInteger": {
                        "value": 1,
                        "propertyDataType": "PropertyNumber"
                    }
                }
            }
        ],
        "propertyDataType": "PropertyContentArea"
    }
}

3. Call Content Management API GET to get content in step 2

  • Observed result: The inlineBlock is correct as input
"inlineBlock": {
                    "contentType": [
                        "Block",
                        "BlockWithListBlockAndInteger"
                    ],
                    "blockList": {
                        "value": [
                            {
                                "name": "BlockList",
                                "propertyDataType": "PropertyBlock",
                                "propertyItemType": "EditorialBlock",
                                "mainBody": {
                                    "value": "EditorialBlock mainbody",
                                    "propertyDataType": "PropertyXhtmlString"
                                }
                            }
                        ],
                        "propertyDataType": "PropertyCollection",
                        "propertyItemType": "PropertyBlock"
                    },
                    "propInteger": {
                        "value": 1,
                        "propertyDataType": "PropertyNumber"
                    }
                }

4. Call Content Definition API GET to get content in step 2

  • Expected result: InlineBlock is same as result in step 3
  • Actual result: InlineBlock has blockList value is []
"inlineBlock": {
                    "contentType": [
                        "Block",
                        "BlockWithListBlockAndInteger"
                    ],
                    "blockList": {
                        "value": [],
                        "propertyDataType": "PropertyCollection",
                        "propertyItemType": "PropertyBlock"
                    },
                    "propInteger": {
                        "value": 1,
                        "propertyDataType": "PropertyNumber"
                    }
                }
EPiServer.CMS.Core 12.14.0; (Or a related package);
Apr 18, 2023
CMS-26799
chevron_right SQL exception occurred when deleting a block that was being used as inlineBlock of ContentArea

Fixed an issue where a SQL exception occurred when deleting a block that was being used as inlineBlock of ContentArea.

Steps to reproduce:

1. Create a block type (either typed on a .NET model or through Admin view) with a property (such as a string property called Heading).

2. Create a page instance of a type that contains a content area and assign an instance of an inline block using above block type, such as through the following code.

var page = _contentRepository.GetDefault<StandardPage>(ContentReference.StartPage);{{        }}
  page.Name = "ToBeDeleted";{{        }}
  page.MainContentArea = new ContentArea();
{{  page.MainContentArea.Items.Add(new ContentAreaItem { }}
    InlineBlock = _blockPropertyFactory.Create<InlineBlock>(b => b.Heading = "someting") });
    _contentRepository.Save(page, SaveAction.Publish, AccessLevel.NoAccess);

3. If you created the block type from .NET code, remove the block type from the .NET code.

4. Go to Admin view and try to delete the block.

EPiServer.CMS.Core 12.14.0; (Or a related package);
Apr 18, 2023
CMS-26933
chevron_right ContentRepository.TryGet throws NullReferenceException when passed non-registered language

Fixed an issue where passing a valid, but non registered language to ContentRepository.TryGet resulted in a NullReferenceException. The method should return false, and the out parameter should be null.

For example:

_contentRepository.TryGet(contentLink, CultureInfo.GetCultureInfo("en-NF"), out _);

 

EPiServer.CMS.Core 12.14.0; (Or a related package);
Apr 18, 2023
CMS-26591 star
chevron_right ContentTypes: (CMS) Allowed types validation

You can use IPropertyValidationSettingsRepository to define allowed types validation .

EPiServer.CMS.Core 12.14.0; (Or a related package);
Apr 18, 2023
CMS-26265
chevron_right External link resolved incorrectly in TinyMCE

Fixed an issue that caused an external link to resolve incorrectly in TinyMCE.

EPiServer.CMS.Core 12.14.0; (Or a related package);
Apr 18, 2023
CMS-26716
chevron_right Return 500 when calling CMA to create page if page type has Url property which uses wrong namespace

Fixed an incorrect 500 error: Unable to cast object of type EPiServer.Url to type System.Security.Policy.Url that should have returned 400 to say that the System.Security.Policy.Url property is not supported.

EPiServer.CMS.Core 12.14.0; (Or a related package);
Apr 18, 2023
CMS-25977
chevron_right Expired home page in non-master language doesn't show a 404 when accessing it

Fixed an issue where you could see the header and footer of a startpage, but not its content; the expired home page in non-master language did not show a 404 when it was accessed.

EPiServer.CMS.Core 12.14.0; (Or a related package);
Apr 18, 2023
CMS-26329
chevron_right EPiNumberOfVisits cookie is deleted if there are more than one Number of Visits criteria

Fixed an issue that caused EPiNumberOfVisits cookie to be deleted if there were more than one criteria on Number of Visits.

EPiServer.CMS.Core 12.14.0; (Or a related package);
Apr 18, 2023
CMS-26990
chevron_right Delayed loading for ContentArea might return empty ContentArea

Fixed an issue where a page should be rendered with start page content in ContentArea, but nothing was rendered because a delay was loaded in a non-master language, so the ContentArea that was not LanguageSpecific was empty. 

EPiServer.CMS.Core 12.14.0; (Or a related package);
Apr 18, 2023
CMS-26226
chevron_right Text in XhtmlString overlaps the following field after auto-saved in on-page edit

Fixed an issue in the on-page edit view where text in XhtmlString overlapped the following field after it was auto-saved.

EPiServer.CMS.Core 12.14.0; (Or a related package);
Apr 18, 2023
CMS-26457 star
chevron_right CMS: Add type to RegularExpressionValidationSettings

Added an optional type identifier RegularExpressionValidationSettings to specify if the regular expression should be interpreted as ECMA script or .NET. 

EPiServer.CMS.Core 12.14.0; (Or a related package);
Apr 18, 2023
CMS-26196
chevron_right Expired Page still show when StrictLanguageRouting = false

Fixed an issue where an expired page still showed when StrictLanguageRouting = false.

EPiServer.CMS.Core 12.14.0; (Or a related package);
Apr 18, 2023
CMS-26161 star
chevron_right Validate setting-based property validation

Validators (such as LengthPropertyValidator) may be activated (if configured) to validate property data after content data is sent to the back-end, and the validators validate property in line with settings provided by developers (such as  LengthValidationSettings).

Several types of settings are handled by developers only and Optimizely stores them in the database without any validation, even though data could be wrong (such as maximum < minimum). To make validation consistent and valid, Optimizely handles the validation of validator settings before saving them.

  • Maximum and Minimum may not be null at the same time.
  • Maximum should be greater than Minimum
  • For RegularExpressionValidationSettings and ItemRegularExpressionValidationSettings, the pattern used in validation process may not be null or empty.

These rules apply to the following:

  • LengthValidationSettings
  • RangeDateValidationSettings
  • RangeFloatNumberValidationSettings
  • RangeNumberValidationSettings
  • ItemLengthValidationSettings
  • ItemRangeDateValidationSettings
  • ItemRangeFloatNumberValidationSettings
  • ItemRangeNumberValidationSettings

 

EPiServer.CMS.Core 12.14.0; (Or a related package);
Apr 18, 2023
CMS-26453 star
chevron_right CMS: Add Saved property to PropertyValidationSettingsBase

Added a Saved property to PropertyValidationSettingsBase that informs when the setting was last modified.

EPiServer.CMS.Core 12.14.0; (Or a related package);
Apr 18, 2023
CMS-26893
chevron_right Could not convert page from one type to another

Fixed an issue where you could not convert a page from one page type to another.

EPiServer.CMS.Core 12.14.0; (Or a related package);
Apr 18, 2023
CMS-26945
chevron_right [TinyMCE] Support new editor options API

Added support for TinyMCE EditorOptions API:
https://www.tiny.cloud/docs/tinymce/6/apis/tinymce.editoroptions/
You can now register a custom setting as TinyMCE editor option on the server.

EPiServer.CMS.TinyMce 4.2.0; (Or a related package);
Apr 18, 2023
CMS-27173
chevron_right Set target shortcut when you drag and drop an item to TinyMCE

Fixed an issue where the created link did not set the target attribute (to "_blank" or "_top") when you dropped a shortcut page (that had the "Open in" field set) to TinyMCE.

EPiServer.CMS.TinyMce 4.2.0; (Or a related package);
Apr 18, 2023

Other product release notes

Related topics

Last updated: Apr 18, 2023