From a8b36c0f50ac8df6d18a96e34360c50dc511e678 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 28 Aug 2023 12:33:26 +0200 Subject: [PATCH] restructure --- src/Umbraco.Web.UI.Client/.vscode/settings.json | 1 + .../property-editor-config.element.ts | 4 ++-- .../core/workspace/dataset-context/index.ts | 1 + .../dataset-context/invariant-dataset-context.ts} | 15 ++++----------- .../core/workspace/workspace-context/index.ts | 2 +- ... workspace-invariantable-context.interface.ts} | 2 +- .../dataset-context/document-dataset-context.ts | 1 + .../src/packages/settings/data-types/index.ts | 1 - .../workspace/data-type-workspace.context.ts | 9 ++++----- 9 files changed, 15 insertions(+), 21 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/{settings/data-types/dataset-context/data-type-dataset-context.ts => core/workspace/dataset-context/invariant-dataset-context.ts} (74%) rename src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/{workspace-invariable-context.interface.ts => workspace-invariantable-context.interface.ts} (91%) diff --git a/src/Umbraco.Web.UI.Client/.vscode/settings.json b/src/Umbraco.Web.UI.Client/.vscode/settings.json index f07b4ab2bd..ff2e1d51f3 100644 --- a/src/Umbraco.Web.UI.Client/.vscode/settings.json +++ b/src/Umbraco.Web.UI.Client/.vscode/settings.json @@ -5,6 +5,7 @@ "Backoffice", "combobox", "Elementable", + "invariantable", "Niels", "pickable", "templating", diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/property-editor-config/property-editor-config.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/property-editor-config/property-editor-config.element.ts index 2b631df5b1..7f36bb21aa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/property-editor-config/property-editor-config.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/property-editor-config/property-editor-config.element.ts @@ -6,7 +6,7 @@ import { } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDataTypeDatasetContext } from '@umbraco-cms/backoffice/data-type'; +import { UmbInvariantDatasetContext } from '@umbraco-cms/backoffice/data-type'; /** * @element umb-property-editor-config @@ -15,7 +15,7 @@ import { UmbDataTypeDatasetContext } from '@umbraco-cms/backoffice/data-type'; @customElement('umb-property-editor-config') export class UmbPropertyEditorConfigElement extends UmbLitElement { - #datasetContext?: UmbDataTypeDatasetContext; + #datasetContext?: UmbInvariantDatasetContext; /** * Data. The element will render configuration editors with values from this data. diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/dataset-context/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/dataset-context/index.ts index a173e9c8ba..9a3047044a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/dataset-context/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/dataset-context/index.ts @@ -2,3 +2,4 @@ export * from './dataset-context.interface.js'; export * from './dataset-context.token.js'; export * from './variant-dataset-context.interface.js'; export * from './variant-dataset-context.token.js'; +export * from './invariant-dataset-context.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/dataset-context/data-type-dataset-context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/dataset-context/invariant-dataset-context.ts similarity index 74% rename from src/Umbraco.Web.UI.Client/src/packages/settings/data-types/dataset-context/data-type-dataset-context.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/dataset-context/invariant-dataset-context.ts index 26370bcf61..35229b045a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/dataset-context/data-type-dataset-context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/dataset-context/invariant-dataset-context.ts @@ -1,14 +1,11 @@ -import { UmbDataTypeWorkspaceContext } from "../workspace/data-type-workspace.context.js"; import { DocumentVariantResponseModel } from "@umbraco-cms/backoffice/backend-api"; import { UmbBaseController, UmbControllerHost } from "@umbraco-cms/backoffice/controller-api"; -import { PropertyEditorConfigProperty } from "@umbraco-cms/backoffice/extension-registry"; -import { Observable } from "@umbraco-cms/backoffice/external/rxjs"; import { UmbObjectState } from "@umbraco-cms/backoffice/observable-api"; -import { UMB_DATASET_CONTEXT, UmbDatasetContext } from "@umbraco-cms/backoffice/workspace"; +import { UMB_DATASET_CONTEXT, UmbDatasetContext, UmbInvariantableWorkspaceContextInterface } from "@umbraco-cms/backoffice/workspace"; -export class UmbDataTypeDatasetContext extends UmbBaseController implements UmbDatasetContext { +export class UmbInvariantDatasetContext extends UmbBaseController implements UmbDatasetContext { - #workspace: UmbDataTypeWorkspaceContext; + #workspace: UmbInvariantableWorkspaceContextInterface; #currentVariant = new UmbObjectState(undefined); currentVariant = this.#currentVariant.asObservable(); @@ -17,8 +14,6 @@ export class UmbDataTypeDatasetContext extends UmbBaseController implements UmbD culture = this.#currentVariant.asObservablePart((x) => x?.culture); segment = this.#currentVariant.asObservablePart((x) => x?.segment); - properties: Observable | undefined>; - // default data: @@ -37,13 +32,11 @@ export class UmbDataTypeDatasetContext extends UmbBaseController implements UmbD - constructor(host: UmbControllerHost, workspace: UmbDataTypeWorkspaceContext) { + constructor(host: UmbControllerHost, workspace: UmbInvariantableWorkspaceContextInterface) { // The controller alias, is a very generic name cause we want only one of these for this controller host. super(host, 'dataSetContext'); this.#workspace = workspace; - this.properties = this.#workspace.properties; - // TODO: Refactor: use the document dataset context token. this.provideContext(UMB_DATASET_CONTEXT, this); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/index.ts index 168dde8a10..776e5ce113 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/index.ts @@ -6,5 +6,5 @@ export * from './variant-workspace-context.token.js'; export * from './workspace-context.interface.js'; export * from './workspace-context.js'; export * from './workspace-context.token.js'; -export * from './workspace-invariable-context.interface.js'; +export * from './workspace-invariantable-context.interface.js'; export * from './workspace-variantable-context.interface.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-invariable-context.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-invariantable-context.interface.ts similarity index 91% rename from src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-invariable-context.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-invariantable-context.interface.ts index a87a58d4bc..52ba72a7ac 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-invariable-context.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-invariantable-context.interface.ts @@ -3,7 +3,7 @@ import type { UmbSaveableWorkspaceContextInterface } from './saveable-workspace- import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -export interface UmbInvariableWorkspaceContextInterface +export interface UmbInvariantableWorkspaceContextInterface extends UmbSaveableWorkspaceContextInterface { // Name: diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/dataset-context/document-dataset-context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/dataset-context/document-dataset-context.ts index e02c8ca30f..6245dfc1a0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/dataset-context/document-dataset-context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/dataset-context/document-dataset-context.ts @@ -6,6 +6,7 @@ import { UmbObjectState } from "@umbraco-cms/backoffice/observable-api"; import { UmbVariantId } from "@umbraco-cms/backoffice/variant"; import { UMB_DATASET_CONTEXT, UmbVariantDatasetContext } from "@umbraco-cms/backoffice/workspace"; +// TODO: This code can be split into a UmbContentTypeDatasetContext, leaving just the publishing state and methods to this class. export class UmbDocumentDatasetContext extends UmbBaseController implements UmbVariantDatasetContext { #workspace: UmbDocumentWorkspaceContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/index.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/index.ts index 456701c072..10ee495e1d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/index.ts @@ -3,4 +3,3 @@ import './components/index.js'; export type { UmbDataTypeModel } from './models.js'; export * from './entities.js'; export * from './repository/index.js'; -export * from './dataset-context/data-type-dataset-context.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.context.ts index 6a083350f0..e36963fa30 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.context.ts @@ -1,6 +1,5 @@ import { UmbDataTypeRepository } from '../repository/data-type.repository.js'; -import { UmbDataTypeDatasetContext } from '../index.js'; -import { UmbInvariableWorkspaceContextInterface, UmbWorkspaceContext, UmbWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; +import { UmbInvariantDatasetContext, UmbInvariantableWorkspaceContextInterface, UmbWorkspaceContext, UmbWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; import type { DataTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { appendToFrozenArray, UmbArrayState, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHost, UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; @@ -11,7 +10,7 @@ import { UMB_PROPERTY_EDITOR_SCHEMA_ALIAS_DEFAULT } from '@umbraco-cms/backoffic export class UmbDataTypeWorkspaceContext extends UmbWorkspaceContext - implements UmbInvariableWorkspaceContextInterface + implements UmbInvariantableWorkspaceContextInterface { // TODO: revisit. temp solution because the create and response models are different. #data = new UmbObjectState(undefined); @@ -100,8 +99,8 @@ export class UmbDataTypeWorkspaceContext return this._configDefaultData?.find((x) => x.alias === alias)?.value; } - createDatasetContext(host: UmbControllerHost): UmbDataTypeDatasetContext { - return new UmbDataTypeDatasetContext(host, this); + createDatasetContext(host: UmbControllerHost): UmbInvariantDatasetContext { + return new UmbInvariantDatasetContext(host, this); } async load(id: string) {