From 27144f07b13e733fb9e62769957a860ff1d09d0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eric=20Espi=C3=A9?= Date: Wed, 18 Jul 2018 12:30:40 +0000 Subject: [PATCH] =?UTF-8?q?N=C2=B01561=20-=20Fix=20auto-complete=20error?= =?UTF-8?q?=20when=20the=20friendlyname=20depends=20on=20other=20classes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SVN:trunk[5948] --- core/valuesetdef.class.inc.php | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/core/valuesetdef.class.inc.php b/core/valuesetdef.class.inc.php index 855507104..5ac87bfaa 100644 --- a/core/valuesetdef.class.inc.php +++ b/core/valuesetdef.class.inc.php @@ -228,10 +228,23 @@ class ValueSetObjects extends ValueSetDefinition } } + $oExpression = DBObjectSearch::GetPolymorphicExpression($oFilter->GetClass(), 'friendlyname'); + $aFields = $oExpression->ListRequiredFields(); + $sClass = $oFilter->GetClass(); + foreach($aFields as $sField) + { + $aFieldItems = explode('.', $sField); + if ($aFieldItems[0] != $sClass) + { + $sOperation = 'contains'; + break; + } + } + switch ($sOperation) { case 'equals': - $aAttributes = MetaModel::GetFriendlyNameAttributeCodeList($oFilter->GetClass()); + $aAttributes = MetaModel::GetFriendlyNameAttributeCodeList($sClass); $sClassAlias = $oFilter->GetClassAlias(); $aFilters = array(); $oValueExpr = new ScalarExpression($sContains); @@ -247,7 +260,7 @@ class ValueSetObjects extends ValueSetDefinition $oFilter = new DBUnionSearch($aFilters); break; case 'start_with': - $aAttributes = MetaModel::GetFriendlyNameAttributeCodeList($oFilter->GetClass()); + $aAttributes = MetaModel::GetFriendlyNameAttributeCodeList($sClass); $sClassAlias = $oFilter->GetClassAlias(); $aFilters = array(); $oValueExpr = new ScalarExpression($sContains.'%');