Advanced Search: Undefined for enums

SVN:b1162[5518]
This commit is contained in:
Eric Espié
2018-03-23 16:32:23 +00:00
parent 50e0ea5ec5
commit 5f86a60954
2 changed files with 8 additions and 12 deletions

View File

@@ -216,9 +216,11 @@ class CriterionToOQL extends CriterionConversionAbstract
if (count($aInValues) == 1)
{
// Add 'AND 1' to group the 'OR' inside an AND list for OQL parsing
return "((({$sRef} = '$sInList') OR {$sFilterOnUndefined}) AND 1)";
}
// Add 'AND 1' to group the 'OR' inside an AND list for OQL parsing
return "(({$sRef} IN ('$sInList') OR {$sFilterOnUndefined}) AND 1)";
}

View File

@@ -423,27 +423,20 @@ class CriterionToSearchForm extends CriterionConversionAbstract
switch ($sOperator)
{
case '=':
// Same as IN
$aCriteria['operator'] = CriterionConversionAbstract::OP_IN;
break;
case '!=':
if (!isset($aCriteria['values'][0]))
{
$aCriteria['operator'] = CriterionConversionAbstract::OP_NOT_EMPTY;
}
else
{
// Same as NOT IN
$aCriteria = self::RevertValues($aCriteria, $aFields);
}
break;
case 'NOT IN':
case '!=':
// Same as NOT IN
$aCriteria = self::RevertValues($aCriteria, $aFields);
break;
case 'IN':
// Nothing special to do
break;
case 'OR':
case 'ISNULL':
// Special case when undefined and other values are selected
// Special case when undefined and/or other values are selected
$aCriteria['operator'] = CriterionConversionAbstract::OP_IN;
if (isset($aCriteria['has_undefined']) && $aCriteria['has_undefined'])
{
@@ -451,6 +444,7 @@ class CriterionToSearchForm extends CriterionConversionAbstract
{
$aCriteria['values'] = array();
}
// Convention for 'undefined' enums
$aCriteria['values'][] = array('value' => 'null', 'label' => 'null');
}
break;