implement breadcrumb for media

This commit is contained in:
Mads Rasmussen
2024-03-19 14:01:13 +01:00
parent 6929b0777f
commit 0d4954c1a0
12 changed files with 82 additions and 79 deletions

View File

@@ -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',
},
],
},
];

View File

@@ -1,16 +0,0 @@
import type { ManifestWorkspaceFooterApp } from '@umbraco-cms/backoffice/extension-registry';
export const manifests: Array<ManifestWorkspaceFooterApp> = [
{
type: 'workspaceFooterApp',
kind: 'variantBreadcrumb',
alias: 'Umb.WorkspaceFooterApp.Document.Breadcrumb',
name: 'Document Breadcrumb Workspace Footer App',
conditions: [
{
alias: 'Umb.Condition.WorkspaceAlias',
match: 'Umb.Workspace.Document',
},
],
},
];

View File

@@ -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<ManifestWorkspaceActionMenuItem> = [
},
];
export const manifests = [
workspace,
...workspaceViews,
...workspaceActions,
...workspaceActionMenuItems,
...breadcrumbManifests,
];
export const manifests = [workspace, ...workspaceViews, ...workspaceActions, ...workspaceActionMenuItems];

View File

@@ -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];

View File

@@ -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';

View File

@@ -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,

View File

@@ -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];

View File

@@ -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];

View File

@@ -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',
},
],
},
];

View File

@@ -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;

View File

@@ -49,9 +49,7 @@ export class UmbMediaWorkspaceSplitViewElement extends UmbLitElement {
)}
</div>
<umb-workspace-footer alias="Umb.Workspace.Media">
<div id="breadcrumbs">Breadcrumbs</div>
</umb-workspace-footer>`
<umb-workspace-footer alias="Umb.Workspace.Media"></umb-workspace-footer>`
: nothing;
}

View File

@@ -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];