diff --git a/Oqtane.Client/Modules/Admin/Pages/Edit.razor b/Oqtane.Client/Modules/Admin/Pages/Edit.razor index d3cbfbac..04084d2b 100644 --- a/Oqtane.Client/Modules/Admin/Pages/Edit.razor +++ b/Oqtane.Client/Modules/Admin/Pages/Edit.razor @@ -3,13 +3,14 @@ @inherits ModuleBase @inject NavigationManager NavigationManager @inject IPageService PageService +@inject IPageModuleService PageModuleService @inject IThemeService ThemeService @inject IStringLocalizer Localizer @inject IStringLocalizer SharedLocalizer
- + @if (_themeList != null) {
@@ -157,6 +158,25 @@ } + + @if(_pageModules != null) + { + +
+   +   + @Localizer["ModuleTitle"] + @Localizer["ModuleDefinition"] +
+ + + + @context.Title + @(context.ModuleDefinition.Name.Length > 0 ? context.ModuleDefinition.Name : context.ModuleDefinitionName) + +
+ } +
@if (_themeSettingsType != null) { @@ -178,6 +198,7 @@ private List _themes = new List(); private List _containers = new List(); private List _pageList; + private List _pageModules; private int _pageId; private string _name; private string _title; @@ -206,6 +227,7 @@ private object _themeSettings; private RenderFragment ThemeSettingsComponent { get; set; } private bool _refresh = false; + protected Page page; protected override async Task OnInitializedAsync() { @@ -213,17 +235,18 @@ { _pageList = PageState.Pages; _children = PageState.Pages.Where(item => item.ParentId == null).ToList(); - _themeList = await ThemeService.GetThemesAsync(); _themes = ThemeService.GetThemeControls(_themeList); _pageId = Int32.Parse(PageState.QueryString["id"]); - var page = PageState.Pages.FirstOrDefault(item => item.PageId == _pageId); + page = PageState.Pages.FirstOrDefault(item => item.PageId == _pageId); + if (page != null) { _name = page.Name; _title = page.Title; _path = page.Path; + _pageModules = PageState.Modules.Where(m => m.PageId == page.PageId && m.IsDeleted == false).ToList(); if (string.IsNullOrEmpty(_path)) { @@ -281,6 +304,29 @@ } } + protected void LoadModuleSettings(Module module) + { + NavigationManager.NavigateTo(EditUrl(module.ModuleId, "Settings")); + } + + private async Task DeleteModule(Module module) + { + try + { + PageModule pagemodule = await PageModuleService.GetPageModuleAsync(page.PageId,module.ModuleId); + pagemodule.IsDeleted = true; + + await PageModuleService.UpdatePageModuleAsync(pagemodule); + await logger.LogInformation(LogFunction.Update,"Module Deleted {Title}", module.Title); + NavigationManager.NavigateTo(NavigateUrl(PageState.Page.Path, true)); + } + catch (Exception ex) + { + await logger.LogError(ex, "Error Deleting Module {Title} {Error}", module.Title, ex.Message); + AddModuleMessage(Localizer["Error.Module.Delete"], MessageType.Error); + } + } + private async void ParentChanged(ChangeEventArgs e) { try diff --git a/Oqtane.Client/Resources/Modules/Admin/Pages/Edit.resx b/Oqtane.Client/Resources/Modules/Admin/Pages/Edit.resx index 55987b3c..45cfb0b2 100644 --- a/Oqtane.Client/Resources/Modules/Admin/Pages/Edit.resx +++ b/Oqtane.Client/Resources/Modules/Admin/Pages/Edit.resx @@ -231,4 +231,16 @@ Move: + + Module Name / Definition + + + Module Title + + + Page Modules + + + + \ No newline at end of file diff --git a/Oqtane.Client/Resources/SharedResources.resx b/Oqtane.Client/Resources/SharedResources.resx index ce8bc2bb..5b8a3da4 100644 --- a/Oqtane.Client/Resources/SharedResources.resx +++ b/Oqtane.Client/Resources/SharedResources.resx @@ -318,4 +318,7 @@ Blazor WebAssembly + + Settings + \ No newline at end of file