Advanced Search: Hidden criterion

SVN:b1162[5456]
This commit is contained in:
Eric Espié
2018-03-19 10:45:34 +00:00
parent e628c68f09
commit 0fdf6bfbb2
5 changed files with 58 additions and 26 deletions

View File

@@ -31,6 +31,7 @@ namespace Combodo\iTop\Application\Search;
use Combodo\iTop\Application\Search\CriterionConversion\CriterionToOQL;
use DBObjectSearch;
use Expression;
use IssueLog;
use OQLException;
@@ -40,10 +41,11 @@ class CriterionParser
/**
* @param $sBaseOql
* @param $aCriterion
* @param $sHiddenCriteria
*
* @return \DBSearch
*/
public static function Parse($sBaseOql, $aCriterion)
public static function Parse($sBaseOql, $aCriterion, $sHiddenCriteria = null)
{
$aExpression = array();
$aOr = $aCriterion['or'];
@@ -60,14 +62,21 @@ class CriterionParser
try
{
$oSearch = DBObjectSearch::FromOQL($sBaseOql);
if (!empty($sHiddenCriteria))
{
$oHiddenCriteriaExpression = Expression::FromOQL($sHiddenCriteria);
$oSearch->AddConditionExpression($oHiddenCriteriaExpression);
}
if (empty($aExpression))
{
return $oSearch;
}
$oExpression = \Expression::FromOQL(implode(" OR ", $aExpression));
$oExpression = Expression::FromOQL(implode(" OR ", $aExpression));
$oSearch->AddConditionExpression($oExpression);
return $oSearch;
} catch (OQLException $e)
{