mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-23 18:48:51 +02:00
Advanced Search: add class alias in criterion
SVN:b1162[5563]
This commit is contained in:
@@ -1043,6 +1043,7 @@ class FieldExpression extends UnaryExpression
|
||||
return array(
|
||||
'widget' => $sSearchType,
|
||||
'ref' => $this->GetParent().'.'.$this->GetName(),
|
||||
'class_alias' => $this->GetParent(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,24 +80,28 @@ class CriterionToSearchForm extends CriterionConversionAbstract
|
||||
}
|
||||
$aCriteria['is_removable'] = $bIsRemovable;
|
||||
|
||||
// Check criteria validity
|
||||
if (!array_key_exists('ref', $aCriteria) || !array_key_exists($aCriteria['ref'], $aAllFields))
|
||||
if (isset($aCriteria['ref']))
|
||||
{
|
||||
|
||||
$aCriteria['label'] = Dict::S('UI:Search:Criteria:Raw:Filtered');
|
||||
if (array_key_exists('ref', $aCriteria))
|
||||
$aRef = explode('.', $aCriteria['ref']);
|
||||
if (isset($aClasses[$aRef[0]]))
|
||||
{
|
||||
$aRef = explode('.', $aCriteria['ref']);
|
||||
if (isset($aClasses[$aRef[0]]))
|
||||
$sClass = $aClasses[$aRef[0]];
|
||||
$aCriteria['class'] = $sClass;
|
||||
}
|
||||
}
|
||||
|
||||
// Check criteria validity
|
||||
if (!isset($aCriteria['ref']) || !isset($aAllFields[$aCriteria['ref']]))
|
||||
{
|
||||
$aCriteria['label'] = Dict::S('UI:Search:Criteria:Raw:Filtered');
|
||||
if (isset($aCriteria['ref']))
|
||||
{
|
||||
try
|
||||
{
|
||||
$aCriteria['label'] = Dict::Format('UI:Search:Criteria:Raw:FilteredOn', MetaModel::GetName($sClass));
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$sClass = $aClasses[$aRef[0]];
|
||||
try
|
||||
{
|
||||
$aCriteria['label'] = Dict::Format('UI:Search:Criteria:Raw:FilteredOn', MetaModel::GetName($sClass));
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -137,7 +137,12 @@ class SearchForm
|
||||
$aFields = $this->GetFields($oSet);
|
||||
$oSearch = $oSet->GetFilter();
|
||||
$aCriterion = $this->GetCriterion($oSearch, $aFields, $aArgs, $bIsRemovable);
|
||||
|
||||
$aClasses = $oSearch->GetSelectedClasses();
|
||||
$sClassAlias = '';
|
||||
foreach($aClasses as $sAlias => $sClass)
|
||||
{
|
||||
$sClassAlias = $sAlias;
|
||||
}
|
||||
|
||||
$oBaseSearch = $oSearch->DeepClone();
|
||||
$oBaseSearch->ResetCondition();
|
||||
@@ -195,6 +200,7 @@ class SearchForm
|
||||
'fields' => $aFields,
|
||||
'criterion' => $aCriterion,
|
||||
'class_name' => $sClassName,
|
||||
'class_alias' => $sClassAlias,
|
||||
'base_oql' => $sBaseOQL,
|
||||
),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user