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 @@
- - } + + } + else + { + + + }
- + @if (_isSystem) + { + + } + else + { + + }
@@ -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