From 0d4954c1a0389529ad2dbd4a072a044f7caa6758 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 19 Mar 2024 14:01:13 +0100 Subject: [PATCH] implement breadcrumb for media --- .../documents/documents/menu/manifests.ts | 16 +++++- .../workspace/breadcrumb/manifests.ts | 16 ------ .../documents/workspace/manifests.ts | 9 +--- .../src/packages/media/manifests.ts | 3 +- .../src/packages/media/media/index.ts | 2 +- .../src/packages/media/media/manifests.ts | 4 +- .../media/media/menu-item/manifests.ts | 19 ------- .../packages/media/media/menu.manifests.ts | 14 ----- .../packages/media/media/menu/manifests.ts | 51 +++++++++++++++++++ .../menu/media-menu-structure.context.ts | 11 ++++ .../media-workspace-split-view.element.ts | 4 +- .../src/packages/media/menu.manifests.ts | 12 ----- 12 files changed, 82 insertions(+), 79 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/breadcrumb/manifests.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/menu-item/manifests.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/menu.manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/menu/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/menu/media-menu-structure.context.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/menu.manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu/manifests.ts index 9f535bb4da..5a7f388690 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu/manifests.ts @@ -26,8 +26,8 @@ export const manifests = [ }, { type: 'workspaceContext', - name: 'Document Structure Context', - alias: 'Umb.Context.Document.Structure', + name: 'Document Menu Structure Workspace Context', + alias: 'Umb.Context.Document.Menu.Structure', api: () => import('./document-menu-structure.context.js'), conditions: [ { @@ -36,4 +36,16 @@ export const manifests = [ }, ], }, + { + type: 'workspaceFooterApp', + kind: 'variantBreadcrumb', + alias: 'Umb.WorkspaceFooterApp.Document.Breadcrumb', + name: 'Document Breadcrumb Workspace Footer App', + conditions: [ + { + alias: 'Umb.Condition.WorkspaceAlias', + match: 'Umb.Workspace.Document', + }, + ], + }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/breadcrumb/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/breadcrumb/manifests.ts deleted file mode 100644 index ed5bc42494..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/breadcrumb/manifests.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { ManifestWorkspaceFooterApp } from '@umbraco-cms/backoffice/extension-registry'; - -export const manifests: Array = [ - { - type: 'workspaceFooterApp', - kind: 'variantBreadcrumb', - alias: 'Umb.WorkspaceFooterApp.Document.Breadcrumb', - name: 'Document Breadcrumb Workspace Footer App', - conditions: [ - { - alias: 'Umb.Condition.WorkspaceAlias', - match: 'Umb.Workspace.Document', - }, - ], - }, -]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/manifests.ts index 19b7e53000..3734303e67 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/manifests.ts @@ -2,7 +2,6 @@ import { UMB_DOCUMENT_ENTITY_TYPE } from '../entity.js'; import { UmbDocumentSaveAndScheduleWorkspaceAction } from './actions/save-and-schedule.action.js'; import { UmbDocumentUnpublishWorkspaceAction } from './actions/unpublish.action.js'; import { UmbDocumentSaveAndPublishWorkspaceAction } from './actions/save-and-publish.action.js'; -import { manifests as breadcrumbManifests } from './breadcrumb/manifests.js'; import { UmbDocumentPublishWithDescendantsWorkspaceAction } from './actions/publish-with-descendants.action.js'; import { UmbSaveWorkspaceAction } from '@umbraco-cms/backoffice/workspace'; import type { @@ -186,10 +185,4 @@ const workspaceActionMenuItems: Array = [ }, ]; -export const manifests = [ - workspace, - ...workspaceViews, - ...workspaceActions, - ...workspaceActionMenuItems, - ...breadcrumbManifests, -]; +export const manifests = [workspace, ...workspaceViews, ...workspaceActions, ...workspaceActionMenuItems]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/manifests.ts index 940d82b7ca..488ffacb71 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/manifests.ts @@ -1,8 +1,7 @@ import { manifests as mediaSectionManifests } from './section.manifests.js'; -import { manifests as mediaMenuManifests } from './menu.manifests.js'; import { manifests as mediaManifests } from './media/manifests.js'; import { manifests as mediaTypesManifests } from './media-types/manifests.js'; import './media/components/index.js'; -export const manifests = [...mediaSectionManifests, ...mediaMenuManifests, ...mediaManifests, ...mediaTypesManifests]; +export const manifests = [...mediaSectionManifests, ...mediaManifests, ...mediaTypesManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/index.ts index 2629a02d48..226014f2a5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/index.ts @@ -9,4 +9,4 @@ export * from './utils/index.js'; export { UMB_MEDIA_TREE_ALIAS } from './tree/index.js'; export { UMB_MEDIA_COLLECTION_ALIAS } from './collection/index.js'; -export { UMB_MEDIA_MENU_ALIAS } from './menu.manifests.js'; +export { UMB_MEDIA_MENU_ALIAS } from './menu/manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/manifests.ts index fcff2b6510..dba85d8ce2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/manifests.ts @@ -1,7 +1,7 @@ import { manifests as collectionManifests } from './collection/manifests.js'; import { manifests as entityActionsManifests } from './entity-actions/manifests.js'; import { manifests as entityBulkActionsManifests } from './entity-bulk-actions/manifests.js'; -import { manifests as menuItemManifests } from './menu-item/manifests.js'; +import { manifests as menuManifests } from './menu/manifests.js'; import { manifests as propertyEditorsManifests } from './property-editors/manifests.js'; import { manifests as repositoryManifests } from './repository/manifests.js'; import { manifests as sectionViewManifests } from './section-view/manifests.js'; @@ -12,7 +12,7 @@ export const manifests = [ ...collectionManifests, ...entityActionsManifests, ...entityBulkActionsManifests, - ...menuItemManifests, + ...menuManifests, ...propertyEditorsManifests, ...repositoryManifests, ...sectionViewManifests, diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/menu-item/manifests.ts deleted file mode 100644 index e5e3aa4c2c..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/menu-item/manifests.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { UMB_MEDIA_MENU_ALIAS } from '../menu.manifests.js'; -import { UMB_MEDIA_TREE_ALIAS } from '../tree/index.js'; -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; - -const menuItem: ManifestTypes = { - type: 'menuItem', - kind: 'tree', - alias: 'Umb.MenuItem.Media', - name: 'Media Menu Item', - weight: 100, - meta: { - label: 'Media', - menus: [UMB_MEDIA_MENU_ALIAS], - treeAlias: UMB_MEDIA_TREE_ALIAS, - hideTreeRoot: true, - }, -}; - -export const manifests = [menuItem]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/menu.manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/menu.manifests.ts deleted file mode 100644 index 7f7f2a0444..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/menu.manifests.ts +++ /dev/null @@ -1,14 +0,0 @@ -import type { ManifestMenu } from '@umbraco-cms/backoffice/extension-registry'; - -export const UMB_MEDIA_MENU_ALIAS = 'Umb.Menu.Media'; - -const menu: ManifestMenu = { - type: 'menu', - alias: UMB_MEDIA_MENU_ALIAS, - name: 'Media Menu', - meta: { - label: 'Media', - }, -}; - -export const manifests = [menu]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/menu/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/menu/manifests.ts new file mode 100644 index 0000000000..eedf704faa --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/menu/manifests.ts @@ -0,0 +1,51 @@ +import { UMB_MEDIA_TREE_ALIAS } from '../tree/index.js'; + +export const UMB_MEDIA_MENU_ALIAS = 'Umb.Menu.Media'; + +export const manifests = [ + { + type: 'menu', + alias: UMB_MEDIA_MENU_ALIAS, + name: 'Media Menu', + meta: { + label: 'Media', + }, + }, + { + type: 'menuItem', + kind: 'tree', + alias: 'Umb.MenuItem.Media', + name: 'Media Menu Item', + weight: 100, + meta: { + label: 'Media', + menus: [UMB_MEDIA_MENU_ALIAS], + treeAlias: UMB_MEDIA_TREE_ALIAS, + hideTreeRoot: true, + }, + }, + { + type: 'workspaceContext', + name: 'Media Menu Structure Workspace Context', + alias: 'Umb.Context.Media.Menu.Structure', + api: () => import('./media-menu-structure.context.js'), + conditions: [ + { + alias: 'Umb.Condition.WorkspaceAlias', + match: 'Umb.Workspace.Media', + }, + ], + }, + { + type: 'workspaceFooterApp', + kind: 'variantBreadcrumb', + alias: 'Umb.WorkspaceFooterApp.Media.Breadcrumb', + name: 'Media Breadcrumb Workspace Footer App', + conditions: [ + { + alias: 'Umb.Condition.WorkspaceAlias', + match: 'Umb.Workspace.Media', + }, + ], + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/menu/media-menu-structure.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/menu/media-menu-structure.context.ts new file mode 100644 index 0000000000..87efaafbb1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/menu/media-menu-structure.context.ts @@ -0,0 +1,11 @@ +import { UMB_MEDIA_TREE_REPOSITORY_ALIAS } from '../tree/index.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbMenuVariantTreeStructureWorkspaceContextBase } from '@umbraco-cms/backoffice/menu'; + +export class UmbMediaMenuStructureContext extends UmbMenuVariantTreeStructureWorkspaceContextBase { + constructor(host: UmbControllerHost) { + super(host, { treeRepositoryAlias: UMB_MEDIA_TREE_REPOSITORY_ALIAS }); + } +} + +export default UmbMediaMenuStructureContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-split-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-split-view.element.ts index 87d2d724ca..c289b0f87f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-split-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-split-view.element.ts @@ -49,9 +49,7 @@ export class UmbMediaWorkspaceSplitViewElement extends UmbLitElement { )} - - - ` + ` : nothing; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/menu.manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/menu.manifests.ts deleted file mode 100644 index cdefc905ff..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/media/menu.manifests.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { ManifestMenu } from '@umbraco-cms/backoffice/extension-registry'; - -const menu: ManifestMenu = { - type: 'menu', - alias: 'Umb.Menu.Media', - name: 'Media Menu', - meta: { - label: 'Media', - }, -}; - -export const manifests = [menu];