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

View File

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

View File

@ -70,11 +70,8 @@
private async Task Refresh()
{
Site site;
List<Language> languages;
List<Page> pages;
Page page;
User user = null;
List<Module> 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
{