Loading...
Loading...
Understand and use conditions in Umbraco backoffice (foundational concept)
npx skill4agent add umbraco/umbraco-cms-backoffice-skills umbraco-conditions/Umbraco-CMS/src/Umbraco.Web.UI.Client/examples/entity-content-type-condition/{
"type": "dashboard",
"alias": "My.Dashboard",
"name": "My Dashboard",
"conditions": [
{
"alias": "Umb.Condition.SectionAlias",
"match": "Umb.Section.Content"
}
]
}{
"type": "workspaceView",
"alias": "My.WorkspaceView",
"name": "My Workspace View",
"conditions": [
{
"alias": "Umb.Condition.WorkspaceAlias",
"match": "Umb.Workspace.Document"
}
]
}const manifest = {
type: 'workspaceAction',
alias: 'My.WorkspaceAction',
name: 'My Action',
conditions: [
{
alias: 'Umb.Condition.SectionAlias',
match: 'Umb.Section.Content'
},
{
alias: 'Umb.Condition.WorkspaceAlias',
match: 'Umb.Workspace.Document'
},
{
alias: 'Umb.Condition.WorkspaceContentTypeAlias',
match: 'blogPost'
}
]
};{
"type": "entityAction",
"alias": "My.DeleteAction",
"name": "Delete Document",
"conditions": [
{
"alias": "Umb.Condition.UserPermission.Document",
"match": "Umb.UserPermission.Document.Delete"
}
]
}{
"type": "dashboard",
"alias": "My.AdminDashboard",
"name": "Admin Dashboard",
"conditions": [
{
"alias": "Umb.Condition.SectionUserPermission",
"match": "Umb.Section.Settings"
}
]
}{
"type": "workspaceView",
"alias": "My.View",
"name": "My View",
"conditions": [
{
"alias": "Umb.Condition.WorkspaceEntityType",
"match": "document"
}
]
}{
"type": "workspaceView",
"alias": "My.BlogView",
"name": "Blog Post View",
"conditions": [
{
"alias": "Umb.Condition.WorkspaceContentTypeAlias",
"match": "blogPost"
}
]
}{
"type": "workspaceAction",
"alias": "My.CollectionAction",
"name": "Collection Action",
"conditions": [
{
"alias": "Umb.Condition.WorkspaceHasCollection",
"match": true
}
]
}import { UmbConditionBase } from '@umbraco-cms/backoffice/extension-api';
import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
export class MyCustomCondition extends UmbConditionBase<MyConditionConfig> {
constructor(host: UmbControllerHost, args: MyConditionConfig) {
super(host, args);
// Observe some context or state
this.consumeContext(SOME_CONTEXT, (context) => {
this.observe(context.someObservable, (value) => {
// Update permitted state based on value
this.permitted = value === this.args.expectedValue;
});
});
}
}
interface MyConditionConfig {
expectedValue: string;
}export const manifests = [
{
type: 'condition',
name: 'My Custom Condition',
alias: 'My.Condition.Custom',
api: MyCustomCondition,
},
];{
"type": "dashboard",
"alias": "My.Dashboard",
"name": "My Dashboard",
"conditions": [
{
"alias": "My.Condition.Custom",
"expectedValue": "someValue"
}
]
}Umb.Condition.SectionAliasUmb.Condition.SectionUserPermissionUmb.Condition.WorkspaceAliasUmb.Condition.WorkspaceEntityTypeUmb.Condition.WorkspaceContentTypeAliasUmb.Condition.WorkspaceHasCollectionUmb.Condition.UserPermission.DocumentUmb.Condition.CurrentUser.IsAdminUmb.Condition.CurrentUser.GroupIdUmbConditionBasethis.permitted