From ed83b65de386f0f5ca5f759007158d6766d67032 Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Wed, 5 Jul 2023 14:09:39 +0200 Subject: [PATCH] V14: Refactor icons for tree items (#14477) * Remove icons from base models * Update OpenApi spec * Updated schema * Cleanup * Fix Response Type --------- Co-authored-by: Zeegaan Co-authored-by: Elitsa --- .../Tree/ChildrenDataTypeTreeController.cs | 6 +- .../Tree/DataTypeTreeControllerBase.cs | 11 +- .../Tree/RootDataTypeTreeController.cs | 5 +- .../Tree/DictionaryTreeControllerBase.cs | 1 - .../DocumentBlueprintTreeControllerBase.cs | 1 - .../Media/Tree/ChildrenMediaTreeController.cs | 10 +- .../Media/Tree/ItemsMediaTreeController.cs | 8 +- .../Media/Tree/MediaTreeControllerBase.cs | 12 +- .../Media/Tree/RootMediaTreeController.cs | 10 +- .../Tree/ChildrenMediaTypeTreeController.cs | 8 +- .../Tree/MediaTypeTreeControllerBase.cs | 11 +- .../Tree/RootMediaTypeTreeController.cs | 8 +- .../Tree/MemberGroupTreeControllerBase.cs | 4 +- .../Tree/MemberTypeTreeControllerBase.cs | 4 +- .../Tree/PartialViewTreeControllerBase.cs | 5 +- .../Tree/RelationTypeTreeControllerBase.cs | 4 +- .../Script/Tree/ScriptTreeControllerBase.cs | 9 +- .../Tree/StaticFileTreeControllerBase.cs | 9 +- .../Tree/StylesheetTreeControllerBase.cs | 9 +- .../Tree/TemplateTreeControllerBase.cs | 1 - .../Tree/EntityTreeControllerBase.cs | 7 +- .../Tree/FileSystemTreeControllerBase.cs | 4 - .../Tree/FolderTreeControllerBase.cs | 1 - src/Umbraco.Cms.Api.Management/OpenApi.json | 295 ++++++++++-------- .../Item/DataTypeTreeItemResponseModel.cs | 8 + .../Media/item/MediaTreeItemResponseModel.cs | 8 + .../Item/MediaTypeTreeItemResponseModel.cs | 8 + .../Tree/DocumentTreeItemResponseModel.cs | 2 + .../Tree/DocumentTypeTreeItemResponseModel.cs | 2 + .../Tree/TreeItemPresentationModel.cs | 2 - 30 files changed, 257 insertions(+), 216 deletions(-) create mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/DataType/Item/DataTypeTreeItemResponseModel.cs create mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/Media/item/MediaTreeItemResponseModel.cs create mode 100644 src/Umbraco.Cms.Api.Management/ViewModels/MediaType/Item/MediaTypeTreeItemResponseModel.cs diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/ChildrenDataTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/ChildrenDataTypeTreeController.cs index 22eb3eb6a67f..e0865c683af1 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/ChildrenDataTypeTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/ChildrenDataTypeTreeController.cs @@ -3,7 +3,7 @@ using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Core.Services; using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; +using Umbraco.Cms.Api.Management.ViewModels.DataType.Item; namespace Umbraco.Cms.Api.Management.Controllers.DataType.Tree; @@ -17,8 +17,8 @@ public ChildrenDataTypeTreeController(IEntityService entityService, IDataTypeSer [HttpGet("children")] [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Children(Guid parentId, int skip = 0, int take = 100, bool foldersOnly = false) + [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + public async Task>> Children(Guid parentId, int skip = 0, int take = 100, bool foldersOnly = false) { RenderFoldersOnly(foldersOnly); return await GetChildren(parentId, skip, take); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/DataTypeTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/DataTypeTreeControllerBase.cs index e5167959d3a0..9e791a9758c2 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/DataTypeTreeControllerBase.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/DataTypeTreeControllerBase.cs @@ -1,19 +1,18 @@ -using Asp.Versioning; -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Core; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Models.Entities; using Umbraco.Cms.Core.Services; using Umbraco.Cms.Api.Management.Controllers.Tree; -using Umbraco.Cms.Api.Management.ViewModels.Tree; using Umbraco.Cms.Api.Management.Routing; +using Umbraco.Cms.Api.Management.ViewModels.DataType.Item; namespace Umbraco.Cms.Api.Management.Controllers.DataType.Tree; [ApiController] [VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.DataType}")] [ApiExplorerSettings(GroupName = "Data Type")] -public class DataTypeTreeControllerBase : FolderTreeControllerBase +public class DataTypeTreeControllerBase : FolderTreeControllerBase { private readonly IDataTypeService _dataTypeService; @@ -25,7 +24,7 @@ public DataTypeTreeControllerBase(IEntityService entityService, IDataTypeService protected override UmbracoObjectTypes FolderObjectType => UmbracoObjectTypes.DataTypeContainer; - protected override FolderTreeItemResponseModel[] MapTreeItemViewModels(Guid? parentId, IEntitySlim[] entities) + protected override DataTypeTreeItemResponseModel[] MapTreeItemViewModels(Guid? parentId, IEntitySlim[] entities) { var dataTypes = _dataTypeService .GetAll(entities.Select(entity => entity.Id).ToArray()) @@ -33,7 +32,7 @@ protected override FolderTreeItemResponseModel[] MapTreeItemViewModels(Guid? par return entities.Select(entity => { - FolderTreeItemResponseModel responseModel = MapTreeItemViewModel(parentId, entity); + DataTypeTreeItemResponseModel responseModel = MapTreeItemViewModel(parentId, entity); if (dataTypes.TryGetValue(entity.Id, out IDataType? dataType)) { responseModel.Icon = dataType.Editor?.Icon ?? responseModel.Icon; diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/RootDataTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/RootDataTypeTreeController.cs index a9c3eaf4471f..b46793087d1a 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/RootDataTypeTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/Tree/RootDataTypeTreeController.cs @@ -3,6 +3,7 @@ using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Core.Services; using Umbraco.Cms.Api.Common.ViewModels.Pagination; +using Umbraco.Cms.Api.Management.ViewModels.DataType.Item; using Umbraco.Cms.Api.Management.ViewModels.Tree; namespace Umbraco.Cms.Api.Management.Controllers.DataType.Tree; @@ -17,8 +18,8 @@ public RootDataTypeTreeController(IEntityService entityService, IDataTypeService [HttpGet("root")] [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Root(int skip = 0, int take = 100, bool foldersOnly = false) + [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + public async Task>> Root(int skip = 0, int take = 100, bool foldersOnly = false) { RenderFoldersOnly(foldersOnly); return await GetRoot(skip, take); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/DictionaryTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/DictionaryTreeControllerBase.cs index 1aeb5350b9ff..34da2f103598 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/DictionaryTreeControllerBase.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Dictionary/Tree/DictionaryTreeControllerBase.cs @@ -32,7 +32,6 @@ async Task CreateEntityTreeItemViewModelAsync(IDict var hasChildren = (await DictionaryItemService.GetChildrenAsync(dictionaryItem.Key)).Any(); return new EntityTreeItemResponseModel { - Icon = Constants.Icons.Dictionary, Name = dictionaryItem.ItemKey, Id = dictionaryItem.Key, Type = Constants.UdiEntityType.DictionaryItem, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/DocumentBlueprintTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/DocumentBlueprintTreeControllerBase.cs index 23537e93858f..9cb5fde5ae1a 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/DocumentBlueprintTreeControllerBase.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentBlueprint/Tree/DocumentBlueprintTreeControllerBase.cs @@ -38,7 +38,6 @@ protected override DocumentBlueprintTreeItemResponseModel[] MapTreeItemViewModel return entities.Select(entity => { DocumentBlueprintTreeItemResponseModel responseModel = base.MapTreeItemViewModel(parentId, entity); - responseModel.Icon = Constants.Icons.Blueprint; responseModel.HasChildren = false; if (entity is IDocumentEntitySlim documentEntitySlim diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/ChildrenMediaTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/ChildrenMediaTreeController.cs index d5cc4f8ac6f2..eefcbb9d40b8 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/ChildrenMediaTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/ChildrenMediaTreeController.cs @@ -1,12 +1,12 @@ using Asp.Versioning; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using Umbraco.Cms.Api.Common.ViewModels.Pagination; +using Umbraco.Cms.Api.Management.Services.Entities; +using Umbraco.Cms.Api.Management.ViewModels.Media.Item; using Umbraco.Cms.Core.Cache; using Umbraco.Cms.Core.Security; using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Services.Entities; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; namespace Umbraco.Cms.Api.Management.Controllers.Media.Tree; @@ -25,8 +25,8 @@ public class ChildrenMediaTreeController : MediaTreeControllerBase [HttpGet("children")] [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Children(Guid parentId, int skip = 0, int take = 100, Guid? dataTypeId = null) + [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + public async Task>> Children(Guid parentId, int skip = 0, int take = 100, Guid? dataTypeId = null) { IgnoreUserStartNodesForDataType(dataTypeId); return await GetChildren(parentId, skip, take); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/ItemsMediaTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/ItemsMediaTreeController.cs index c43bf191055a..00a23e877779 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/ItemsMediaTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/ItemsMediaTreeController.cs @@ -1,11 +1,11 @@ using Asp.Versioning; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using Umbraco.Cms.Api.Management.Services.Entities; +using Umbraco.Cms.Api.Management.ViewModels.Media.Item; using Umbraco.Cms.Core.Cache; using Umbraco.Cms.Core.Security; using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Services.Entities; -using Umbraco.Cms.Api.Management.ViewModels.Tree; namespace Umbraco.Cms.Api.Management.Controllers.Media.Tree; @@ -24,8 +24,8 @@ public class ItemsMediaTreeController : MediaTreeControllerBase [HttpGet("item")] [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] - public async Task>> Items([FromQuery(Name = "id")] Guid[] ids, Guid? dataTypeId = null) + [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] + public async Task>> Items([FromQuery(Name = "id")] Guid[] ids, Guid? dataTypeId = null) { IgnoreUserStartNodesForDataType(dataTypeId); return await GetItems(ids); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/MediaTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/MediaTreeControllerBase.cs index 2d4619bd07ec..26828a997dae 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/MediaTreeControllerBase.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/MediaTreeControllerBase.cs @@ -1,6 +1,4 @@ -using Asp.Versioning; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Core; using Umbraco.Cms.Core.Cache; using Umbraco.Cms.Core.Models; @@ -9,15 +7,15 @@ using Umbraco.Cms.Core.Services; using Umbraco.Cms.Api.Management.Controllers.Tree; using Umbraco.Cms.Api.Management.Services.Entities; -using Umbraco.Cms.Api.Management.ViewModels.Tree; using Umbraco.Cms.Api.Management.Routing; +using Umbraco.Cms.Api.Management.ViewModels.Media.Item; namespace Umbraco.Cms.Api.Management.Controllers.Media.Tree; [ApiController] [VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.Media}")] [ApiExplorerSettings(GroupName = nameof(Constants.UdiEntityType.Media))] -public class MediaTreeControllerBase : UserStartNodeTreeControllerBase +public class MediaTreeControllerBase : UserStartNodeTreeControllerBase { private readonly AppCaches _appCaches; private readonly IBackOfficeSecurityAccessor _backofficeSecurityAccessor; @@ -38,9 +36,9 @@ public class MediaTreeControllerBase : UserStartNodeTreeControllerBase Ordering.By(nameof(Infrastructure.Persistence.Dtos.NodeDto.SortOrder)); - protected override ContentTreeItemResponseModel MapTreeItemViewModel(Guid? parentKey, IEntitySlim entity) + protected override MediaTreeItemResponseModel MapTreeItemViewModel(Guid? parentKey, IEntitySlim entity) { - ContentTreeItemResponseModel responseModel = base.MapTreeItemViewModel(parentKey, entity); + MediaTreeItemResponseModel responseModel = base.MapTreeItemViewModel(parentKey, entity); if (entity is IMediaEntitySlim mediaEntitySlim) { diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/RootMediaTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/RootMediaTreeController.cs index cfd47f63c6ee..dabb269dd6a4 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/RootMediaTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/Tree/RootMediaTreeController.cs @@ -1,12 +1,12 @@ using Asp.Versioning; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using Umbraco.Cms.Api.Common.ViewModels.Pagination; +using Umbraco.Cms.Api.Management.Services.Entities; +using Umbraco.Cms.Api.Management.ViewModels.Media.Item; using Umbraco.Cms.Core.Cache; using Umbraco.Cms.Core.Security; using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Services.Entities; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; namespace Umbraco.Cms.Api.Management.Controllers.Media.Tree; @@ -25,8 +25,8 @@ public class RootMediaTreeController : MediaTreeControllerBase [HttpGet("root")] [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Root(int skip = 0, int take = 100, Guid? dataTypeId = null) + [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + public async Task>> Root(int skip = 0, int take = 100, Guid? dataTypeId = null) { IgnoreUserStartNodesForDataType(dataTypeId); return await GetRoot(skip, take); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/ChildrenMediaTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/ChildrenMediaTypeTreeController.cs index 442e709f56c4..0faf778acd4c 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/ChildrenMediaTypeTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/ChildrenMediaTypeTreeController.cs @@ -1,9 +1,9 @@ using Asp.Versioning; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; +using Umbraco.Cms.Api.Management.ViewModels.MediaType.Item; +using Umbraco.Cms.Core.Services; namespace Umbraco.Cms.Api.Management.Controllers.MediaType.Tree; @@ -17,8 +17,8 @@ public ChildrenMediaTypeTreeController(IEntityService entityService, IMediaTypeS [HttpGet("children")] [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Children(Guid parentId, int skip = 0, int take = 100, bool foldersOnly = false) + [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + public async Task>> Children(Guid parentId, int skip = 0, int take = 100, bool foldersOnly = false) { RenderFoldersOnly(foldersOnly); return await GetChildren(parentId, skip, take); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/MediaTypeTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/MediaTypeTreeControllerBase.cs index 1f5985d9eff7..cf8f3317155a 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/MediaTypeTreeControllerBase.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/MediaTypeTreeControllerBase.cs @@ -1,19 +1,18 @@ -using Asp.Versioning; -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Core; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Models.Entities; using Umbraco.Cms.Core.Services; using Umbraco.Cms.Api.Management.Controllers.Tree; -using Umbraco.Cms.Api.Management.ViewModels.Tree; using Umbraco.Cms.Api.Management.Routing; +using Umbraco.Cms.Api.Management.ViewModels.MediaType.Item; namespace Umbraco.Cms.Api.Management.Controllers.MediaType.Tree; [ApiController] [VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.MediaType}")] [ApiExplorerSettings(GroupName = "Media Type")] -public class MediaTypeTreeControllerBase : FolderTreeControllerBase +public class MediaTypeTreeControllerBase : FolderTreeControllerBase { private readonly IMediaTypeService _mediaTypeService; @@ -25,7 +24,7 @@ public MediaTypeTreeControllerBase(IEntityService entityService, IMediaTypeServi protected override UmbracoObjectTypes FolderObjectType => UmbracoObjectTypes.MediaTypeContainer; - protected override FolderTreeItemResponseModel[] MapTreeItemViewModels(Guid? parentKey, IEntitySlim[] entities) + protected override MediaTypeTreeItemResponseModel[] MapTreeItemViewModels(Guid? parentKey, IEntitySlim[] entities) { var mediaTypes = _mediaTypeService .GetAll(entities.Select(entity => entity.Id).ToArray()) @@ -33,7 +32,7 @@ protected override FolderTreeItemResponseModel[] MapTreeItemViewModels(Guid? par return entities.Select(entity => { - FolderTreeItemResponseModel responseModel = MapTreeItemViewModel(parentKey, entity); + MediaTypeTreeItemResponseModel responseModel = MapTreeItemViewModel(parentKey, entity); if (mediaTypes.TryGetValue(entity.Id, out IMediaType? mediaType)) { responseModel.Icon = mediaType.Icon ?? responseModel.Icon; diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/RootMediaTypeTreeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/RootMediaTypeTreeController.cs index fe1f00d01735..f91389b47e98 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/RootMediaTypeTreeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/Tree/RootMediaTypeTreeController.cs @@ -1,9 +1,9 @@ using Asp.Versioning; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; +using Umbraco.Cms.Api.Management.ViewModels.MediaType.Item; +using Umbraco.Cms.Core.Services; namespace Umbraco.Cms.Api.Management.Controllers.MediaType.Tree; @@ -17,8 +17,8 @@ public RootMediaTypeTreeController(IEntityService entityService, IMediaTypeServi [HttpGet("root")] [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task>> Root(int skip = 0, int take = 100, bool foldersOnly = false) + [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + public async Task>> Root(int skip = 0, int take = 100, bool foldersOnly = false) { RenderFoldersOnly(foldersOnly); return await GetRoot(skip, take); diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Tree/MemberGroupTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Tree/MemberGroupTreeControllerBase.cs index 0704c98b717f..355529dfdf56 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Tree/MemberGroupTreeControllerBase.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/Tree/MemberGroupTreeControllerBase.cs @@ -1,5 +1,4 @@ -using Asp.Versioning; -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Core; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Models.Entities; @@ -25,7 +24,6 @@ public MemberGroupTreeControllerBase(IEntityService entityService) protected override EntityTreeItemResponseModel MapTreeItemViewModel(Guid? parentKey, IEntitySlim entity) { EntityTreeItemResponseModel responseModel = base.MapTreeItemViewModel(parentKey, entity); - responseModel.Icon = Constants.Icons.MemberGroup; return responseModel; } } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/MemberTypeTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/MemberTypeTreeControllerBase.cs index 20b905942a0e..2f14739844c4 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/MemberTypeTreeControllerBase.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MemberType/Tree/MemberTypeTreeControllerBase.cs @@ -1,5 +1,4 @@ -using Asp.Versioning; -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Core; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Models.Entities; @@ -25,7 +24,6 @@ public MemberTypeTreeControllerBase(IEntityService entityService) protected override EntityTreeItemResponseModel MapTreeItemViewModel(Guid? parentKey, IEntitySlim entity) { EntityTreeItemResponseModel responseModel = base.MapTreeItemViewModel(parentKey, entity); - responseModel.Icon = Constants.Icons.User; return responseModel; } } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/PartialViewTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/PartialViewTreeControllerBase.cs index 09687a134a88..08501dbfa6f3 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/PartialViewTreeControllerBase.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/PartialView/Tree/PartialViewTreeControllerBase.cs @@ -1,5 +1,4 @@ -using Asp.Versioning; -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Core; using Umbraco.Cms.Core.IO; using Umbraco.Cms.Api.Management.Controllers.Tree; @@ -18,7 +17,5 @@ public PartialViewTreeControllerBase(FileSystems fileSystems) protected override IFileSystem FileSystem { get; } - protected override string FileIcon(string path) => Constants.Icons.PartialView; - protected override string ItemType(string path) => Constants.UdiEntityType.PartialView; } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/RelationType/Tree/RelationTypeTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/RelationType/Tree/RelationTypeTreeControllerBase.cs index b1527293dd29..57c676f7e0f8 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/RelationType/Tree/RelationTypeTreeControllerBase.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/RelationType/Tree/RelationTypeTreeControllerBase.cs @@ -1,5 +1,4 @@ -using Asp.Versioning; -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Core; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Services; @@ -26,7 +25,6 @@ public RelationTypeTreeControllerBase(IEntityService entityService) protected EntityTreeItemResponseModel[] MapTreeItemViewModels(Guid? parentKey, IRelationType[] relationTypes) => relationTypes.Select(relationType => new EntityTreeItemResponseModel { - Icon = Constants.Icons.RelationType, Name = relationType.Name!, Id = relationType.Key, Type = Constants.UdiEntityType.RelationType, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/ScriptTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/ScriptTreeControllerBase.cs index bcd4085296e9..62a6cb1e06c2 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/ScriptTreeControllerBase.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Script/Tree/ScriptTreeControllerBase.cs @@ -1,9 +1,8 @@ -using Asp.Versioning; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.IO; +using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Api.Management.Controllers.Tree; using Umbraco.Cms.Api.Management.Routing; +using Umbraco.Cms.Core; +using Umbraco.Cms.Core.IO; namespace Umbraco.Cms.Api.Management.Controllers.Script.Tree; @@ -18,7 +17,5 @@ public ScriptTreeControllerBase(FileSystems fileSystems) protected override IFileSystem FileSystem { get; } - protected override string FileIcon(string path) => Constants.Icons.Script; - protected override string ItemType(string path) => Constants.UdiEntityType.Script; } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/StaticFileTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/StaticFileTreeControllerBase.cs index 41bda81364b3..a6907b6d2395 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/StaticFileTreeControllerBase.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/StaticFile/Tree/StaticFileTreeControllerBase.cs @@ -1,9 +1,8 @@ -using Asp.Versioning; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.IO; +using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Api.Management.Controllers.Tree; using Umbraco.Cms.Api.Management.Routing; +using Umbraco.Cms.Core; +using Umbraco.Cms.Core.IO; namespace Umbraco.Cms.Api.Management.Controllers.StaticFile.Tree; @@ -19,8 +18,6 @@ public StaticFileTreeControllerBase(IPhysicalFileSystem physicalFileSystem) protected override IFileSystem FileSystem { get; } - protected override string FileIcon(string path) => Constants.Icons.DefaultIcon; - protected override string ItemType(string path) => "static-file"; protected override string[] GetDirectories(string path) => diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/StylesheetTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/StylesheetTreeControllerBase.cs index 824ee1894d82..e5c564b02b74 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/StylesheetTreeControllerBase.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Stylesheet/Tree/StylesheetTreeControllerBase.cs @@ -1,9 +1,8 @@ -using Asp.Versioning; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; -using Umbraco.Cms.Core.IO; +using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Api.Management.Controllers.Tree; using Umbraco.Cms.Api.Management.Routing; +using Umbraco.Cms.Core; +using Umbraco.Cms.Core.IO; namespace Umbraco.Cms.Api.Management.Controllers.Stylesheet.Tree; @@ -18,7 +17,5 @@ public StylesheetTreeControllerBase(FileSystems fileSystems) protected override IFileSystem FileSystem { get; } - protected override string FileIcon(string path) => Constants.Icons.Stylesheet; - protected override string ItemType(string path) => Constants.UdiEntityType.Stylesheet; } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/TemplateTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/TemplateTreeControllerBase.cs index ddd3e572c159..be561e229507 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/TemplateTreeControllerBase.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Template/Tree/TemplateTreeControllerBase.cs @@ -25,7 +25,6 @@ public TemplateTreeControllerBase(IEntityService entityService) protected override EntityTreeItemResponseModel MapTreeItemViewModel(Guid? parentKey, IEntitySlim entity) { EntityTreeItemResponseModel responseModel = base.MapTreeItemViewModel(parentKey, entity); - responseModel.Icon = Constants.Icons.Template; return responseModel; } } diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Tree/EntityTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Tree/EntityTreeControllerBase.cs index 7aa61406d9e6..87a46b8d5174 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Tree/EntityTreeControllerBase.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Tree/EntityTreeControllerBase.cs @@ -1,11 +1,11 @@ using Microsoft.AspNetCore.Mvc; +using Umbraco.Cms.Api.Common.ViewModels.Pagination; +using Umbraco.Cms.Api.Management.Services.Paging; +using Umbraco.Cms.Api.Management.ViewModels.Tree; using Umbraco.Cms.Core; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Models.Entities; using Umbraco.Cms.Core.Services; -using Umbraco.Cms.Api.Management.Services.Paging; -using Umbraco.Cms.Api.Common.ViewModels.Pagination; -using Umbraco.Cms.Api.Management.ViewModels.Tree; using Umbraco.Extensions; namespace Umbraco.Cms.Api.Management.Controllers.Tree; @@ -115,7 +115,6 @@ protected virtual TItem MapTreeItemViewModel(Guid? parentKey, IEntitySlim entity { var viewModel = new TItem { - Icon = _itemUdiType, Name = entity.Name!, Id = entity.Key, Type = _itemUdiType, diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Tree/FileSystemTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Tree/FileSystemTreeControllerBase.cs index 0f8be63e226d..f734825b3cca 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Tree/FileSystemTreeControllerBase.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Tree/FileSystemTreeControllerBase.cs @@ -1,5 +1,4 @@ using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core; using Umbraco.Cms.Core.IO; using Umbraco.Cms.Api.Management.Services.Paging; using Umbraco.Cms.Api.Common.ViewModels.Pagination; @@ -12,8 +11,6 @@ public abstract class FileSystemTreeControllerBase : ManagementApiControllerBase { protected abstract IFileSystem FileSystem { get; } - protected abstract string FileIcon(string path); - protected abstract string ItemType(string path); protected async Task>> GetRoot(int skip, int take) @@ -102,7 +99,6 @@ private FileSystemTreeItemPresentationModel MapViewModel(string path, string nam { Path = path, Name = name, - Icon = isFolder ? Constants.Icons.Folder : FileIcon(path), HasChildren = isFolder && DirectoryHasChildren(path), Type = ItemType(path), IsFolder = isFolder diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Tree/FolderTreeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/Tree/FolderTreeControllerBase.cs index 2d00fd9e5ed5..6e93d1eeac58 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Tree/FolderTreeControllerBase.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Tree/FolderTreeControllerBase.cs @@ -57,7 +57,6 @@ protected override TItem MapTreeItemViewModel(Guid? parentKey, IEntitySlim entit if (entity.NodeObjectType == _folderObjectTypeId) { viewModel.IsFolder = true; - viewModel.Icon = Constants.Icons.Folder; } return viewModel; diff --git a/src/Umbraco.Cms.Api.Management/OpenApi.json b/src/Umbraco.Cms.Api.Management/OpenApi.json index 83c9cac5de03..5182d7493249 100644 --- a/src/Umbraco.Cms.Api.Management/OpenApi.json +++ b/src/Umbraco.Cms.Api.Management/OpenApi.json @@ -1064,17 +1064,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PagedFolderTreeItemResponseModel" + "$ref": "#/components/schemas/PagedDataTypeTreeItemResponseModel" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/PagedFolderTreeItemResponseModel" + "$ref": "#/components/schemas/PagedDataTypeTreeItemResponseModel" } }, "text/plain": { "schema": { - "$ref": "#/components/schemas/PagedFolderTreeItemResponseModel" + "$ref": "#/components/schemas/PagedDataTypeTreeItemResponseModel" } } } @@ -1127,17 +1127,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PagedFolderTreeItemResponseModel" + "$ref": "#/components/schemas/PagedDataTypeTreeItemResponseModel" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/PagedFolderTreeItemResponseModel" + "$ref": "#/components/schemas/PagedDataTypeTreeItemResponseModel" } }, "text/plain": { "schema": { - "$ref": "#/components/schemas/PagedFolderTreeItemResponseModel" + "$ref": "#/components/schemas/PagedDataTypeTreeItemResponseModel" } } } @@ -5073,17 +5073,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PagedFolderTreeItemResponseModel" + "$ref": "#/components/schemas/PagedMediaTypeTreeItemResponseModel" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/PagedFolderTreeItemResponseModel" + "$ref": "#/components/schemas/PagedMediaTypeTreeItemResponseModel" } }, "text/plain": { "schema": { - "$ref": "#/components/schemas/PagedFolderTreeItemResponseModel" + "$ref": "#/components/schemas/PagedMediaTypeTreeItemResponseModel" } } } @@ -5136,17 +5136,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PagedFolderTreeItemResponseModel" + "$ref": "#/components/schemas/PagedMediaTypeTreeItemResponseModel" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/PagedFolderTreeItemResponseModel" + "$ref": "#/components/schemas/PagedMediaTypeTreeItemResponseModel" } }, "text/plain": { "schema": { - "$ref": "#/components/schemas/PagedFolderTreeItemResponseModel" + "$ref": "#/components/schemas/PagedMediaTypeTreeItemResponseModel" } } } @@ -5638,17 +5638,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PagedContentTreeItemResponseModel" + "$ref": "#/components/schemas/PagedMediaTreeItemResponseModel" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/PagedContentTreeItemResponseModel" + "$ref": "#/components/schemas/PagedMediaTreeItemResponseModel" } }, "text/plain": { "schema": { - "$ref": "#/components/schemas/PagedContentTreeItemResponseModel" + "$ref": "#/components/schemas/PagedMediaTreeItemResponseModel" } } } @@ -5696,7 +5696,7 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/ContentTreeItemResponseModel" + "$ref": "#/components/schemas/MediaTreeItemResponseModel" } } }, @@ -5704,7 +5704,7 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/ContentTreeItemResponseModel" + "$ref": "#/components/schemas/MediaTreeItemResponseModel" } } }, @@ -5712,7 +5712,7 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/ContentTreeItemResponseModel" + "$ref": "#/components/schemas/MediaTreeItemResponseModel" } } } @@ -5766,17 +5766,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PagedContentTreeItemResponseModel" + "$ref": "#/components/schemas/PagedMediaTreeItemResponseModel" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/PagedContentTreeItemResponseModel" + "$ref": "#/components/schemas/PagedMediaTreeItemResponseModel" } }, "text/plain": { "schema": { - "$ref": "#/components/schemas/PagedContentTreeItemResponseModel" + "$ref": "#/components/schemas/PagedMediaTreeItemResponseModel" } } } @@ -12719,42 +12719,6 @@ "type": "integer", "format": "int32" }, - "ContentTreeItemResponseModel": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "icon": { - "type": "string" - }, - "hasChildren": { - "type": "boolean" - }, - "isContainer": { - "type": "boolean" - }, - "parentId": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "noAccess": { - "type": "boolean" - }, - "isTrashed": { - "type": "boolean" - }, - "id": { - "type": "string", - "format": "uuid" - } - }, - "additionalProperties": false - }, "ContentTypeCleanupModel": { "type": "object", "properties": { @@ -13576,6 +13540,40 @@ }, "additionalProperties": false }, + "DataTypeTreeItemResponseModel": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "hasChildren": { + "type": "boolean" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "isContainer": { + "type": "boolean" + }, + "parentId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "isFolder": { + "type": "boolean" + }, + "icon": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, "DatabaseInstallResponseModel": { "required": [ "id", @@ -13774,9 +13772,6 @@ "type": { "type": "string" }, - "icon": { - "type": "string" - }, "hasChildren": { "type": "boolean" }, @@ -13885,9 +13880,6 @@ "type": { "type": "string" }, - "icon": { - "type": "string" - }, "hasChildren": { "type": "boolean" }, @@ -13927,6 +13919,9 @@ "items": { "$ref": "#/components/schemas/VariantTreeItemModel" } + }, + "icon": { + "type": "string" } }, "additionalProperties": false @@ -14105,9 +14100,6 @@ "type": { "type": "string" }, - "icon": { - "type": "string" - }, "hasChildren": { "type": "boolean" }, @@ -14128,6 +14120,9 @@ }, "isElement": { "type": "boolean" + }, + "icon": { + "type": "string" } }, "additionalProperties": false @@ -14237,9 +14232,6 @@ "type": { "type": "string" }, - "icon": { - "type": "string" - }, "hasChildren": { "type": "boolean" }, @@ -14303,9 +14295,6 @@ "type": { "type": "string" }, - "icon": { - "type": "string" - }, "hasChildren": { "type": "boolean" }, @@ -14336,39 +14325,6 @@ }, "additionalProperties": false }, - "FolderTreeItemResponseModel": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "icon": { - "type": "string" - }, - "hasChildren": { - "type": "boolean" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "isContainer": { - "type": "boolean" - }, - "parentId": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "isFolder": { - "type": "boolean" - } - }, - "additionalProperties": false - }, "HealthCheckActionRequestModel": { "type": "object", "properties": { @@ -14865,6 +14821,42 @@ }, "additionalProperties": false }, + "MediaTreeItemResponseModel": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "hasChildren": { + "type": "boolean" + }, + "isContainer": { + "type": "boolean" + }, + "parentId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "noAccess": { + "type": "boolean" + }, + "isTrashed": { + "type": "boolean" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "icon": { + "type": "string" + } + }, + "additionalProperties": false + }, "MediaTypeItemResponseModel": { "type": "object", "properties": { @@ -15012,6 +15004,39 @@ }, "additionalProperties": false }, + "MediaTypeTreeItemResponseModel": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "hasChildren": { + "type": "boolean" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "isContainer": { + "type": "boolean" + }, + "parentId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "isFolder": { + "type": "boolean" + }, + "icon": { + "type": "string" + } + }, + "additionalProperties": false + }, "MediaValueModel": { "type": "object", "properties": { @@ -15392,7 +15417,7 @@ }, "additionalProperties": false }, - "PagedContentTreeItemResponseModel": { + "PagedCultureReponseModel": { "required": [ "items", "total" @@ -15406,13 +15431,13 @@ "items": { "type": "array", "items": { - "$ref": "#/components/schemas/ContentTreeItemResponseModel" + "$ref": "#/components/schemas/CultureReponseModel" } } }, "additionalProperties": false }, - "PagedCultureReponseModel": { + "PagedDataTypeTreeItemResponseModel": { "required": [ "items", "total" @@ -15426,7 +15451,7 @@ "items": { "type": "array", "items": { - "$ref": "#/components/schemas/CultureReponseModel" + "$ref": "#/components/schemas/DataTypeTreeItemResponseModel" } } }, @@ -15572,7 +15597,7 @@ }, "additionalProperties": false }, - "PagedFolderTreeItemResponseModel": { + "PagedHealthCheckGroupResponseModel": { "required": [ "items", "total" @@ -15586,13 +15611,13 @@ "items": { "type": "array", "items": { - "$ref": "#/components/schemas/FolderTreeItemResponseModel" + "$ref": "#/components/schemas/HealthCheckGroupResponseModel" } } }, "additionalProperties": false }, - "PagedHealthCheckGroupResponseModel": { + "PagedHelpPageResponseModel": { "required": [ "items", "total" @@ -15606,13 +15631,13 @@ "items": { "type": "array", "items": { - "$ref": "#/components/schemas/HealthCheckGroupResponseModel" + "$ref": "#/components/schemas/HelpPageResponseModel" } } }, "additionalProperties": false }, - "PagedHelpPageResponseModel": { + "PagedIndexResponseModel": { "required": [ "items", "total" @@ -15626,13 +15651,13 @@ "items": { "type": "array", "items": { - "$ref": "#/components/schemas/HelpPageResponseModel" + "$ref": "#/components/schemas/IndexResponseModel" } } }, "additionalProperties": false }, - "PagedIndexResponseModel": { + "PagedLanguageResponseModel": { "required": [ "items", "total" @@ -15646,13 +15671,13 @@ "items": { "type": "array", "items": { - "$ref": "#/components/schemas/IndexResponseModel" + "$ref": "#/components/schemas/LanguageResponseModel" } } }, "additionalProperties": false }, - "PagedLanguageResponseModel": { + "PagedLogMessageResponseModel": { "required": [ "items", "total" @@ -15666,13 +15691,13 @@ "items": { "type": "array", "items": { - "$ref": "#/components/schemas/LanguageResponseModel" + "$ref": "#/components/schemas/LogMessageResponseModel" } } }, "additionalProperties": false }, - "PagedLogMessageResponseModel": { + "PagedLogTemplateResponseModel": { "required": [ "items", "total" @@ -15686,13 +15711,13 @@ "items": { "type": "array", "items": { - "$ref": "#/components/schemas/LogMessageResponseModel" + "$ref": "#/components/schemas/LogTemplateResponseModel" } } }, "additionalProperties": false }, - "PagedLogTemplateResponseModel": { + "PagedLoggerResponseModel": { "required": [ "items", "total" @@ -15706,13 +15731,13 @@ "items": { "type": "array", "items": { - "$ref": "#/components/schemas/LogTemplateResponseModel" + "$ref": "#/components/schemas/LoggerResponseModel" } } }, "additionalProperties": false }, - "PagedLoggerResponseModel": { + "PagedMediaTreeItemResponseModel": { "required": [ "items", "total" @@ -15726,7 +15751,27 @@ "items": { "type": "array", "items": { - "$ref": "#/components/schemas/LoggerResponseModel" + "$ref": "#/components/schemas/MediaTreeItemResponseModel" + } + } + }, + "additionalProperties": false + }, + "PagedMediaTypeTreeItemResponseModel": { + "required": [ + "items", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaTypeTreeItemResponseModel" } } }, diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/DataType/Item/DataTypeTreeItemResponseModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/DataType/Item/DataTypeTreeItemResponseModel.cs new file mode 100644 index 000000000000..527d5f1f6248 --- /dev/null +++ b/src/Umbraco.Cms.Api.Management/ViewModels/DataType/Item/DataTypeTreeItemResponseModel.cs @@ -0,0 +1,8 @@ +using Umbraco.Cms.Api.Management.ViewModels.Tree; + +namespace Umbraco.Cms.Api.Management.ViewModels.DataType.Item; + +public class DataTypeTreeItemResponseModel : FolderTreeItemResponseModel +{ + public string? Icon { get; set; } +} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Media/item/MediaTreeItemResponseModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Media/item/MediaTreeItemResponseModel.cs new file mode 100644 index 000000000000..5dfc24d31ed9 --- /dev/null +++ b/src/Umbraco.Cms.Api.Management/ViewModels/Media/item/MediaTreeItemResponseModel.cs @@ -0,0 +1,8 @@ +using Umbraco.Cms.Api.Management.ViewModels.Tree; + +namespace Umbraco.Cms.Api.Management.ViewModels.Media.Item; + +public class MediaTreeItemResponseModel : ContentTreeItemResponseModel +{ + public string Icon { get; set; } = string.Empty; +} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/MediaType/Item/MediaTypeTreeItemResponseModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/MediaType/Item/MediaTypeTreeItemResponseModel.cs new file mode 100644 index 000000000000..5ad4e6b7dc25 --- /dev/null +++ b/src/Umbraco.Cms.Api.Management/ViewModels/MediaType/Item/MediaTypeTreeItemResponseModel.cs @@ -0,0 +1,8 @@ +using Umbraco.Cms.Api.Management.ViewModels.Tree; + +namespace Umbraco.Cms.Api.Management.ViewModels.MediaType.Item; + +public class MediaTypeTreeItemResponseModel : FolderTreeItemResponseModel +{ + public string Icon { get; set; } = string.Empty; +} diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Tree/DocumentTreeItemResponseModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Tree/DocumentTreeItemResponseModel.cs index 8d8fb3d2f914..19fb60c6ecf6 100644 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Tree/DocumentTreeItemResponseModel.cs +++ b/src/Umbraco.Cms.Api.Management/ViewModels/Tree/DocumentTreeItemResponseModel.cs @@ -11,4 +11,6 @@ public class DocumentTreeItemResponseModel : ContentTreeItemResponseModel public Guid ContentTypeId { get; set; } public IEnumerable Variants { get; set; } = Enumerable.Empty(); + + public string Icon { get; set; } = string.Empty; } diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Tree/DocumentTypeTreeItemResponseModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Tree/DocumentTypeTreeItemResponseModel.cs index 4c681760b860..5cbdc0b1f660 100644 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Tree/DocumentTypeTreeItemResponseModel.cs +++ b/src/Umbraco.Cms.Api.Management/ViewModels/Tree/DocumentTypeTreeItemResponseModel.cs @@ -3,4 +3,6 @@ public class DocumentTypeTreeItemResponseModel : FolderTreeItemResponseModel { public bool IsElement { get; set; } + + public string Icon { get; set; } = string.Empty; } diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Tree/TreeItemPresentationModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Tree/TreeItemPresentationModel.cs index 100ca166b1b1..f6d02c107f82 100644 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Tree/TreeItemPresentationModel.cs +++ b/src/Umbraco.Cms.Api.Management/ViewModels/Tree/TreeItemPresentationModel.cs @@ -6,7 +6,5 @@ public class TreeItemPresentationModel public string Type { get; set; } = string.Empty; - public string Icon { get; set; } = string.Empty; - public bool HasChildren { get; set; } }