From 91eb21d6e539b7ec79cbcf74a92938c7815e848f Mon Sep 17 00:00:00 2001 From: Emanuele Filardo Date: Sun, 29 Sep 2019 18:59:17 +0200 Subject: [PATCH 1/3] Fix for IDeletable --- .../Modules/Admin/Pages/Delete.razor | 21 +++++++++++++++-- Oqtane.Client/Modules/Admin/Pages/Edit.razor | 21 ++++++++++++++++- .../Modules/Controls/AuditInfo.razor | 23 +++++++++++++++++++ Oqtane.Server/Scripts/00.00.00.sql | 3 +++ Oqtane.Shared/Models/Page.cs | 6 +++-- 5 files changed, 69 insertions(+), 5 deletions(-) diff --git a/Oqtane.Client/Modules/Admin/Pages/Delete.razor b/Oqtane.Client/Modules/Admin/Pages/Delete.razor index 6b01b72c..5db3cd40 100644 --- a/Oqtane.Client/Modules/Admin/Pages/Delete.razor +++ b/Oqtane.Client/Modules/Admin/Pages/Delete.razor @@ -51,7 +51,7 @@ - @@ -101,12 +101,23 @@ + + + + + + + + Cancel

- + @code { public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Admin; } } @@ -128,6 +139,9 @@ DateTime createdon; string modifiedby; DateTime modifiedon; + string deletedby; + DateTime? deletedon; + string isdeleted; PermissionGrid permissiongrid; @@ -154,6 +168,9 @@ createdon = page.CreatedOn; modifiedby = page.ModifiedBy; 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 a40fa3b3..ed070e91 100644 --- a/Oqtane.Client/Modules/Admin/Pages/Edit.razor +++ b/Oqtane.Client/Modules/Admin/Pages/Edit.razor @@ -138,12 +138,23 @@ + + + + + + + + Cancel

- + @code { public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Admin; } } @@ -170,6 +181,9 @@ DateTime createdon; string modifiedby; DateTime modifiedon; + string deletedby; + DateTime? deletedon; + string isdeleted; PermissionGrid permissiongrid; @@ -212,6 +226,9 @@ createdon = page.CreatedOn; modifiedby = page.ModifiedBy; modifiedon = page.ModifiedOn; + deletedby = page.DeletedBy; + deletedon = page.DeletedOn; + isdeleted = page.IsDeleted.ToString(); } } catch (Exception ex) @@ -321,6 +338,8 @@ System.Reflection.PropertyInfo property = type.GetProperty("Panes"); page.Panes = (string)property.GetValue(Activator.CreateInstance(type), null); page.Permissions = permissiongrid.GetPermissions(); + page.IsDeleted = (isdeleted == null ? true : Boolean.Parse(isdeleted)); + await PageService.UpdatePageAsync(page); await PageService.UpdatePageOrderAsync(page.SiteId, page.ParentId); if (currentparentid == "") diff --git a/Oqtane.Client/Modules/Controls/AuditInfo.razor b/Oqtane.Client/Modules/Controls/AuditInfo.razor index 4840dc54..40938da3 100644 --- a/Oqtane.Client/Modules/Controls/AuditInfo.razor +++ b/Oqtane.Client/Modules/Controls/AuditInfo.razor @@ -18,6 +18,15 @@ [Parameter] public DateTime ModifiedOn { get; set; } + + [Parameter] + public string DeletedBy { get; set; } + + [Parameter] + public DateTime? DeletedOn { get; set; } + + [Parameter] + public bool IsDeleted { get; set; } [Parameter] public string Style { get; set; } @@ -54,5 +63,19 @@ } text += "

"; } + + if (!String.IsNullOrEmpty(DeletedBy) || DeletedOn.HasValue) + { + text += "

Deleted "; + if (!String.IsNullOrEmpty(DeletedBy)) + { + text += " by " + DeletedBy + ""; + } + if (DeletedOn != null) + { + text += " on " + DeletedOn.Value.ToString("MMM dd yyyy HH:mm:ss") + ""; + } + text += "

"; + } } } diff --git a/Oqtane.Server/Scripts/00.00.00.sql b/Oqtane.Server/Scripts/00.00.00.sql index e4bac809..fd1a0233 100644 --- a/Oqtane.Server/Scripts/00.00.00.sql +++ b/Oqtane.Server/Scripts/00.00.00.sql @@ -38,6 +38,9 @@ CREATE TABLE [dbo].[Page]( [CreatedOn] [datetime] NOT NULL, [ModifiedBy] [nvarchar](256) NOT NULL, [ModifiedOn] [datetime] NOT NULL, + [DeletedBy] [nvarchar](256) NULL, + [DeletedOn] [datetime] NULL, + [IsDeleted][bit] NOT NULL CONSTRAINT [PK_Page] PRIMARY KEY CLUSTERED ( [PageId] ASC diff --git a/Oqtane.Shared/Models/Page.cs b/Oqtane.Shared/Models/Page.cs index 49d22ba6..dbcf2f89 100644 --- a/Oqtane.Shared/Models/Page.cs +++ b/Oqtane.Shared/Models/Page.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema; namespace Oqtane.Models { - public class Page : IAuditable + public class Page : IAuditable, IDeletable { public int PageId { get; set; } public int SiteId { get; set; } @@ -22,7 +22,9 @@ namespace Oqtane.Models public DateTime CreatedOn { get; set; } public string ModifiedBy { get; set; } public DateTime ModifiedOn { get; set; } - + public string DeletedBy { get; set; } + public DateTime? DeletedOn { get; set; } + public bool IsDeleted { get; set; } [NotMapped] public string Permissions { get; set; } From 5ca63dff01fa02ee35c4759c80f0017668f9e180 Mon Sep 17 00:00:00 2001 From: Emanuele Filardo Date: Mon, 30 Sep 2019 11:09:21 +0200 Subject: [PATCH 2/3] Removed PermissionGrid from Delete.razor --- Oqtane.Client/Modules/Admin/Pages/Delete.razor | 8 -------- 1 file changed, 8 deletions(-) diff --git a/Oqtane.Client/Modules/Admin/Pages/Delete.razor b/Oqtane.Client/Modules/Admin/Pages/Delete.razor index 5db3cd40..aaeb5e63 100644 --- a/Oqtane.Client/Modules/Admin/Pages/Delete.razor +++ b/Oqtane.Client/Modules/Admin/Pages/Delete.razor @@ -93,14 +93,6 @@ - - - - - - - - From a88fd53b593d4c3fec6de6b09abbf00a4be32ef7 Mon Sep 17 00:00:00 2001 From: Emanuele Filardo Date: Mon, 30 Sep 2019 14:58:27 +0200 Subject: [PATCH 3/3] Menu hide deleted pages --- Oqtane.Client/Themes/Controls/Menu.razor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Oqtane.Client/Themes/Controls/Menu.razor b/Oqtane.Client/Themes/Controls/Menu.razor index fe380160..271ab3e1 100644 --- a/Oqtane.Client/Themes/Controls/Menu.razor +++ b/Oqtane.Client/Themes/Controls/Menu.razor @@ -17,7 +17,7 @@ menu = "
    \n"; - foreach (Page p in PageState.Pages.Where(item => item.IsNavigation)) + foreach (Page p in PageState.Pages.Where(item => item.IsNavigation && !item.IsDeleted)) { if (UserSecurity.IsAuthorized(PageState.User, "View", p.Permissions) && p.Level <= securitylevel) {