From 624f00bededddea3fe1a995439f060c636ac94bb Mon Sep 17 00:00:00 2001 From: Peter Evans Date: Mon, 8 Dec 2025 11:17:34 +0000 Subject: [PATCH] Ensure element visibility works with form data. (#4391) * For element visibility to work with form data, the applicationContext must contain the element. At the moment it's missing, so when we resolve the formula, it's always null. * Implementing Jrmi's suggestion https://github.com/baserow/baserow/pull/4391/files#r2588874445. --- ...ug_in_element_visibility_which_prevented_form_da.json | 9 +++++++++ .../builder/components/elements/ElementPreview.vue | 7 +++++++ .../modules/builder/components/page/PageElement.vue | 7 +++++++ 3 files changed, 23 insertions(+) create mode 100644 changelog/entries/unreleased/bug/resolved_a_bug_in_element_visibility_which_prevented_form_da.json diff --git a/changelog/entries/unreleased/bug/resolved_a_bug_in_element_visibility_which_prevented_form_da.json b/changelog/entries/unreleased/bug/resolved_a_bug_in_element_visibility_which_prevented_form_da.json new file mode 100644 index 0000000000..d170bda1b5 --- /dev/null +++ b/changelog/entries/unreleased/bug/resolved_a_bug_in_element_visibility_which_prevented_form_da.json @@ -0,0 +1,9 @@ +{ + "type": "bug", + "message": "Resolved a bug in element visibility which prevented form data from being used.", + "issue_origin": "github", + "issue_number": null, + "domain": "builder", + "bullet_points": [], + "created_at": "2025-12-04" +} \ No newline at end of file diff --git a/web-frontend/modules/builder/components/elements/ElementPreview.vue b/web-frontend/modules/builder/components/elements/ElementPreview.vue index 41dc22929f..1ee33a3296 100644 --- a/web-frontend/modules/builder/components/elements/ElementPreview.vue +++ b/web-frontend/modules/builder/components/elements/ElementPreview.vue @@ -111,6 +111,13 @@ export default { getClosestSiblingElement: 'element/getClosestSiblingElement', loggedUser: 'userSourceUser/getUser', }), + applicationContext() { + return { + ...this.injectedApplicationContext, + ...this.applicationContextAdditions, + element: this.element, + } + }, pageTop() { return this.pageTopData.value }, diff --git a/web-frontend/modules/builder/components/page/PageElement.vue b/web-frontend/modules/builder/components/page/PageElement.vue index 5357c0b16b..c37b53da1a 100644 --- a/web-frontend/modules/builder/components/page/PageElement.vue +++ b/web-frontend/modules/builder/components/page/PageElement.vue @@ -64,6 +64,13 @@ export default { BACKGROUND_TYPES: () => BACKGROUND_TYPES, CHILD_WIDTH_TYPES: () => CHILD_WIDTH_TYPES, WIDTH_TYPES: () => WIDTH_TYPES, + applicationContext() { + return { + ...this.injectedApplicationContext, + ...this.applicationContextAdditions, + element: this.element, + } + }, themeConfigBlocks() { return this.$registry.getOrderedList('themeConfigBlock') },