From 760fc3b8d492c997ce9ece6259118f8253c37e56 Mon Sep 17 00:00:00 2001 From: Shaun Walker Date: Wed, 26 Aug 2020 15:00:07 -0400 Subject: [PATCH] Ensure folder does not contain files during deletion and remove directory during deletion, fix validation issue in add page which would allow a user to create a page without selecting a layout, modify action dialog to use its own CSS class name so it can be styled independently from the Admin Modal, rollback "container" CSS class assigment on panes --- Oqtane.Client/Modules/Admin/Files/Edit.razor | 19 ++++++++++---- Oqtane.Client/Modules/Admin/Pages/Add.razor | 4 +-- Oqtane.Client/Modules/Admin/Site/Index.razor | 2 +- Oqtane.Client/Modules/Admin/Sites/Add.razor | 2 +- .../Modules/Controls/ActionDialog.razor | 2 +- Oqtane.Client/UI/Pane.razor | 2 +- Oqtane.Server/Controllers/FolderController.cs | 5 ++++ Oqtane.Server/wwwroot/css/app.css | 25 +++++++++++++++++++ 8 files changed, 50 insertions(+), 11 deletions(-) diff --git a/Oqtane.Client/Modules/Admin/Files/Edit.razor b/Oqtane.Client/Modules/Admin/Files/Edit.razor index 2c502690..73cac84d 100644 --- a/Oqtane.Client/Modules/Admin/Files/Edit.razor +++ b/Oqtane.Client/Modules/Admin/Files/Edit.razor @@ -1,6 +1,7 @@ @namespace Oqtane.Modules.Admin.Files @inherits ModuleBase @inject IFolderService FolderService +@inject IFileService FileService @inject NavigationManager NavigationManager @if (_folders != null) @@ -45,7 +46,7 @@ Cancel @if (!_isSystem && PageState.QueryString.ContainsKey("id")) { - + }

@@ -193,13 +194,21 @@ } if (!isparent) { - await FolderService.DeleteFolderAsync(_folderId); - await logger.LogInformation("Folder Deleted {Folder}", _folderId); - NavigationManager.NavigateTo(NavigateUrl()); + var files = await FileService.GetFilesAsync(_folderId); + if (files.Count == 0) + { + await FolderService.DeleteFolderAsync(_folderId); + await logger.LogInformation("Folder Deleted {Folder}", _folderId); + NavigationManager.NavigateTo(NavigateUrl()); + } + else + { + AddModuleMessage("Folder Has Files And Cannot Be Deleted", MessageType.Warning); + } } else { - AddModuleMessage("Folder Has Child Folders And Cannot Be Deleted", MessageType.Warning); + AddModuleMessage("Folder Has Subfolders And Cannot Be Deleted", MessageType.Warning); } } catch (Exception ex) diff --git a/Oqtane.Client/Modules/Admin/Pages/Add.razor b/Oqtane.Client/Modules/Admin/Pages/Add.razor index 9e73435b..f666441b 100644 --- a/Oqtane.Client/Modules/Admin/Pages/Add.razor +++ b/Oqtane.Client/Modules/Admin/Pages/Add.razor @@ -299,7 +299,7 @@ Page page = null; try { - if (_name != string.Empty && !string.IsNullOrEmpty(_themetype) && (_layouts.Count == 0 || !string.IsNullOrEmpty(_layouttype))) + if (_name != string.Empty && !string.IsNullOrEmpty(_themetype) && (_layouts.Count == 0 || _layouttype != "-")) { page = new Page(); page.SiteId = PageState.Page.SiteId; @@ -389,7 +389,7 @@ } else { - AddModuleMessage("You Must Provide Page Name And Theme", MessageType.Warning); + AddModuleMessage("You Must Provide Page Name And Theme/Layout", MessageType.Warning); } } diff --git a/Oqtane.Client/Modules/Admin/Site/Index.razor b/Oqtane.Client/Modules/Admin/Site/Index.razor index e483465e..6b5e98ee 100644 --- a/Oqtane.Client/Modules/Admin/Site/Index.razor +++ b/Oqtane.Client/Modules/Admin/Site/Index.razor @@ -448,7 +448,7 @@ } else { - AddModuleMessage("You Must Provide A Site Name, Alias, And Default Theme/Container", MessageType.Warning); + AddModuleMessage("You Must Provide A Site Name, Alias, And Default Theme/Layout/Container", MessageType.Warning); } } catch (Exception ex) diff --git a/Oqtane.Client/Modules/Admin/Sites/Add.razor b/Oqtane.Client/Modules/Admin/Sites/Add.razor index b2b9414d..042e168b 100644 --- a/Oqtane.Client/Modules/Admin/Sites/Add.razor +++ b/Oqtane.Client/Modules/Admin/Sites/Add.razor @@ -402,7 +402,7 @@ else } else { - AddModuleMessage("You Must Provide A Tenant, Site Name, Alias, Default Theme/Container, And Site Template", MessageType.Warning); + AddModuleMessage("You Must Provide A Tenant, Site Name, Alias, Default Theme/Layout/Container, And Site Template", MessageType.Warning); } } } diff --git a/Oqtane.Client/Modules/Controls/ActionDialog.razor b/Oqtane.Client/Modules/Controls/ActionDialog.razor index 0182fe03..fc22605c 100644 --- a/Oqtane.Client/Modules/Controls/ActionDialog.razor +++ b/Oqtane.Client/Modules/Controls/ActionDialog.razor @@ -3,7 +3,7 @@ @if (_visible) { -
+