Merge pull request #2360 from sbwalker/dev

resolve issue with deleted pages and modules caused by refactoring
This commit is contained in:
Shaun Walker 2022-08-12 18:04:51 -04:00 committed by GitHub
commit ee80712c77
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 30 deletions

View File

@ -1,5 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq; using System.Xml.Linq;
using Oqtane.Models; using Oqtane.Models;
@ -25,11 +26,11 @@ namespace Oqtane.UI
public List<Page> Pages public List<Page> Pages
{ {
get { return Site.Pages; } get { return Site.Pages.Where(item => !item.IsDeleted).ToList(); }
} }
public List<Module> Modules public List<Module> Modules
{ {
get { return Site.Modules; } get { return Site.Modules.Where(item => !item.IsDeleted).ToList(); }
} }
public List<Language> Languages public List<Language> Languages
{ {

View File

@ -3,7 +3,6 @@ namespace Oqtane.UI
public enum Refresh public enum Refresh
{ {
None, None,
Page,
Site, Site,
Application Application
} }

View File

@ -70,11 +70,8 @@
private async Task Refresh() private async Task Refresh()
{ {
Site site; Site site;
List<Language> languages;
List<Page> pages;
Page page; Page page;
User user = null; User user = null;
List<Module> modules;
var editmode = false; var editmode = false;
var refresh = UI.Refresh.None; var refresh = UI.Refresh.None;
var lastsyncdate = DateTime.UtcNow.AddHours(-1); var lastsyncdate = DateTime.UtcNow.AddHours(-1);
@ -173,24 +170,14 @@
{ {
if (sync.SyncEvents.Exists(item => item.EntityName == EntityNames.User && item.EntityId == user.UserId)) if (sync.SyncEvents.Exists(item => item.EntityName == EntityNames.User && item.EntityId == user.UserId))
{ {
site = await SiteService.GetSiteAsync(SiteState.Alias.SiteId);
refresh = UI.Refresh.Site; refresh = UI.Refresh.Site;
} }
} }
if (PageState == null || refresh == UI.Refresh.Site) if (PageState == null || refresh == UI.Refresh.Site)
{ {
pages = site.Pages.Where(item => !item.IsDeleted).ToList(); page = site.Pages.FirstOrDefault(item => item.Path.Equals(route.PagePath, StringComparison.OrdinalIgnoreCase));
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));
} }
else else
{ {
@ -200,11 +187,11 @@
// get the page if the path has changed // get the page if the path has changed
if (page == null || page.Path != route.PagePath) 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 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 == "") if (page == null && route.PagePath == "")
{ {
page = pages.FirstOrDefault(); page = site.Pages.FirstOrDefault();
} }
editmode = false; editmode = false;
} }
@ -221,16 +208,7 @@
{ {
page = await ProcessPage(page, site, user); page = await ProcessPage(page, site, user);
if (PageState == null || refresh == UI.Refresh.Site) (page, site.Modules) = ProcessModules(page, site.Modules, moduleid, action, (!string.IsNullOrEmpty(page.DefaultContainerType)) ? page.DefaultContainerType : site.DefaultContainerType);
{
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);
_pagestate = new PageState _pagestate = new PageState
{ {