diff --git a/CHANGELOG.md b/CHANGELOG.md index 7813501678..04472aa63f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ ### Fixes * The `?render-areas=1` API feature now correctly disregards areas in separate documents loaded via relationship fields. Formerly their presence resulted in an error, not a rendering. +* Make conditional fields work in Image Editor. ## 4.20.0 (2025-08-06) diff --git a/modules/@apostrophecms/image/ui/apos/components/AposMediaManagerEditor.vue b/modules/@apostrophecms/image/ui/apos/components/AposMediaManagerEditor.vue index 5a5482d837..a12f810749 100644 --- a/modules/@apostrophecms/image/ui/apos/components/AposMediaManagerEditor.vue +++ b/modules/@apostrophecms/image/ui/apos/components/AposMediaManagerEditor.vue @@ -87,6 +87,7 @@ :trigger-validation="triggerValidation" :doc-id="docFields.data._id" :following-values="followingValues()" + :conditional-fields="conditionalFields" :server-errors="serverErrors" @validate="triggerValidate" @reset="$emit('modified', false)" @@ -231,6 +232,7 @@ export default { 'docFields.data': { deep: true, handler(newData, oldData) { + this.evaluateConditions(); this.$nextTick(() => { // If either old or new state are an empty object, it's not // "modified." @@ -252,8 +254,8 @@ export default { } } }, - media(newVal) { - this.updateActiveDoc(newVal); + async media(newVal) { + await this.updateActiveDoc(newVal); } }, mounted() { @@ -271,6 +273,8 @@ export default { this.restoreOnly = !!this.activeMedia.archived; this.original = klona(newMedia); this.docFields.data = klona(newMedia); + this.evaluateConditions(); + await this.evaluateExternalConditions(); this.generateLipKey(); await this.unlock(); // Distinguish between an actual doc and an empty placeholder @@ -402,7 +406,7 @@ export default { } await this.cancel(); - this.updateActiveDoc(this.activeMedia); + await this.updateActiveDoc(this.activeMedia); } apos.bus.$emit('admin-menu-click', { itemName: '@apostrophecms/i18n:localize', diff --git a/modules/@apostrophecms/modal/ui/apos/mixins/AposEditorMixin.js b/modules/@apostrophecms/modal/ui/apos/mixins/AposEditorMixin.js index e00de8aed9..d223a526d0 100644 --- a/modules/@apostrophecms/modal/ui/apos/mixins/AposEditorMixin.js +++ b/modules/@apostrophecms/modal/ui/apos/mixins/AposEditorMixin.js @@ -78,7 +78,7 @@ export default { async evaluateExternalConditions() { this.externalConditionsResults = await evaluateExternalConditions( this.schema, - this.docId || this.docFields?.data?._docId, + this.docId || this.docFields?.data?._docId || this.docFields?.data?._id, this.$t ); },