mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-23 10:38:45 +02:00
Advanced Search: Fix missing query internal params
SVN:trunk[5762]
This commit is contained in:
@@ -167,10 +167,10 @@ class CriterionToSearchForm extends CriterionConversionAbstract
|
||||
{
|
||||
if (!is_null($aPrevCriterion))
|
||||
{
|
||||
if (array_key_exists('ref', $aPrevCriterion))
|
||||
if (array_key_exists('ref', $aPrevCriterion) && array_key_exists('widget', $aPrevCriterion))
|
||||
{
|
||||
// If previous has ref, the current has ref as the array is sorted with all without ref first
|
||||
if (strcmp($aPrevCriterion['ref'], $aCurrCriterion['ref']) == 0)
|
||||
if (($aPrevCriterion['ref'] == $aCurrCriterion['ref']) && ($aPrevCriterion['widget'] == $aCurrCriterion['widget']))
|
||||
{
|
||||
// Same attribute, try to merge
|
||||
if (array_key_exists('widget', $aCurrCriterion))
|
||||
|
||||
@@ -39,6 +39,7 @@ use Expression;
|
||||
use FieldExpression;
|
||||
use IssueLog;
|
||||
use MetaModel;
|
||||
use MissingQueryArgument;
|
||||
use TrueExpression;
|
||||
use utils;
|
||||
use WebPage;
|
||||
@@ -468,6 +469,7 @@ class SearchForm
|
||||
* @param bool $bIsRemovable
|
||||
*
|
||||
* @return array
|
||||
* @throws \MissingQueryArgument
|
||||
*/
|
||||
public function GetCriterion($oSearch, $aFields, $aArgs = array(), $bIsRemovable = true)
|
||||
{
|
||||
@@ -478,12 +480,20 @@ class SearchForm
|
||||
{
|
||||
$oExpression = $oSearch->GetCriteria();
|
||||
|
||||
$aArgs = MetaModel::PrepareQueryArguments($aArgs, $oSearch->GetInternalParams());
|
||||
|
||||
if (!empty($aArgs))
|
||||
{
|
||||
$aArgs = MetaModel::PrepareQueryArguments($aArgs);
|
||||
|
||||
$sOQL = $oExpression->Render($aArgs);
|
||||
$oExpression = Expression::FromOQL($sOQL);
|
||||
try
|
||||
{
|
||||
$sOQL = $oExpression->Render($aArgs);
|
||||
$oExpression = Expression::FromOQL($sOQL);
|
||||
}
|
||||
catch (MissingQueryArgument $e)
|
||||
{
|
||||
IssueLog::Error("Search form disabled: \"".$oSearch->ToOQL()."\" Error: ".$e->getMessage());
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
$aORExpressions = Expression::Split($oExpression, 'OR');
|
||||
|
||||
Reference in New Issue
Block a user