diff --git a/Oqtane.Client/Modules/Admin/Files/Edit.razor b/Oqtane.Client/Modules/Admin/Files/Edit.razor
index b3099c5e..49ac137a 100644
--- a/Oqtane.Client/Modules/Admin/Files/Edit.razor
+++ b/Oqtane.Client/Modules/Admin/Files/Edit.razor
@@ -15,22 +15,34 @@
-
+ }
@@ -229,7 +241,6 @@
if (folder != null)
{
- await FolderService.UpdateFolderOrderAsync(folder.SiteId, folder.FolderId, folder.ParentId);
await logger.LogInformation("Folder Saved {Folder}", folder);
NavigationManager.NavigateTo(NavigateUrl());
}
diff --git a/Oqtane.Client/Services/FolderService.cs b/Oqtane.Client/Services/FolderService.cs
index 556309ad..2ce045db 100644
--- a/Oqtane.Client/Services/FolderService.cs
+++ b/Oqtane.Client/Services/FolderService.cs
@@ -42,14 +42,6 @@ namespace Oqtane.Services
return await PutJsonAsync
($"{ApiUrl}/{folder.FolderId}", folder);
}
- public async Task UpdateFolderOrderAsync(int siteId, int folderId, int? parentId)
- {
- var parent = parentId == null
- ? string.Empty
- : parentId.ToString();
- await PutAsync($"{ApiUrl}/?siteid={siteId}&folderid={folderId}&parentid={parent}");
- }
-
public async Task DeleteFolderAsync(int folderId)
{
await DeleteAsync($"{ApiUrl}/{folderId}");
diff --git a/Oqtane.Client/Services/Interfaces/IFolderService.cs b/Oqtane.Client/Services/Interfaces/IFolderService.cs
index a3085f3a..35e96956 100644
--- a/Oqtane.Client/Services/Interfaces/IFolderService.cs
+++ b/Oqtane.Client/Services/Interfaces/IFolderService.cs
@@ -39,15 +39,6 @@ namespace Oqtane.Services
///
Task UpdateFolderAsync(Folder folder);
- ///
- /// Update the internal Folder-Order within the list of Folders.
- ///
- /// Reference to the
- /// Reference to a for the security check
- /// Reference to the Parent or null - this Folders children will be re-sorted.
- ///
- Task UpdateFolderOrderAsync(int siteId, int folderId, int? parentId);
-
///
/// Delete a
///
diff --git a/Oqtane.Server/Controllers/FolderController.cs b/Oqtane.Server/Controllers/FolderController.cs
index 866f649b..12a9c3fa 100644
--- a/Oqtane.Server/Controllers/FolderController.cs
+++ b/Oqtane.Server/Controllers/FolderController.cs
@@ -43,7 +43,8 @@ namespace Oqtane.Controllers
int SiteId;
if (int.TryParse(siteid, out SiteId) && SiteId == _alias.SiteId)
{
- foreach (Folder folder in _folders.GetFolders(SiteId))
+ var hierarchy = GetFoldersHierarchy(_folders.GetFolders(SiteId).ToList());
+ foreach (Folder folder in hierarchy)
{
// note that Browse permission is used for this method
if (_userPermissions.IsAuthorized(User, PermissionNames.Browse, folder.PermissionList))
@@ -51,7 +52,6 @@ namespace Oqtane.Controllers
folders.Add(folder);
}
}
- folders = GetFoldersHierarchy(folders);
}
else
{
@@ -246,34 +246,6 @@ namespace Oqtane.Controllers
return folder;
}
- // PUT api//?siteid=x&folderid=y&parentid=z
- [HttpPut]
- [Authorize(Roles = RoleNames.Registered)]
- public void Put(int siteid, int folderid, int? parentid)
- {
- if (siteid == _alias.SiteId && _folders.GetFolder(folderid, false) != null && _userPermissions.IsAuthorized(User, siteid, EntityNames.Folder, folderid, PermissionNames.Edit))
- {
- int order = 1;
- List folders = _folders.GetFolders(siteid).ToList();
- foreach (Folder folder in folders.Where(item => item.ParentId == parentid).OrderBy(item => item.Order))
- {
- if (folder.Order != order)
- {
- folder.Order = order;
- _folders.UpdateFolder(folder);
- _syncManager.AddSyncEvent(_alias, EntityNames.Folder, folder.FolderId, SyncEventActions.Update);
- }
- order += 2;
- }
- _logger.Log(LogLevel.Information, this, LogFunction.Update, "Folder Order Updated {SiteId} {FolderId} {ParentId}", siteid, folderid, parentid);
- }
- else
- {
- _logger.Log(LogLevel.Error, this, LogFunction.Update, "Unauthorized Folder Put Attempt {SiteId} {FolderId} {ParentId}", siteid, folderid, parentid);
- HttpContext.Response.StatusCode = (int)HttpStatusCode.Forbidden;
- }
- }
-
// DELETE api//5
[HttpDelete("{id}")]
[Authorize(Roles = RoleNames.Registered)]
@@ -314,7 +286,6 @@ namespace Oqtane.Controllers
{
List hierarchy = new List();
Action, Folder> getPath = null;
- var folders1 = folders;
getPath = (folderList, folder) =>
{
IEnumerable children;
@@ -322,23 +293,23 @@ namespace Oqtane.Controllers
if (folder == null)
{
level = -1;
- children = folders1.Where(item => item.ParentId == null);
+ children = folders.Where(item => item.ParentId == null);
}
else
{
level = folder.Level;
- children = folders1.Where(item => item.ParentId == folder.FolderId);
+ children = folders.Where(item => item.ParentId == folder.FolderId);
}
foreach (Folder child in children)
{
child.Level = level + 1;
- child.HasChildren = folders1.Any(item => item.ParentId == child.FolderId);
+ child.HasChildren = folders.Any(item => item.ParentId == child.FolderId);
hierarchy.Add(child);
- if (getPath != null) getPath(folderList, child);
+ getPath(folderList, child);
}
};
- folders = folders.OrderBy(item => item.Order).ToList();
+ folders = folders.OrderBy(item => item.Name).ToList();
getPath(folders, null);
// add any non-hierarchical items to the end of the list