diff --git a/src/Umbraco.Web.UI.Client/libs/repository/repository-tree-data-source.interface.ts b/src/Umbraco.Web.UI.Client/libs/repository/repository-tree-data-source.interface.ts index aff4ec4451..7e484c86c2 100644 --- a/src/Umbraco.Web.UI.Client/libs/repository/repository-tree-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/libs/repository/repository-tree-data-source.interface.ts @@ -3,6 +3,5 @@ import type { DataSourceResponse } from '@umbraco-cms/models'; export interface RepositoryTreeDataSource { getRootItems(): Promise>; - getChildrenOf(parentKey: string): Promise>; getItems(key: Array): Promise>; } diff --git a/src/Umbraco.Web.UI.Client/libs/repository/tree-repository.interface.ts b/src/Umbraco.Web.UI.Client/libs/repository/tree-repository.interface.ts index 2ef082005f..16d4d1ca51 100644 --- a/src/Umbraco.Web.UI.Client/libs/repository/tree-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/libs/repository/tree-repository.interface.ts @@ -7,11 +7,6 @@ export interface UmbTreeRepository { error: ProblemDetailsModel | undefined; asObservable?: () => Observable; }>; - requestTreeItemsOf: (parentKey: string | null) => Promise<{ - data: PagedEntityTreeItemModel | undefined; - error: ProblemDetailsModel | undefined; - asObservable?: () => Observable; - }>; requestTreeItems: (keys: string[]) => Promise<{ data: Array | undefined; error: ProblemDetailsModel | undefined; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/relation-type.repository.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/relation-type.repository.ts index 7c9f951655..43772b2dba 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/relation-type.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/relation-type.repository.ts @@ -66,23 +66,6 @@ export class UmbRelationTypeRepository implements UmbTreeRepository, UmbDetailRe return { data, error, asObservable: () => this.#treeStore!.rootItems }; } - async requestTreeItemsOf(parentKey: string | null) { - await this.#init; - - if (!parentKey) { - const error: ProblemDetailsModel = { title: 'Parent key is missing' }; - return { data: undefined, error }; - } - - const { data, error } = await this.#treeSource.getChildrenOf(parentKey); - - if (data) { - this.#treeStore?.appendItems(data.items); - } - - return { data, error, asObservable: () => this.#treeStore!.childrenOf(parentKey) }; - } - async requestTreeItems(keys: Array) { await this.#init; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/sources/relation-type.tree.server.data.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/sources/relation-type.tree.server.data.ts index b0fd7ee37d..afd31da447 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/sources/relation-type.tree.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/sources/relation-type.tree.server.data.ts @@ -1,15 +1,14 @@ -import type { RepositoryTreeDataSource } from '../../../../../../libs/repository/repository-tree-data-source.interface'; import { ProblemDetailsModel, RelationTypeResource } from '@umbraco-cms/backend-api'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { tryExecuteAndNotify } from '@umbraco-cms/resources'; /** - * A data source for the Document tree that fetches data from the server + * A data source for the RelationType tree that fetches data from the server * @export - * @class DocumentTreeServerDataSource - * @implements {DocumentTreeDataSource} + * @class RelationTypeTreeServerDataSource + * @implements {RelationTypeTreeDataSource} */ -export class RelationTypeTreeServerDataSource implements RepositoryTreeDataSource { +export class RelationTypeTreeServerDataSource implements RelationTypeTreeDataSource { #host: UmbControllerHostInterface; // TODO: how do we handle trashed items? @@ -46,9 +45,9 @@ export class RelationTypeTreeServerDataSource implements RepositoryTreeDataSourc } /** - * Creates an instance of DocumentTreeServerDataSource. + * Creates an instance of RelationTypeTreeServerDataSource. * @param {UmbControllerHostInterface} host - * @memberof DocumentTreeServerDataSource + * @memberof RelationTypeTreeServerDataSource */ constructor(host: UmbControllerHostInterface) { this.#host = host; @@ -57,37 +56,17 @@ export class RelationTypeTreeServerDataSource implements RepositoryTreeDataSourc /** * Fetches the root items for the tree from the server * @return {*} - * @memberof DocumentTreeServerDataSource + * @memberof RelationTypeTreeServerDataSource */ async getRootItems() { return tryExecuteAndNotify(this.#host, RelationTypeResource.getTreeRelationTypeRoot({})); } - /** - * Fetches the children of a given parent key from the server - * @param {(string | null)} parentKey - * @return {*} - * @memberof DocumentTreeServerDataSource - */ - async getChildrenOf(parentKey: string | null) { - if (!parentKey) { - const error: ProblemDetailsModel = { title: 'Parent key is missing' }; - return { error }; - } - - return tryExecuteAndNotify( - this.#host, - RelationTypeResource.getTreeRelationTypeChildren({ - parentKey, - }) - ); - } - /** * Fetches the items for the given keys from the server * @param {Array} keys * @return {*} - * @memberof DocumentTreeServerDataSource + * @memberof RelationTypeTreeServerDataSource */ async getItems(keys: Array) { if (keys) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree.element.ts index 156ece1717..133b30cf17 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree.element.ts @@ -73,6 +73,7 @@ export class UmbTreeElement extends UmbLitElement { .pipe(map((trees) => trees.find((tree) => tree.alias === this.alias))), async (tree) => { if (this._tree?.alias === tree?.alias) return; + this._tree = tree; this.#provideTreeContext(); } diff --git a/src/Umbraco.Web.UI.Client/src/core/mocks/data/relation-type.data.ts b/src/Umbraco.Web.UI.Client/src/core/mocks/data/relation-type.data.ts index 88fed32efa..4f2694086a 100644 --- a/src/Umbraco.Web.UI.Client/src/core/mocks/data/relation-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/core/mocks/data/relation-type.data.ts @@ -1,5 +1,5 @@ import { UmbEntityData } from './entity.data'; -import { createEntityTreeItem, createFolderTreeItem } from './utils'; +import { createEntityTreeItem } from './utils'; import type { FolderTreeItemModel, RelationTypeResponseModel } from '@umbraco-cms/backend-api'; // TODO: investigate why we don't get an entity type as part of the RelationTypeResponseModel @@ -17,6 +17,7 @@ export const data: Array parentObjectTypeName: 'Document', childObjectTypeName: 'Document', type: 'relation-type', + parentKey: null, }, { key: 'ac68cde6-763f-4231-a751-1101b57defd2', @@ -31,6 +32,7 @@ export const data: Array parentObjectTypeName: 'Document', childObjectTypeName: 'Document', type: 'relation-type', + parentKey: null, }, { key: '6f9b800c-762c-42d4-85d9-bf40a77d689e', @@ -45,6 +47,7 @@ export const data: Array parentObjectTypeName: 'Document', childObjectTypeName: 'Document', type: 'relation-type', + parentKey: null, }, { key: 'd421727d-43de-4205-b4c6-037404f309ad', @@ -59,6 +62,7 @@ export const data: Array parentObjectTypeName: 'Document', childObjectTypeName: 'Document', type: 'relation-type', + parentKey: null, }, { key: 'e9a0a28e-2d5b-4229-ac00-66f2df230513', @@ -73,6 +77,7 @@ export const data: Array parentObjectTypeName: 'Document', childObjectTypeName: 'Document', type: 'relation-type', + parentKey: null, }, ];