mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
Advanced Search: Undefined for enums and unit tests
SVN:b1162[5516]
This commit is contained in:
@@ -1602,6 +1602,7 @@ class FunctionExpression extends Expression
|
||||
{
|
||||
$aCriteria = array_merge($oExpression->GetCriterion($oSearch, $aArgs, $bRetrofitParams, $oAttDef), $aCriteria);
|
||||
}
|
||||
$aCriteria['has_undefined'] = true;
|
||||
break;
|
||||
|
||||
case 'NOW':
|
||||
|
||||
@@ -1241,8 +1241,8 @@ Lors de l\'association à un déclencheur, on attribue à chaque action un numé
|
||||
// Expression to Natural language
|
||||
//
|
||||
Dict::Add('FR FR', 'French', 'Français', array(
|
||||
'Expression:Operator:AND' => 'ET',
|
||||
'Expression:Operator:OR' => 'OU',
|
||||
'Expression:Operator:AND' => ' ET ',
|
||||
'Expression:Operator:OR' => ' OU ',
|
||||
'Expression:Unit:Short:DAY' => 'j',
|
||||
'Expression:Unit:Short:WEEK' => 's',
|
||||
'Expression:Unit:Short:MONTH' => 'm',
|
||||
|
||||
@@ -334,11 +334,6 @@ class CriterionToSearchForm extends CriterionConversionAbstract
|
||||
return $aCriteria;
|
||||
}
|
||||
|
||||
protected static function EnumToSearchForm($aCriteria, $aFields)
|
||||
{
|
||||
return self::ExternalKeyToSearchForm($aCriteria, $aFields);
|
||||
}
|
||||
|
||||
protected static function DateToSearchForm($aCriteria, $aFields)
|
||||
{
|
||||
return self::DateTimeToSearchForm($aCriteria, $aFields);
|
||||
@@ -417,6 +412,10 @@ class CriterionToSearchForm extends CriterionConversionAbstract
|
||||
return $aCriteria;
|
||||
}
|
||||
|
||||
protected static function EnumToSearchForm($aCriteria, $aFields)
|
||||
{
|
||||
return self::ExternalKeyToSearchForm($aCriteria, $aFields);
|
||||
}
|
||||
|
||||
protected static function ExternalKeyToSearchForm($aCriteria, $aFields)
|
||||
{
|
||||
@@ -442,6 +441,14 @@ class CriterionToSearchForm extends CriterionConversionAbstract
|
||||
break;
|
||||
case 'IN':
|
||||
break;
|
||||
case 'OR':
|
||||
// Special case when undefined and other values are selected
|
||||
$aCriteria['operator'] = CriterionConversionAbstract::OP_IN;
|
||||
if (isset($aCriteria['has_undefined']) && $aCriteria['has_undefined'])
|
||||
{
|
||||
$aCriteria['values'][] = array('value' => 'null', 'label' => 'null');
|
||||
}
|
||||
break;
|
||||
default:
|
||||
// Unknown operator
|
||||
$aCriteria['widget'] = AttributeDefinition::SEARCH_WIDGET_TYPE_RAW;
|
||||
|
||||
@@ -355,6 +355,7 @@ class CriterionConversionTest extends ItopDataTestCase
|
||||
'enum IN' => array('OQL' => "SELECT Contact WHERE status IN ('active', 'inactive')"),
|
||||
'enum NOT IN' => array('OQL' => "SELECT Contact WHERE status NOT IN ('active')"),
|
||||
'enum undefined' => array('OQL' => "SELECT FunctionalCI WHERE ((business_criticity = 'high') OR ISNULL(business_criticity)) AND 1"),
|
||||
'enum undefined1' => array('OQL' => "SELECT FunctionalCI WHERE ((business_criticity IN ('high', 'medium')) OR ISNULL(business_criticity)) AND 1"),
|
||||
'key NOT IN' => array('OQL' => "SELECT Contact WHERE org_id NOT IN ('1')"),
|
||||
'key IN' => array('OQL' => "SELECT Contact WHERE org_id IN ('1')"),
|
||||
'key empty' => array('OQL' => "SELECT Person WHERE location_id = '0'"),
|
||||
|
||||
@@ -56,9 +56,9 @@ class SearchFormTest extends ItopDataTestCase
|
||||
public function GetFieldsProvider()
|
||||
{
|
||||
return array(
|
||||
array("SELECT Contact", 7, 'zlist'),
|
||||
array("SELECT Contact", 8, 'zlist'),
|
||||
array("SELECT Contact AS C WHERE C.status = 'active'", 4, 'others'),
|
||||
array("SELECT Person", 11, 'zlist'),
|
||||
array("SELECT Person", 12, 'zlist'),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user