From 7abf553ec42071890bf78c1729965ec81a6e0047 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Mon, 6 Mar 2023 16:13:20 -0500 Subject: [PATCH] Afform - Fix editing search filters nested within multiple containers --- .../afGuiEditor/elements/afGuiContainer.component.js | 10 +++++----- .../ang/afGuiEditor/elements/afGuiField.component.js | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ext/afform/admin/ang/afGuiEditor/elements/afGuiContainer.component.js b/ext/afform/admin/ang/afGuiEditor/elements/afGuiContainer.component.js index 06c8648d1a..79382e2ba4 100644 --- a/ext/afform/admin/ang/afGuiEditor/elements/afGuiContainer.component.js +++ b/ext/afform/admin/ang/afGuiEditor/elements/afGuiContainer.component.js @@ -78,9 +78,10 @@ } }; - this.getSearchDisplay = function(node) { - var searchKey = $scope.getSearchKey(node); - if (searchKey) { + // Finds a SearchDisplay within this container or within the fieldset containing this container + this.getSearchDisplay = function() { + var searchKey = ctrl.getDataEntity(); + if (searchKey && !ctrl.entityName) { return afGui.getSearchDisplay.apply(null, searchKey.split('.')); } }; @@ -416,8 +417,7 @@ var joinType = ctrl.entityName.split('-join-'); entityType = joinType[1] || (ctrl.editor && ctrl.editor.getEntity(joinType[0]).type); } else { - var searchKey = ctrl.getDataEntity(), - searchDisplay = afGui.getSearchDisplay.apply(null, searchKey.split('.')), + var searchDisplay = ctrl.getSearchDisplay(), fieldName = fieldKey.substr(fieldKey.indexOf('.') + 1), prefix = _.includes(fieldKey, '.') ? fieldKey.split('.')[0] : null; if (prefix) { diff --git a/ext/afform/admin/ang/afGuiEditor/elements/afGuiField.component.js b/ext/afform/admin/ang/afGuiEditor/elements/afGuiField.component.js index 1550f94faa..66136f86f6 100644 --- a/ext/afform/admin/ang/afGuiEditor/elements/afGuiField.component.js +++ b/ext/afform/admin/ang/afGuiEditor/elements/afGuiField.component.js @@ -89,8 +89,8 @@ this.getDefn = function() { var defn = afGui.getField(ctrl.container.getFieldEntityType(ctrl.node.name), ctrl.node.name); // Calc fields are specific to a search display, not part of the schema - if (!defn && ctrl.container.getSearchDisplay(ctrl.container.node)) { - var searchDisplay = ctrl.container.getSearchDisplay(ctrl.container.node); + if (!defn && ctrl.container.getSearchDisplay()) { + var searchDisplay = ctrl.container.getSearchDisplay(); defn = _.findWhere(searchDisplay.calc_fields, {name: ctrl.node.name}); } defn = defn || { -- 2.25.1