add conditions to sidebar apps

This commit is contained in:
Mads Rasmussen
2023-03-13 20:59:55 +01:00
parent a4db26de7d
commit a2f6a4cdcc
10 changed files with 29 additions and 14 deletions

View File

@@ -2,10 +2,10 @@ import type { ManifestElement } from './models';
export interface ManifestSectionSidebarApp extends ManifestElement {
type: 'sectionSidebarApp';
meta: MetaSectionSidebarApp;
conditions: ConditionsSectionSidebarApp;
}
export interface MetaSectionSidebarApp {
export interface ConditionsSectionSidebarApp {
sections: Array<string>;
}
@@ -13,9 +13,10 @@ export interface MetaSectionSidebarApp {
export interface ManifestMenuSectionSidebarApp extends ManifestElement {
type: 'menuSectionSidebarApp';
meta: MetaMenuSectionSidebarApp;
conditions: ConditionsSectionSidebarApp;
}
export interface MetaMenuSectionSidebarApp extends MetaSectionSidebarApp {
export interface MetaMenuSectionSidebarApp {
label: string;
menu: string;
}

View File

@@ -20,9 +20,11 @@ const menuSectionSidebarApp: ManifestMenuSectionSidebarApp = {
weight: 100,
meta: {
label: 'Content',
sections: [sectionAlias],
menu: 'Umb.Menu.Content',
},
conditions: {
sections: [sectionAlias],
},
};
export const manifests = [section, menuSectionSidebarApp];

View File

@@ -39,9 +39,11 @@ const menuSectionSidebarApp: ManifestMenuSectionSidebarApp = {
weight: 100,
meta: {
label: 'Media',
sections: [sectionAlias],
menu: 'Umb.Menu.Media',
},
conditions: {
sections: [sectionAlias],
},
};
export const manifests = [section, menuSectionSidebarApp, ...dashboards];

View File

@@ -37,9 +37,11 @@ const menuSectionSidebarApp: ManifestMenuSectionSidebarApp = {
weight: 100,
meta: {
label: 'Members',
sections: [sectionAlias],
menu: 'Umb.Menu.Members',
},
conditions: {
sections: [sectionAlias],
},
};
export const manifests = [section, menuSectionSidebarApp, ...dashboards];

View File

@@ -6,7 +6,7 @@ const entityActions: Array<ManifestSectionSidebarApp> = [
alias: 'Umb.SectionSidebarItem.LanguageSelect',
name: 'App Language Select Section Sidebar Item',
loader: () => import('./app-language-select.element'),
meta: {
conditions: {
sections: ['Umb.Section.Content'],
},
},

View File

@@ -20,9 +20,11 @@ const menuSectionSidebarApp: ManifestMenuSectionSidebarApp = {
weight: 100,
meta: {
label: 'Settings',
sections: [sectionAlias],
menu: 'Umb.Menu.Settings',
},
conditions: {
sections: [sectionAlias],
},
};
export const manifests = [section, menuSectionSidebarApp];

View File

@@ -16,7 +16,7 @@ export class UmbMenuElement extends UmbLitElement {
render() {
return html` <umb-extension-slot
type="menuItem"
.filter=${(items: ManifestMenuItem) => items.meta.menus.includes(this.manifest!.alias)}
.filter=${(items: ManifestMenuItem) => items.conditions.menus.includes(this.manifest!.alias)}
default-element="umb-menu-item"></umb-extension-slot>`;
}
}

View File

@@ -78,7 +78,9 @@ export class UmbSectionElement extends UmbLitElement {
this.observe(
umbExtensionsRegistry
?.extensionsOfType('menuSectionSidebarApp')
.pipe(map((manifests) => manifests.filter((manifest) => manifest.meta.sections.includes(sectionAlias)))),
.pipe(
map((manifests) => manifests.filter((manifest) => manifest.conditions.sections.includes(sectionAlias)))
),
(manifests) => {
this._menus = manifests;
}
@@ -198,12 +200,12 @@ export class UmbSectionElement extends UmbLitElement {
<umb-extension-slot
type="sectionSidebarApp"
.filter=${(items: ManifestMenuSectionSidebarApp) =>
items.meta.sections.includes(this._sectionAlias || '')}></umb-extension-slot>
items.conditions.sections.includes(this._sectionAlias || '')}></umb-extension-slot>
<umb-extension-slot
type="menuSectionSidebarApp"
.filter=${(items: ManifestMenuSectionSidebarApp) =>
items.meta.sections.includes(this._sectionAlias || '')}
items.conditions.sections.includes(this._sectionAlias || '')}
default-element="umb-section-sidebar-menu"></umb-extension-slot>
</umb-section-sidebar>
`

View File

@@ -16,9 +16,11 @@ const menuSectionSidebarApp: ManifestMenuSectionSidebarApp = {
weight: 100,
meta: {
label: 'Templating',
sections: ['Umb.Section.Settings'],
menu: 'Umb.Menu.Templating',
},
conditions: {
sections: ['Umb.Section.Settings'],
},
};
export const manifests = [menu, menuSectionSidebarApp];

View File

@@ -20,9 +20,11 @@ const menuSectionSidebarApp: ManifestMenuSectionSidebarApp = {
weight: 100,
meta: {
label: 'Dictionary',
sections: [sectionAlias],
menu: 'Umb.Menu.Dictionary',
},
conditions: {
sections: [sectionAlias],
},
};
const dashboards: Array<ManifestDashboard> = [