From 7daeeda42d254740bd329e3c8ce5584c2ebf3ef7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 13 Mar 2024 13:36:45 +0100 Subject: [PATCH] rename to content type + use workspace entity type --- .../property-settings-modal.element.ts | 20 ++++---- .../property-settings-modal.token.ts | 2 +- ...-workspace-view-edit-properties.element.ts | 51 +++++++++++++------ ...pe-workspace-view-edit-property.element.ts | 42 +++++---------- ...nt-type-workspace-view-edit-tab.element.ts | 2 +- ...ontent-type-workspace-view-edit.element.ts | 4 +- ...-workspace-view-edit-properties.element.ts | 2 +- ...pe-workspace-view-edit-property.element.ts | 2 +- 8 files changed, 65 insertions(+), 60 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/modals/property-settings/property-settings-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/modals/property-settings/property-settings-modal.element.ts index 1142f3cb8b..f9ab69f77e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/modals/property-settings/property-settings-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/modals/property-settings/property-settings-modal.element.ts @@ -3,13 +3,13 @@ import { UmbPropertyTypeWorkspaceContext, } from './property-settings-modal.context.js'; import type { UmbPropertySettingsModalData, UmbPropertySettingsModalValue } from './property-settings-modal.token.js'; -import { UMB_DOCUMENT_TYPE_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/document-type'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UUIBooleanInputEvent, UUIInputEvent, UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; import type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit'; -import { css, html, nothing, customElement, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { generateAlias } from '@umbraco-cms/backoffice/utils'; +import { UMB_CONTENT_TYPE_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/content-type'; // TODO: Could base take a token to get its types?. @customElement('umb-property-settings-modal') export class UmbPropertySettingsModalElement extends UmbModalBaseElement< @@ -52,19 +52,19 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement< #context = new UmbPropertyTypeWorkspaceContext(this); @state() - private _documentVariesByCulture?: boolean; + private _contentTypeVariesByCulture?: boolean; @state() - private _documentVariesBySegment?: boolean; + private _contentTypeVariesBySegment?: boolean; connectedCallback(): void { super.connectedCallback(); - this.consumeContext(UMB_DOCUMENT_TYPE_WORKSPACE_CONTEXT, (instance) => { - if (!this.data?.documentTypeId) return; + this.consumeContext(UMB_CONTENT_TYPE_WORKSPACE_CONTEXT, (instance) => { + if (!this.data?.contentTypeId) return; - this.observe(instance.variesByCulture, (variesByCulture) => (this._documentVariesByCulture = variesByCulture)); - this.observe(instance.variesBySegment, (variesBySegment) => (this._documentVariesBySegment = variesBySegment)); + this.observe(instance.variesByCulture, (variesByCulture) => (this._contentTypeVariesByCulture = variesByCulture)); + this.observe(instance.variesBySegment, (variesBySegment) => (this._contentTypeVariesBySegment = variesBySegment)); }).skipHost(); this._originalPropertyData = this.value; @@ -362,10 +362,10 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement< } #renderVariationControls() { - return this._documentVariesByCulture || this._documentVariesBySegment + return this._contentTypeVariesByCulture || this._contentTypeVariesBySegment ? html`
Variation - ${this._documentVariesByCulture ? this.#renderVaryByCulture() : ''} + ${this._contentTypeVariesByCulture ? this.#renderVaryByCulture() : ''}

` : ''; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/modals/property-settings/property-settings-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/modals/property-settings/property-settings-modal.token.ts index b4d609c1d6..722c92d0eb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/modals/property-settings/property-settings-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/modals/property-settings/property-settings-modal.token.ts @@ -2,7 +2,7 @@ import { UmbModalToken } from '../../../modal/token/modal-token.js'; import type { UmbPropertyTypeModel, UmbPropertyTypeScaffoldModel } from '@umbraco-cms/backoffice/content-type'; export type UmbPropertySettingsModalData = { - documentTypeId: string; + contentTypeId: string; }; export type UmbPropertySettingsModalValue = UmbPropertyTypeModel | UmbPropertyTypeScaffoldModel; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-workspace-view-edit-properties.element.ts index 047ead9097..167eeaa24b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-workspace-view-edit-properties.element.ts @@ -14,7 +14,11 @@ import { UMB_PROPERTY_SETTINGS_MODAL, } from '@umbraco-cms/backoffice/content-type'; import { type UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; -import { type UmbModalRouteBuilder, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; +import { + type UmbModalRouteBuilder, + UmbModalRouteRegistrationController, + UMB_WORKSPACE_MODAL, +} from '@umbraco-cms/backoffice/modal'; const SORTER_CONFIG: UmbSorterConfig = { getUniqueOfElement: (element) => { @@ -23,7 +27,7 @@ const SORTER_CONFIG: UmbSorterConfig { return modelEntry.id; }, - identifier: 'document-type-property-sorter', + identifier: 'content-type-property-sorter', itemSelector: 'umb-content-type-workspace-view-edit-property', //disabledItemSelector: '[inherited]', //TODO: Set the property list (sorter wrapper) to inherited, if its inherited @@ -115,20 +119,24 @@ export class UmbContentTypeWorkspaceViewEditPropertiesElement extends UmbLitElem } #addPropertyModal: UmbModalRouteRegistrationController; + #workspaceModal?: UmbModalRouteRegistrationController; _propertyStructureHelper = new UmbContentTypePropertyStructureHelper(this); @state() - _propertyStructure: Array = []; + private _propertyStructure: Array = []; @state() - _ownerDocumentType?: UmbContentTypeModel; + private _ownerContentType?: UmbContentTypeModel; @state() - protected _modalRouteBuilderNewProperty?: UmbModalRouteBuilder; + private _modalRouteBuilderNewProperty?: UmbModalRouteBuilder; @state() - _sortModeActive?: boolean; + private _editContentTypePath?: string; + + @state() + private _sortModeActive?: boolean; constructor() { super(); @@ -138,6 +146,18 @@ export class UmbContentTypeWorkspaceViewEditPropertiesElement extends UmbLitElem this.consumeContext(UMB_CONTENT_TYPE_WORKSPACE_CONTEXT, async (workspaceContext) => { this._propertyStructureHelper.setStructureManager(workspaceContext.structure); + const entityType = workspaceContext.getEntityType(); + + this.#workspaceModal?.destroy(); + this.#workspaceModal = new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL) + .addAdditionalPath(entityType) + .onSetup(async () => { + return { data: { entityType: entityType, preset: {} } }; + }) + .observeRouteBuilder((routeBuilder) => { + this._editContentTypePath = routeBuilder({}); + }); + this.observe( workspaceContext.isSorting, (isSorting) => { @@ -153,10 +173,10 @@ export class UmbContentTypeWorkspaceViewEditPropertiesElement extends UmbLitElem const docTypeObservable = workspaceContext.structure.ownerContentType; this.observe( docTypeObservable, - (document) => { - this._ownerDocumentType = document; + (contentType) => { + this._ownerContentType = contentType; }, - 'observeOwnerDocumentType', + 'observeOwnerContentType', ); }); this.observe(this._propertyStructureHelper.propertyStructure, (propertyStructure) => { @@ -169,7 +189,7 @@ export class UmbContentTypeWorkspaceViewEditPropertiesElement extends UmbLitElem .addUniquePaths(['container-id']) .addAdditionalPath('add-property/:sortOrder') .onSetup(async (params) => { - if (!this._ownerDocumentType || !this._containerId) return false; + if (!this._ownerContentType || !this._containerId) return false; const propertyData = await this._propertyStructureHelper.createPropertyScaffold(this._containerId); if (propertyData === undefined) return false; @@ -181,10 +201,10 @@ export class UmbContentTypeWorkspaceViewEditPropertiesElement extends UmbLitElem } propertyData.sortOrder = sortOrderInt + 1; } - return { data: { documentTypeId: this._ownerDocumentType.unique }, value: propertyData }; + return { data: { contentTypeId: this._ownerContentType.unique }, value: propertyData }; }) .onSubmit(async (value) => { - if (!this._ownerDocumentType) return false; + if (!this._ownerContentType) return false; // TODO: The model requires a data-type to be set, we cheat currently. But this should be re-though when we implement validation(As we most likely will have to com up with partial models for the runtime model.) [NL] this._propertyStructureHelper.insertProperty(value as UmbPropertyTypeModel); return true; @@ -195,7 +215,7 @@ export class UmbContentTypeWorkspaceViewEditPropertiesElement extends UmbLitElem } render() { - return this._ownerDocumentType + return this._ownerContentType ? html`
${repeat( @@ -205,8 +225,9 @@ export class UmbContentTypeWorkspaceViewEditPropertiesElement extends UmbLitElem return html` | undefined) { @@ -57,7 +52,6 @@ export class UmbContentTypeWorkspacePropertyElement extends UmbLitElement { this._property = value; this.#checkInherited(); this.#settingsModal.setUniquePathValue('propertyId', value?.id?.toString()); - //this.#workspaceModal.setUniquePathValue('propertyId', value?.id?.toString()); this.setDataType(this._property?.dataType?.unique); this.requestUpdate('property', oldValue); } @@ -76,18 +70,18 @@ export class UmbContentTypeWorkspacePropertyElement extends UmbLitElement { @property({ type: Boolean, reflect: true, attribute: 'sort-mode-active' }) public sortModeActive = false; - @property({ type: String, attribute: 'owner-document-type-id' }) - public ownerDocumentTypeId?: string; + @property({ type: String, attribute: 'owner-content-type-id' }) + public ownerContentTypeId?: string; - @property({ type: String, attribute: 'owner-document-type-name' }) - public ownerDocumentTypeName?: string; + @property({ type: String, attribute: 'owner-content-type-name' }) + public ownerContentTypeName?: string; + + @property({ type: String, attribute: 'edit-content-type-path' }) + public editContentTypePath?: string; @state() protected _modalRoute?: string; - @state() - protected _editDocumentTypePath?: string; - @state() private _dataTypeName?: string; @@ -99,11 +93,11 @@ export class UmbContentTypeWorkspacePropertyElement extends UmbLitElement { this.#settingsModal = new UmbModalRouteRegistrationController(this, UMB_PROPERTY_SETTINGS_MODAL) .addUniquePaths(['propertyId']) .onSetup(() => { - const documentTypeId = this.ownerDocumentTypeId; - if (documentTypeId === undefined) return false; + const id = this.ownerContentTypeId; + if (id === undefined) return false; const propertyData = this.property; if (propertyData === undefined) return false; - return { data: { documentTypeId }, value: propertyData }; + return { data: { contentTypeId: id }, value: propertyData }; }) .onSubmit((result) => { this._partialUpdate(result as UmbPropertyTypeModel); @@ -111,16 +105,6 @@ export class UmbContentTypeWorkspacePropertyElement extends UmbLitElement { .observeRouteBuilder((routeBuilder) => { this._modalRoute = routeBuilder(null); }); - - this.#workspaceModal = new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL) - //.addUniquePaths(['propertyId']) - .addAdditionalPath('document-type') - .onSetup(() => { - return { data: { entityType: 'document-type', preset: {} } }; - }) - .observeRouteBuilder((routeBuilder) => { - this._editDocumentTypePath = routeBuilder({}); - }); } async #checkInherited() { @@ -224,8 +208,8 @@ export class UmbContentTypeWorkspacePropertyElement extends UmbLitElement { ${this.localize.term('contentTypeEditor_inheritedFrom')} - - ${this.ownerDocumentTypeName ?? '??'} + + ${this.ownerContentTypeName ?? '??'} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-workspace-view-edit-tab.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-workspace-view-edit-tab.element.ts index 9c7b4dccd7..16eb1ed8ea 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-workspace-view-edit-tab.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-workspace-view-edit-tab.element.ts @@ -15,7 +15,7 @@ import { type UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffi const SORTER_CONFIG: UmbSorterConfig = { getUniqueOfElement: (element) => element.group?.id, getUniqueOfModel: (modelEntry) => modelEntry.id, - identifier: 'document-type-container-sorter', + identifier: 'content-type-container-sorter', itemSelector: '.container-handle', containerSelector: '.container-list', }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-workspace-view-edit.element.ts index 5111e75874..28e0526942 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-workspace-view-edit.element.ts @@ -25,7 +25,7 @@ export class UmbContentTypeWorkspaceViewEditElement extends UmbLitElement implem #sorter = new UmbSorterController(this, { getUniqueOfElement: (element) => element.getAttribute('data-umb-tabs-id'), getUniqueOfModel: (tab) => tab.id, - identifier: 'document-type-tabs-sorter', + identifier: 'content-type-tabs-sorter', itemSelector: 'uui-tab', containerSelector: 'uui-tab-group', disabledItemSelector: '#root-tab', @@ -285,7 +285,7 @@ export class UmbContentTypeWorkspaceViewEditElement extends UmbLitElement implem tab.id, ); - // Check if it collides with another tab name of this same document-type, if so adjust name: + // Check if it collides with another tab name of this same content-type, if so adjust name: if (changedName) { newName = changedName; (event.target as HTMLInputElement).value = newName; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/workspace/views/design/member-type-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/workspace/views/design/member-type-workspace-view-edit-properties.element.ts index 22a8782520..d5ca43230b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/workspace/views/design/member-type-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/workspace/views/design/member-type-workspace-view-edit-properties.element.ts @@ -169,7 +169,7 @@ export class UmbMemberTypeWorkspaceViewEditPropertiesElement extends UmbLitEleme if (memberTypeId === undefined) return false; const propertyData = await this._propertyStructureHelper.createPropertyScaffold(this._containerId); if (propertyData === undefined) return false; - return { data: { documentTypeId: memberTypeId }, value: propertyData }; + return { data: { contentTypeId: memberTypeId }, value: propertyData }; }) .onSubmit((value) => { if (!value.dataType) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/workspace/views/design/member-type-workspace-view-edit-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/workspace/views/design/member-type-workspace-view-edit-property.element.ts index a4545f4940..8ea9e5a1c6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/workspace/views/design/member-type-workspace-view-edit-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/workspace/views/design/member-type-workspace-view-edit-property.element.ts @@ -95,7 +95,7 @@ export class UmbMemberTypeWorkspacePropertyElement extends UmbLitElement { if (memberTypeId === undefined) return false; const propertyData = this.property; if (propertyData === undefined) return false; - return { data: { documentTypeId: memberTypeId }, value: propertyData }; + return { data: { contentTypeId: memberTypeId }, value: propertyData }; }) .onSubmit((result) => { if (!result.dataType) {