From 85b00bbf1e3bb7c6f971d161d621693cdc9d99e7 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Wed, 9 Dec 2020 08:15:22 -0500 Subject: [PATCH] Search kit: Display join name as part of default label --- ext/search/ang/crmSearchAdmin.module.js | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/ext/search/ang/crmSearchAdmin.module.js b/ext/search/ang/crmSearchAdmin.module.js index 754a4de912..9019da4f82 100644 --- a/ext/search/ang/crmSearchAdmin.module.js +++ b/ext/search/ang/crmSearchAdmin.module.js @@ -127,7 +127,7 @@ }); return result; } - function getField(fieldName, entityName) { + function getFieldAndJoin(fieldName, entityName) { var dotSplit = fieldName.split('.'), joinEntity = dotSplit.length > 1 ? dotSplit[0] : null, name = _.last(dotSplit).split(':')[0], @@ -143,7 +143,7 @@ field = _.find(getEntity(entityName).fields, {name: dotSplit[0] + '.' + name}); if (field) { field.entity = entityName; - return field; + return {field: field}; } } if (joinEntity) { @@ -156,7 +156,7 @@ } if (field) { field.entity = entityName; - return field; + return {field: field, join: join}; } } function parseExpr(expr) { @@ -169,19 +169,23 @@ result.fn = _.find(CRM.crmSearchAdmin.functions, {name: expr.substring(0, bracketPos)}); result.modifier = _.trim(parsed[1]); } - result.field = expr ? getField(fieldName, searchEntity) : undefined; - if (result.field) { + var fieldAndJoin = expr ? getFieldAndJoin(fieldName, searchEntity) : undefined; + if (fieldAndJoin.field) { var split = fieldName.split(':'), - prefixPos = split[0].lastIndexOf(result.field.name); + prefixPos = split[0].lastIndexOf(fieldAndJoin.field.name); result.path = split[0]; result.prefix = prefixPos > 0 ? result.path.substring(0, prefixPos) : ''; result.suffix = !split[1] ? '' : ':' + split[1]; + result.field = fieldAndJoin.field; + result.join = fieldAndJoin.join; } return result; } return { getEntity: getEntity, - getField: getField, + getField: function(fieldName, entityName) { + return getFieldAndJoin(fieldName, entityName).field; + }, getJoin: getJoin, parseExpr: parseExpr, getDefaultLabel: function(col) { @@ -190,6 +194,9 @@ if (info.fn) { label = '(' + info.fn.title + ') ' + label; } + if (info.join) { + label = info.join.label + ': ' + label; + } return label; }, // Find all possible search columns that could serve as contact_id for a smart group -- 2.25.1