fix wrong repositories

This commit is contained in:
Mads Rasmussen
2023-11-13 20:40:19 +01:00
parent 52f0ad69e9
commit 20d880d4d5
3 changed files with 14 additions and 9 deletions

View File

@@ -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;
});

View File

@@ -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<EntityTreeItemResponseModel> = [];
#propertyEditorUIs: Array<ManifestPropertyEditorUi> = [];
#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();

View File

@@ -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.