diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/workspace-view-collection.models.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/workspace-view-collection.models.ts index 366dd3cdbe..908aa3f699 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/workspace-view-collection.models.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/workspace-view-collection.models.ts @@ -3,11 +3,11 @@ import type { ManifestBase } from './models'; export interface ManifestWorkspaceViewCollection extends ManifestBase { type: 'workspaceViewCollection'; meta: MetaEditorViewCollection; + conditions: ConditionsEditorViewCollection; } // TODO: Get rid of store alias, when we are done migrating to repositories(remember to enforce repositoryAlias): export interface MetaEditorViewCollection { - workspaces: string[]; pathname: string; label: string; icon: string; @@ -15,3 +15,7 @@ export interface MetaEditorViewCollection { storeAlias?: string; repositoryAlias?: string; } + +export interface ConditionsEditorViewCollection { + workspaces: string[]; +} diff --git a/src/Umbraco.Web.UI.Client/libs/extensions-registry/workspace-view.models.ts b/src/Umbraco.Web.UI.Client/libs/extensions-registry/workspace-view.models.ts index acfc5e9062..3d147fc4bb 100644 --- a/src/Umbraco.Web.UI.Client/libs/extensions-registry/workspace-view.models.ts +++ b/src/Umbraco.Web.UI.Client/libs/extensions-registry/workspace-view.models.ts @@ -3,11 +3,15 @@ import type { ManifestWithView } from './models'; export interface ManifestWorkspaceView extends ManifestWithView { type: 'workspaceView'; meta: MetaEditorView; + conditions: ConditionsEditorView; } export interface MetaEditorView { - workspaces: string[]; pathname: string; label: string; icon: string; } + +export interface ConditionsEditorView { + workspaces: string[]; +} diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/manifests.ts index ea80ac1857..c2f912764b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/manifests.ts @@ -19,11 +19,13 @@ const workspaceViews: Array = [ loader: () => import('./views/design/workspace-view-document-type-design.element'), weight: 100, meta: { - workspaces: ['Umb.Workspace.DocumentType'], label: 'Design', pathname: 'design', icon: 'edit', }, + conditions: { + workspaces: ['Umb.Workspace.DocumentType'], + }, }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/workspace/manifests.ts index 9da05642a7..fd806795f8 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/workspace/manifests.ts @@ -28,11 +28,13 @@ const workspaceViews: Array = [ loader: () => import('./views/document-workspace-view-edit.element'), weight: 200, meta: { - workspaces: ['Umb.Workspace.Document'], label: 'Content', pathname: 'content', icon: 'document', }, + conditions: { + workspaces: ['Umb.Workspace.Document'], + }, }, { type: 'workspaceView', @@ -42,11 +44,13 @@ const workspaceViews: Array = [ import('../../../shared/components/workspace/workspace-content/views/info/workspace-view-content-info.element'), weight: 100, meta: { - workspaces: ['Umb.Workspace.Document'], label: 'Info', pathname: 'info', icon: 'info', }, + conditions: { + workspaces: ['Umb.Workspace.Document'], + }, }, ]; @@ -59,13 +63,15 @@ const workspaceViewCollections: Array = [ name: 'Document Workspace Collection View', weight: 300, meta: { - workspaces: ['Umb.Workspace.Document'], label: 'Documents', pathname: 'collection', icon: 'umb:grid', entityType: 'document', repositoryAlias: DOCUMENT_REPOSITORY_ALIAS, }, + conditions: { + workspaces: ['Umb.Workspace.Document'], + } }, */ ]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/workspace/manifests.ts index 38e0ddb8a4..5b26b451bc 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/workspace/manifests.ts @@ -26,11 +26,13 @@ const workspaceViews: Array = [ import('../../../shared/components/workspace/workspace-content/views/edit/workspace-view-content-edit.element'), weight: 200, meta: { - workspaces: ['Umb.Workspace.Media'], label: 'Media', pathname: 'media', icon: 'umb:picture', }, + conditions: { + workspaces: ['Umb.Workspace.Media'], + }, }, { type: 'workspaceView', @@ -40,11 +42,13 @@ const workspaceViews: Array = [ import('../../../shared/components/workspace/workspace-content/views/info/workspace-view-content-info.element'), weight: 100, meta: { - workspaces: ['Umb.Workspace.Media'], label: 'Info', pathname: 'info', icon: 'info', }, + conditions: { + workspaces: ['Umb.Workspace.Media'], + }, }, ]; @@ -55,13 +59,15 @@ const workspaceViewCollections: Array = [ name: 'Media Workspace Collection View', weight: 300, meta: { - workspaces: ['Umb.Workspace.Media'], label: 'Media', pathname: 'collection', icon: 'umb:grid', entityType: 'media', repositoryAlias: MEDIA_REPOSITORY_ALIAS, }, + conditions: { + workspaces: ['Umb.Workspace.Media'], + }, }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/workspace/manifests.ts index a46364d6aa..9a1f8802e9 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/workspace/manifests.ts @@ -19,11 +19,13 @@ const workspaceViews: Array = [ loader: () => import('./views/info/workspace-view-member-group-info.element'), weight: 90, meta: { - workspaces: ['Umb.Workspace.MemberGroup'], label: 'Info', pathname: 'info', icon: 'info', }, + conditions: { + workspaces: ['Umb.Workspace.MemberGroup'], + }, }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/manifests.ts index c48647993d..0b6548e5a0 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/manifests.ts @@ -19,11 +19,13 @@ const workspaceViews: Array = [ loader: () => import('./views/edit/data-type-workspace-view-edit.element'), weight: 90, meta: { - workspaces: ['Umb.Workspace.DataType'], label: 'Edit', pathname: 'edit', icon: 'edit', }, + conditions: { + workspaces: ['Umb.Workspace.DataType'], + }, }, { type: 'workspaceView', @@ -32,11 +34,13 @@ const workspaceViews: Array = [ loader: () => import('./views/info/workspace-view-data-type-info.element'), weight: 90, meta: { - workspaces: ['Umb.Workspace.DataType'], label: 'Info', pathname: 'info', icon: 'info', }, + conditions: { + workspaces: ['Umb.Workspace.DataType'], + }, }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language/manifests.ts index 38af5e4e8f..2dd3e38d5b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language/manifests.ts @@ -20,11 +20,13 @@ const workspaceViews: Array = [ loader: () => import('./views/edit/edit-language-workspace-view.element'), weight: 90, meta: { - workspaces: ['Umb.Workspace.Language'], label: 'Edit', pathname: 'edit', icon: 'edit', }, + conditions: { + workspaces: ['Umb.Workspace.Language'], + }, }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/logviewer-root-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/logviewer-root-workspace.element.ts index 8579ccc331..53d29fabfc 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/logviewer-root-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/logviewer-root-workspace.element.ts @@ -84,7 +84,9 @@ export class UmbLogViewerWorkspaceElement extends UmbLitElement { this.observe( umbExtensionsRegistry .extensionsOfTypes(['workspaceView']) - .pipe(map((extensions) => extensions.filter((extension) => extension.meta.workspaces.includes(this._alias)))), + .pipe( + map((extensions) => extensions.filter((extension) => extension.conditions.workspaces.includes(this._alias))) + ), (workspaceViews) => { this._workspaceViews = workspaceViews; this._createRoutes(); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/manifests.ts index c740c29aa1..6e01d52f37 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/manifests.ts @@ -20,11 +20,13 @@ const workspaceViews: Array = [ loader: () => import('../views/overview/index'), weight: 300, meta: { - workspaces: [workspaceAlias], label: 'Overview', pathname: 'overview', icon: 'umb:box-alt', }, + conditions: { + workspaces: [workspaceAlias], + }, }, { type: 'workspaceView', @@ -33,11 +35,13 @@ const workspaceViews: Array = [ loader: () => import('../views/search/index'), weight: 200, meta: { - workspaces: [workspaceAlias], label: 'Search', pathname: 'search', icon: 'umb:search', }, + conditions: { + workspaces: [workspaceAlias], + }, }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-layout/workspace-layout.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-layout/workspace-layout.element.ts index 8abacffa60..7831dd7202 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-layout/workspace-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-layout/workspace-layout.element.ts @@ -99,7 +99,9 @@ export class UmbWorkspaceLayout extends UmbLitElement { this.observe( umbExtensionsRegistry .extensionsOfTypes(['workspaceView', 'workspaceViewCollection']) - .pipe(map((extensions) => extensions.filter((extension) => extension.meta.workspaces.includes(this.alias)))), + .pipe( + map((extensions) => extensions.filter((extension) => extension.conditions.workspaces.includes(this.alias))) + ), (workspaceViews) => { this._workspaceViews = workspaceViews; this._createRoutes(); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/workspace/manifests.ts index dccdeef6af..ba5e4c16ec 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/workspace/manifests.ts @@ -22,11 +22,13 @@ const workspaceViews: Array = [ loader: () => import('./views/edit/workspace-view-dictionary-edit.element'), weight: 100, meta: { - workspaces: [workspaceAlias], label: 'Edit', pathname: 'edit', icon: 'edit', }, + conditions: { + workspaces: [workspaceAlias], + }, }, ];