From 440ef5fe658fadc9d585db3e556580cb053524cd Mon Sep 17 00:00:00 2001 From: Emanuele Filardo Date: Sat, 12 Oct 2019 12:04:09 +0200 Subject: [PATCH 1/3] Add IDeletable to PageModule --- Oqtane.Server/Scripts/00.00.00.sql | 9 ++++++--- Oqtane.Shared/Models/PageModule.cs | 5 ++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Oqtane.Server/Scripts/00.00.00.sql b/Oqtane.Server/Scripts/00.00.00.sql index db6befc2..34013954 100644 --- a/Oqtane.Server/Scripts/00.00.00.sql +++ b/Oqtane.Server/Scripts/00.00.00.sql @@ -18,7 +18,7 @@ CREATE TABLE [dbo].[Site]( [ModifiedOn] [datetime] NOT NULL, [DeletedBy] [nvarchar](256) NULL, [DeletedOn] [datetime] NULL, - [IsDeleted][bit] NOT NULL + [IsDeleted][bit] NOT NULL, CONSTRAINT [PK_Site] PRIMARY KEY CLUSTERED ( [SiteId] ASC @@ -44,7 +44,7 @@ CREATE TABLE [dbo].[Page]( [ModifiedOn] [datetime] NOT NULL, [DeletedBy] [nvarchar](256) NULL, [DeletedOn] [datetime] NULL, - [IsDeleted][bit] NOT NULL + [IsDeleted][bit] NOT NULL, CONSTRAINT [PK_Page] PRIMARY KEY CLUSTERED ( [PageId] ASC @@ -79,6 +79,9 @@ CREATE TABLE [dbo].[PageModule]( [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_PageModule] PRIMARY KEY CLUSTERED ( [PageModuleId] ASC @@ -97,7 +100,7 @@ CREATE TABLE [dbo].[User]( [ModifiedOn] [datetime] NOT NULL, [DeletedBy] [nvarchar](256) NULL, [DeletedOn] [datetime] NULL, - [IsDeleted][bit] NOT NULL + [IsDeleted][bit] NOT NULL, CONSTRAINT [PK_User] PRIMARY KEY CLUSTERED ( [UserId] ASC diff --git a/Oqtane.Shared/Models/PageModule.cs b/Oqtane.Shared/Models/PageModule.cs index ffeb1872..7812861a 100644 --- a/Oqtane.Shared/Models/PageModule.cs +++ b/Oqtane.Shared/Models/PageModule.cs @@ -2,7 +2,7 @@ namespace Oqtane.Models { - public class PageModule : IAuditable + public class PageModule : IAuditable, IDeletable { public int PageModuleId { get; set; } public int PageId { get; set; } @@ -16,6 +16,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; } public Module Module { get; set; } From 31d67e3a0e1d7b75a3a5e4e03cd8ca8337160cb8 Mon Sep 17 00:00:00 2001 From: Emanuele Filardo Date: Thu, 17 Oct 2019 00:08:42 +0200 Subject: [PATCH 2/3] fix progressindicator value on hide --- Oqtane.Client/Shared/ModuleInstance.razor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Oqtane.Client/Shared/ModuleInstance.razor b/Oqtane.Client/Shared/ModuleInstance.razor index 930b396c..c980a546 100644 --- a/Oqtane.Client/Shared/ModuleInstance.razor +++ b/Oqtane.Client/Shared/ModuleInstance.razor @@ -67,7 +67,7 @@ public void HideProgressIndicator() { - progressindicator = true; + progressindicator = false; StateHasChanged(); } } From 76d4be157a3d373c39586fa9d6f8aeb6aaeb1dbd Mon Sep 17 00:00:00 2001 From: Emanuele Filardo Date: Thu, 17 Oct 2019 11:41:08 +0200 Subject: [PATCH 3/3] Move IsDeleted condition into Pane.razor, restore themes razor and css files --- Oqtane.Client/Shared/Pane.razor | 2 +- Oqtane.Client/Themes/Controls/ModuleActions.razor | 5 +++-- Oqtane.Server/Controllers/ModuleController.cs | 1 + Oqtane.Shared/Models/Module.cs | 3 +++ 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Oqtane.Client/Shared/Pane.razor b/Oqtane.Client/Shared/Pane.razor index e1f17c41..e943529b 100644 --- a/Oqtane.Client/Shared/Pane.razor +++ b/Oqtane.Client/Shared/Pane.razor @@ -117,7 +117,7 @@ } else { - foreach (Module module in PageState.Modules.Where(item => item.Pane.ToLower() == Name.ToLower()).OrderBy(x => x.Order).ToArray()) + foreach (Module module in PageState.Modules.Where(item => item.Pane.ToLower() == Name.ToLower() && !item.IsDeleted).OrderBy(x => x.Order).ToArray()) { // check if user is authorized to view module if (UserSecurity.IsAuthorized(PageState.User, "View", module.Permissions)) diff --git a/Oqtane.Client/Themes/Controls/ModuleActions.razor b/Oqtane.Client/Themes/Controls/ModuleActions.razor index 16ded142..c0c7fe31 100644 --- a/Oqtane.Client/Themes/Controls/ModuleActions.razor +++ b/Oqtane.Client/Themes/Controls/ModuleActions.razor @@ -23,7 +23,7 @@ } @code { - List actions; + List actions; protected override void OnParametersSet() { @@ -103,7 +103,8 @@ url = EditUrl(pagemodule.ModuleId, "Export"); break; case "delete": - await PageModuleService.DeletePageModuleAsync(pagemodule.PageModuleId); + pagemodule.IsDeleted = true; + await PageModuleService.UpdatePageModuleAsync(pagemodule); await PageModuleService.UpdatePageModuleOrderAsync(pagemodule.PageId, pagemodule.Pane); break; default: // move to pane diff --git a/Oqtane.Server/Controllers/ModuleController.cs b/Oqtane.Server/Controllers/ModuleController.cs index 896daf09..98cc0567 100644 --- a/Oqtane.Server/Controllers/ModuleController.cs +++ b/Oqtane.Server/Controllers/ModuleController.cs @@ -47,6 +47,7 @@ namespace Oqtane.Controllers module.CreatedOn = pagemodule.Module.CreatedOn; module.ModifiedBy = pagemodule.Module.ModifiedBy; module.ModifiedOn = pagemodule.Module.ModifiedOn; + module.IsDeleted = pagemodule.IsDeleted; module.PageModuleId = pagemodule.PageModuleId; module.ModuleId = pagemodule.ModuleId; diff --git a/Oqtane.Shared/Models/Module.cs b/Oqtane.Shared/Models/Module.cs index 8816205a..09393b0a 100644 --- a/Oqtane.Shared/Models/Module.cs +++ b/Oqtane.Shared/Models/Module.cs @@ -16,6 +16,9 @@ namespace Oqtane.Models public string ModifiedBy { get; set; } public DateTime ModifiedOn { get; set; } + [NotMapped] + public bool IsDeleted { get; set; } + [NotMapped] public string Permissions { get; set; }