Take the community feedback survey now.

Linus Ekström
Jan 18, 2013
  6062
(0 votes)

Resetting your EPiServer views

Note: This functionality was added to "My Settings->Display Options" in EPiServer 7.5.

In EPiServer 7 it’s possible to personalize your views quite extensively. Unfortenately, there is currently no easy way of resetting your views back to “system default”. I have created a simple self executing aspx file that clears add the personalized panels for your views (Currently this applies to the dashboard and new cms edit view). Place the code below in an empty file with an .aspx extension and browse to it to clear your settings:

<%@ Page Language="C#" AutoEventWireup="true" Inherits="System.Web.UI.Page" %>
<%@ Import Namespace="EPiServer.Shell.ViewComposition" %>
<html>
<body>
    <form id="form1" runat="server">
    <div>
        Your view settings have been cleared.
    </div>
    </form>
</body>
</html>
<script runat="server">
 
        protected override void OnInit(System.EventArgs e)
        {
            var repository = EPiServer.ServiceLocation.ServiceLocator.Current.GetInstance<IPersonalizedViewSettingsRepository>();
            var settings = repository.Load(User);
 
            foreach (PersonalizedViewSettings setting in settings)
            {
                foreach(IContainer component in setting.CustomizedContainers)
                {
                    // Uncomment to delete cookies. Note that you have to add the cookie path in the code below
                    //DeleteCookiesRecursive(component);
                }
                repository.Delete(User, setting.ViewName);
                Response.Write("Deleting custom settings for view: " + setting.ViewName);
            }
        }
 
        //protected void DeleteCookiesRecursive(IComponent component)
        //{
        //    var existingCookie = Request.Cookies[component.Id.ToString()];
        //    if (existingCookie != null)
        //    {
        //        var cookie = new HttpCookie(component.Id.ToString());
        //        cookie.Expires = DateTime.Now.AddDays(-1);
        //        //TODO: If you want to clear the cookies you need to specify the correct path
        //        //We are planning to use local storage instead of cookies in the future to remove this need.
        //        cookie.Path = "/[uipath]/cms/;
        //        Response.Cookies.Add(cookie);
        //        Response.Write("Deleting cookie with id: " + component.Id);
        //    }
 
        //    IContainer container = component as IContainer;
 
        //    if (container == null)
        //    {
        //        return;
        //    }
 
        //    foreach (IComponent subComponent in container.Components)
        //    {
        //        DeleteCookiesRecursive(subComponent);
        //    }
        //}
</script>

Clear cookies

When you change the size of the components (or gadgets if you like) inside a pane we currently store these settings inside a cookie. The code above has code to remove these cookies but the path needs to match the path of the cookie to be able to remove it. This seems to be quite dynamic to I have commented out this code by default. If you want to have this feature you can uncomment this code and just set the correct path value for your site, for instance “/myuipath/cms/”.

We are planning to use local storage in the browsers to remove the need to have cookies since this add size for each request.

Jan 18, 2013

Comments

Please login to comment.
Latest blogs
A day in the life of an Optimizely OMVP - Opticon London 2025

This installment of a day in the life of an Optimizely OMVP gives an in-depth coverage of my trip down to London to attend Opticon London 2025 held...

Graham Carr | Oct 2, 2025

Optimizely Web Experimentation Using Real-Time Segments: A Step-by-Step Guide

  Introduction Personalization has become de facto standard for any digital channel to improve the user's engagement KPI’s.  Personalization uses...

Ratish | Oct 1, 2025 |

Trigger DXP Warmup Locally to Catch Bugs & Performance Issues Early

Here’s our documentation on warmup in DXP : 🔗 https://docs.developers.optimizely.com/digital-experience-platform/docs/warming-up-sites What I didn...

dada | Sep 29, 2025

Creating Opal Tools for Stott Robots Handler

This summer, the Netcel Development team and I took part in Optimizely’s Opal Hackathon. The challenge from Optimizely was to extend Opal’s abiliti...

Mark Stott | Sep 28, 2025

Integrating Commerce Search v3 (Vertex AI) with Optimizely Configured Commerce

Introduction This blog provides a technical guide for integrating Commerce Search v3, which leverages Google Cloud's Vertex AI Search, into an...

Vaibhav | Sep 27, 2025

A day in the life of an Optimizely MVP - Opti Graph Extensions add-on v1.0.0 released

I am pleased to announce that the official v1.0.0 of the Opti Graph Extensions add-on has now been released and is generally available. Refer to my...

Graham Carr | Sep 25, 2025