rename sidebar menu extension + add menu extension

This commit is contained in:
Mads Rasmussen
2023-02-28 14:46:32 +01:00
parent fc499d2769
commit 1856b7d0e0
11 changed files with 63 additions and 50 deletions

View File

@@ -0,0 +1,10 @@
import type { ManifestElement } from './models';
export interface ManifestMenu extends ManifestElement {
type: 'menu';
meta: MetaMenu;
}
export interface MetaMenu {
label: string;
}

View File

@@ -12,7 +12,7 @@ import type { ManifestPropertyEditorUI, ManifestPropertyEditorModel } from './pr
import type { ManifestSection } from './section.models';
import type { ManifestSectionView } from './section-view.models';
import type { ManifestSectionSidebarItem } from './section-sidebar-item.models';
import type { ManifestSidebarMenu } from './sidebar-menu.models';
import type { ManifestSectionSidebarMenu } from './section-sidebar-menu.models';
import type { ManifestSidebarMenuItem } from './sidebar-menu-item.models';
import type { ManifestTheme } from './theme.models';
import type { ManifestTree } from './tree.models';
@@ -39,7 +39,7 @@ export * from './property-editor.models';
export * from './section-view.models';
export * from './section.models';
export * from './section-sidebar-item.models';
export * from './sidebar-menu.models';
export * from './section-sidebar-menu.models';
export * from './sidebar-menu-item.models';
export * from './theme.models';
export * from './tree-item-action.models';
@@ -70,7 +70,7 @@ export type ManifestTypes =
| ManifestSection
| ManifestSectionSidebarItem
| ManifestSectionView
| ManifestSidebarMenu
| ManifestSectionSidebarMenu
| ManifestSidebarMenuItem
| ManifestTheme
| ManifestTree

View File

@@ -0,0 +1,11 @@
import type { ManifestElement } from './models';
export interface ManifestSectionSidebarMenu extends ManifestElement {
type: 'sectionSidebarMenu';
meta: MetaSectionSidebarMenu;
}
export interface MetaSectionSidebarMenu {
label: string;
sections: Array<string>;
}

View File

@@ -1,11 +0,0 @@
import type { ManifestElement } from './models';
export interface ManifestSidebarMenu extends ManifestElement {
type: 'sidebarMenu';
meta: MetaSidebarMenu;
}
export interface MetaSidebarMenu {
label: string;
sections: Array<string>;
}

View File

@@ -1,4 +1,4 @@
import type { ManifestSection, ManifestSidebarMenu } from '@umbraco-cms/models';
import type { ManifestSection, ManifestSectionSidebarMenu } from '@umbraco-cms/models';
const sectionAlias = 'Umb.Section.Content';
@@ -13,8 +13,8 @@ const section: ManifestSection = {
},
};
const sidebarMenu: ManifestSidebarMenu = {
type: 'sidebarMenu',
const sectionSidebarMenu: ManifestSectionSidebarMenu = {
type: 'sectionSidebarMenu',
alias: 'Umb.SidebarMenu.Content',
name: 'Content Sidebar Menu',
weight: 100,
@@ -24,4 +24,4 @@ const sidebarMenu: ManifestSidebarMenu = {
},
};
export const manifests = [section, sidebarMenu];
export const manifests = [section, sectionSidebarMenu];

View File

@@ -1,4 +1,4 @@
import type { ManifestDashboardCollection, ManifestSection, ManifestSidebarMenu } from '@umbraco-cms/models';
import type { ManifestDashboardCollection, ManifestSection, ManifestSectionSidebarMenu } from '@umbraco-cms/models';
const sectionAlias = 'Umb.Section.Media';
@@ -29,15 +29,16 @@ const dashboards: Array<ManifestDashboardCollection> = [
},
];
const sidebarMenu: ManifestSidebarMenu = {
type: 'sidebarMenu',
alias: 'Umb.SidebarMenu.Media',
name: 'Media Sidebar Menu',
const sectionSidebarMenu: ManifestSectionSidebarMenu = {
type: 'sectionSidebarMenu',
alias: 'Umb.SectionSidebarMenu.Media',
name: 'Media Section Sidebar Menu',
weight: 100,
meta: {
label: 'Media',
sections: [sectionAlias],
menu: 'Umb.Menu.Media',
},
};
export const manifests = [section, sidebarMenu, ...dashboards];
export const manifests = [section, sectionSidebarMenu, ...dashboards];

View File

@@ -1,4 +1,4 @@
import type { ManifestDashboard, ManifestSection, ManifestSidebarMenu } from '@umbraco-cms/models';
import type { ManifestDashboard, ManifestSection, ManifestSectionSidebarMenu } from '@umbraco-cms/models';
const sectionAlias = 'Umb.Section.Members';
@@ -28,15 +28,16 @@ const dashboards: Array<ManifestDashboard> = [
},
];
const sidebarMenu: ManifestSidebarMenu = {
type: 'sidebarMenu',
alias: 'Umb.SidebarMenu.Members',
name: 'Members Sidebar Menu',
const sectionSidebarMenu: ManifestSectionSidebarMenu = {
type: 'sectionSidebarMenu',
alias: 'Umb.SectionSidebarMenu.Members',
name: 'Members Section Sidebar Menu',
weight: 100,
meta: {
label: 'Members',
sections: [sectionAlias],
menu: 'Umb.Menu.Members',
},
};
export const manifests = [section, sidebarMenu, ...dashboards];
export const manifests = [section, sectionSidebarMenu, ...dashboards];

View File

@@ -1,4 +1,4 @@
import type { ManifestSection, ManifestSidebarMenu } from '@umbraco-cms/models';
import type { ManifestSection, ManifestSectionSidebarMenu } from '@umbraco-cms/models';
const sectionAlias = 'Umb.Section.Settings';
@@ -13,10 +13,10 @@ const section: ManifestSection = {
},
};
const sidebarMenu: ManifestSidebarMenu = {
type: 'sidebarMenu',
alias: 'Umb.SidebarMenu.Settings',
name: 'Settings Sidebar Menu',
const sectionSidebarMenu: ManifestSectionSidebarMenu = {
type: 'sectionSidebarMenu',
alias: 'Umb.SectionSidebarMenu.Settings',
name: 'Settings Section Sidebar Menu',
weight: 100,
meta: {
label: 'Settings',
@@ -24,4 +24,4 @@ const sidebarMenu: ManifestSidebarMenu = {
},
};
export const manifests = [section, sidebarMenu];
export const manifests = [section, sectionSidebarMenu];

View File

@@ -1,7 +1,7 @@
import { UUITextStyles } from '@umbraco-ui/uui-css/lib';
import { css, html } from 'lit';
import { customElement, property } from 'lit/decorators.js';
import { ManifestSidebarMenu, ManifestSidebarMenuItem } from '@umbraco-cms/extensions-registry';
import { ManifestSectionSidebarMenu, ManifestSidebarMenuItem } from '@umbraco-cms/extensions-registry';
import { UmbLitElement } from '@umbraco-cms/element';
import './sidebar-menu-item.element.ts';
@@ -18,7 +18,7 @@ export class UmbSectionSidebarMenuElement extends UmbLitElement {
];
@property()
manifest?: ManifestSidebarMenu;
manifest?: ManifestSectionSidebarMenu;
render() {
// TODO: link to dashboards when clicking on the menu item header

View File

@@ -5,7 +5,7 @@ import { map } from 'rxjs';
import { IRoutingInfo } from 'router-slot';
import type { UmbWorkspaceEntityElement } from '../workspace/workspace-entity-element.interface';
import { UmbSectionContext, UMB_SECTION_CONTEXT_TOKEN } from './section.context';
import type { ManifestSectionView, ManifestWorkspace, ManifestSidebarMenu } from '@umbraco-cms/models';
import type { ManifestSectionView, ManifestWorkspace, ManifestSectionSidebarMenu } from '@umbraco-cms/models';
import { umbExtensionsRegistry, createExtensionElement } from '@umbraco-cms/extensions-api';
import { UmbLitElement } from '@umbraco-cms/element';
@@ -40,7 +40,7 @@ export class UmbSectionElement extends UmbLitElement {
private _routes: Array<any> = [];
@state()
private _menus?: Array<ManifestSidebarMenu>;
private _menus?: Array<ManifestSectionSidebarMenu>;
@state()
private _views?: Array<ManifestSectionView>;
@@ -84,7 +84,7 @@ export class UmbSectionElement extends UmbLitElement {
if (sectionAlias) {
this.observe(
umbExtensionsRegistry
?.extensionsOfType('sidebarMenu')
?.extensionsOfType('sectionSidebarMenu')
.pipe(map((manifests) => manifests.filter((manifest) => manifest.meta.sections.includes(sectionAlias)))),
(manifests) => {
this._menus = manifests;
@@ -202,12 +202,12 @@ export class UmbSectionElement extends UmbLitElement {
<umb-section-sidebar>
<umb-extension-slot
type="sectionSidebarItem"
.filter=${(items: ManifestSidebarMenu) =>
.filter=${(items: ManifestSectionSidebarMenu) =>
items.meta.sections.includes(this._sectionAlias || '')}></umb-extension-slot>
<umb-extension-slot
type="sidebarMenu"
.filter=${(items: ManifestSidebarMenu) => items.meta.sections.includes(this._sectionAlias || '')}
type="sectionSidebarMenu"
.filter=${(items: ManifestSectionSidebarMenu) => items.meta.sections.includes(this._sectionAlias || '')}
default-element="umb-section-sidebar-menu"></umb-extension-slot>
</umb-section-sidebar>
`

View File

@@ -1,14 +1,15 @@
import type { ManifestSidebarMenu } from '@umbraco-cms/models';
import type { ManifestSectionSidebarMenu } from '@umbraco-cms/models';
const sidebarMenu: ManifestSidebarMenu = {
type: 'sidebarMenu',
alias: 'Umb.SidebarMenu.Templating',
name: 'Settings Sidebar Menu',
const sectionSidebarMenu: ManifestSectionSidebarMenu = {
type: 'sectionSidebarMenu',
alias: 'Umb.SectionSidebarMenu.Templating',
name: 'Templating Section Sidebar Menu',
weight: 100,
meta: {
label: 'Templating',
sections: ['Umb.Section.Settings'],
menu: 'Umb.Menu.Templating',
},
};
export const manifests = [sidebarMenu];
export const manifests = [sectionSidebarMenu];