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 8bac2d6a9f..87e8811df1 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 @@ -1,4 +1,3 @@ -import { UMB_DATA_TYPE_WORKSPACE_CONTEXT } from '../../../settings/data-types/workspace/data-type-workspace.context.js'; import { html, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { @@ -35,8 +34,8 @@ export class UmbPropertyEditorConfigElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_DATA_TYPE_WORKSPACE_CONTEXT, (instance) => { - this.#variantContext = instance.createInvariantVariantContext(this); + this.consumeContext(UMB_DATA_TYPE_VARIANT_CONTEXT, (instance) => { + this.#variantContext = instance; this.observe(this.#variantContext.properties, (properties) => { this._properties = properties as Array; }, 'observeProperties'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-context.ts index d96a6fd155..790f96c653 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-context.ts @@ -60,4 +60,5 @@ export abstract class UmbWorkspaceContext; + } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-invariantable-context.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-invariantable-context.interface.ts index 43ee103b87..07a16286ea 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-invariantable-context.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-invariantable-context.interface.ts @@ -1,7 +1,8 @@ -import type { UmbVariantContext } from '../variant-context/variant-context.interface.js'; +import { UmbVariantId } from '../../variant/variant-id.class.js'; +import { UmbVariantContext } from '../variant-context/variant-context.interface.js'; import type { UmbSaveableWorkspaceContextInterface } from './saveable-workspace-context.interface.js'; +import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export interface UmbInvariantableWorkspaceContextInterface extends UmbSaveableWorkspaceContextInterface { @@ -14,7 +15,6 @@ export interface UmbInvariantableWorkspaceContextInterface propertyValueByAlias(alias: string): Promise>; getPropertyValue(alias: string): ReturnType; setPropertyValue(alias: string, value: unknown): Promise; - - // Dataset methods: - createInvariantVariantContext(host: UmbControllerHost): UmbVariantContext; + + createVariantContext(host: UmbControllerHost, variantId?: UmbVariantId): UmbVariantContext; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-variantable-context.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-variantable-context.interface.ts index 5163d6c4aa..3ce0dd3238 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-variantable-context.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-variantable-context.interface.ts @@ -1,10 +1,10 @@ import type { UmbWorkspaceSplitViewManager } from '../workspace-split-view-manager.class.js'; -import type { UmbVariantContext } from '../variant-context/variant-context.interface.js'; +import { UmbVariantContext } from '../variant-context/variant-context.interface.js'; import type { UmbSaveableWorkspaceContextInterface } from './saveable-workspace-context.interface.js'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import type { VariantResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export interface UmbVariantableWorkspaceContextInterface extends UmbSaveableWorkspaceContextInterface { @@ -24,6 +24,5 @@ export interface UmbVariantableWorkspaceContextInterface e setPropertyValue(alias: string, value: unknown, variantId?: UmbVariantId): Promise; //propertyDataByAlias(alias: string, variantId?: UmbVariantId): Observable; - // Dataset methods: - createVariantVariantContext(host: UmbControllerHost, variantId: UmbVariantId): UmbVariantContext; + createVariantContext(host: UmbControllerHost, variantId?: UmbVariantId): UmbVariantContext; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property/workspace-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property/workspace-property.element.ts index 739470ab2f..6e0231df34 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property/workspace-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property/workspace-property.element.ts @@ -208,7 +208,6 @@ export class UmbWorkspacePropertyElement extends UmbLitElement { ? html`` : ''}`; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.context.ts index e32cce2ac0..7c7136367b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.context.ts @@ -57,12 +57,7 @@ export class UmbWorkspaceSplitViewContext extends UmbBaseController { this.#variantContext?.destroy(); const variantId = UmbVariantId.Create(activeVariantInfo); - // We can safely assume in this context that the workspace is variant. - //if(variantId.isInvariant()) { - this.#variantContext = this.#workspaceContext?.createVariantVariantContext(this, variantId); - /*} else { - this.#variantContext = this.#workspaceContext?.createDatasetContext(this); - }*/ + this.#variantContext = this.#workspaceContext?.createVariantContext(this, variantId); }, '_observeActiveVariant' ); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/variant-context/document-variant-context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/variant-context/document-variant-context.ts index e69993b393..2e894b719f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/variant-context/document-variant-context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/variant-context/document-variant-context.ts @@ -46,11 +46,11 @@ export class UmbDocumentVariantContext extends UmbBaseController implements UmbV - constructor(host: UmbControllerHost, workspace: UmbDocumentWorkspaceContext, variantId: UmbVariantId) { + constructor(host: UmbControllerHost, workspace: UmbDocumentWorkspaceContext, variantId?: UmbVariantId) { // The controller alias, is a very generic name cause we want only one of these for this controller host. super(host, 'variantContext'); this.#workspace = workspace; - this.#variantId = variantId; + this.#variantId = variantId ?? UmbVariantId.CreateInvariant(); this.observe( this.#workspace.variantById(this.#variantId), diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts index c1bc00283a..6e6458a254 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts @@ -208,14 +208,10 @@ export class UmbDocumentWorkspaceContext } */ - public createVariantVariantContext(host: UmbControllerHost, variantId: UmbVariantId) { + public createVariantContext(host: UmbControllerHost, variantId: UmbVariantId) { return new UmbDocumentVariantContext(host, this, variantId); } - public createDatasetContext(host: UmbControllerHost) { - return new UmbDocumentVariantContext(host, this, UmbVariantId.Create({})); - } - public destroy(): void { this.#currentData.complete(); this.structure.destroy(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace-editor.element.ts index c78e61f20b..189c333ede 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace-editor.element.ts @@ -23,6 +23,7 @@ export class UmbDataTypeWorkspaceEditorElement extends UmbLitElement { this.consumeContext(UMB_DATA_TYPE_WORKSPACE_CONTEXT, (workspaceContext) => { this.#workspaceContext = workspaceContext; + this.#workspaceContext?.createVariantContext(this); this.#observeIsNew(); this.#observeName(); }); 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 fb32520faf..4df074b8e9 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 @@ -100,7 +100,7 @@ export class UmbDataTypeWorkspaceContext return this._configDefaultData?.find((x) => x.alias === alias)?.value; } - createInvariantVariantContext(host: UmbControllerHost): UmbDataTypeVariantContext { + createVariantContext(host: UmbControllerHost): UmbDataTypeVariantContext { return new UmbDataTypeVariantContext(host, this); }