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 @@
- |
+
+
+
+ |
+
+
+
+
+
+ |
+
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)
{
|