Products
Packages [expand] [collapse]
Services
Released in version
11.30.0
11.29.0
11.28.0
11.27.0
11.26.0
11.25.0
11.24.2
11.24.1
11.24.0
11.23.7
11.23.6
11.23.5
11.23.4
11.23.3
11.23.2
11.23.1
11.23.0
11.22.1
11.22.0
11.21.7
11.21.6
11.21.5
11.21.3
11.21.2
11.21.1
11.20.1
11.19.1
11.19.0
11.18.0
11.17.1
11.17.0
11.16.0
11.15.0
11.14.1
11.14.0
11.13.2
11.13.1
11.13.0
11.12.1
11.12.0
11.11.0
11.10.0
11.9.1
11.9.0
11.8.0
11.7.0
11.6.0
11.5.4
11.5.3
11.5.2
11.5.1
11.5.0
11.4.8
11.4.7
11.4.6
11.4.5
11.4.4
11.4.3
11.4.2
11.4.1
11.4.0
11.3.1
11.3.0
11.2.6
11.2.5
11.2.4
11.2.3
11.2.2
11.2.1
11.2.0
11.1.1
11.1.0
10.12.8
10.12.6
10.12.5
10.12.4
10.12.3
10.12.2
10.12.1
10.12.0
10.11.1
10.11.0
10.10.6
10.10.5
10.10.4
10.10.3
10.10.2
10.10.1
10.10.0
10.9.6
10.9.5
10.9.4
10.9.3
10.9.2
10.9.1
10.9.0
10.8.0
10.7.1
10.7.0
10.6.1
10.6.0
10.5.1
10.5.0
10.4.0
10.3.1
10.3.0
10.2.0
10.1.1
10.1.0
10.0.2
9.9.2
9.9.1
9.8.4
9.8.3
9.8.2
9.8.1
9.8.0
9.7.0
9.6.2
9.6.1
9.6.0
9.5.0
9.4.4
9.4.3
9.4.2
9.4.1
9.3.7
9.3.6
9.3.5
9.3.4
9.3.3
9.3.2
9.3.1
9.3.0
9.2.0
9.1.0
8.6.2
7.19.5
7.19.4
7.19.3

Release notes for Episerver updates

This overview lists the latest changes included in Episerver updates delivered as NuGet packages and services. You can filter the information for products and versions, bug fixes and features. As a developer working with Episerver solutions, use the information to decide which updates to apply to your project. See Installing Episerver updates for information on how to install.

Note: New NuGet packages listed here may not be immediately available in the Episerver NuGet feed.

Changes in EPiServer.CMS.UI

Item type
From date
To date
Items/Page
Id Type Title Released
CMS-16067
  Sorting page and block types not working

It looks like that changing block and page type order is not possible.
Steps to reproduce:
1. Use Alloy template and then add some settings (GroupName and Order) into SiteContentType attribute of TeaserBlock

  [SiteContentType(GUID = "EB67A99A-E239-41B8-9C59-20EAA5936047", GroupName = "AAA", Order = 1)] 

2. Repeat step 1 to Button block (GroupName = "AAA", Order = 2). ContactBlock (GroupName = "AAA", Order = 1)

3. Rebuild the project and go to edit mode, then try to create a new block

Expect: In the AAA group, the order should be: ContactBlock, ButtonBlock and then TeaserBlock

Actual: those blocks above are sorted alphabetically.

Version/s: EPiServer.CMS.UI 11.30.0;
Sep 24, 2020
CMS-14949
  Put back the Globe

Bring back the Global icon

Version/s: EPiServer.CMS.UI 11.30.0;
Sep 24, 2020
CMS-16236
  Duplicated blocks are shown in Assets pane

Steps to reproduce:
1. Create a new block that contains image property such as Jumbotron block / Contact block
2. Drag and drop an image to image property.

Expected:
In assets pane, block name isn't duplicated.

Actual:
In assets pane, block name is duplicated.
Please see attachment for screenshot.

Version/s: EPiServer.CMS.UI 11.30.0;
Sep 24, 2020
CMS-16297
  Exception handling in DefaultWebSocketHandler

The problem is that an error closing the socket will not be caught, and instead cause an Unhandled Exception log, unnecessarily and confusingly.

We are seeing quite few event logs like this (WebSockets works fine, it's not a problem with the connection as such):

Exception message: The WebSocket instance cannot be used for communication because it has been transitioned into an invalid state.
at System.Web.WebSockets.AspNetWebSocket.ThrowIfAborted()
at System.Web.WebSockets.AspNetWebSocket.CloseAsyncImpl(WebSocketCloseStatus closeStatus, String statusDescription, CancellationToken cancellationToken, Boolean performValidation)
at System.Web.WebSockets.AspNetWebSocket.CloseAsync(WebSocketCloseStatus closeStatus, String statusDescription, CancellationToken cancellationToken)
at EPiServer.Shell.UI.Messaging.Internal.DefaultWebSocketHandler.<ProcessWebSocketRequestAsync>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at EPiServer.Shell.UI.Messaging.Internal.PushMessageHandler.<ProcessWebSocketRequest>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.WebSocketPipeline.<ProcessRequestImplAsync>d__9.MoveNext()

The crucial call is:

System.Web.WebSockets.AspNetWebSocket.CloseAsync() in DefaultWebSocketHandler.ProcessWebSocketRequestAsync()

The problem is that an error closing the socket will not be caught, and instead cause an Unhandled Exception log, unnecessarily and confusingly.

This is not reasonable, since an error closing it is more or less to be expected.

Version/s: EPiServer.CMS.UI 11.29.0;
Sep 14, 2020
CMS-16333
  Change order of Content Type properties in admin mode throws error

Steps to Reproduce

  1. Use an Alloy site with above versions
  2. Login and go to admin mode, Content Types tab and click on any page in Page Types. Click on Arrow Symbols.
    Expected: You can move properties up and down.
    Actual: Below error is thrown, if not detailed it gives a 500 error.

[NullReferenceException: Object reference not set to an instance of an object.]
   ASP.episerver_cms_admin_editcontenttype_aspx.__DataBind__control43(Object sender, EventArgs e) in D:\VSProjects\AlloyFind\EPiServer\CMS\Admin\EditContentType.aspx:133
   System.Web.UI.Control.OnDataBinding(EventArgs e) +84
   System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +150
   System.Web.UI.Control.DataBind() +17
   System.Web.UI.Control.DataBindChildren() +185
   System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +160
   System.Web.UI.Control.DataBind() +17
   System.Web.UI.WebControls.Repeater.CreateItem(Int32 itemIndex, ListItemType itemType, Boolean dataBind, Object dataItem) +126
   System.Web.UI.WebControls.Repeater.AddDataItemsIntoItemsArray(IEnumerable dataSource, Boolean useDataSource) +217
   System.Web.UI.WebControls.Repeater.PostGetDataAction(IEnumerable dataSource) +71
   System.Web.UI.WebControls.Repeater.CreateControlHierarchy(Boolean useDataSource) +220
   System.Web.UI.WebControls.Repeater.OnDataBinding(EventArgs e) +62
   System.Web.UI.WebControls.Repeater.DataBind() +77
   EPiServer.UI.Admin.EditContentType.SetPropertyInfo(IEnumerable`1 props) +65
   EPiServer.UI.Admin.EditContentType.UpdatePropertyDefinitionFieldOrder(Int32 propertyDefinitionId, Boolean increase) +566
   EPiServer.UI.Admin.EditContentType.MoveUp_Click(Object sender, CommandEventArgs e) +57
   System.Web.UI.WebControls.ImageButton.OnCommand(CommandEventArgs e) +111
   System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument) +182
   System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +12
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +15
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1639

Version/s: EPiServer.CMS.UI 11.29.0;
Sep 14, 2020
CMS-16206
  Re-render view on save in content delivery

Provided a script to be used in the tag helper. It re-renders properties after they have been saved, so that on-page editing always shows the latest changes.

Version/s: EPiServer.CMS.UI 11.29.0;
Sep 14, 2020
CMS-16111
  Inform the user what projects the content is part of
Version/s: EPiServer.CMS.UI 11.28.0;
Aug 09, 2020
CMS-16117
  Make project names clickable
Version/s: EPiServer.CMS.UI 11.28.0;
Aug 09, 2020
CMS-15977
  If startpage is deleted on multisite you can't add new hostname to any website

Steps to reproduce:
1. In edit mode, create two startpages.
2. Under "Manage websites" in admin mode, create two different websites and point them to the different startpages.
3. Delete one startpage and empty trash.
4. Go to the other website under "Manage websites" and try to add new hostname.

Expected:
Should be possible to add hostname.

Actual:
Complains about missing content

[ContentNotFoundException: Content with id xxx was not found]
   EPiServer.Core.Internal.DefaultContentLoader.Get(ContentReference contentLink, LoaderOptions loaderOptions) +530
   EPiServer.Core.Internal.<GetAncestors>d__24.MoveNext() +129
   System.Linq.Enumerable.Any(IEnumerable`1 source, Func`2 predicate) +120
   EPiServer.UI.Admin.SiteInformationEdit.ValidateStartPage(Object source, ServerValidateEventArgs args) +741
   System.Web.UI.WebControls.CustomValidator.OnServerValidate(String value) +173
   System.Web.UI.WebControls.BaseValidator.Validate() +136
   System.Web.UI.Page.Validate() +202
   EPiServer.UI.WebControls.ToolButton.RaisePostBackEvent(String eventArgument) +194
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5445

Version/s: EPiServer.CMS.UI 11.27.0;
Jul 14, 2020
CMS-16093
  Endless login when user does not have access to first menu item

Steps to reproduce:
1. Add custom menu provider where the first item requires specific access rights:

[MenuProvider]
    public class CustomMenuProvider : IMenuProvider
    {
        const string MainMenuPath = MenuPaths.Global + "/customSection";
 
        public IEnumerable<MenuItem> GetMenuItems()
        {
            var menuItems = new List<MenuItem>();
 
            menuItems.Add(new SectionMenuItem("Custom CMS", MainMenuPath)
            {
                SortIndex = SortIndex.Last + 10,
                IsAvailable = (request) => PrincipalInfo.HasEditAccess
            });
 
            menuItems.Add(new UrlMenuItem("CMS admin", MainMenuPath + "/item1",
                 UriSupport.ResolveUrlFromUIAsRelativeOrAbsolute("Admin/Default.aspx"))
            {
                SortIndex = 1,
                IsAvailable = (request) => PrincipalInfo.HasAdminAccess
            });
 
            menuItems.Add(new RouteMenuItem("CMS edit", MainMenuPath + "/item2",
                 new RouteValueDictionary(new { controller = "Home", moduleArea = "Cms" }))
            {
                SortIndex = 2,
            });
 
            return menuItems;
        }
    }

2. Log in with a user that does not have access to first item but has access to second item. In the example code that would mean a user that does not have access to admin mode but has access to edit mode.
3. Open global product menu and click on Custom CMS

Expected: Should go to the second item that the user have access to
Actual: User get a login page that nothing happens on after login since the user does not have access.

Version/s: EPiServer.CMS.UI 11.27.0;
Jul 14, 2020
1 2 3 4 5 6 Next