From 77ae965dae32444da92c1fc89f23911c7fe897e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 1 Oct 2024 10:02:06 +0200 Subject: [PATCH] align code across content workspaces --- .../workspace/block-type-workspace.context.ts | 3 +- .../workspace/block-workspace.context.ts | 3 +- .../property-type-workspace.context.ts | 3 +- .../workspace-is-new-redirect.controller.ts | 6 +- .../documents/document-blueprints/entity.ts | 5 + .../documents/document-blueprints/paths.ts | 21 ++++ .../documents/document-blueprints/utils.ts | 16 +++ .../document-blueprint-workspace.context.ts | 104 ++++++++++++------ .../document-type-workspace.context.ts | 3 +- .../workspace/document-workspace.context.ts | 90 ++++++++------- .../language/language-workspace.context.ts | 3 +- .../webhook/webhook-workspace.context.ts | 3 +- 12 files changed, 183 insertions(+), 77 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/paths.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/utils.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts index 478e9473e9..8b9d425241 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts @@ -11,6 +11,7 @@ import { UmbSubmittableWorkspaceContextBase, UmbInvariantWorkspacePropertyDatasetContext, UmbWorkspaceIsNewRedirectController, + UmbWorkspaceIsNewRedirectControllerAlias, } from '@umbraco-cms/backoffice/workspace'; import { UmbObjectState, appendToFrozenArray } from '@umbraco-cms/backoffice/observable-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -70,7 +71,7 @@ export class UmbBlockTypeWorkspaceContext, router: UmbRouterSlotElement, ) { - super(host, 'isNewRedirectController'); + super(host, UmbWorkspaceIsNewRedirectControllerAlias); // Navigate to edit route when language is created: this.observe(workspaceContext.isNew, (isNew) => { @@ -37,5 +39,7 @@ export class UmbWorkspaceIsNewRedirectController extends UmbControllerBase { } } }); + + // TODO: If workspace route changes cause of other reasons then this controller should be destroyed. } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/entity.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/entity.ts index 8aa8201389..73297b923f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/entity.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/entity.ts @@ -5,3 +5,8 @@ export const UMB_DOCUMENT_BLUEPRINT_FOLDER_ENTITY_TYPE = 'document-blueprint-fol export type UmbDocumentBlueprintRootEntityType = typeof UMB_DOCUMENT_BLUEPRINT_ROOT_ENTITY_TYPE; export type UmbDocumentBlueprintEntityType = typeof UMB_DOCUMENT_BLUEPRINT_ENTITY_TYPE; export type UmbDocumentBlueprintFolderEntityType = typeof UMB_DOCUMENT_BLUEPRINT_FOLDER_ENTITY_TYPE; + +export type UmbDocumentBlueprintEntityTypeUnion = + | UmbDocumentBlueprintRootEntityType + | UmbDocumentBlueprintEntityType + | UmbDocumentBlueprintFolderEntityType; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/paths.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/paths.ts new file mode 100644 index 0000000000..0a045e893b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/paths.ts @@ -0,0 +1,21 @@ +import { UMB_DOCUMENTS_SECTION_PATHNAME } from '../section/paths.js'; +import { UMB_DOCUMENT_BLUEPRINT_ENTITY_TYPE, type UmbDocumentBlueprintEntityTypeUnion } from './entity.js'; +import type { UmbEntityUnique } from '@umbraco-cms/backoffice/entity'; +import { UmbPathPattern } from '@umbraco-cms/backoffice/router'; +import { UMB_WORKSPACE_PATH_PATTERN } from '@umbraco-cms/backoffice/workspace'; + +export const UMB_DOCUMENT_BLUEPRINT_WORKSPACE_PATH = UMB_WORKSPACE_PATH_PATTERN.generateAbsolute({ + sectionName: UMB_DOCUMENTS_SECTION_PATHNAME, + entityType: UMB_DOCUMENT_BLUEPRINT_ENTITY_TYPE, +}); + +export const UMB_CREATE_DOCUMENT_BLUEPRINT_WORKSPACE_PATH_PATTERN = new UmbPathPattern<{ + parentEntityType: UmbDocumentBlueprintEntityTypeUnion; + parentUnique?: UmbEntityUnique; + documentTypeUnique: string; +}>('create/parent/:parentEntityType/:parentUnique/:documentTypeUnique', UMB_DOCUMENT_BLUEPRINT_WORKSPACE_PATH); + +export const UMB_EDIT_BLUEPRINT_DOCUMENT_WORKSPACE_PATH_PATTERN = new UmbPathPattern<{ unique: string }>( + 'edit/:unique', + UMB_DOCUMENT_BLUEPRINT_WORKSPACE_PATH, +); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/utils.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/utils.ts new file mode 100644 index 0000000000..18bd0fdeb9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/utils.ts @@ -0,0 +1,16 @@ +import type { UmbDocumentBlueprintVariantOptionModel } from './types.js'; + +type VariantType = UmbDocumentBlueprintVariantOptionModel; + +export const sortVariants = (a: VariantType, b: VariantType) => { + const compareDefault = (a: VariantType, b: VariantType) => + (a.language?.isDefault ? -1 : 1) - (b.language?.isDefault ? -1 : 1); + + // Make sure mandatory variants goes on top. + const compareMandatory = (a: VariantType, b: VariantType) => + (a.language?.isMandatory ? -1 : 1) - (b.language?.isMandatory ? -1 : 1); + + const compareName = (a: VariantType, b: VariantType) => a.variant?.name.localeCompare(b.variant?.name || '') || 99; + + return compareDefault(a, b) || compareMandatory(a, b) || compareName(a, b); +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace.context.ts index 9ef91ae72d..c3acbd81d2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace.context.ts @@ -7,6 +7,8 @@ import type { UmbDocumentBlueprintVariantModel, UmbDocumentBlueprintVariantOptionModel, } from '../types.js'; +import { sortVariants } from '../utils.js'; +import { UMB_CREATE_DOCUMENT_BLUEPRINT_WORKSPACE_PATH_PATTERN } from '../paths.js'; import { UMB_DOCUMENT_BLUEPRINT_WORKSPACE_ALIAS } from './manifests.js'; import { appendToFrozenArray, @@ -17,6 +19,7 @@ import { import { UmbSubmittableWorkspaceContextBase, UmbWorkspaceIsNewRedirectController, + UmbWorkspaceIsNewRedirectControllerAlias, UmbWorkspaceSplitViewManager, } from '@umbraco-cms/backoffice/workspace'; import { UmbContentTypeStructureManager } from '@umbraco-cms/backoffice/content-type'; @@ -35,8 +38,15 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { UmbLanguageDetailModel } from '@umbraco-cms/backoffice/language'; import { UmbContentWorkspaceDataManager, type UmbContentWorkspaceContext } from '@umbraco-cms/backoffice/content'; import { UmbReadOnlyVariantStateManager } from '@umbraco-cms/backoffice/utils'; -import { UMB_DOCUMENT_DETAIL_MODEL_VARIANT_SCAFFOLD } from '@umbraco-cms/backoffice/document'; +import { + UMB_DOCUMENT_COLLECTION_ALIAS, + UMB_DOCUMENT_DETAIL_MODEL_VARIANT_SCAFFOLD, + UMB_EDIT_DOCUMENT_WORKSPACE_PATH_PATTERN, +} from '@umbraco-cms/backoffice/document'; import { UmbDataTypeItemRepositoryManager } from '@umbraco-cms/backoffice/data-type'; +import { Observable, map } from '@umbraco-cms/backoffice/external/rxjs'; +import { UmbEntityContext, type UmbEntityModel } from '@umbraco-cms/backoffice/entity'; +import { UMB_SETTINGS_SECTION_PATH } from '@umbraco-cms/backoffice/settings'; type EntityModel = UmbDocumentBlueprintDetailModel; @@ -119,27 +129,46 @@ export class UmbDocumentBlueprintWorkspaceContext } return []; }, - ); + ).pipe(map((results) => results.sort(sortVariants))); + + // TODO: this should be set up for all entity workspace contexts in a base class + #entityContext = new UmbEntityContext(this); constructor(host: UmbControllerHost) { super(host, UMB_DOCUMENT_BLUEPRINT_WORKSPACE_ALIAS); - this.observe(this.contentTypeUnique, (unique) => this.structure.loadType(unique)); - - this.observe(this.variesByCulture, (varies) => { - this.#data.setVariesByCulture(varies); - this.#variesByCulture = varies; - }); - this.observe(this.variesBySegment, (varies) => { - this.#data.setVariesBySegment(varies); - this.#variesBySegment = varies; - }); - this.observe(this.varies, (varies) => (this.#varies = varies)); - - this.observe(this.structure.contentTypeDataTypeUniques, (dataTypeUniques: Array) => { - this.#dataTypeItemManager.setUniques(dataTypeUniques); - }); - + this.observe(this.contentTypeUnique, (unique) => this.structure.loadType(unique), null); + this.observe( + this.varies, + (varies) => { + this.#data.setVaries(varies); + this.#varies = varies; + }, + null, + ); + this.observe( + this.variesByCulture, + (varies) => { + this.#data.setVariesByCulture(varies); + this.#variesByCulture = varies; + }, + null, + ); + this.observe( + this.variesBySegment, + (varies) => { + this.#data.setVariesBySegment(varies); + this.#variesBySegment = varies; + }, + null, + ); + this.observe( + this.structure.contentTypeDataTypeUniques, + (dataTypeUniques: Array) => { + this.#dataTypeItemManager.setUniques(dataTypeUniques); + }, + null, + ); this.observe(this.#dataTypeItemManager.items, (dataTypes) => { // Make a map of the data type unique and editorAlias: this.#dataTypeSchemaAliasMap = new Map( @@ -148,14 +177,15 @@ export class UmbDocumentBlueprintWorkspaceContext }), ); }); + this.loadLanguages(); this.routes.setRoutes([ { - path: 'create/parent/:entityType/:parentUnique/:documentTypeUnique', + path: UMB_CREATE_DOCUMENT_BLUEPRINT_WORKSPACE_PATH_PATTERN.toString(), component: () => import('./document-blueprint-workspace-editor.element.js'), setup: async (_component, info) => { - const parentEntityType = info.match.params.entityType; + const parentEntityType = info.match.params.parentEntityType; const parentUnique = info.match.params.parentUnique === 'null' ? null : info.match.params.parentUnique; const documentTypeUnique = info.match.params.documentTypeUnique; this.create({ entityType: parentEntityType, unique: parentUnique }, documentTypeUnique); @@ -168,10 +198,10 @@ export class UmbDocumentBlueprintWorkspaceContext }, }, { - path: 'edit/:unique', + path: UMB_EDIT_DOCUMENT_WORKSPACE_PATH_PATTERN.toString(), component: () => import('./document-blueprint-workspace-editor.element.js'), setup: (_component, info) => { - this.removeUmbControllerByAlias('isNewRedirectController'); + this.removeUmbControllerByAlias(UmbWorkspaceIsNewRedirectControllerAlias); const unique = info.match.params.unique; this.load(unique); }, @@ -181,8 +211,7 @@ export class UmbDocumentBlueprintWorkspaceContext override resetState() { super.resetState(); - this.#data.setPersisted(undefined); - this.#data.setCurrent(undefined); + this.#data.clear(); } async loadLanguages() { @@ -194,42 +223,50 @@ export class UmbDocumentBlueprintWorkspaceContext async load(unique: string) { this.resetState(); this.#getDataPromise = this.repository.requestByUnique(unique); - const { data, asObservable } = await this.repository.requestByUnique(unique); + type GetDataType = Awaited>; + const { data, asObservable } = (await this.#getDataPromise) as GetDataType; if (data) { + this.#entityContext.setEntityType(UMB_DOCUMENT_BLUEPRINT_ENTITY_TYPE); + this.#entityContext.setUnique(unique); this.setIsNew(false); this.#data.setPersisted(data); this.#data.setCurrent(data); } - if (asObservable) { - this.observe(asObservable(), (entity) => this.#onStoreChange(entity), 'UmbDocumentBlueprintStoreObserver'); - } + this.observe(asObservable(), (entity) => this.#onStoreChange(entity), 'UmbDocumentBlueprintStoreObserver'); } #onStoreChange(entity: EntityModel | undefined) { if (!entity) { //TODO: This solution is alright for now. But reconsider when we introduce signal-r - history.pushState(null, '', 'section/document-blueprint'); + history.pushState(null, '', UMB_SETTINGS_SECTION_PATH); } } - async create(parent: { entityType: string; unique: string | null }, documentTypeUnique: string) { + async create(parent: UmbEntityModel, documentTypeUnique: string) { this.resetState(); this.#parent.setValue(parent); - const { data } = await this.repository.createScaffold({ + this.#getDataPromise = this.repository.createScaffold({ documentType: { unique: documentTypeUnique, collection: null }, }); + const { data } = await this.#getDataPromise; if (!data) return undefined; + this.#entityContext.setEntityType(UMB_DOCUMENT_BLUEPRINT_ENTITY_TYPE); + this.#entityContext.setUnique(data.unique); this.setIsNew(true); this.#data.setPersisted(undefined); this.#data.setCurrent(data); return data; } + getCollectionAlias() { + return UMB_DOCUMENT_COLLECTION_ALIAS; + } + getData() { return this.#data.getCurrent(); } @@ -294,7 +331,10 @@ export class UmbDocumentBlueprintWorkspaceContext * @returns {Promise | undefined>} * @description Get an Observable for the value of this property. */ - async propertyValueByAlias(propertyAlias: string, variantId?: UmbVariantId) { + async propertyValueByAlias( + propertyAlias: string, + variantId?: UmbVariantId, + ): Promise | undefined> { return this.#data.createObservablePartOfCurrent( (data) => data?.values?.find((x) => x?.alias === propertyAlias && (variantId ? variantId.compare(x as any) : true)) 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 a18f945efd..2088d49858 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 @@ -18,6 +18,7 @@ import { import { UmbSubmittableWorkspaceContextBase, UmbWorkspaceIsNewRedirectController, + UmbWorkspaceIsNewRedirectControllerAlias, } from '@umbraco-cms/backoffice/workspace'; import { UmbTemplateDetailRepository } from '@umbraco-cms/backoffice/template'; import { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action'; @@ -132,7 +133,7 @@ export class UmbDocumentTypeWorkspaceContext path: UMB_EDIT_DOCUMENT_TYPE_WORKSPACE_PATH_PATTERN.toString(), component: UmbDocumentTypeWorkspaceEditorElement, setup: (_component, info) => { - this.removeUmbControllerByAlias('isNewRedirectController'); + this.removeUmbControllerByAlias(UmbWorkspaceIsNewRedirectControllerAlias); const unique = info.match.params.unique; this.load(unique); }, 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 a4f7449d35..58be94458c 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 @@ -27,7 +27,7 @@ import { UMB_DOCUMENTS_SECTION_PATH } from '../../section/paths.js'; import { UmbDocumentPreviewRepository } from '../repository/preview/index.js'; import { sortVariants } from '../utils.js'; import { UMB_DOCUMENT_DETAIL_MODEL_VARIANT_SCAFFOLD, UMB_DOCUMENT_WORKSPACE_ALIAS } from './constants.js'; -import { UmbEntityContext } from '@umbraco-cms/backoffice/entity'; +import { UmbEntityContext, type UmbEntityModel } from '@umbraco-cms/backoffice/entity'; import { UMB_INVARIANT_CULTURE, UmbVariantId } from '@umbraco-cms/backoffice/variant'; import { UmbContentTypeStructureManager } from '@umbraco-cms/backoffice/content-type'; import { @@ -35,6 +35,7 @@ import { UmbSubmittableWorkspaceContextBase, UmbWorkspaceIsNewRedirectController, UmbWorkspaceSplitViewManager, + UmbWorkspaceIsNewRedirectControllerAlias, } from '@umbraco-cms/backoffice/workspace'; import { appendToFrozenArray, @@ -72,6 +73,7 @@ import type { UmbDocumentTypeDetailModel } from '@umbraco-cms/backoffice/documen import { UmbIsTrashedEntityContext } from '@umbraco-cms/backoffice/recycle-bin'; import { UmbReadOnlyVariantStateManager } from '@umbraco-cms/backoffice/utils'; import { UmbDataTypeItemRepositoryManager } from '@umbraco-cms/backoffice/data-type'; +import { UMB_DOCUMENT_COLLECTION_ALIAS } from '../collection/index.js'; type EntityModel = UmbDocumentDetailModel; type EntityTypeModel = UmbDocumentTypeDetailModel; @@ -183,34 +185,51 @@ export class UmbDocumentWorkspaceContext new UmbVariantValuesValidationPathTranslator(this); new UmbVariantsValidationPathTranslator(this); - this.observe(this.contentTypeUnique, (unique) => this.structure.loadType(unique)); - this.observe(this.varies, (varies) => { - this.#data.setVaries(varies); - }); - this.observe(this.variesByCulture, (varies) => { - this.#data.setVariesByCulture(varies); - this.#variesByCulture = varies; - }); - this.observe(this.variesBySegment, (varies) => { - this.#data.setVariesBySegment(varies); - this.#variesBySegment = varies; - }); - this.observe(this.varies, (varies) => { - this.#varies = varies; - }); + this.observe(this.contentTypeUnique, (unique) => this.structure.loadType(unique), null); + this.observe( + this.varies, + (varies) => { + this.#data.setVaries(varies); - this.observe(this.structure.contentTypeDataTypeUniques, (dataTypeUniques: Array) => { - this.#dataTypeItemManager.setUniques(dataTypeUniques); - }); - - this.observe(this.#dataTypeItemManager.items, (dataTypes) => { - // Make a map of the data type unique and editorAlias: - this.#dataTypeSchemaAliasMap = new Map( - dataTypes.map((dataType) => { - return [dataType.unique, dataType.propertyEditorSchemaAlias]; - }), - ); - }); + this.#varies = varies; + }, + null, + ); + this.observe( + this.variesByCulture, + (varies) => { + this.#data.setVariesByCulture(varies); + this.#variesByCulture = varies; + }, + null, + ); + this.observe( + this.variesBySegment, + (varies) => { + this.#data.setVariesBySegment(varies); + this.#variesBySegment = varies; + }, + null, + ); + this.observe( + this.structure.contentTypeDataTypeUniques, + (dataTypeUniques: Array) => { + this.#dataTypeItemManager.setUniques(dataTypeUniques); + }, + null, + ); + this.observe( + this.#dataTypeItemManager.items, + (dataTypes) => { + // Make a map of the data type unique and editorAlias: + this.#dataTypeSchemaAliasMap = new Map( + dataTypes.map((dataType) => { + return [dataType.unique, dataType.propertyEditorSchemaAlias]; + }), + ); + }, + null, + ); this.loadLanguages(); @@ -253,6 +272,7 @@ export class UmbDocumentWorkspaceContext path: UMB_EDIT_DOCUMENT_WORKSPACE_PATH_PATTERN.toString(), component: () => import('./document-workspace-editor.element.js'), setup: (_component, info) => { + this.removeUmbControllerByAlias(UmbWorkspaceIsNewRedirectControllerAlias); const unique = info.match.params.unique; this.load(unique); }, @@ -262,8 +282,7 @@ export class UmbDocumentWorkspaceContext override resetState() { super.resetState(); - this.#data.setPersisted(undefined); - this.#data.setCurrent(undefined); + this.#data.clear(); } async loadLanguages() { @@ -297,11 +316,7 @@ export class UmbDocumentWorkspaceContext } } - async create( - parent: { entityType: string; unique: string | null }, - documentTypeUnique: string, - blueprintUnique?: string, - ) { + async create(parent: UmbEntityModel, documentTypeUnique: string, blueprintUnique?: string) { this.resetState(); this.#parent.setValue(parent); @@ -336,7 +351,7 @@ export class UmbDocumentWorkspaceContext } getCollectionAlias() { - return 'Umb.Collection.Document'; + return UMB_DOCUMENT_COLLECTION_ALIAS; } getData() { @@ -384,7 +399,6 @@ export class UmbDocumentWorkspaceContext } setName(name: string, variantId?: UmbVariantId) { - // TODO: We should move this type of logic to the act of saving [NL] this.#data.updateVariantData(variantId ?? UmbVariantId.CreateInvariant(), { name }); } @@ -438,7 +452,7 @@ export class UmbDocumentWorkspaceContext * @returns The value or undefined if not set or found. */ getPropertyValue(alias: string, variantId?: UmbVariantId) { - const currentData = this.getData(); + const currentData = this.#data.getCurrent(); if (currentData) { const newDataSet = currentData.values?.find( (x) => x.alias === alias && (variantId ? variantId.compare(x) : true), diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/language-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/language-workspace.context.ts index a0c0db4d18..97b2dc8507 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/language-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/language-workspace.context.ts @@ -8,6 +8,7 @@ import { UmbWorkspaceIsNewRedirectController, type UmbRoutableWorkspaceContext, UmbEntityDetailWorkspaceContextBase, + UmbWorkspaceIsNewRedirectControllerAlias, } from '@umbraco-cms/backoffice/workspace'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -44,7 +45,7 @@ export class UmbLanguageWorkspaceContext path: 'edit/:unique', component: UmbLanguageWorkspaceEditorElement, setup: (_component, info) => { - this.removeUmbControllerByAlias('isNewRedirectController'); + this.removeUmbControllerByAlias(UmbWorkspaceIsNewRedirectControllerAlias); this.load(info.match.params.unique); }, }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/webhook/workspace/webhook/webhook-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/webhook/workspace/webhook/webhook-workspace.context.ts index 3eaebfc49a..d817275122 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/webhook/workspace/webhook/webhook-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/webhook/workspace/webhook/webhook-workspace.context.ts @@ -8,6 +8,7 @@ import { UmbWorkspaceIsNewRedirectController, type UmbRoutableWorkspaceContext, UmbEntityDetailWorkspaceContextBase, + UmbWorkspaceIsNewRedirectControllerAlias, } from '@umbraco-cms/backoffice/workspace'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -40,7 +41,7 @@ export class UmbWebhookWorkspaceContext path: 'edit/:unique', component: UmbWebhookWorkspaceEditorElement, setup: (_component, info) => { - this.removeUmbControllerByAlias('isNewRedirectController'); + this.removeUmbControllerByAlias(UmbWorkspaceIsNewRedirectControllerAlias); this.load(info.match.params.unique); }, },