diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.ts index 368d54bd26..203de144ca 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.ts @@ -1,4 +1,5 @@ import { UmbDataTypeDetailRepository } from '../../repository/detail/data-type-detail.repository.js'; +import { UmbDataTypeTreeRepository } from '../../tree/data-type-tree.repository.js'; import { css, html, customElement, property, state, repeat, when } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { @@ -32,26 +33,27 @@ export class UmbDataTypePickerFlowDataTypePickerModalElement extends UmbLitEleme private async _observeDataTypesOf(propertyEditorUiAlias: string) { if (!this.data) return; - const dataTypeRepository = new UmbDataTypeDetailRepository(this); + const dataTypeDetailRepository = new UmbDataTypeDetailRepository(this); + const dataTypeTreeRepository = new UmbDataTypeTreeRepository(this); // TODO: This is a hack to get the data types of a property editor ui alias. // TODO: Make sure filtering works data-type that does not have a property editor ui, but should be using the default property editor UI for those. // TODO: make an end-point just retrieving the data types using a given property editor ui alias. - const { data } = await dataTypeRepository.requestRootTreeItems(); + const { data } = await dataTypeTreeRepository.requestRootTreeItems(); if (!data) return; await Promise.all( data.items.map((item) => { if (item.id) { - return dataTypeRepository.requestById(item.id); + return dataTypeDetailRepository.requestById(item.id); } return Promise.resolve(); }), ); // TODO: Use the asObservable from above onces end-point has been made. - const source = await dataTypeRepository.byPropertyEditorUiAlias(propertyEditorUiAlias); + const source = await dataTypeDetailRepository.byPropertyEditorUiAlias(propertyEditorUiAlias); this.observe(source, (dataTypes) => { this._dataTypes = dataTypes; }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts index ef5687261d..e10e843ca6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts @@ -1,4 +1,4 @@ -import { UmbDataTypeDetailRepository } from '../../repository/detail/data-type-detail.repository.js'; +import { UmbDataTypeTreeRepository } from '../../tree/data-type-tree.repository.js'; import { css, html, repeat, customElement, property, state, when, nothing } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; @@ -51,14 +51,14 @@ export class UmbDataTypePickerFlowModalElement extends UmbLitElement { private _createDataTypeModal: UmbModalRouteRegistrationController; - #repository; + #treeRepository; #dataTypes: Array = []; #propertyEditorUIs: Array = []; #currentFilterQuery = ''; constructor() { super(); - this.#repository = new UmbDataTypeDetailRepository(this); + this.#treeRepository = new UmbDataTypeTreeRepository(this); new UmbModalRouteRegistrationController(this, UMB_DATA_TYPE_PICKER_FLOW_DATA_TYPE_PICKER_MODAL) .addAdditionalPath(':uiAlias') @@ -102,7 +102,7 @@ export class UmbDataTypePickerFlowModalElement extends UmbLitElement { async #init() { // TODO: Get ALL items, or traverse the structure aka. multiple recursive calls. this.observe( - (await this.#repository.requestRootTreeItems()).asObservable(), + (await this.#treeRepository.requestRootTreeItems()).asObservable(), (items) => { this.#dataTypes = items; this._performFiltering(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/copy/data-type-copy.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/copy/data-type-copy.repository.ts index b5a8a87b66..80f6b2b196 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/copy/data-type-copy.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/copy/data-type-copy.repository.ts @@ -1,14 +1,17 @@ import { UmbDataTypeRepositoryBase } from '../data-type-repository-base.js'; +import { UmbDataTypeDetailRepository } from '../detail/data-type-detail.repository.js'; import { UmbDataTypeCopyServerDataSource } from './data-type-copy.server.data-source.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbCopyDataSource, UmbCopyRepository } from '@umbraco-cms/backoffice/repository'; export class UmbCopyDataTypeRepository extends UmbDataTypeRepositoryBase implements UmbCopyRepository { #copySource: UmbCopyDataSource; + #detailRepository: UmbDataTypeDetailRepository; constructor(host: UmbControllerHost) { super(host); this.#copySource = new UmbDataTypeCopyServerDataSource(this); + this.#detailRepository = new UmbDataTypeDetailRepository(this); } async copy(id: string, targetId: string | null) { @@ -17,7 +20,7 @@ export class UmbCopyDataTypeRepository extends UmbDataTypeRepositoryBase impleme if (error) return { error }; if (dataTypeCopyId) { - const { data: dataTypeCopy } = await this.requestById(dataTypeCopyId); + const { data: dataTypeCopy } = await this.#detailRepository.requestById(dataTypeCopyId); if (!dataTypeCopy) throw new Error('Could not find copied data type'); // TODO: Be aware about this responsibility.