linting correction
This commit is contained in:
@@ -1,24 +1,22 @@
|
||||
import { ManifestWorkspaceView } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import type { ManifestWorkspaceView } from '@umbraco-cms/backoffice/extension-registry';
|
||||
|
||||
const workspace: ManifestWorkspaceView = {
|
||||
type: 'workspaceView',
|
||||
alias: 'Example.WorkspaceView.EntityContentTypeCondition',
|
||||
name: "Example Workspace View With Entity Content Type Condition",
|
||||
element : () => import('./workspace-view.element.js'),
|
||||
meta: {
|
||||
icon : 'icon-bus',
|
||||
label : 'Conditional',
|
||||
pathname : 'conditional'
|
||||
},
|
||||
conditions : [
|
||||
{
|
||||
alias : 'Umb.Condition.WorkspaceContentTypeAlias',
|
||||
type: 'workspaceView',
|
||||
alias: 'Example.WorkspaceView.EntityContentTypeCondition',
|
||||
name: 'Example Workspace View With Entity Content Type Condition',
|
||||
element: () => import('./workspace-view.element.js'),
|
||||
meta: {
|
||||
icon: 'icon-bus',
|
||||
label: 'Conditional',
|
||||
pathname: 'conditional',
|
||||
},
|
||||
conditions: [
|
||||
{
|
||||
alias: 'Umb.Condition.WorkspaceContentTypeAlias',
|
||||
//match : 'blogPost'
|
||||
oneOf : ['blogPost','mediaType1']
|
||||
}
|
||||
]
|
||||
oneOf: ['blogPost', 'mediaType1'],
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export const manifests = [
|
||||
workspace
|
||||
]
|
||||
export const manifests = [workspace];
|
||||
|
||||
@@ -1,20 +1,19 @@
|
||||
import { css, html } from 'lit';
|
||||
import { customElement } from 'lit/decorators.js';
|
||||
import { html, customElement } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
||||
|
||||
@customElement('umb-example-entity-content-type-condition')
|
||||
export class UmbWorkspaceViewElement extends UmbLitElement {
|
||||
render() {
|
||||
return html`<p>This is a conditional element that is only shown in workspaces based on it's entities content type.</p>`;
|
||||
}
|
||||
|
||||
static styles = [css``];
|
||||
override render() {
|
||||
return html`<p>
|
||||
This is a conditional element that is only shown in workspaces based on it's entities content type.
|
||||
</p>`;
|
||||
}
|
||||
}
|
||||
|
||||
export default UmbWorkspaceViewElement
|
||||
export default UmbWorkspaceViewElement;
|
||||
|
||||
declare global {
|
||||
interface HTMLElementTagNameMap {
|
||||
'umb-example-entity-content-type-condition': UmbWorkspaceViewElement;
|
||||
}
|
||||
}
|
||||
interface HTMLElementTagNameMap {
|
||||
'umb-example-entity-content-type-condition': UmbWorkspaceViewElement;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,23 +11,33 @@ import type {
|
||||
/**
|
||||
* Condition to apply workspace extension based on a content type alias
|
||||
*/
|
||||
export class UmbWorkspaceContentTypeAliasCondition extends UmbConditionBase<WorkspaceContentTypeAliasConditionConfig> implements UmbExtensionCondition {
|
||||
constructor(host: UmbControllerHost, args: UmbConditionControllerArguments<WorkspaceContentTypeAliasConditionConfig>) {
|
||||
export class UmbWorkspaceContentTypeAliasCondition
|
||||
extends UmbConditionBase<WorkspaceContentTypeAliasConditionConfig>
|
||||
implements UmbExtensionCondition
|
||||
{
|
||||
constructor(
|
||||
host: UmbControllerHost,
|
||||
args: UmbConditionControllerArguments<WorkspaceContentTypeAliasConditionConfig>,
|
||||
) {
|
||||
super(host, args);
|
||||
|
||||
let permissionCheck: ((contentTypeAliases: string[]) => boolean) | undefined = undefined;
|
||||
if (this.config.match) {
|
||||
permissionCheck = (contentTypeAliases: string[]) => contentTypeAliases.includes(this.config.match!);
|
||||
} else if (this.config.oneOf) {
|
||||
permissionCheck = (contentTypeAliases: string[]) => contentTypeAliases.some(item => this.config.oneOf!.includes(item));
|
||||
permissionCheck = (contentTypeAliases: string[]) =>
|
||||
contentTypeAliases.some((item) => this.config.oneOf!.includes(item));
|
||||
}
|
||||
|
||||
if (permissionCheck !== undefined) {
|
||||
this.consumeContext(UMB_PROPERTY_STRUCTURE_WORKSPACE_CONTEXT, (context) => {
|
||||
this.observe(context.structure.contentTypeAliases,(contentTypeAliases) => {
|
||||
this.permitted = contentTypeAliases ? permissionCheck(contentTypeAliases) : false;
|
||||
},
|
||||
'workspaceContentTypeAliasConditionObserver');
|
||||
this.observe(
|
||||
context.structure.contentTypeAliases,
|
||||
(contentTypeAliases) => {
|
||||
this.permitted = contentTypeAliases ? permissionCheck(contentTypeAliases) : false;
|
||||
},
|
||||
'workspaceContentTypeAliasConditionObserver',
|
||||
);
|
||||
});
|
||||
} else {
|
||||
throw new Error(
|
||||
@@ -37,22 +47,21 @@ export class UmbWorkspaceContentTypeAliasCondition extends UmbConditionBase<Work
|
||||
}
|
||||
}
|
||||
|
||||
export type WorkspaceContentTypeAliasConditionConfig = UmbConditionConfigBase<'Umb.Condition.WorkspaceContentTypeAlias'> & {
|
||||
/**
|
||||
* Define a content type alias in which workspace this extension should be available
|
||||
*
|
||||
* @example
|
||||
* Depends on implementation, but i.e. "article", "image", "blockPage"
|
||||
*/
|
||||
match?: string;
|
||||
/**
|
||||
* Define one or more content type aliases in which workspace this extension should be available
|
||||
*
|
||||
* @example
|
||||
* ["article", "image", "blockPage"]
|
||||
*/
|
||||
oneOf?: Array<string>;
|
||||
};
|
||||
export type WorkspaceContentTypeAliasConditionConfig =
|
||||
UmbConditionConfigBase<'Umb.Condition.WorkspaceContentTypeAlias'> & {
|
||||
/**
|
||||
* Define a content type alias in which workspace this extension should be available
|
||||
* @example
|
||||
* Depends on implementation, but i.e. "article", "image", "blockPage"
|
||||
*/
|
||||
match?: string;
|
||||
/**
|
||||
* Define one or more content type aliases in which workspace this extension should be available
|
||||
* @example
|
||||
* ["article", "image", "blockPage"]
|
||||
*/
|
||||
oneOf?: Array<string>;
|
||||
};
|
||||
|
||||
export const manifest: ManifestCondition = {
|
||||
type: 'condition',
|
||||
|
||||
@@ -6,7 +6,6 @@ export * from './routable-workspace.context-token.js';
|
||||
export * from './submittable-workspace.context-token.js';
|
||||
export * from './variant-workspace.context-token.js';
|
||||
export * from './workspace.context-token.js';
|
||||
export * from './entity-with-content-type-workspace-context-token.js';
|
||||
export type * from './collection-workspace-context.interface.js';
|
||||
export type * from './entity-workspace-context.interface.js';
|
||||
export type * from './invariant-dataset-workspace-context.interface.js';
|
||||
@@ -16,4 +15,3 @@ export type * from './routable-workspace-context.interface.js';
|
||||
export type * from './submittable-workspace-context.interface.js';
|
||||
export type * from './variant-dataset-workspace-context.interface.js';
|
||||
export type * from './workspace-context.interface.js';
|
||||
export type * from './entity-with-content-type-workspace-context.interface.js';
|
||||
Reference in New Issue
Block a user