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);
}
diff --git a/Oqtane.Client/Modules/Controls/FileManager.razor b/Oqtane.Client/Modules/Controls/FileManager.razor
index cd5ad6e3..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 @@
}
@@ -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)
@@ -387,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/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)))
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 = [];