diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/components/data-type-flow-input/data-type-flow-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/components/data-type-flow-input/data-type-flow-input.element.ts index 4593633482..0562997050 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/components/data-type-flow-input/data-type-flow-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/components/data-type-flow-input/data-type-flow-input.element.ts @@ -2,7 +2,7 @@ import type { UmbDataTypeModel } from '../../models.js'; import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UUITextStyles, FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbModalRouteRegistrationController, UMB_DATA_TYPE_PICKER_FLOW_MODAL } from '@umbraco-cms/backoffice/modal'; +import { UmbModalRouteRegistrationController, UMB_DATA_TYPE_PICKER_FLOW_MODAL, UMB_WORKSPACE_MODAL } from '@umbraco-cms/backoffice/modal'; import { UmbRepositoryItemsManager } from '@umbraco-cms/backoffice/repository'; // Note: Does only support picking a single data type. But this could be developed later into this same component. To follow other picker input components. @@ -37,8 +37,11 @@ export class UmbInputDataTypeElement extends FormControlMixin(UmbLitElement) { this.#itemsManager.setUniques(super.value.split(',')); } + #editDataTypeModal?: UmbModalRouteRegistrationController; + @state() - private _modalRoute?: string; + private _createRoute?: string; + constructor() { super(); @@ -51,6 +54,12 @@ export class UmbInputDataTypeElement extends FormControlMixin(UmbLitElement) { this._items = items; }); + + this.#editDataTypeModal = new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL) + .onSetup(() => { + return { entityType: 'data-type', preset: {} }; + }) + new UmbModalRouteRegistrationController(this, UMB_DATA_TYPE_PICKER_FLOW_MODAL) .onSetup(() => { return { @@ -64,8 +73,7 @@ export class UmbInputDataTypeElement extends FormControlMixin(UmbLitElement) { this.dispatchEvent(new CustomEvent('change', { composed: true, bubbles: true })); }) .observeRouteBuilder((routeBuilder) => { - this._modalRoute = routeBuilder(null); - this.requestUpdate('_modalRoute'); + this._createRoute = routeBuilder(null); }); } @@ -77,13 +85,14 @@ export class UmbInputDataTypeElement extends FormControlMixin(UmbLitElement) { property-editor-ui-alias=${this._items[0].propertyEditorAlias} property-editor-model-alias=${this._items[0].propertyEditorUiAlias} @open=${() => { - console.warn('TO BE DONE..'); + // TODO: Could use something smarter for workspace modals, as I would like to avoid setting the rest of the URL here: + this.#editDataTypeModal?.open({}, 'edit/' + this._items![0].id) }} border> - + ` @@ -93,7 +102,7 @@ export class UmbInputDataTypeElement extends FormControlMixin(UmbLitElement) { label="Select Property Editor" look="placeholder" color="default" - .href=${this._modalRoute}> + .href=${this._createRoute}> `; }