From a48ddaee0fd36fa9e5243193815e8da63db3070f Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 29 Feb 2024 13:22:49 +0000 Subject: [PATCH] Aligns the `UmbMediaTypeWorkspaceContext` with `UmbDocumentTypeWorkspaceContext` --- .../document-type-workspace.context.ts | 12 +++++- .../workspace/media-type-workspace.context.ts | 43 +++++++++++++++++-- 2 files changed, 51 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts index 31beed9e80..bc82b6bb81 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts @@ -1,4 +1,5 @@ import { UmbDocumentTypeDetailRepository } from '../repository/detail/document-type-detail.repository.js'; +import { UMB_DOCUMENT_TYPE_ENTITY_TYPE } from '../entity.js'; import type { UmbDocumentTypeDetailModel } from '../types.js'; import { UmbContentTypePropertyStructureManager } from '@umbraco-cms/backoffice/content-type'; import { UmbEditableWorkspaceContextBase } from '@umbraco-cms/backoffice/workspace'; @@ -90,15 +91,17 @@ export class UmbDocumentTypeWorkspaceContext } getEntityType() { - return 'document-type'; + return UMB_DOCUMENT_TYPE_ENTITY_TYPE; } setName(name: string) { this.structure.updateOwnerContentType({ name }); } + setAlias(alias: string) { this.structure.updateOwnerContentType({ alias }); } + setDescription(description: string) { this.structure.updateOwnerContentType({ description }); } @@ -111,21 +114,27 @@ export class UmbDocumentTypeWorkspaceContext setAllowedAtRoot(allowedAtRoot: boolean) { this.structure.updateOwnerContentType({ allowedAtRoot }); } + setVariesByCulture(variesByCulture: boolean) { this.structure.updateOwnerContentType({ variesByCulture }); } + setVariesBySegment(variesBySegment: boolean) { this.structure.updateOwnerContentType({ variesBySegment }); } + setIsElement(isElement: boolean) { this.structure.updateOwnerContentType({ isElement }); } + setAllowedContentTypes(allowedContentTypes: Array) { this.structure.updateOwnerContentType({ allowedContentTypes }); } + setCompositions(compositions: Array) { this.structure.updateOwnerContentType({ compositions }); } + setCollection(collection: UmbReferenceByUnique) { this.structure.updateOwnerContentType({ collection }); } @@ -134,6 +143,7 @@ export class UmbDocumentTypeWorkspaceContext setAllowedTemplateIds(allowedTemplates: Array<{ id: string }>) { this.structure.updateOwnerContentType({ allowedTemplates }); } + setDefaultTemplate(defaultTemplate: { id: string }) { this.structure.updateOwnerContentType({ defaultTemplate }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts index 797c7463c2..225813bdc2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts @@ -1,12 +1,14 @@ import { UmbMediaTypeDetailRepository } from '../repository/detail/media-type-detail.repository.js'; -import type { UmbMediaTypeDetailModel } from '../types.js'; import { UMB_MEDIA_TYPE_ENTITY_TYPE } from '../entity.js'; -import type { UmbSaveableWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; +import type { UmbMediaTypeDetailModel } from '../types.js'; import { UmbEditableWorkspaceContextBase } from '@umbraco-cms/backoffice/workspace'; import { UmbContentTypePropertyStructureManager } from '@umbraco-cms/backoffice/content-type'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbBooleanState, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; +import type { UmbContentTypeCompositionModel, UmbContentTypeSortModel } from '@umbraco-cms/backoffice/content-type'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbReferenceByUnique } from '@umbraco-cms/backoffice/models'; +import type { UmbSaveableWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; type EntityType = UmbMediaTypeDetailModel; export class UmbMediaTypeWorkspaceContext @@ -29,6 +31,7 @@ export class UmbMediaTypeWorkspaceContext readonly allowedAtRoot; readonly allowedContentTypes; readonly compositions; + readonly collection; readonly structure = new UmbContentTypePropertyStructureManager(this, this.repository); @@ -47,6 +50,7 @@ export class UmbMediaTypeWorkspaceContext this.allowedAtRoot = this.structure.ownerContentTypeObservablePart((data) => data?.allowedAtRoot); this.allowedContentTypes = this.structure.ownerContentTypeObservablePart((data) => data?.allowedContentTypes); this.compositions = this.structure.ownerContentTypeObservablePart((data) => data?.compositions); + this.collection = this.structure.ownerContentTypeObservablePart((data) => data?.collection); } protected resetState() { @@ -74,6 +78,39 @@ export class UmbMediaTypeWorkspaceContext return UMB_MEDIA_TYPE_ENTITY_TYPE; } + setName(name: string) { + this.structure.updateOwnerContentType({ name }); + } + + setAlias(alias: string) { + this.structure.updateOwnerContentType({ alias }); + } + + setDescription(description: string) { + this.structure.updateOwnerContentType({ description }); + } + + // TODO: manage setting icon color alias? + setIcon(icon: string) { + this.structure.updateOwnerContentType({ icon }); + } + + setAllowedAtRoot(allowedAtRoot: boolean) { + this.structure.updateOwnerContentType({ allowedAtRoot }); + } + + setAllowedContentTypes(allowedContentTypes: Array) { + this.structure.updateOwnerContentType({ allowedContentTypes }); + } + + setCompositions(compositions: Array) { + this.structure.updateOwnerContentType({ compositions }); + } + + setCollection(collection: UmbReferenceByUnique) { + this.structure.updateOwnerContentType({ collection }); + } + updateProperty(propertyName: PropertyName, value: EntityType[PropertyName]) { this.structure.updateOwnerContentType({ [propertyName]: value }); }