diff --git a/application/cmdbabstract.class.inc.php b/application/cmdbabstract.class.inc.php index 9065e5a9e..6661f4590 100644 --- a/application/cmdbabstract.class.inc.php +++ b/application/cmdbabstract.class.inc.php @@ -1433,20 +1433,24 @@ abstract class cmdbAbstractObject extends CMDBObject implements iDisplay } $oAttDef = MetaModel::GetAttributeDef($sClassName, $sFilterCode); - if ($oAttDef->IsExternalKey()) + if ($oAttDef->IsExternalKey(EXTKEY_ABSOLUTE)) { - $sTargetClass = $oAttDef->GetTargetClass(); + $oKeyAttDef = $oAttDef->GetFinalAttDef(); + $sKeyAttClass = $oKeyAttDef->GetHostClass(); + $sKeyAttCode = $oKeyAttDef->GetCode(); + + $sTargetClass = $oKeyAttDef->GetTargetClass(); $oSearch = new DBObjectSearch($sTargetClass); $oSearch->SetModifierProperty('UserRightsGetSelectFilter', 'bSearchMode', true); $oAllowedValues = new DBObjectSet($oSearch); - $iFieldSize = $oAttDef->GetMaxSize(); - $iMaxComboLength = $oAttDef->GetMaximumComboLength(); - $sHtml .= " "; + $iFieldSize = $oKeyAttDef->GetMaxSize(); + $iMaxComboLength = $oKeyAttDef->GetMaximumComboLength(); + $sHtml .= " "; $aExtKeyParams = $aExtraParams; - $aExtKeyParams['iFieldSize'] = $oAttDef->GetMaxSize(); - $aExtKeyParams['iMinChars'] = $oAttDef->GetMinAutoCompleteChars(); - $sHtml .= UIExtKeyWidget::DisplayFromAttCode($oPage, $sFilterCode, $sClassName, $oAttDef->GetLabel(), $oAllowedValues, $sFilterValue, $sSearchFormId.'search_'.$sFilterCode, false, $sFilterCode, '', $aExtKeyParams, true); + $aExtKeyParams['iFieldSize'] = $oKeyAttDef->GetMaxSize(); + $aExtKeyParams['iMinChars'] = $oKeyAttDef->GetMinAutoCompleteChars(); + $sHtml .= UIExtKeyWidget::DisplayFromAttCode($oPage, $sKeyAttCode, $sKeyAttClass, $oAttDef->GetLabel(), $oAllowedValues, $sFilterValue, $sSearchFormId.'search_'.$sFilterCode, false, $sFilterCode, '', $aExtKeyParams, true); } else {