diff --git a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor index 23ed0ccc..4fbc39fd 100644 --- a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor +++ b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor @@ -8,6 +8,8 @@ @inject NavigationManager NavigationManager @inject IStringLocalizer Localizer @inject IStringLocalizer SharedLocalizer +@inject IPageModuleService PageModuleService +@inject IModuleService ModuleService @if (_initialized) { @@ -131,6 +133,20 @@ @SharedLocalizer["Cancel"] + + +
+   + @SharedLocalizer["Name"] + @Localizer["Count"] +
+ + + @(string.IsNullOrEmpty(context.Title) ? @context.Name : @context.Title ) + @context.Count + +
+
@if (_languages != null && _languages.Count > 0) { @@ -240,6 +256,7 @@ private DateTime _createdon; private string _modifiedby; private DateTime _modifiedon; + private List _groupedModules; #pragma warning disable 649 private PermissionGrid _permissionGrid; @@ -291,6 +308,19 @@ _languages = _languages.OrderBy(item => item.Name).ToList(); } + // Group modules by PageId + _groupedModules = PageState.Modules + .Where(md => md.ModuleDefinition.ModuleDefinitionId == _moduleDefinitionId) + .GroupBy(md => md.PageId) + .Select(group => new GroupedModule + { + Name = PageState.Pages.FirstOrDefault(pg => pg.PageId == group.Key)?.Name, + Title = PageState.Pages.FirstOrDefault(pg => pg.PageId == group.Key)?.Title, + PagePath = PageState.Pages.FirstOrDefault(pg => pg.PageId == group.Key)?.Path, + PageUrl = PageState.Pages.FirstOrDefault(pg => pg.PageId == group.Key)?.Url, + Count = group.Count() + }) + .ToList(); _initialized = true; } } @@ -439,5 +469,15 @@ AddModuleMessage(Localizer["Error.Validate"], MessageType.Error); } } + private string Browse(GroupedModule page) => string.IsNullOrEmpty(page.PageUrl) ? NavigateUrl(page.PagePath) : page.PageUrl; + + private class GroupedModule + { + public string Name { get; set; } + public string Title { get; set; } + public string PagePath { get; set; } + public string PageUrl { get; set; } + public int Count { get; set; } + } } diff --git a/Oqtane.Client/Resources/Modules/Admin/ModuleDefinitions/Edit.resx b/Oqtane.Client/Resources/Modules/Admin/ModuleDefinitions/Edit.resx index 87cc9a12..3f5a0042 100644 --- a/Oqtane.Client/Resources/Modules/Admin/ModuleDefinitions/Edit.resx +++ b/Oqtane.Client/Resources/Modules/Admin/ModuleDefinitions/Edit.resx @@ -240,4 +240,13 @@ Validate + + Browse + + + Module Count + + + On Pages + \ No newline at end of file