Episerver - update 350

Release highlight

The inline block editing functionality has been moved from the Episerver Block Enhancements Labs add-on to CMS UI.

This feature allows editors to edit block content in a "quick edit view" without changing the current content context. See Linh Nguyen's blog post and the developer guide topic Inline edit blocks for more information.

Note: If you have a previous version of EPiServer.Labs.BlockEnhancements installed, you should upgrade to version 0.10.0 as that is compatible with CMS UI 11.32.0.

BlockQuickEditView.png

Release summary

New releases of Episerver CMS UI (inline block editing), Episerver Content Delivery API (constraint on Microsoft.AspNet.WebApi.WebHost has been bumped, Options method decorated adding full support for CORS), the Episerver Block Enhancements Labs add-on (inline block editing moved to CMS UI), and the Marketing Automation connector for Watson Marketing/Silverpop (API endpoint URLs updated). Bug fixes for Episerver CMS Core and Episerver Forms.

Released items January 19, 2021

Area ID Type Description Released
PPER-71
  Reusable email templates in Email Product Recommendation campaigns

Email campaigns: If you have the same styling and code in more than one campaign, you could manually change the options in each campaign. However, you can save these options to a named template so that other campaigns can use the same template. Making changes to a saved template applies to all campaigns that use the template, saving time and improving maintenance of your campaigns.

Jan 20, 2021
PPER-29
  Localized CSV reports

CSV reports from the Personalization Portal are localized (number formatting and CSV separator) according to your language setting. For example, English CSV files will have a comma (,) separator and a period (.) decimal point (such as Sep 2021, 11.49); German CSV files will have a semicolon ( separator and a comma (,) decimal separator (such as Sep 2021; 11,49). This makes it easier to import CSV files into localized versions of Excel.

Jan 20, 2021
PPER-384
  Safari browser is supported for the Personalization Portal

The two most recent stable versions of the Safari browser are supported for the Personalization Portal.

Jan 20, 2021
HAPI-1050
  Support Options method for CDA and CMA endpoints

With this feature, the Options method for CDA (Content Delivery API) and CMA (Content Management API) endpoints is decorated adding full support for CORS (Cross-Origin Resource Sharing).

Other sites can send pre-flight request (Options request) to CDA and CMA endpoints. With this, CORS will also have support for the OAuth endpoints in the CD.OAuth package.

CD endpoints will return 'x-epi-continuation' in the 'Access-Control-Expose-Headers' header.

Jan 19, 2021
CMS-17663
  Content Approval Settings: Users aren't displayed with full name in the Group list

Steps to reproduce:

  1. Users ann and ben with their full names Ann Smith and Ben Williams are available in the system. Both users ann and ben belong to the WebAdmins group.
  2. As an admin user with administer rights to page A, select page A in the page tree and click the context menu.
  3. Select Edit Approval Sequence.
  4. Select Enabled in the Approval Sequence screen.
  5. Enter 'we' into the user textbox, then select WebAdmins from the user suggestions.
  6. Move the mouse over WebAdmins.

Expected result:

A list of users belonging to the WebAdmins group is displayed. The users Ann Smith and Ben Williams are displayed with their full names in the list.

Actual result:

The users Ann Smith and Ben Williams are not displayed with full names in the list.

EPiServer.CMS.Core 11.20.3;
Jan 19, 2021
CMS-17703
  Import content: Imported content appears in 2 different locations

Steps to reproduce:

  1. Site A is configured to use site-specific assets.
  2. Page 1 has English version only, and it contains 4 related content items (blocks and an image from both "For All Sites" and "For This Site" folders).
  3. Export Page 1 with its related content items.
  4. Move all related blocks and images of Page 1 to trash.
  5. Import Page 1 to Site A with the Update existing content items with matching ID option selected.
  6. A warning "Property 'EPi:SystemReference' does not exist on destination content type" is displayed, but there are still 4 content items imported.

Expected result:

All related content items of Page 1 are in the "For All Sites" and "For This Site" folders. They should not be in the trash.

Actual result:

  • In edit view, all related content items of Page 1 still exist in the "For All Sites" and "For This Site" folders.
  • All related content items of Page 1 also still exist in trash. They appear in both trash and assets folders. It is not possible to restore them from the trash or empty the trash.
EPiServer.CMS.Core 11.20.3;
Jan 19, 2021
CMS-17804
  The Shortcut field has not default value "No shortcut" if deleting a page after setting shortcut type to "Fetch content from another content item"

Steps to reproduce:

  1. Page 1 is a product page with a published version. Page 2 is a product page and has content in the main body property. It is also published.
    Page 1 has the shortcut type "Fetch content from another item" set and links to page 2.
  2. Go to edit view and delete page 2.
  3. Empty the trash.
  4. Select page 1 in the page tree, go to All properties view and select the Settings tab.

Expected result:

The Shortcut field has value "No shortcut".

Actual result:

The Shortcut field has value: "Fetch content from another item".

EPiServer.CMS.Core 11.20.3;
Jan 19, 2021
CMS-17307
  GetReferencesToContentItems throws exception

An exception is thrown when calling ContentRepository.GetReferencesToContent(contentReference, false)

[ArgumentException: An element with the same key already exists in the dictionary.]
System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) +59
System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) +675
System.Linq.Enumerable.ToDictionary(IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer) +334
EPiServer.DataAbstraction.ReferenceInformation.CreateReferenceInformation(DataTable data, ILanguageBranchRepository languageBranchRepository, IPermanentLinkMapper permanentLinkMapper) +3124
EPiServer.Core.Internal.DefaultContentProvider.GetReferencesToContentItems(IEnumerable`1 contentLinks) +181
EPiServer.Core.Internal.<>c__DisplayClass45_0.<GetReferencesToContent>b__0(ContentProvider p) +89
EPiServer.Core.ContentProviderMap.Iterate(Action`1 contentProviderHandler) +144
EPiServer.Core.Internal.DefaultContentRepository.GetReferencesToContent(ContentReference contentLink, IEnumerable`1 descendents, Boolean includeDescendants) +205

Reported from https://world.episerver.com/forum/developer-forum/-Episerver-75-CMS/Thread-Container/2020/11/getreferencestocontentitems-throws-exception-after-upgrade-to-latest-cms-11-30-1-and-commerce-13-26-0/

EPiServer.CMS.Core 11.20.3;
Jan 19, 2021
CMS-17484
  Incorrect image URL when importing data

Steps to reproduce:

  1. On an Alloy sample site, access admin view and enable "English" - "en" and "English (United States)" - "en-US".
  2. Set up multiple sites. The main site (site A) has 'en' master language and the secondary site (site B) has 'en-US' master language. Site B just contains a start page.
  3. Under Manage Websites of admin view, select Use site-specific assets for both sites.
  4. Configure site A with Culture = en, Type = Primary, Scheme = HTTP.
    Configure site B with Culture = en-US, Type = Primary, Scheme = HTTP.
    Remember to remove the wildcard host name.
  5. Go back to edit view and select site A. In the assets pane, select Media and create a folder named image under For This Site.
  6. Upload an image to the image folder.
  7. Select a page that has version in "en" only, for example, Alloy Meet. Add the uploaded image to the Teaser image property of this page. Then publish the page.
  8. Export the Alloy Meet page from site A by going to admin view > Tools and select Export Data. Leave the default options selected and click Export content items to export the page.
  9. Import the Alloy Meet page to site B by going to admin view > Tools and select Import Data. Select the Update existing content items with matching ID check box, and select English (United States) in this step. Upload the export file.
    Please note that the page exported does not have a en-us language version! However, some content has been imported.
  10. Still in site B, check the Media assets pane. The image in the image folder has been imported.
  11. Edit the imported image, move the mouse over the Download this file to get the link of this file, it will be something like: http://testhost:1839/sitesassets/image/darwin.gif
  12. Browse to this URL _http://testhost:1839/sitesassets/image/darwin.gif_.

Expected result:

The image is displayed.

Actual result:

An "HTTP Error 404.0 - Not Found" error is displayed.

EPiServer.CMS.Core 11.20.3;
Jan 19, 2021
CMS-17535
  Database heavy query caused by QueryableNotificationUsersImpl

QueryableNotificationUsersImpl.FindAsync is used to find users based on their username, not by exact match, but by pattern match. This will basically do a full scan on AspNetUsers table.

If a customer has many users registered, it can be a major bottleneck.

EPiServer.CMS.Core 11.20.3;
Jan 19, 2021
CMS-17682
  Adopt new PN with telemetry - CMS UI

Add page view tracking to the platform navigation in CMS. This tracking only occurs if tracking is already enabled through another add-on, such as Labs.BlockEnhancements. 

EPiServer.CMS.UI 11.32.0;
Jan 19, 2021
CMS-16631
  Move InlineBlockEditing to CMS UI

Inline block editing features have been moved from the Episerver Block Enhancements Labs add-on to CMS UI.

This feature allows editors to edit block content in a "quick edit view" without changing the current content context. A dialog box with an editable form is opened by selecting Quick Edit from the block's content menu.

In the inline edit dialog box, editors can also publish the block, mark the block as Ready to Publish, or send the block to review depending on the context and user's access rights.

See Linh Nguyen's blog post and the developer guide topic Inline edit blocks for more information.

EPiServer.CMS.UI 11.32.0;
Jan 19, 2021
CMS-16651
  URL Rewrite incompatibility

This bug happens for BLOB downloads when they are sent to the client asynchronously and URL rewrite is configured to inject the Application Insights JavaScript.

It looks like it is related to Response.Flush called. When commenting out this line, it starts to work.
Similarly, when adding a Response.Flush() call after the synchronous transmit-method that will also start failing. Otherwise, when it copies with stream.CopyTo(), it will read/write to the stream without a flush and that works as expected.

Steps to reproduce

  • Install URL rewrite (older version is installed by default, it needs version 2): https://www.iis.net/downloads/microsoft/url-rewrite
  • Enable rewrite-config: C:\Windows\System32\inetsrv>appcmd unlock config /section:allowedServerVariables
  • Setup IIS site for Alloy
  • Install EnvVarProvider dll: gacutil /i Microsoft.Web.Hosting.EnvVarProvider.dll
  • Setup environment variable: APPINSIGHTS_INSTRUMENTATIONKEY = d06bb9f2-1af0-428c-baed-a9626a5fbdf1
  • Setup environment variable: APPINSIGHTS_JAVASCRIPT_ENABLED = true
  • Set connection strings to use azure resources
  • Upload a .html file to media assets
  • Download the .html file from media assets

Result
File is partially downloaded or browser reacts with a network error.

EPiServer.CMS.Core 11.20.3;
Jan 19, 2021
CMS-17070
  Incorrect behavior for alternative links

According to Google, alternative links need to be outputted in an absolute URL format. This does not seem to be the case with the built-in alternate links extension in Episerver, resulting in incorrect behavior with Google complaining.
 
Reference:
https://support.google.com/webmasters/answer/189077?hl=en

Example of output of the extension method for the episerver.com site:

<link href="/" rel="canonical" />
<link href="/" hreflang="en" rel="alternate" />
<link href="/de" hreflang="de" rel="alternate" />
<link href="/se" hreflang="sv" rel="alternate" />
<link href="/no" hreflang="no" rel="alternate" />

 
 

EPiServer.CMS.Core 11.20.3;
Jan 19, 2021
CMS-16632
  Create compatible version of Block enhancements Lab

Create a version of BlockEnhancements Lab that compatible with the CMS UI version 11.32.0 which contains the feature inline-edit moved from BlockEnhancements Lab.

EPiServer.Labs.BlockEnhancements 0.10.0;
Jan 19, 2021
HAPI-934
  Constraint on Microsoft.AspNet.WebApi.WebHost bumped to latest version

Constraint on Microsoft.AspNet.WebApi.WebHost has been bumped to the latest stable version (5.2.7).

EPiServer.ContentDeliveryApi 2.18.0;
Jan 19, 2021
MAI-1766
  Silverpop: Update API endpoints to match platform changes

The Silverpop API endpoint Urls have changed. They have been updated in the connector accordingly.

EPiServer.MarketingAutomationIntegration.Silverpop 4.3.0;
Jan 19, 2021

More on releases

Related topics

Last updated: Jan 19, 2021