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 9e4c5d0171..dcf2fee07a 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,6 +66,12 @@ export class UmbRelationTypeRepository implements UmbTreeRepository, UmbDetailRe return { data, error, asObservable: () => this.#treeStore!.rootItems }; } + //TODO RelationTypes can't have children. But this method is required by the tree interface. + async requestTreeItemsOf(parentKey: string | null) { + const error: ProblemDetailsModel = { title: 'Not implemented' }; + return { data: undefined, error }; + } + async requestTreeItems(keys: Array) { await this.#init; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/sources/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/sources/index.ts index 261832c5f4..cd64590110 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/sources/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/sources/index.ts @@ -1,7 +1,7 @@ import type { DataSourceResponse } from '@umbraco-cms/models'; -import type { EntityTreeItemModel, PagedEntityTreeItemModel } from '@umbraco-cms/backend-api'; +import { EntityTreeItemResponseModel, PagedEntityTreeItemResponseModel } from '@umbraco-cms/backend-api'; export interface RelationTypeTreeDataSource { - getRootItems(): Promise>; - getItems(key: Array): Promise>; + getRootItems(): Promise>; + getItems(key: Array): Promise>; } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/workspace/relation-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/workspace/relation-type-workspace.context.ts index 0342da9da1..4ce10aa4b5 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/workspace/relation-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/workspace/relation-type-workspace.context.ts @@ -1,13 +1,14 @@ import { UmbWorkspaceContext } from '../../../shared/components/workspace/workspace-context/workspace-context'; -import { UmbWorkspaceEntityContextInterface } from '../../../shared/components/workspace/workspace-context/workspace-entity-context.interface'; import { UmbRelationTypeRepository } from '../repository/relation-type.repository'; +import { UmbEntityWorkspaceContextInterface } from '../../../shared/components/workspace/workspace-context/workspace-entity-context.interface'; import type { RelationTypeBaseModel, RelationTypeResponseModel } from '@umbraco-cms/backend-api'; + import { ObjectState } from '@umbraco-cms/observable-api'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; export class UmbRelationTypeWorkspaceContext extends UmbWorkspaceContext - implements UmbWorkspaceEntityContextInterface + implements UmbEntityWorkspaceContextInterface { #data = new ObjectState(undefined); data = this.#data.asObservable(); 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 7d95a4bea2..6526d93f3b 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,6 +1,6 @@ import { UmbEntityData } from './entity.data'; -import { createEntityTreeItem, createFolderTreeItem } from './utils'; -import type { EntityTreeItemModel, FolderTreeItemModel, RelationTypeResponseModel } from '@umbraco-cms/backend-api'; +import { createEntityTreeItem } from './utils'; +import type { EntityTreeItemResponseModel, RelationTypeResponseModel } from '@umbraco-cms/backend-api'; // TODO: investigate why we don't get an entity type as part of the RelationTypeResponseModel export const data: Array = [ @@ -71,7 +71,7 @@ export const data: Array = [ }, ]; -export const treeData: Array = [ +export const treeData: Array = [ { key: 'e0d39ff5-71d8-453f-b682-9d8d31ee5e06', $type: 'EntityTreeItemViewModel', @@ -130,18 +130,18 @@ class UmbRelationTypeData extends UmbEntityData { } //TODO Can relation types have children? - getTreeRoot(): Array { + getTreeRoot(): Array { const rootItems = this.treeData; return rootItems.map((item) => createEntityTreeItem(item)); } //TODO Can relation types have children? - getTreeItemChildren(key: string): Array { + getTreeItemChildren(key: string): Array { const childItems = this.treeData.filter((item) => item.parentKey === key); return childItems.map((item) => createEntityTreeItem(item)); } - getTreeItem(keys: Array): Array { + getTreeItem(keys: Array): Array { const items = this.treeData.filter((item) => keys.includes(item.key ?? '')); return items.map((item) => createEntityTreeItem(item)); }