diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts index e4160a3b08..26d2ed9f69 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts @@ -27,11 +27,15 @@ export abstract class UmbEditableWorkspaceContextBase }); } + protected resetState() { + this.#isNew.setValue(undefined); + } + getIsNew() { return this.#isNew.getValue(); } - setIsNew(isNew: boolean) { + protected setIsNew(isNew: boolean) { this.#isNew.setValue(isNew); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/saveable-workspace-context.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/saveable-workspace-context.interface.ts index 40f35c15c9..1c3d095a31 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/saveable-workspace-context.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/saveable-workspace-context.interface.ts @@ -4,7 +4,6 @@ import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; export interface UmbSaveableWorkspaceContextInterface extends UmbWorkspaceContextInterface { isNew: Observable; getIsNew(): boolean | undefined; - setIsNew(value: boolean): void; save(): Promise; setValidationErrors?(errorMap: any): void; // TODO: temp solution to bubble validation errors to the UI destroy(): void; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-is-new-redirect-controller/workspace-is-new-redirect-controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-is-new-redirect-controller/workspace-is-new-redirect-controller.ts index 94629ba5df..2a07e92a65 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-is-new-redirect-controller/workspace-is-new-redirect-controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-is-new-redirect-controller/workspace-is-new-redirect-controller.ts @@ -26,11 +26,11 @@ export class UmbWorkspaceIsNewRedirectController extends UmbBaseController { workspaceContext.isNew, (isNew) => { if (isNew === false) { - const id = workspaceContext.getEntityId(); - if (router && id) { + const unique = workspaceContext.getEntityId(); + if (router && unique) { const routerPath = router.absoluteRouterPath; if (routerPath) { - const newPath = createRoutePathBuilder(ensurePathEndsWithSlash(routerPath) + 'edit/:id')({ id }); + const newPath = createRoutePathBuilder(ensurePathEndsWithSlash(routerPath) + 'edit/:id')({ id: unique }); window.history.pushState({}, '', newPath); this.destroy(); 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 049eef1b58..c2564ff5ef 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 @@ -80,6 +80,12 @@ export class UmbDocumentWorkspaceContext this.loadLanguages(); } + resetState() { + super.resetState(); + this.#persistedData.setValue(undefined); + this.#currentData.setValue(undefined); + } + async loadLanguages() { // TODO: If we don't end up having a Global Context for languages, then we should at least change this into using a asObservable which should be returned from the repository. [Nl] const { data } = await this.#languageRepository.requestCollection({}); @@ -87,6 +93,7 @@ export class UmbDocumentWorkspaceContext } async load(unique: string) { + this.resetState(); this.#getDataPromise = this.repository.requestByUnique(unique); const { data } = await this.#getDataPromise; if (!data) return undefined; @@ -98,6 +105,7 @@ export class UmbDocumentWorkspaceContext } async create(parentUnique: string | null, documentTypeUnique: string) { + this.resetState(); this.#getDataPromise = this.repository.createScaffold(parentUnique, { documentType: { unique: documentTypeUnique,