add condition to check if a property is writable
This commit is contained in:
@@ -11,6 +11,7 @@ import { manifests as iconRegistryManifests } from './icon-registry/manifests.js
|
||||
import { manifests as localizationManifests } from './localization/manifests.js';
|
||||
import { manifests as modalManifests } from './modal/common/manifests.js';
|
||||
import { manifests as propertyActionManifests } from './property-action/manifests.js';
|
||||
import { manifests as propertyManifests } from './property/manifests.js';
|
||||
import { manifests as propertyTypeManifests } from './property-type/manifests.js';
|
||||
import { manifests as recycleBinManifests } from './recycle-bin/manifests.js';
|
||||
import { manifests as sectionManifests } from './section/manifests.js';
|
||||
@@ -24,24 +25,25 @@ import type { ManifestTypes, UmbBackofficeManifestKind } from './extension-regis
|
||||
|
||||
export const manifests: Array<ManifestTypes | UmbBackofficeManifestKind> = [
|
||||
...authManifests,
|
||||
...extensionManifests,
|
||||
...iconRegistryManifests,
|
||||
...cultureManifests,
|
||||
...localizationManifests,
|
||||
...themeManifests,
|
||||
...sectionManifests,
|
||||
...treeManifests,
|
||||
...collectionManifests,
|
||||
...workspaceManifests,
|
||||
...contentManifests,
|
||||
...contentTypeManifests,
|
||||
...propertyTypeManifests,
|
||||
...settingsManifests,
|
||||
...modalManifests,
|
||||
...cultureManifests,
|
||||
...debugManifests,
|
||||
...entityActionManifests,
|
||||
...entityBulkActionManifests,
|
||||
...extensionManifests,
|
||||
...iconRegistryManifests,
|
||||
...localizationManifests,
|
||||
...modalManifests,
|
||||
...propertyActionManifests,
|
||||
...serverFileSystemManifests,
|
||||
...debugManifests,
|
||||
...propertyManifests,
|
||||
...propertyTypeManifests,
|
||||
...recycleBinManifests,
|
||||
...sectionManifests,
|
||||
...serverFileSystemManifests,
|
||||
...settingsManifests,
|
||||
...themeManifests,
|
||||
...treeManifests,
|
||||
...workspaceManifests,
|
||||
];
|
||||
|
||||
@@ -5,6 +5,8 @@ import type {
|
||||
UmbBackofficeManifestKind,
|
||||
} from '@umbraco-cms/backoffice/extension-registry';
|
||||
|
||||
import { UMB_WRITABLE_PROPERTY_CONDITION_ALIAS } from '@umbraco-cms/backoffice/property';
|
||||
|
||||
export const propertyActionManifests: Array<ManifestPropertyActions> = [
|
||||
{
|
||||
type: 'propertyAction',
|
||||
@@ -17,6 +19,11 @@ export const propertyActionManifests: Array<ManifestPropertyActions> = [
|
||||
icon: 'icon-paste-in',
|
||||
label: 'Copy',
|
||||
},
|
||||
conditions: [
|
||||
{
|
||||
alias: UMB_WRITABLE_PROPERTY_CONDITION_ALIAS,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'propertyAction',
|
||||
@@ -29,6 +36,11 @@ export const propertyActionManifests: Array<ManifestPropertyActions> = [
|
||||
icon: 'icon-trash',
|
||||
label: 'Clear',
|
||||
},
|
||||
conditions: [
|
||||
{
|
||||
alias: UMB_WRITABLE_PROPERTY_CONDITION_ALIAS,
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
export const UMB_WRITABLE_PROPERTY_CONDITION_ALIAS = 'Umb.Condition.Property.Writable';
|
||||
@@ -0,0 +1 @@
|
||||
export * from './constants.js';
|
||||
@@ -0,0 +1,10 @@
|
||||
import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry';
|
||||
|
||||
export const manifests: Array<ManifestTypes> = [
|
||||
{
|
||||
type: 'condition',
|
||||
name: 'Writable Property Condition',
|
||||
alias: 'Umb.Condition.Property.Writable',
|
||||
api: () => import('./writable-property.condition.js'),
|
||||
},
|
||||
];
|
||||
@@ -0,0 +1,25 @@
|
||||
import { UMB_PROPERTY_CONTEXT } from '../property/property.context.js';
|
||||
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||
import type {
|
||||
UmbConditionConfigBase,
|
||||
UmbConditionControllerArguments,
|
||||
UmbExtensionCondition,
|
||||
} from '@umbraco-cms/backoffice/extension-api';
|
||||
import { UmbConditionBase } from '@umbraco-cms/backoffice/extension-registry';
|
||||
|
||||
export class UmbWritablePropertyCondition
|
||||
extends UmbConditionBase<UmbConditionConfigBase>
|
||||
implements UmbExtensionCondition
|
||||
{
|
||||
constructor(host: UmbControllerHost, args: UmbConditionControllerArguments<UmbConditionConfigBase>) {
|
||||
super(host, args);
|
||||
|
||||
this.consumeContext(UMB_PROPERTY_CONTEXT, (context) => {
|
||||
this.observe(context.isReadOnly, (value) => {
|
||||
this.permitted = value !== true;
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export { UmbWritablePropertyCondition as api };
|
||||
@@ -1,4 +1,5 @@
|
||||
export * from './property/index.js';
|
||||
export * from './conditions/index.js';
|
||||
export * from './property-dataset/index.js';
|
||||
export * from './property-layout/index.js';
|
||||
export * from './property/index.js';
|
||||
export * from './types/index.js';
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
import { manifests as conditionManifests } from './conditions/manifests.js';
|
||||
|
||||
export const manifests = [...conditionManifests];
|
||||
Reference in New Issue
Block a user