diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/clipboard/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/clipboard/manifests.ts index 7fdabef375..95c8b6b681 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/clipboard/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/clipboard/manifests.ts @@ -2,10 +2,7 @@ import { UMB_BLOCK_GRID_PROPERTY_EDITOR_UI_ALIAS } from '../property-editors/con import { manifests as blockManifests } from './block/manifests.js'; import { manifests as gridBlockManifests } from './grid-block/manifests.js'; import type { UmbExtensionManifestKind } from '@umbraco-cms/backoffice/extension-registry'; -import { - UMB_PROPERTY_HAS_VALUE_CONDITION_ALIAS, - UMB_WRITABLE_PROPERTY_CONDITION_ALIAS, -} from '@umbraco-cms/backoffice/property'; +import { UMB_PROPERTY_HAS_VALUE_CONDITION_ALIAS } from '@umbraco-cms/backoffice/property'; const forPropertyEditorUis = [UMB_BLOCK_GRID_PROPERTY_EDITOR_UI_ALIAS]; @@ -24,9 +21,6 @@ export const manifests: Array = name: 'Block Grid Copy To Clipboard Property Action', forPropertyEditorUis, conditions: [ - { - alias: UMB_WRITABLE_PROPERTY_CONDITION_ALIAS, - }, { alias: UMB_PROPERTY_HAS_VALUE_CONDITION_ALIAS, }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/clipboard/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/clipboard/manifests.ts index d8d73eb55c..dd828b5a54 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/clipboard/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/clipboard/manifests.ts @@ -23,9 +23,6 @@ export const manifests: Array = [ name: 'Block List Copy To Clipboard Property Action', forPropertyEditorUis, conditions: [ - { - alias: UMB_WRITABLE_PROPERTY_CONDITION_ALIAS, - }, { alias: UMB_PROPERTY_HAS_VALUE_CONDITION_ALIAS, }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-entry/block-list-entry.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-entry/block-list-entry.element.ts index af584330ef..b657c375c2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-entry/block-list-entry.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-entry/block-list-entry.element.ts @@ -68,6 +68,7 @@ export class UmbBlockListEntryElement extends UmbLitElement implements UmbProper @state() _showContentEdit = false; + @state() _hasSettings = false; @@ -426,7 +427,7 @@ export class UmbBlockListEntryElement extends UmbLitElement implements UmbProper look="secondary" color=${this._contentInvalid ? 'danger' : ''} href=${this._workspaceEditContentPath}> - + ${this._contentInvalid ? html`!` : nothing} diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-property-dataset.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-property-dataset.context.ts index 34e17f069a..e15d262b61 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-property-dataset.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-property-dataset.context.ts @@ -1,4 +1,5 @@ import type { UmbBlockElementManager } from './block-element-manager.js'; +import { UMB_BLOCK_WORKSPACE_CONTEXT } from './block-workspace.context-token.js'; import type { UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { UmbVariantId } from '@umbraco-cms/backoffice/variant'; @@ -23,5 +24,16 @@ export class UmbBlockElementPropertyDatasetContext this.getName = elementManager.getName; this.culture = createObservablePart(elementManager.variantId, (v) => v?.culture); this.segment = createObservablePart(elementManager.variantId, (v) => v?.segment); + + this.consumeContext(UMB_BLOCK_WORKSPACE_CONTEXT, (workspace) => { + this.observe( + workspace.readOnlyState.states, + (states) => { + const isReadOnly = states.some((state) => state.variantId.equal(elementManager.getVariantId())); + this._readOnly.setValue(isReadOnly); + }, + 'umbObserveReadOnlyStates', + ); + }); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content/property-dataset-context/element-property-dataset.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content/property-dataset-context/element-property-dataset.context.ts index bf9657c99a..d40ba486d9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content/property-dataset-context/element-property-dataset.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content/property-dataset-context/element-property-dataset.context.ts @@ -44,8 +44,8 @@ export abstract class UmbElementPropertyDatasetContext< #propertyVariantIdMap = new UmbBasicState([]); private readonly _propertyVariantIdMap = this.#propertyVariantIdMap.asObservable(); - #readOnly = new UmbBooleanState(false); - public readOnly = this.#readOnly.asObservable(); + protected _readOnly = new UmbBooleanState(false); + public readOnly = this._readOnly.asObservable(); getEntityType(): string { return this._dataOwner.getEntityType(); @@ -56,7 +56,7 @@ export abstract class UmbElementPropertyDatasetContext< abstract getName(): string | undefined; getReadOnly() { - return this.#readOnly.getValue(); + return this._readOnly.getValue(); } constructor(host: UmbControllerHost, dataOwner: DataOwnerType, variantId?: UmbVariantId) { @@ -73,7 +73,7 @@ export abstract class UmbElementPropertyDatasetContext< this._dataOwner.readOnlyState.states, (states) => { const isReadOnly = states.some((state) => state.variantId.equal(this.#variantId)); - this.#readOnly.setValue(isReadOnly); + this._readOnly.setValue(isReadOnly); }, null, );