From ba18cd505b8cdf8b81434920d60a8c5499599514 Mon Sep 17 00:00:00 2001 From: sbwalker Date: Thu, 29 Jun 2023 11:20:45 -0400 Subject: [PATCH 1/4] allow FileManager to support changes in parameters --- Oqtane.Client/Modules/Controls/FileManager.razor | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/Oqtane.Client/Modules/Controls/FileManager.razor b/Oqtane.Client/Modules/Controls/FileManager.razor index cd5ad6e3..5a344a18 100644 --- a/Oqtane.Client/Modules/Controls/FileManager.razor +++ b/Oqtane.Client/Modules/Controls/FileManager.razor @@ -143,7 +143,7 @@ [Parameter] public EventCallback OnDelete { get; set; } // optional - executes a method in the calling component when a file is deleted - protected override async Task OnInitializedAsync() + protected override async Task OnParametersSetAsync() { // packages folder is a framework folder for uploading installable nuget packages if (Folder == Constants.PackagesFolder) @@ -154,11 +154,6 @@ ShowSuccess = true; } - if (!ShowFiles) - { - ShowImage = false; - } - _folders = await FolderService.GetFoldersAsync(ModuleState.SiteId); if (!string.IsNullOrEmpty(Folder) && Folder != Constants.PackagesFolder) From 0a9cbfd0e57df363840dfa3377686d20bf24b39c Mon Sep 17 00:00:00 2001 From: sbwalker Date: Thu, 29 Jun 2023 11:54:05 -0400 Subject: [PATCH 2/4] fix progress bar styling in FileManager --- .../Modules/Controls/FileManager.razor | 67 ++++++++++--------- Oqtane.Server/wwwroot/js/interop.js | 2 +- 2 files changed, 36 insertions(+), 33 deletions(-) diff --git a/Oqtane.Client/Modules/Controls/FileManager.razor b/Oqtane.Client/Modules/Controls/FileManager.razor index 5a344a18..97363437 100644 --- a/Oqtane.Client/Modules/Controls/FileManager.razor +++ b/Oqtane.Client/Modules/Controls/FileManager.razor @@ -55,7 +55,7 @@
- @if (ShowFiles && GetFileId() != -1) + @if (GetFileId() != -1) { } @@ -63,7 +63,7 @@
-
+
} @@ -382,38 +382,41 @@ } StateHasChanged(); } - } - catch (Exception ex) - { - await logger.LogError(ex, "File Upload Failed {Error}", ex.Message); - _message = Localizer["Error.File.Upload"]; - _messagetype = MessageType.Error; - } - } - else - { - _message = string.Format(Localizer["Message.File.Restricted"], restricted); - _messagetype = MessageType.Warning; - } - } - else - { - _message = Localizer["Message.File.NotSelected"]; - _messagetype = MessageType.Warning; - } - } + } + catch (Exception ex) + { + await logger.LogError(ex, "File Upload Failed {Error}", ex.Message); + _message = Localizer["Error.File.Upload"]; + _messagetype = MessageType.Error; + } + } + else + { + _message = string.Format(Localizer["Message.File.Restricted"], restricted); + _messagetype = MessageType.Warning; + } + } + else + { + _message = Localizer["Message.File.NotSelected"]; + _messagetype = MessageType.Warning; + } + } - private async Task DeleteFile() - { - _message = string.Empty; - try - { - await FileService.DeleteFileAsync(FileId); - await logger.LogInformation("File Deleted {File}", FileId); - await OnDelete.InvokeAsync(FileId); + private async Task DeleteFile() + { + _message = string.Empty; + try + { + await FileService.DeleteFileAsync(FileId); + await logger.LogInformation("File Deleted {File}", FileId); + await OnDelete.InvokeAsync(FileId); - _message = Localizer["Success.File.Delete"]; - _messagetype = MessageType.Success; + if (ShowSuccess) + { + _message = Localizer["Success.File.Delete"]; + _messagetype = MessageType.Success; + } await GetFiles(); FileId = -1; diff --git a/Oqtane.Server/wwwroot/js/interop.js b/Oqtane.Server/wwwroot/js/interop.js index 8b98c530..5ee359c8 100644 --- a/Oqtane.Server/wwwroot/js/interop.js +++ b/Oqtane.Server/wwwroot/js/interop.js @@ -291,7 +291,7 @@ Oqtane.Interop = { var progressbar = document.getElementById('ProgressBar_' + id); progressinfo.setAttribute("style", "display: inline;"); - progressbar.setAttribute("style", "width: 200px; display: inline;"); + progressbar.setAttribute("style", "width: 100%; display: inline;"); for (var i = 0; i < files.length; i++) { var FileChunk = []; From 8d3d2180673b5daacdcf2500d64b83ee1ac563da Mon Sep 17 00:00:00 2001 From: sbwalker Date: Thu, 29 Jun 2023 12:24:20 -0400 Subject: [PATCH 3/4] handle paths during Folder add/update --- Oqtane.Server/Controllers/FolderController.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Oqtane.Server/Controllers/FolderController.cs b/Oqtane.Server/Controllers/FolderController.cs index 8c805e5e..6914aac7 100644 --- a/Oqtane.Server/Controllers/FolderController.cs +++ b/Oqtane.Server/Controllers/FolderController.cs @@ -124,7 +124,10 @@ namespace Oqtane.Controllers Folder parent = _folders.GetFolder(folder.ParentId.Value); folder.Path = Utilities.UrlCombine(parent.Path, folder.Name); } - folder.Path = folder.Path + "/"; + if (!folder.Path.EndsWith("/")) + { + folder.Path = folder.Path + "/"; + } folder = _folders.AddFolder(folder); _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Folder, folder.FolderId, SyncEventActions.Create); _logger.Log(LogLevel.Information, this, LogFunction.Create, "Folder Added {Folder}", folder); @@ -166,7 +169,10 @@ namespace Oqtane.Controllers Folder parent = _folders.GetFolder(folder.ParentId.Value); folder.Path = Utilities.UrlCombine(parent.Path, folder.Name); } - folder.Path = folder.Path + "/"; + if (!folder.Path.EndsWith("/")) + { + folder.Path = folder.Path + "/"; + } Folder _folder = _folders.GetFolder(id, false); if (_folder.Path != folder.Path && Directory.Exists(_folders.GetFolderPath(_folder))) From bcb484ba62c791cbf6ddc9a9181c13b3a61a3342 Mon Sep 17 00:00:00 2001 From: Leigh Pointer Date: Thu, 29 Jun 2023 19:17:38 +0200 Subject: [PATCH 4/4] Closes #2955 User Roles Effective and Expiry date Rendering as Text Updated the User Roles to use Date control and fixed the code to accept DateTime values --- Oqtane.Client/Modules/Admin/Users/Roles.razor | 48 ++++--------------- 1 file changed, 8 insertions(+), 40 deletions(-) diff --git a/Oqtane.Client/Modules/Admin/Users/Roles.razor b/Oqtane.Client/Modules/Admin/Users/Roles.razor index 9135a9f6..8766c46a 100644 --- a/Oqtane.Client/Modules/Admin/Users/Roles.razor +++ b/Oqtane.Client/Modules/Admin/Users/Roles.razor @@ -34,13 +34,13 @@ else
- +
- +
@@ -75,8 +75,8 @@ else private string name = string.Empty; private List roles; private int roleid = -1; - private string effectivedate = string.Empty; - private string expirydate = string.Empty; + private DateTime? effectivedate = null; + private DateTime? expirydate = null; private List userroles; public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Edit; @@ -130,23 +130,8 @@ else var userrole = userroles.Where(item => item.UserId == userid && item.RoleId == roleid).FirstOrDefault(); if (userrole != null) { - if (string.IsNullOrEmpty(effectivedate)) - { - userrole.EffectiveDate = null; - } - else - { - userrole.EffectiveDate = DateTime.Parse(effectivedate); - } - - if (string.IsNullOrEmpty(expirydate)) - { - userrole.ExpiryDate = null; - } - else - { - userrole.ExpiryDate = DateTime.Parse(expirydate); - } + userrole.EffectiveDate = effectivedate; + userrole.ExpiryDate = expirydate; await UserRoleService.UpdateUserRoleAsync(userrole); } else @@ -154,25 +139,8 @@ else userrole = new UserRole(); userrole.UserId = userid; userrole.RoleId = roleid; - - if (string.IsNullOrEmpty(effectivedate)) - { - userrole.EffectiveDate = null; - } - else - { - userrole.EffectiveDate = DateTime.Parse(effectivedate); - } - - if (string.IsNullOrEmpty(expirydate)) - { - userrole.ExpiryDate = null; - } - else - { - userrole.ExpiryDate = DateTime.Parse(expirydate); - } - + userrole.EffectiveDate = effectivedate; + userrole.ExpiryDate = expirydate; await UserRoleService.AddUserRoleAsync(userrole); }