diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts index ca0608d7f1..b1cf5541a8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts @@ -5,6 +5,7 @@ import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import './document-workspace-editor.element.js'; +import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; @customElement('umb-document-workspace') export class UmbDocumentWorkspaceElement extends UmbLitElement { @@ -21,6 +22,12 @@ export class UmbDocumentWorkspaceElement extends UmbLitElement { const parentId = info.match.params.parentId === 'null' ? null : info.match.params.parentId; const documentTypeKey = info.match.params.documentTypeKey; this.#workspaceContext.create(documentTypeKey, parentId); + + new UmbWorkspaceIsNewRedirectController( + this, + this.#workspaceContext, + this.shadowRoot!.querySelector('umb-router-slot')! + ); }, }, { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.element.ts index 97c056ac9e..6505545f8a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.element.ts @@ -5,6 +5,7 @@ import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import './data-type-workspace-editor.element.js'; +import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; @customElement('umb-data-type-workspace') export class UmbDataTypeWorkspaceElement extends UmbLitElement { @@ -19,6 +20,12 @@ export class UmbDataTypeWorkspaceElement extends UmbLitElement { setup: (_component, info) => { const parentId = info.match.params.parentId === 'null' ? null : info.match.params.parentId; this.#workspaceContext.create(parentId); + + new UmbWorkspaceIsNewRedirectController( + this, + this.#workspaceContext, + this.shadowRoot!.querySelector('umb-router-slot')! + ); }, }, { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.element.ts index aff6facec8..e7ec75500b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.element.ts @@ -5,6 +5,7 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbRouterSlotInitEvent, UmbRoute } from '@umbraco-cms/backoffice/router'; import './relation-type-workspace-editor.element.js'; +import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; /** * @element umb-relation-type-workspace @@ -27,6 +28,12 @@ export class UmbRelationTypeWorkspaceElement extends UmbLitElement { setup: (_component, info) => { const parentId = info.match.params.parentId; this.#workspaceContext.createScaffold(parentId); + + new UmbWorkspaceIsNewRedirectController( + this, + this.#workspaceContext, + this.shadowRoot!.querySelector('umb-router-slot')! + ); }, }, { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-views-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-views-workspace.element.ts index 9343effc13..87cbad3990 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-views-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-views-workspace.element.ts @@ -5,15 +5,13 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbRoute, IRoutingInfo, PageComponent, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; import './partial-views-workspace-edit.element.js'; +import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; @customElement('umb-partial-views-workspace') export class UmbPartialViewsWorkspaceElement extends UmbLitElement { #partialViewsWorkspaceContext = new UmbPartialViewsWorkspaceContext(this); - #routerPath? = ''; - #element = document.createElement('umb-partial-views-workspace-edit'); - #key = ''; @state() _routes: UmbRoute[] = [ @@ -23,6 +21,12 @@ export class UmbPartialViewsWorkspaceElement extends UmbLitElement { setup: async (component: PageComponent, info: IRoutingInfo) => { const parentKey = info.match.params.parentKey; this.#partialViewsWorkspaceContext.create(parentKey); + + new UmbWorkspaceIsNewRedirectController( + this, + this.#partialViewsWorkspaceContext, + this.shadowRoot!.querySelector('umb-router-slot')! + ); }, }, { @@ -36,11 +40,7 @@ export class UmbPartialViewsWorkspaceElement extends UmbLitElement { ]; render() { - return html` { - this.#routerPath = event.target.absoluteRouterPath; - }}>`; + return html``; } static styles = [UUITextStyles, css``]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.element.ts index a6b6915c68..e4b3882c19 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.element.ts @@ -5,6 +5,7 @@ import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; @customElement('umb-stylesheet-workspace') export class UmbStylesheetWorkspaceElement extends UmbLitElement { @@ -20,6 +21,12 @@ export class UmbStylesheetWorkspaceElement extends UmbLitElement { const path = info.match.params.path; const serverPath = serverFilePathFromUrlFriendlyPath(path); this.#workspaceContext.load(serverPath); + + new UmbWorkspaceIsNewRedirectController( + this, + this.#workspaceContext, + this.shadowRoot!.querySelector('umb-router-slot')! + ); }, }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.element.ts index 23b7f0233a..c73caadf91 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.element.ts @@ -5,6 +5,7 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import '../../components/insert-menu/templating-insert-menu.element.js'; import './template-workspace-editor.element.js'; +import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; @customElement('umb-template-workspace') export class UmbTemplateWorkspaceElement extends UmbLitElement { @@ -14,8 +15,6 @@ export class UmbTemplateWorkspaceElement extends UmbLitElement { #templateWorkspaceContext = new UmbTemplateWorkspaceContext(this); - #routerPath? = ''; - #element = document.createElement('umb-template-workspace-editor'); @state() @@ -26,6 +25,12 @@ export class UmbTemplateWorkspaceElement extends UmbLitElement { setup: (component: PageComponent, info: IRoutingInfo) => { const parentId = info.match.params.parentId === 'null' ? null : info.match.params.parentId; this.#templateWorkspaceContext.create(parentId); + + new UmbWorkspaceIsNewRedirectController( + this, + this.#templateWorkspaceContext, + this.shadowRoot!.querySelector('umb-router-slot')! + ); }, }, { @@ -39,11 +44,7 @@ export class UmbTemplateWorkspaceElement extends UmbLitElement { ]; render() { - return html` { - this.#routerPath = event.target.absoluteRouterPath; - }}>`; + return html``; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/user-group-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/user-group-workspace.element.ts index 0de7deb0f6..a9c8bfcdf6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/user-group-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/workspace/user-group-workspace.element.ts @@ -4,6 +4,7 @@ import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; +import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; @customElement('umb-user-group-workspace') export class UmbUserGroupWorkspaceElement extends UmbLitElement { @@ -17,6 +18,12 @@ export class UmbUserGroupWorkspaceElement extends UmbLitElement { component: () => this.#element, setup: (component, info) => { this.#workspaceContext.create(); + + new UmbWorkspaceIsNewRedirectController( + this, + this.#workspaceContext, + this.shadowRoot!.querySelector('umb-router-slot')! + ); }, }, {