From c706771c3fc3c582cd62b950fa9d5e802764452c Mon Sep 17 00:00:00 2001 From: colemanw Date: Thu, 19 Oct 2023 11:49:34 -0400 Subject: [PATCH] Fix dev/core#4638 - SearchKit incorrectly matches labels instead of names for conditionals --- .../crmSearchAdmin/crmSearchAdminLinkGroup.component.js | 6 ++++-- .../displays/common/searchAdminCssRules.component.js | 7 +++++-- .../displays/common/searchAdminIcons.component.js | 7 +++++-- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminLinkGroup.component.js b/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminLinkGroup.component.js index 532541bcc6..ef28cde551 100644 --- a/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminLinkGroup.component.js +++ b/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminLinkGroup.component.js @@ -32,8 +32,10 @@ this.getField = searchMeta.getField; this.fields = function() { - var selectFields = ctrl.crmSearchAdmin.getSelectFields(); - var permissionField = [{ + let selectFields = ctrl.crmSearchAdmin.getSelectFields(); + // Use machine names not labels for option matching + selectFields.forEach((field) => field.id = field.id.replace(':label', ':name')); + let permissionField = [{ text: ts('Current User Permission'), id: 'check user permission', description: ts('Check permission of logged-in user') diff --git a/ext/search_kit/ang/crmSearchAdmin/displays/common/searchAdminCssRules.component.js b/ext/search_kit/ang/crmSearchAdmin/displays/common/searchAdminCssRules.component.js index 3111e4a8b5..008b19bb54 100644 --- a/ext/search_kit/ang/crmSearchAdmin/displays/common/searchAdminCssRules.component.js +++ b/ext/search_kit/ang/crmSearchAdmin/displays/common/searchAdminCssRules.component.js @@ -28,9 +28,12 @@ this.styles.strikethrough = ts('Strikethrough'); this.fields = function() { - var allFields = ctrl.crmSearchAdmin.getAllFields(':name', ['Field', 'Custom', 'Extra', 'Pseudo']); + let allFields = ctrl.crmSearchAdmin.getAllFields(':name', ['Field', 'Custom', 'Extra', 'Pseudo']); + let selectFields = ctrl.crmSearchAdmin.getSelectFields(); + // Use machine names not labels for option matching + selectFields.forEach((field) => field.id = field.id.replace(':label', ':name')); return { - results: ctrl.crmSearchAdmin.getSelectFields().concat(allFields) + results: selectFields.concat(allFields) }; }; diff --git a/ext/search_kit/ang/crmSearchAdmin/displays/common/searchAdminIcons.component.js b/ext/search_kit/ang/crmSearchAdmin/displays/common/searchAdminIcons.component.js index 6a7d439f9e..323b09c773 100644 --- a/ext/search_kit/ang/crmSearchAdmin/displays/common/searchAdminIcons.component.js +++ b/ext/search_kit/ang/crmSearchAdmin/displays/common/searchAdminIcons.component.js @@ -16,9 +16,12 @@ this.getField = searchMeta.getField; this.fields = function() { - var allFields = ctrl.crmSearchAdmin.getAllFields(':name', ['Field', 'Custom', 'Extra', 'Pseudo']); + let allFields = ctrl.crmSearchAdmin.getAllFields(':name', ['Field', 'Custom', 'Extra', 'Pseudo']); + let selectFields = ctrl.crmSearchAdmin.getSelectFields(); + // Use machine names not labels for option matching + selectFields.forEach((field) => field.id = field.id.replace(':label', ':name')); return { - results: ctrl.crmSearchAdmin.getSelectFields().concat(allFields) + results: selectFields.concat(allFields) }; }; -- 2.25.1