From 3cf7153f4431b84f386d03ada532db3109b76686 Mon Sep 17 00:00:00 2001 From: Shaun Walker Date: Fri, 12 Aug 2022 18:02:45 -0400 Subject: [PATCH] resolve issue with deleted pages and modules caused by refactoring --- Oqtane.Client/UI/PageState.cs | 5 +++-- Oqtane.Client/UI/Refresh.cs | 1 - Oqtane.Client/UI/SiteRouter.razor | 32 +++++-------------------------- 3 files changed, 8 insertions(+), 30 deletions(-) diff --git a/Oqtane.Client/UI/PageState.cs b/Oqtane.Client/UI/PageState.cs index 613cacde..70cc5ef5 100644 --- a/Oqtane.Client/UI/PageState.cs +++ b/Oqtane.Client/UI/PageState.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Xml.Linq; using Oqtane.Models; @@ -25,11 +26,11 @@ namespace Oqtane.UI public List Pages { - get { return Site.Pages; } + get { return Site.Pages.Where(item => !item.IsDeleted).ToList(); } } public List Modules { - get { return Site.Modules; } + get { return Site.Modules.Where(item => !item.IsDeleted).ToList(); } } public List Languages { diff --git a/Oqtane.Client/UI/Refresh.cs b/Oqtane.Client/UI/Refresh.cs index 0c0d7871..d6cd771c 100644 --- a/Oqtane.Client/UI/Refresh.cs +++ b/Oqtane.Client/UI/Refresh.cs @@ -3,7 +3,6 @@ namespace Oqtane.UI public enum Refresh { None, - Page, Site, Application } diff --git a/Oqtane.Client/UI/SiteRouter.razor b/Oqtane.Client/UI/SiteRouter.razor index 7b572213..ef61eede 100644 --- a/Oqtane.Client/UI/SiteRouter.razor +++ b/Oqtane.Client/UI/SiteRouter.razor @@ -70,11 +70,8 @@ private async Task Refresh() { Site site; - List languages; - List pages; Page page; User user = null; - List modules; var editmode = false; var refresh = UI.Refresh.None; var lastsyncdate = DateTime.UtcNow.AddHours(-1); @@ -173,24 +170,14 @@ { if (sync.SyncEvents.Exists(item => item.EntityName == EntityNames.User && item.EntityId == user.UserId)) { + site = await SiteService.GetSiteAsync(SiteState.Alias.SiteId); refresh = UI.Refresh.Site; } } if (PageState == null || refresh == UI.Refresh.Site) { - pages = site.Pages.Where(item => !item.IsDeleted).ToList(); - languages = site.Languages; - } - else - { - pages = PageState.Pages; - languages = PageState.Languages; - } - - if (PageState == null || refresh == UI.Refresh.Site) - { - page = pages.FirstOrDefault(item => item.Path.Equals(route.PagePath, StringComparison.OrdinalIgnoreCase)); + page = site.Pages.FirstOrDefault(item => item.Path.Equals(route.PagePath, StringComparison.OrdinalIgnoreCase)); } else { @@ -200,11 +187,11 @@ // get the page if the path has changed if (page == null || page.Path != route.PagePath) { - page = pages.FirstOrDefault(item => item.Path.Equals(route.PagePath, StringComparison.OrdinalIgnoreCase)); + page = site.Pages.FirstOrDefault(item => item.Path.Equals(route.PagePath, StringComparison.OrdinalIgnoreCase)); // if the home page path does not exist then use the first page in the collection (a future enhancement would allow the admin to specify the home page) if (page == null && route.PagePath == "") { - page = pages.FirstOrDefault(); + page = site.Pages.FirstOrDefault(); } editmode = false; } @@ -221,16 +208,7 @@ { page = await ProcessPage(page, site, user); - if (PageState == null || refresh == UI.Refresh.Site) - { - modules = site.Modules.Where(item => !item.IsDeleted).ToList(); - } - else - { - modules = PageState.Modules; - } - - (page, modules) = ProcessModules(page, modules, moduleid, action, (!string.IsNullOrEmpty(page.DefaultContainerType)) ? page.DefaultContainerType : site.DefaultContainerType); + (page, site.Modules) = ProcessModules(page, site.Modules, moduleid, action, (!string.IsNullOrEmpty(page.DefaultContainerType)) ? page.DefaultContainerType : site.DefaultContainerType); _pagestate = new PageState {