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(); } } 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.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/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; } 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; }