diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.repository.ts index 01c7113f0f..2e5ab9fb07 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.repository.ts @@ -1,4 +1,4 @@ -import { UmbDataTypeItemServerDataSource } from './data-type-item.server.data.js'; +import { UmbDataTypeItemServerDataSource } from './data-type-item.server.data-source.js'; import { UMB_DATA_TYPE_ITEM_STORE_CONTEXT } from './data-type-item.store.js'; import type { UmbDataTypeItemModel } from './types.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.server.data-source.ts new file mode 100644 index 0000000000..9943a59a86 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.server.data-source.ts @@ -0,0 +1,39 @@ +import type { UmbDataTypeItemModel } from './types.js'; +import { UmbItemServerDataSourceBase } from '@umbraco-cms/backoffice/repository'; +import type { DataTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { DataTypeResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; + +/** + * A server data source for Data Type items + * @export + * @class UmbDataTypeItemServerDataSource + * @implements {DocumentTreeDataSource} + */ +export class UmbDataTypeItemServerDataSource extends UmbItemServerDataSourceBase< + DataTypeItemResponseModel, + UmbDataTypeItemModel +> { + /** + * Creates an instance of UmbDataTypeItemServerDataSource. + * @param {UmbControllerHost} host + * @memberof UmbDataTypeItemServerDataSource + */ + constructor(host: UmbControllerHost) { + super(host, { + getItems, + mapper, + }); + } +} + +/* eslint-disable local-rules/no-direct-api-import */ +const getItems = (uniques: Array) => DataTypeResource.getDataTypeItem({ id: uniques }); + +const mapper = (item: DataTypeItemResponseModel): UmbDataTypeItemModel => { + return { + unique: item.id, + name: item.name, + propertyEditorUiAlias: item.editorUiAlias || '', // TODO: why can this be undefined or null on the server? + }; +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.server.data.ts deleted file mode 100644 index 305afb247f..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.server.data.ts +++ /dev/null @@ -1,40 +0,0 @@ -import type { UmbItemDataSource } from '@umbraco-cms/backoffice/repository'; -import type { DataTypeItemResponseModel} from '@umbraco-cms/backoffice/backend-api'; -import { DataTypeResource } from '@umbraco-cms/backoffice/backend-api'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; - -/** - * A data source for Data Type items that fetches data from the server - * @export - * @class UmbDataTypeItemServerDataSource - * @implements {DocumentTreeDataSource} - */ -export class UmbDataTypeItemServerDataSource implements UmbItemDataSource { - #host: UmbControllerHost; - - /** - * Creates an instance of UmbDataTypeItemServerDataSource. - * @param {UmbControllerHost} host - * @memberof UmbDataTypeItemServerDataSource - */ - constructor(host: UmbControllerHost) { - this.#host = host; - } - - /** - * Fetches the items for the given ids from the server - * @param {Array} ids - * @return {*} - * @memberof UmbDataTypeItemServerDataSource - */ - async getItems(ids: Array) { - if (!ids) throw new Error('Ids are missing'); - return tryExecuteAndNotify( - this.#host, - DataTypeResource.getDataTypeItem({ - id: ids, - }), - ); - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts index 608225a565..39d5d096cf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts @@ -35,7 +35,6 @@ export class UmbDocumentWorkspaceElement extends UmbLitElement { path: 'create/:parentId/:documentTypeKey', component: this.#editorElement, setup: async (_component, info) => { - debugger; // TODO: Remember the perspective of permissions here, we need to check if the user has access to create a document of this type under this parent? const parentId = info.match.params.parentId === 'null' ? null : info.match.params.parentId; const documentTypeKey = info.match.params.documentTypeKey;