diff --git a/Oqtane.Client/Modules/Admin/Pages/Delete.razor b/Oqtane.Client/Modules/Admin/Pages/Delete.razor index 85af59df..82c0db0d 100644 --- a/Oqtane.Client/Modules/Admin/Pages/Delete.razor +++ b/Oqtane.Client/Modules/Admin/Pages/Delete.razor @@ -100,17 +100,6 @@ - - - - - - - - Cancel @@ -140,7 +129,6 @@ DateTime modifiedon; string deletedby; DateTime? deletedon; - string isdeleted; protected override void OnInitialized() { @@ -167,7 +155,6 @@ modifiedon = page.ModifiedOn; deletedby = page.DeletedBy; deletedon = page.DeletedOn; - isdeleted = page.IsDeleted.ToString(); } } catch (Exception ex) diff --git a/Oqtane.Client/Modules/Admin/Pages/Edit.razor b/Oqtane.Client/Modules/Admin/Pages/Edit.razor index fdf05187..0cfb461d 100644 --- a/Oqtane.Client/Modules/Admin/Pages/Edit.razor +++ b/Oqtane.Client/Modules/Admin/Pages/Edit.razor @@ -145,17 +145,6 @@ - - - - - - - - Cancel @@ -190,7 +179,6 @@ DateTime modifiedon; string deletedby; DateTime? deletedon; - string isdeleted; PermissionGrid permissiongrid; @@ -235,7 +223,6 @@ modifiedon = page.ModifiedOn; deletedby = page.DeletedBy; deletedon = page.DeletedOn; - isdeleted = page.IsDeleted.ToString(); } } catch (Exception ex) @@ -357,7 +344,6 @@ page.LayoutType = (layouttype == null ? "" : layouttype); page.Icon = (icon == null ? "" : icon); page.Permissions = permissiongrid.GetPermissions(); - page.IsDeleted = (isdeleted == null ? true : Boolean.Parse(isdeleted)); if (page.ThemeType == PageState.Site.DefaultThemeType) { diff --git a/Oqtane.Client/Modules/Admin/Pages/Index.razor b/Oqtane.Client/Modules/Admin/Pages/Index.razor index 376b4795..d92b1b14 100644 --- a/Oqtane.Client/Modules/Admin/Pages/Index.razor +++ b/Oqtane.Client/Modules/Admin/Pages/Index.razor @@ -1,11 +1,13 @@ @namespace Oqtane.Modules.Admin.Pages @inherits ModuleBase +@inject NavigationManager NavigationManager +@inject IPageService PageService @if (PageState.Pages != null) { - +
Name   @@ -14,11 +16,25 @@ @(new string('-', context.Level * 2))@(context.Name) - + } @code { public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Admin; } } + + private async Task Delete(Page Page) + { + try + { + Page.IsDeleted = true; + await PageService.UpdatePageAsync(Page); + NavigationManager.NavigateTo(NavigateUrl("admin/pages", Reload.Site)); + } + catch (Exception ex) + { + AddModuleMessage(ex.Message, MessageType.Error); + } + } } diff --git a/Oqtane.Client/Modules/Admin/RecycleBin/Index.razor b/Oqtane.Client/Modules/Admin/RecycleBin/Index.razor new file mode 100644 index 00000000..a63a2895 --- /dev/null +++ b/Oqtane.Client/Modules/Admin/RecycleBin/Index.razor @@ -0,0 +1,67 @@ +@namespace Oqtane.Modules.Admin.RecycleBin +@inherits ModuleBase +@inject NavigationManager NavigationManager +@inject IPageModuleService PageModuleService +@inject IPageService PageService + +@*Add TabControl with Pages and Modules tabs*@ +

Pages

+@if (pageModules.Count == 0) +{ +

No deleted pages

+} +else +{ + +
+ Name + Deletion audit +   +   +
+ + @context.Name + @context.DeletedBy - @context.DeletedOn + + + +
+} + +@code { + public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Admin; } } + + List pageModules = new List(); + + protected override void OnParametersSet() + { + pageModules = PageState.Pages.Where(item => item.IsDeleted).ToList(); + } + + private async Task Restore(Page Page) + { + try + { + Page.IsDeleted = false; + await PageService.UpdatePageAsync(Page); + NavigationManager.NavigateTo(NavigateUrl("admin/recyclebin", Reload.Site)); + } + catch (Exception ex) + { + AddModuleMessage(ex.Message, MessageType.Error); + } + } + + private async Task Delete(int PageId) + { + try + { + await PageService.DeletePageAsync(PageId); + NavigationManager.NavigateTo(NavigateUrl("admin/recyclebin", Reload.Site)); + } + catch (Exception ex) + { + AddModuleMessage(ex.Message, MessageType.Error); + } + } +} diff --git a/Oqtane.Client/Themes/Controls/ControlPanel.razor b/Oqtane.Client/Themes/Controls/ControlPanel.razor index c370012b..8bef98e7 100644 --- a/Oqtane.Client/Themes/Controls/ControlPanel.razor +++ b/Oqtane.Client/Themes/Controls/ControlPanel.razor @@ -5,6 +5,7 @@ @inject IModuleDefinitionService ModuleDefinitionService @inject IThemeService ThemeService @inject IModuleService ModuleService +@inject IPageService PageService @inject IPageModuleService PageModuleService @if (UserSecurity.IsAuthorized(PageState.User, "Edit", PageState.Page.Permissions)) @@ -23,7 +24,7 @@ - +
@@ -48,7 +49,7 @@ }