Member types: Prepare container support (#20715)
* Add MemberType/MemberTypeContainer to supported EntityContainer object types * Implement MemberTypeContainerRepository * Prepare base controller for MemberTypeTreeControllerBase. * Revert "Prepare base controller for MemberTypeTreeControllerBase." This reverts commit ad213a23add5e511b1fba6580ca563156cd9c043. * Added foldersOnly flag in readiness for support in 17.1. * Added foldersOnly flag in readiness for support in 17.1 (2). --------- Co-authored-by: Ronald Barendse <ronald@barend.se>
This commit is contained in:
@@ -30,6 +30,7 @@ public class RootMemberTypeTreeController : MemberTypeTreeControllerBase
|
||||
public async Task<ActionResult<PagedViewModel<MemberTypeTreeItemResponseModel>>> Root(
|
||||
CancellationToken cancellationToken,
|
||||
int skip = 0,
|
||||
int take = 100)
|
||||
int take = 100,
|
||||
bool foldersOnly = false)
|
||||
=> await GetRoot(skip, take);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Umbraco.Cms.Api.Common.ViewModels.Pagination;
|
||||
using Umbraco.Cms.Api.Management.Services.Flags;
|
||||
@@ -23,6 +23,7 @@ public class SiblingMemberTypeTreeController : MemberTypeTreeControllerBase
|
||||
CancellationToken cancellationToken,
|
||||
Guid target,
|
||||
int before,
|
||||
int after)
|
||||
int after,
|
||||
bool foldersOnly = false)
|
||||
=> await GetSiblings(target, before, after);
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ public sealed class EntityContainer : TreeEntityBase, IUmbracoEntity
|
||||
{ Constants.ObjectTypes.DataType, Constants.ObjectTypes.DataTypeContainer },
|
||||
{ Constants.ObjectTypes.DocumentType, Constants.ObjectTypes.DocumentTypeContainer },
|
||||
{ Constants.ObjectTypes.MediaType, Constants.ObjectTypes.MediaTypeContainer },
|
||||
{ Constants.ObjectTypes.MemberType, Constants.ObjectTypes.MemberTypeContainer },
|
||||
{ Constants.ObjectTypes.DocumentBlueprint, Constants.ObjectTypes.DocumentBlueprintContainer },
|
||||
};
|
||||
|
||||
|
||||
@@ -32,8 +32,11 @@ internal class EntityContainerRepository : EntityRepositoryBase<int, EntityConta
|
||||
{
|
||||
Guid[] allowedContainers =
|
||||
{
|
||||
Constants.ObjectTypes.DocumentTypeContainer, Constants.ObjectTypes.MediaTypeContainer,
|
||||
Constants.ObjectTypes.DataTypeContainer, Constants.ObjectTypes.DocumentBlueprintContainer,
|
||||
Constants.ObjectTypes.DataTypeContainer,
|
||||
Constants.ObjectTypes.DocumentTypeContainer,
|
||||
Constants.ObjectTypes.MediaTypeContainer,
|
||||
Constants.ObjectTypes.MemberTypeContainer,
|
||||
Constants.ObjectTypes.DocumentBlueprintContainer,
|
||||
};
|
||||
NodeObjectTypeId = containerObjectType;
|
||||
if (allowedContainers.Contains(NodeObjectTypeId) == false)
|
||||
|
||||
@@ -1,36 +1,26 @@
|
||||
using Umbraco.Cms.Core.Models;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Umbraco.Cms.Core;
|
||||
using Umbraco.Cms.Core.Cache;
|
||||
using Umbraco.Cms.Core.Persistence.Repositories;
|
||||
using Umbraco.Cms.Infrastructure.Scoping;
|
||||
|
||||
namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
|
||||
namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement;
|
||||
|
||||
internal sealed class MemberTypeContainerRepository : EntityContainerRepository, IMemberTypeContainerRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// A no-op implementation of <see cref="IMemberTypeContainerRepository"/>, as containers aren't supported for members.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Introduced to avoid inconsistencies with nullability of dependencies for type repositories for content, media and members.
|
||||
/// </remarks>
|
||||
internal sealed class MemberTypeContainerRepository : IMemberTypeContainerRepository
|
||||
public MemberTypeContainerRepository(
|
||||
IScopeAccessor scopeAccessor,
|
||||
AppCaches cache,
|
||||
ILogger<MemberTypeContainerRepository> logger,
|
||||
IRepositoryCacheVersionService repositoryCacheVersionService,
|
||||
ICacheSyncService cacheSyncService)
|
||||
: base(
|
||||
scopeAccessor,
|
||||
cache,
|
||||
logger,
|
||||
Constants.ObjectTypes.MemberTypeContainer,
|
||||
repositoryCacheVersionService,
|
||||
cacheSyncService)
|
||||
{
|
||||
public void Delete(EntityContainer entity)
|
||||
{
|
||||
}
|
||||
|
||||
public bool Exists(int id) => false;
|
||||
|
||||
public EntityContainer? Get(Guid id) => null;
|
||||
|
||||
public IEnumerable<EntityContainer> Get(string name, int level) => Enumerable.Empty<EntityContainer>();
|
||||
|
||||
public bool HasDuplicateName(Guid parentKey, string name) => false;
|
||||
|
||||
public bool HasDuplicateName(int parentId, string name) => false;
|
||||
|
||||
public EntityContainer? Get(int id) => null;
|
||||
|
||||
public IEnumerable<EntityContainer> GetMany(params int[]? ids) => Enumerable.Empty<EntityContainer>();
|
||||
|
||||
public void Save(EntityContainer entity)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user