diff --git a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor index 0a8803bf..ffa2f1e3 100644 --- a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor +++ b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor @@ -10,6 +10,7 @@ @inject IStringLocalizer SharedLocalizer @inject IPageModuleService PageModuleService @inject IModuleService ModuleService +@inject IPageService PageService @if (_initialized) { @@ -313,8 +314,9 @@ .Select(md => md.PageId) .Distinct(); - // Filter and retrieve the corresponding pages - _pagesWithModules = PageState.Pages + // retrieve the pages which contain the module + var pages = await PageService.GetPagesAsync(PageState.Site.SiteId); + _pagesWithModules = pages .Where(pg => distinctPageIds.Contains(pg.PageId) && pg.IsDeleted == false) .ToList(); diff --git a/Oqtane.Client/Modules/Admin/Modules/Settings.razor b/Oqtane.Client/Modules/Admin/Modules/Settings.razor index 277f223b..4d39a638 100644 --- a/Oqtane.Client/Modules/Admin/Modules/Settings.razor +++ b/Oqtane.Client/Modules/Admin/Modules/Settings.razor @@ -3,6 +3,7 @@ @inherits ModuleBase @inject NavigationManager NavigationManager @inject IThemeService ThemeService +@inject IPageService PageService @inject IModuleService ModuleService @inject IPageModuleService PageModuleService @inject IStringLocalizer Localizer @@ -79,14 +80,13 @@ } else { - foreach (Page p in PageState.Pages) + foreach (Page p in _pages) { if (UserSecurity.IsAuthorized(PageState.User, PermissionNames.Edit, p.PermissionList)) { } } - } @@ -154,10 +154,12 @@ private DateTime modifiedon; private DateTime? _effectivedate = null; private DateTime? _expirydate = null; + private List _pages; - protected override void OnInitialized() + protected override async Task OnInitializedAsync() { SetModuleTitle(Localizer["ModuleSettings.Title"]); + _module = ModuleState.ModuleDefinition.Name; _title = ModuleState.Title; _moduleSettingsTitle = Localizer["ModuleSettings.Heading"]; @@ -173,8 +175,8 @@ modifiedon = ModuleState.ModifiedOn; _effectivedate = Utilities.UtcAsLocalDate(ModuleState.EffectiveDate); _expirydate = Utilities.UtcAsLocalDate(ModuleState.ExpiryDate); - - + _pages = await PageService.GetPagesAsync(PageState.Site.SiteId); + if (ModuleState.ModuleDefinition != null) { _permissionNames = ModuleState.ModuleDefinition?.PermissionNames; diff --git a/Oqtane.Client/Modules/Admin/Pages/Add.razor b/Oqtane.Client/Modules/Admin/Pages/Add.razor index 05f8209a..cc78ffab 100644 --- a/Oqtane.Client/Modules/Admin/Pages/Add.razor +++ b/Oqtane.Client/Modules/Admin/Pages/Add.razor @@ -26,7 +26,7 @@
- @foreach (Page page in PageState.Pages) + @foreach (Page page in _pages) { if (UserSecurity.IsAuthorized(PageState.User, PermissionNames.View, page.PermissionList) && page.PageId != _pageId) { @@ -302,6 +302,7 @@ private bool validated = false; private List _themes = new List(); private List _containers = new List(); + private List _pages; private int _pageId; private string _name; private string _currentparentid; @@ -345,6 +346,7 @@ { try { + _pages = await PageService.GetPagesAsync(PageState.Site.SiteId); _pageId = Int32.Parse(PageState.QueryString["id"]); _page = await PageService.GetPageAsync(_pageId); _icons = await SystemService.GetIconsAsync(); @@ -360,10 +362,10 @@ else { _parentid = _page.ParentId.ToString(); - _parent = PageState.Pages.FirstOrDefault(item => item.PageId == _page.ParentId); + _parent = _pages.FirstOrDefault(item => item.PageId == _page.ParentId); } _children = new List(); - foreach (Page p in PageState.Pages.Where(item => (_parentid == "-1" && item.ParentId == null) || (item.ParentId == int.Parse(_parentid, CultureInfo.InvariantCulture)))) + foreach (Page p in _pages.Where(item => (_parentid == "-1" && item.ParentId == null) || (item.ParentId == int.Parse(_parentid, CultureInfo.InvariantCulture)))) { if (p.PageId != _pageId && UserSecurity.IsAuthorized(PageState.User, PermissionNames.View, p.PermissionList)) { @@ -447,8 +449,8 @@ { _parentid = (string)e.Value; _children = new List(); - foreach (Page p in PageState.Pages.Where(item => (_parentid == "-1" && item.ParentId == null) || (item.ParentId == int.Parse(_parentid)))) - { + foreach (Page p in _pages.Where(item => (_parentid == "-1" && item.ParentId == null) || (item.ParentId == int.Parse(_parentid)))) + { if (p.PageId != _pageId && UserSecurity.IsAuthorized(PageState.User, PermissionNames.View, p.PermissionList)) { _children.Add(p); @@ -549,7 +551,7 @@ } else { - Page parent = PageState.Pages.FirstOrDefault(item => item.PageId == _page.ParentId); + Page parent = _pages.FirstOrDefault(item => item.PageId == _page.ParentId); if (parent.Path == string.Empty) { _page.Path = Utilities.GetFriendlyUrl(parent.Name) + "/" + Utilities.GetFriendlyUrl(_path); @@ -560,7 +562,6 @@ } } - var _pages = await PageService.GetPagesAsync(PageState.Site.SiteId); if (_pages.Any(item => item.Path == _page.Path && item.PageId != _page.PageId)) { AddModuleMessage(string.Format(Localizer["Mesage.Page.PathExists"], _path), MessageType.Warning); @@ -582,11 +583,11 @@ _page.Order = 0; break; case "<": - child = PageState.Pages.FirstOrDefault(item => item.PageId == _childid); + child = _pages.FirstOrDefault(item => item.PageId == _childid); if (child != null) _page.Order = child.Order - 1; break; case ">": - child = PageState.Pages.FirstOrDefault(item => item.PageId == _childid); + child = _pages.FirstOrDefault(item => item.PageId == _childid); if (child != null) _page.Order = child.Order + 1; break; case ">>": diff --git a/Oqtane.Client/Modules/Admin/Pages/Index.razor b/Oqtane.Client/Modules/Admin/Pages/Index.razor index 391c6c42..6ce41c5b 100644 --- a/Oqtane.Client/Modules/Admin/Pages/Index.razor +++ b/Oqtane.Client/Modules/Admin/Pages/Index.razor @@ -5,11 +5,11 @@ @inject IStringLocalizer Localizer @inject IStringLocalizer SharedLocalizer -@if (PageState.Pages != null && UserSecurity.IsAuthorized(PageState.User, RoleNames.Admin)) +@if (_pages != null && UserSecurity.IsAuthorized(PageState.User, RoleNames.Admin)) { - +
    @@ -28,6 +28,21 @@ @code { public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Admin; + private List _pages; + + protected override async Task OnInitializedAsync() + { + try + { + _pages = await PageService.GetPagesAsync(PageState.Site.SiteId); + } + catch (Exception ex) + { + await logger.LogError(ex, "Error Loading Pages {Error}", ex.Message); + AddModuleMessage(Localizer["Error.Page.Load"], MessageType.Error); + } + } + private async Task DeletePage(Page page) { try diff --git a/Oqtane.Client/Modules/Admin/Site/Index.razor b/Oqtane.Client/Modules/Admin/Site/Index.razor index 1b7f3758..62fa5fc0 100644 --- a/Oqtane.Client/Modules/Admin/Site/Index.razor +++ b/Oqtane.Client/Modules/Admin/Site/Index.razor @@ -4,6 +4,7 @@ @using Microsoft.Extensions.DependencyInjection @inject NavigationManager NavigationManager @inject ISiteService SiteService +@inject IPageService PageService @inject ITenantService TenantService @inject IDatabaseService DatabaseService @inject IAliasService AliasService @@ -29,7 +30,7 @@