Basic Pages RecycleBin

This commit is contained in:
Emanuele Filardo
2019-10-19 01:23:46 +02:00
parent 75528d86cf
commit 5fefda60a3
6 changed files with 99 additions and 36 deletions

View File

@ -100,17 +100,6 @@
<input class="form-control" @bind="@icon" disabled />
</td>
</tr>
<tr>
<td>
<label for="Name" class="control-label">Is Deleted? </label>
</td>
<td>
<select class="form-control" @bind="@isdeleted" disabled>
<option value="True">Yes</option>
<option value="False">No</option>
</select>
</td>
</tr>
</table>
<button type="button" class="btn btn-danger" @onclick="DeletePage">Delete</button>
<NavLink class="btn btn-secondary" href="@NavigateUrl()">Cancel</NavLink>
@ -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)

View File

@ -145,17 +145,6 @@
<PermissionGrid EntityName="Page" Permissions="@permissions" @ref="permissiongrid" />
</td>
</tr>
<tr>
<td>
<label for="Name" class="control-label">Is Deleted? </label>
</td>
<td>
<select class="form-control" @bind="@isdeleted">
<option value="True">Yes</option>
<option value="False">No</option>
</select>
</td>
</tr>
</table>
<button type="button" class="btn btn-success" @onclick="SavePage">Save</button>
<NavLink class="btn btn-secondary" href="@NavigateUrl()">Cancel</NavLink>
@ -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)
{

View File

@ -1,11 +1,13 @@
@namespace Oqtane.Modules.Admin.Pages
@inherits ModuleBase
@inject NavigationManager NavigationManager
@inject IPageService PageService
@if (PageState.Pages != null)
{
<ActionLink Action="Add" Text="Add Page" Style="float: right; margin: 10px;" />
<Pager Items="@PageState.Pages">
<Pager Items="@PageState.Pages.Where(item => !item.IsDeleted)">
<Header>
<th>Name</th>
<th>&nbsp;</th>
@ -14,11 +16,25 @@
<Row>
<td>@(new string('-', context.Level * 2))@(context.Name)</td>
<td><ActionLink Action="Edit" Parameters="@($"id=" + context.PageId.ToString())" /></td>
<td><ActionLink Action="Delete" Parameters="@($"id=" + context.PageId.ToString())" Class="btn btn-danger" /></td>
<td><button @onclick="@(() => Delete(context))" class="btn btn-danger">Delete</button></td>
</Row>
</Pager>
}
@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);
}
}
}

View File

@ -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*@
<h3>Pages</h3>
@if (pageModules.Count == 0)
{
<p>No deleted pages</p>
}
else
{
<Pager Items="@pageModules">
<Header>
<th>Name</th>
<th>Deletion audit</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
</Header>
<Row>
<td>@context.Name</td>
<td>@context.DeletedBy - @context.DeletedOn</td>
<td><button @onclick="@(() => Restore(context))" class="btn btn-info" title="Restore">Restore</button></td>
<td><button @onclick="@(() => Delete(context.PageId))" class="btn btn-danger">Delete</button></td>
</Row>
</Pager>
}
@code {
public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Admin; } }
List<Page> pageModules = new List<Page>();
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);
}
}
}