diff --git a/application/audit.AuditFilterField.class.inc.php b/application/audit.AuditFilterField.class.inc.php index 1f2644e80..88124c0a1 100644 --- a/application/audit.AuditFilterField.class.inc.php +++ b/application/audit.AuditFilterField.class.inc.php @@ -1,26 +1,19 @@ +/* +* @copyright Copyright (C) 2010-2025 Combodo SAS +* @license http://opensource.org/licenses/AGPL-3.0 +* @since 3.3.0 + */ use Combodo\iTop\Application\UI\Base\Component\Alert\AlertUIBlockFactory; use Combodo\iTop\Application\UI\Base\Component\Html\Html; +use Combodo\iTop\Application\UI\Base\Component\Html\HtmlFactory; +use Combodo\iTop\Application\UI\Base\Component\Input\Select\SelectOptionUIBlockFactory; +use Combodo\iTop\Application\UI\Base\Component\Input\Select\SelectUIBlockFactory; +use Combodo\iTop\Application\UI\Base\UIBlock; /** - * This class allow to define placeholder to be used in the audit "rule" and audit "category" OQL queries. + * This class allow to define placeholder to be used in the audit 'rule' and audit 'category' OQL queries. * * @copyright Copyright (C) 2010-2025 Combodo SAS * @license http://opensource.org/licenses/AGPL-3.0 @@ -32,27 +25,38 @@ class AuditFilterField extends cmdbAbstractObject { $aParams = array ( - "category" => "application,grant_by_profile", - "key_type" => "autoincrement", - "name_attcode" => "placeholder", - "state_attcode" => "", - "reconc_keys" => array('placeholder'), - "db_table" => "priv_auditfilterfield", - "db_key_field" => "id", - "db_finalclass_field" => "", + 'category' => 'application,grant_by_profile', + 'key_type' => 'autoincrement', + 'name_attcode' => 'placeholder', + 'state_attcode' => '', + 'reconc_keys' => array('placeholder'), + 'db_table' => 'priv_auditfilterfield', + 'db_key_field' => 'id', + 'db_finalclass_field' => '', + 'uniqueness_rules' => array( + 'no_duplicate' => array( + 'attributes' => array( + 0 => 'placeholder', + ), + 'filter' => '', + 'disabled' => false, + 'is_blocking' => true, + ), + ), 'style' => new ormStyle(null, null, null, null, null, '../images/icons/icons8-audit-filtre.svg'), ); MetaModel::Init_Params($aParams); MetaModel::Init_AddAttribute(new AttributeString("placeholder", array("allowed_values" => null, "sql" => "placeholder", "default_value" => "", "is_null_allowed" => false, "depends_on" => array(), "validation_pattern"=>'^\w+$'))); MetaModel::Init_AddAttribute(new AttributeString("label", array("allowed_values" => null, "sql" => "label", "default_value" => "", "is_null_allowed" => false, "depends_on" => array()))); + MetaModel::Init_AddAttribute(new AttributeEnum("type", array("allowed_values"=>new ValueSetEnum("select_oql,select_values,number,date" , true), "display_style"=>'list', "sql"=>'type', "default_value"=>'', "is_null_allowed"=>true, "depends_on"=>array(), "always_load_in_tables"=>false))); MetaModel::Init_AddAttribute(new AttributeOQL("oql", array("allowed_values" => null, "sql" => "oql", "default_value" => "", "is_null_allowed" => true, "depends_on" => array()))); MetaModel::Init_AddAttribute(new AttributeString("values", array("allowed_values" => null, "sql" => "values", "default_value" => "", "is_null_allowed" => true, "depends_on" => array()))); // Display lists - MetaModel::Init_SetZListItems('details', array('label', 'placeholder', 'oql', 'values')); // Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('list', array('label', 'placeholder', 'oql','values')); // Attributes to be displayed for a list + MetaModel::Init_SetZListItems('details', array('label', 'placeholder', 'type', 'oql', 'values')); // Attributes to be displayed for the complete details + MetaModel::Init_SetZListItems('list', array('label', 'placeholder', 'type', 'oql','values')); // Attributes to be displayed for a list // Search criteria - MetaModel::Init_SetZListItems('standard_search', array('label', 'placeholder')); // Criteria of the std search form + MetaModel::Init_SetZListItems('standard_search', array('label', 'placeholder','type')); // Criteria of the std search form MetaModel::Init_SetZListItems('default_search', array('label', 'placeholder')); // Criteria of the advanced search form } /** @@ -75,4 +79,243 @@ class AuditFilterField extends cmdbAbstractObject $oPage->AddUiBlock(AlertUIBlockFactory::MakeForInformation('In OQL query, you can use this placeholders:', '')->AddSubBlock(new Html($sHtml))); } } + + protected function RegisterEventListeners() + { + parent::RegisterEventListeners(); + + // listenerId = CheckUsersUpdate + $this->RegisterCRUDListener('EVENT_DB_CHECK_TO_WRITE', 'CheckPlaceholderName', 1, 'itop-structure'); + $this->RegisterCRUDListener('EVENT_DB_CHECK_TO_WRITE', 'CheckMandatoryFields', 2, 'itop-structure'); + } + + + public function CheckPlaceholderName(Combodo\iTop\Service\Events\EventData $oEventData) + { + $aChanges = $this->ListChanges(); + if (array_key_exists('placeholder', $aChanges)) { + $sPlaceholder = $this->Get('placeholder'); + if (str_starts_with('this->', $sPlaceholder)) { + $this->AddCheckIssue(Dict::S('Class:AuditFilterField/Attribute:placeholder:Error:StartWith','this')); + } + if (str_starts_with('current_user', $sPlaceholder)) { + $this->AddCheckIssue(Dict::S('Class:AuditFilterField/Attribute:placeholder:Error:StartWith','current_user')); + } + if (str_starts_with('current_contact', $sPlaceholder)) { + $this->AddCheckIssue(Dict::S('Class:AuditFilterField/Attribute:placeholder:Error:StartWith','current_contact')); + } + if (in_array($sPlaceholder, ['current_user', 'current_contact']) ) { + $this->AddCheckIssue(Dict::S('Class:AuditFilterField/Attribute:placeholder:Error:ReservedWord', $sPlaceholder)); + } + } + } + public function CheckMandatoryFields(Combodo\iTop\Service\Events\EventData $oEventData) + { + switch ($this->Get('type')) { + case 'select_oql': + if (utils::IsNullOrEmptyString($this->Get('oql'))) { + $this->AddCheckIssue(Dict::S('Class:AuditFilterField/Attribute:oql:Error:Empty')); + } + break; + case 'select_values': + if (utils::IsNullOrEmptyString($this->Get('values'))) { + $this->AddCheckIssue(Dict::S('Class:AuditFilterField/Attribute:values:Error:Empty')); + } + break; + // case 'number': + // case 'date': + // break; + } + } + + public function GetFieldBlock(WebPage $oPage, string $sCurrentValue = ''): UIBlock + { + switch ($this->Get('type')) { + case 'select_oql': + $sFieldName = $this->Get('placeholder'); + $sOql = $this->Get('oql'); + $sLabel = $this->Get('label'); + + $oSearch = DBObjectSearch::FromOQL($sOql); + $oAllowedValues = new DBObjectSet($oSearch); + $oAllowedValues->SetShowObsoleteData(utils::ShowObsoleteData()); + $iMaxComboLength = MetaModel::GetConfig()->Get('max_combo_length'); + + $bIsAutocomplete = $oAllowedValues->CountExceeds($iMaxComboLength); + $sWrapperCssClass = $bIsAutocomplete ? 'field_input_extkey ibo-input-wrapper ibo-input-select-wrapper--with-buttons ibo-input-select-autocomplete-wrapper' : 'ibo-input-select-wrapper'; + $sHTMLValue = "
"; + + // We just need to compare the number of entries with MaxComboLength, so no need to get the real count. + if (!$bIsAutocomplete) { + // Discrete list of values, use a SELECT or RADIO buttons depending on the config + $sHelpText = ''; + $aOptions = []; + $aOptions['value'] = ""; + $aOptions['label'] = Dict::S('UI:SelectOne'); + + $oAllowedValues->Rewind(); + $sClassAllowed = $oAllowedValues->GetClass(); + $bAddingValue = false; + + $aFieldsToLoad = []; + + $aComplementAttributeSpec = MetaModel::GetNameSpec($oAllowedValues->GetClass(), FriendlyNameType::COMPLEMENTARY); + $sFormatAdditionalField = $aComplementAttributeSpec[0]; + $aAdditionalField = $aComplementAttributeSpec[1]; + + if (count($aAdditionalField) > 0) { + $bAddingValue = true; + $aFieldsToLoad[$sClassAllowed] = $aAdditionalField; + } + $sObjectImageAttCode = MetaModel::GetImageAttributeCode($sClassAllowed); + if (!empty($sObjectImageAttCode)) { + $aFieldsToLoad[$sClassAllowed][] = $sObjectImageAttCode; + } + $aFieldsToLoad[$sClassAllowed][] = 'friendlyname'; + $oAllowedValues->OptimizeColumnLoad($aFieldsToLoad); + + $oSelect = SelectUIBlockFactory::MakeForSelect($sFieldName, $sFieldName); + $oSelect->AddCSSClass('ibo-input-field-wrapper'); + + while ($oChoiceItem = $oAllowedValues->Fetch()) { + + $sOptionName = utils::HtmlEntityDecode($oChoiceItem->GetName()); + + if ($bAddingValue) { + $aArguments = []; + foreach ($aAdditionalField as $sAdditionalField) { + array_push($aArguments, $oAllowedValues->Get($sAdditionalField)); + } + $sOptionName .= '
' . utils::HtmlEntities(vsprintf($sFormatAdditionalField, $aArguments)) . '';; + } + if (!empty($sObjectImageAttCode)) { + // Try to retrieve image for contact + /** @var \ormDocument $oImage */ + $oImage = $oAllowedValues->Get($sObjectImageAttCode); + if (!$oImage->IsEmpty()) { + $sPicturepictureUrl = $oImage->GetDisplayURL($sClassAllowed, $oChoiceItem->GetKey(), $sObjectImageAttCode); + $sOptionName .= ' '; + } else { + $sInitials = utils::FormatInitialsForMedallion(utils::ToAcronym($oChoiceItem->Get('friendlyname'))); + $sOptionName .= ' ' . $sInitials . ''; + } + } + $oOption = SelectOptionUIBlockFactory::MakeForSelectOption($oChoiceItem->GetKey(), $sOptionName, ($sCurrentValue == $oChoiceItem->GetKey())); + $oSelect->AddOption($oOption); + } + $sInputType = CmdbAbstractObject::ENUM_INPUT_TYPE_DROPDOWN_DECORATED; + + $sJsonOptions = str_replace("'", "\'", str_replace('\\', '\\\\', json_encode($aOptions))); + $oPage->add_ready_script( + <<GetFilter(); + $oSearch->AddCondition('id', $sCurrentValue); + $oSet = new DBObjectSet($oSearch); + $sClass = $oSet->GetClass(); + if ($oSet->Count() == 0) { + $sCurrentValue = null; + } + + if (is_null($sCurrentValue) || ($sCurrentValue == 0)) // Null values are displayed as '' + { + $sDisplayValue = ''; + } else { + $sDisplayValue = MetaModel::GetObject($sClass, $sCurrentValue)->GetName(); + } + $iMinChars = MetaModel::GetConfig()->Get('min_autocomplete_chars'); //@@@ $this->oAttDef->GetMinAutoCompleteChars(); + + // the input for the auto-complete + $sInputType = CmdbAbstractObject::ENUM_INPUT_TYPE_AUTOCOMPLETE; + $sHTMLValue .= ""; + + // another hidden input to store & pass the object's Id + $sHTMLValue .= "\n"; + + $sMessage = Dict::S('UI:Message:EmptyList:UseSearchForm'); + $oPage->add_ready_script( + <<

$sMessage

"; + oACWidget_{$sFieldName}.AddAutocomplete($iMinChars, ''); + if ($('#ac_dlg_{$sFieldName}').length == 0) + { + $('body').append('
'); + } + EOF + ); + $sHTMLValue .= "
"; + $sHTMLValue .= ""; + $sHTMLValue .= ""; + if (MetaModel::IsHierarchicalClass($sClass) !== false) { + $sHTMLValue .= ""; + $oPage->add_ready_script( + <<
'); + } + JS + ); + } + } + + $sHTMLValue .= ""; + $sHTMLValue .= ""; + + return new Html($sHTMLValue); + break; + + case 'select_values': + $aListValues = explode(',',$this->Get('values')); + $oSelect = SelectUIBlockFactory::MakeForSelect($this->Get('placeholder'), $this->Get('placeholder')); + $oSelect->AddCSSClass('ibo-input-field-wrapper'); + + foreach($aListValues as $sValue) { + $oSelect->AddOption(SelectOptionUIBlockFactory::MakeForSelectOption($sValue, $sValue, ($sCurrentValue == $sValue))); + } + + return $oSelect; + break; + + case 'number': + $oInput = HtmlFactory::MakeRaw(''); + return $oInput; + break; + + case 'date': + + $sFieldName = $this->Get('placeholder'); + $sDateFormatDatePicker = AttributeDate::GetFormat()->ToDatePicker(); + + $oInput = HtmlFactory::MakeRaw(''); + + $oPage->add_ready_script(<< - - cmdbAbstractObject + cmdbAbstractObject application, grant_by_profile + true diff --git a/dictionaries/cs.dictionary.itop.ui.php b/dictionaries/cs.dictionary.itop.ui.php index b4049b236..01d893259 100755 --- a/dictionaries/cs.dictionary.itop.ui.php +++ b/dictionaries/cs.dictionary.itop.ui.php @@ -12,18 +12,30 @@ // Dict::Add('CS CZ', 'Czech', 'Čeština', [ - 'Class:AuditFilterField' => 'Audit Filter Fields~~', - 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', - 'Class:AuditFilterField/Attribute:label' => 'Label~~', - 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', - 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', - 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', + 'Class:AuditFilterField' => 'Audit Filter Fields~~', + 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', + 'Class:AuditFilterField/Attribute:label' => 'Label~~', + 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', + 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', + 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', 'Class:AuditFilterField/Attribute:placeholder:Error:StartWithThis' => 'The placeholder can not start with the reserved word "%1$s"~~', 'Class:AuditFilterField/Attribute:placeholder:Error:ReservedWord' => 'The placeholder can not be the reserved word "%1$s"~~', - 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', - 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', - 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', - 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:type' =>'Field type~~', + 'Class:AuditFilterField/Attribute:type+' =>'~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql' => ' Select defined by OQL~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select list defined by OQL.~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values' => 'Select defined by values~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select value list defined here.~~', + 'Class:AuditFilterField/Attribute:type/Value:number' => 'Number~~', + 'Class:AuditFilterField/Attribute:type/Value:number+' => 'In Audit rules and Audit categories you can use number Filter Fields.~~', + 'Class:AuditFilterField/Attribute:type/Value:date' => 'Date~~', + 'Class:AuditFilterField/Attribute:type/Value:date+' => 'In Audit rules and Audit categories you can use date Filter Fields.~~', + 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', + 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', + 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:oql/Error:Empty' => 'If selected type is "Select defined by OQL", Oql field is mandatory~~', + 'Class:AuditFilterField/Attribute:values/Error:Empty' => 'If selected type is "Select defined by values", Values field is mandatory~~', ]); /** * diff --git a/dictionaries/da.dictionary.itop.ui.php b/dictionaries/da.dictionary.itop.ui.php index 5a5ebc85f..42c591018 100644 --- a/dictionaries/da.dictionary.itop.ui.php +++ b/dictionaries/da.dictionary.itop.ui.php @@ -12,18 +12,30 @@ // Dict::Add('DA DA', 'Danish', 'Dansk', [ - 'Class:AuditFilterField' => 'Audit Filter Fields~~', - 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', - 'Class:AuditFilterField/Attribute:label' => 'Label~~', - 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', - 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', - 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', + 'Class:AuditFilterField' => 'Audit Filter Fields~~', + 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', + 'Class:AuditFilterField/Attribute:label' => 'Label~~', + 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', + 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', + 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', 'Class:AuditFilterField/Attribute:placeholder:Error:StartWithThis' => 'The placeholder can not start with the reserved word "%1$s"~~', 'Class:AuditFilterField/Attribute:placeholder:Error:ReservedWord' => 'The placeholder can not be the reserved word "%1$s"~~', - 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', - 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', - 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', - 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:type' =>'Field type~~', + 'Class:AuditFilterField/Attribute:type+' =>'~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql' => ' Select defined by OQL~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select list defined by OQL.~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values' => ' Select defined by values~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select value list defined here.~~', + 'Class:AuditFilterField/Attribute:type/Value:number' => ' Number~~', + 'Class:AuditFilterField/Attribute:type/Value:number+' => 'In Audit rules and Audit categories you can use number Filter Fields.~~', + 'Class:AuditFilterField/Attribute:type/Value:date' => ' Date~~', + 'Class:AuditFilterField/Attribute:type/Value:date+' => 'In Audit rules and Audit categories you can use date Filter Fields.~~', + 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', + 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', + 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:oql/Error:Empty' => 'If selected type is "Select defined by OQL", Oql field is mandatory~~', + 'Class:AuditFilterField/Attribute:values/Error:Empty' => 'If selected type is "Select defined by values", Values field is mandatory~~', ]); /** diff --git a/dictionaries/de.dictionary.itop.ui.php b/dictionaries/de.dictionary.itop.ui.php index 4b71356da..460ae69bf 100644 --- a/dictionaries/de.dictionary.itop.ui.php +++ b/dictionaries/de.dictionary.itop.ui.php @@ -12,18 +12,30 @@ // Dict::Add('DE DE', 'German', 'Deutsch', [ - 'Class:AuditFilterField' => 'Audit Filter Fields~~', - 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', - 'Class:AuditFilterField/Attribute:label' => 'Label~~', - 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', - 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', - 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', + 'Class:AuditFilterField' => 'Audit Filter Fields~~', + 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', + 'Class:AuditFilterField/Attribute:label' => 'Label~~', + 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', + 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', + 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', 'Class:AuditFilterField/Attribute:placeholder:Error:StartWithThis' => 'The placeholder can not start with the reserved word "%1$s"~~', 'Class:AuditFilterField/Attribute:placeholder:Error:ReservedWord' => 'The placeholder can not be the reserved word "%1$s"~~', - 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', - 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', - 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', - 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:type' =>'Field type~~', + 'Class:AuditFilterField/Attribute:type+' =>'~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql' => ' Select defined by OQL~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select list defined by OQL.~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values' => ' Select defined by values~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select value list defined here.~~', + 'Class:AuditFilterField/Attribute:type/Value:number' => ' Number~~', + 'Class:AuditFilterField/Attribute:type/Value:number+' => 'In Audit rules and Audit categories you can use number Filter Fields.~~', + 'Class:AuditFilterField/Attribute:type/Value:date' => ' Date~~', + 'Class:AuditFilterField/Attribute:type/Value:date+' => 'In Audit rules and Audit categories you can use date Filter Fields.~~', + 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', + 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', + 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:oql/Error:Empty' => 'If selected type is "Select defined by OQL", Oql field is mandatory~~', + 'Class:AuditFilterField/Attribute:values/Error:Empty' => 'If selected type is "Select defined by values", Values field is mandatory~~', ]); /** diff --git a/dictionaries/en.dictionary.itop.ui.php b/dictionaries/en.dictionary.itop.ui.php index 2cda11285..0cd9bad87 100644 --- a/dictionaries/en.dictionary.itop.ui.php +++ b/dictionaries/en.dictionary.itop.ui.php @@ -20,18 +20,31 @@ // Dict::Add('EN US', 'English', 'English', array( - 'Class:AuditFilterField' => 'Audit Filter Fields', - 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.', - 'Class:AuditFilterField/Attribute:label' => 'Label', - 'Class:AuditFilterField/Attribute:label+' => 'Label for select field', - 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder', - 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests', + 'Class:AuditFilterField' => 'Audit Filter Fields', + 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.', + 'Class:AuditFilterField/Attribute:label' => 'Label', + 'Class:AuditFilterField/Attribute:label+' => 'Label for select field', + 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder', + 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests', 'Class:AuditFilterField/Attribute:placeholder:Error:StartWithThis' => 'The placeholder can not start with the reserved word "%1$s"', 'Class:AuditFilterField/Attribute:placeholder:Error:ReservedWord' => 'The placeholder can not be the reserved word "%1$s"', - 'Class:AuditFilterField/Attribute:oql' => 'Query for select', - 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories', - 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values', - 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories', + 'Class:AuditFilterField/Attribute:type' =>'Field type', + 'Class:AuditFilterField/Attribute:type+' =>'', + 'Class:AuditFilterField/Attribute:type/Value:select_oql' => 'Select defined by OQL', + 'Class:AuditFilterField/Attribute:type/Value:select_oql+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select list defined by OQL.', + 'Class:AuditFilterField/Attribute:type/Value:select_values' => 'Select defined by values', + 'Class:AuditFilterField/Attribute:type/Value:select_values+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select value list defined here.', + 'Class:AuditFilterField/Attribute:type/Value:number' => 'Number', + 'Class:AuditFilterField/Attribute:type/Value:number+' => 'In Audit rules and Audit categories you can use number Filter Fields.', + 'Class:AuditFilterField/Attribute:type/Value:date' => 'Date', + 'Class:AuditFilterField/Attribute:type/Value:date+' => 'In Audit rules and Audit categories you can use date Filter Fields.', + 'Class:AuditFilterField/Attribute:oql' => 'Query for select', + 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories', + 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values', + 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories', + 'Class:AuditFilterField/Attribute:oql/Error:Empty' => 'If selected type is "Select defined by OQL", Oql field is mandatory', + 'Class:AuditFilterField/Attribute:values/Error:Empty' => 'If selected type is "Select defined by values", Values field is mandatory', + 'Class:AuditDomain/Select:DependentFields' => 'Please select necessary fields:
%1%s', )); // diff --git a/dictionaries/en_gb.dictionary.itop.ui.php b/dictionaries/en_gb.dictionary.itop.ui.php index 59bba9d52..3e17dc519 100644 --- a/dictionaries/en_gb.dictionary.itop.ui.php +++ b/dictionaries/en_gb.dictionary.itop.ui.php @@ -20,18 +20,30 @@ // Dict::Add('EN GB', 'British English', 'British English', [ - 'Class:AuditFilterField' => 'Audit Filter Fields~~', - 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', - 'Class:AuditFilterField/Attribute:label' => 'Label~~', - 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', - 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', - 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', + 'Class:AuditFilterField' => 'Audit Filter Fields~~', + 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', + 'Class:AuditFilterField/Attribute:label' => 'Label~~', + 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', + 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', + 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', 'Class:AuditFilterField/Attribute:placeholder:Error:StartWithThis' => 'The placeholder can not start with the reserved word "%1$s"~~', 'Class:AuditFilterField/Attribute:placeholder:Error:ReservedWord' => 'The placeholder can not be the reserved word "%1$s"~~', - 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', - 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', - 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', - 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:type' =>'Field type~~', + 'Class:AuditFilterField/Attribute:type+' =>'~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql' => ' Select defined by OQL~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select list defined by OQL.~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values' => 'Select defined by values~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select value list defined here.~~', + 'Class:AuditFilterField/Attribute:type/Value:number' => 'Number~~', + 'Class:AuditFilterField/Attribute:type/Value:number+' => 'In Audit rules and Audit categories you can use number Filter Fields.~~', + 'Class:AuditFilterField/Attribute:type/Value:date' => 'Date~~', + 'Class:AuditFilterField/Attribute:type/Value:date+' => 'In Audit rules and Audit categories you can use date Filter Fields.~~', + 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', + 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', + 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:oql/Error:Empty' => 'If selected type is "Select defined by OQL", Oql field is mandatory~~', + 'Class:AuditFilterField/Attribute:values/Error:Empty' => 'If selected type is "Select defined by values", Values field is mandatory~~', ]); diff --git a/dictionaries/es_cr.dictionary.itop.ui.php b/dictionaries/es_cr.dictionary.itop.ui.php index 47c030c6f..c7a4846a0 100644 --- a/dictionaries/es_cr.dictionary.itop.ui.php +++ b/dictionaries/es_cr.dictionary.itop.ui.php @@ -11,20 +11,32 @@ // Class: AuditFilterField // -Dict::Add('EN US', 'English', 'English', array( - 'Class:AuditFilterField' => 'Audit Filter Fields~~', - 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', - 'Class:AuditFilterField/Attribute:label' => 'Label~~', - 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', - 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', - 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', +Dict::Add('EN US', 'English', 'English', [ + 'Class:AuditFilterField' => 'Audit Filter Fields~~', + 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', + 'Class:AuditFilterField/Attribute:label' => 'Label~~', + 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', + 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', + 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', 'Class:AuditFilterField/Attribute:placeholder:Error:StartWithThis' => 'The placeholder can not start with the reserved word "%1$s"~~', 'Class:AuditFilterField/Attribute:placeholder:Error:ReservedWord' => 'The placeholder can not be the reserved word "%1$s"~~', - 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', - 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', - 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', - 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', -)); + 'Class:AuditFilterField/Attribute:type' =>'Field type~~', + 'Class:AuditFilterField/Attribute:type+' =>'~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql' => ' Select defined by OQL~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select list defined by OQL.~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values' => 'Audit Filter Fields - Select defined by values~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select value list defined here.~~', + 'Class:AuditFilterField/Attribute:type/Value:number' => 'Audit Filter Fields - Number~~', + 'Class:AuditFilterField/Attribute:type/Value:number+' => 'In Audit rules and Audit categories you can use number Filter Fields.~~', + 'Class:AuditFilterField/Attribute:type/Value:date' => 'Audit Filter Fields - Date~~', + 'Class:AuditFilterField/Attribute:type/Value:date+' => 'In Audit rules and Audit categories you can use date Filter Fields.~~', + 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', + 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', + 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:oql/Error:Empty' => 'If selected type is "Select defined by OQL", Oql field is mandatory~~', + 'Class:AuditFilterField/Attribute:values/Error:Empty' => 'If selected type is "Select defined by values", Values field is mandatory~~', +]); Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ diff --git a/dictionaries/fr.dictionary.itop.ui.php b/dictionaries/fr.dictionary.itop.ui.php index 029e6052f..d9dd1819f 100644 --- a/dictionaries/fr.dictionary.itop.ui.php +++ b/dictionaries/fr.dictionary.itop.ui.php @@ -11,18 +11,31 @@ // Dict::Add('FR FR', 'French', 'Français', [ - 'Class:AuditFilterField' => 'Filtre pour les audits', - 'Class:AuditFilterField+' => 'Dans les Périmètres et les règles d\'audit, vous pouvez utiliser les filtres définis ici pour limiter les objets audités', - 'Class:AuditFilterField/Attribute:label' => 'Libellé', - 'Class:AuditFilterField/Attribute:label+' => 'Libellé affiché dans l\'écran d\audit', - 'Class:AuditFilterField/Attribute:placeholder' => 'Nom de la variable', - 'Class:AuditFilterField/Attribute:placeholder+' => 'Nom de la variable utilisé dans les requêtes des Périmètres et des règles d\'audit', + 'Class:AuditFilterField' => 'Filtre pour les audits', + 'Class:AuditFilterField+' => 'Dans les Périmètres et les règles d\'audit, vous pouvez utiliser les filtres définis ici pour limiter les objets audités', + 'Class:AuditFilterField/Attribute:label' => 'Libellé', + 'Class:AuditFilterField/Attribute:label+' => 'Libellé affiché dans l\'écran d\audit', + 'Class:AuditFilterField/Attribute:placeholder' => 'Nom de la variable', + 'Class:AuditFilterField/Attribute:placeholder+' => 'Nom de la variable utilisé dans les requêtes des Périmètres et des règles d\'audit', 'Class:AuditFilterField/Attribute:placeholder:Error:StartWithThis' => 'Le nom de la vaiable ne peut pas commencer par le mot réservé "%1$s"', 'Class:AuditFilterField/Attribute:placeholder:Error:ReservedWord' => 'Le nom de la vaiable ne peut être le mot réservé "%1$s"', - 'Class:AuditFilterField/Attribute:oql' => 'Requête', - 'Class:AuditFilterField/Attribute:oql+' => 'Requête de définition de l\'ensemble des objets pouvant être selectionnés pour les règles et les catégories d\'audit', - 'Class:AuditFilterField/Attribute:values' => ' Liste des valeurs possibles', - 'Class:AuditFilterField/Attribute:values+' => ' Liste des valeurs pouvant être selectionnés pour les règles et les catégories d\'audit', + 'Class:AuditFilterField/Attribute:type' =>'Type de champ', + 'Class:AuditFilterField/Attribute:type+' =>'', + 'Class:AuditFilterField/Attribute:type/Value:select_oql' => 'Select définit par OQL', + 'Class:AuditFilterField/Attribute:type/Value:select_oql+' => '', + 'Class:AuditFilterField/Attribute:type/Value:select_values' => 'Select définit avec une liste de valeurs', + 'Class:AuditFilterField/Attribute:type/Value:select_values+' => '', + 'Class:AuditFilterField/Attribute:type/Value:number' => 'Nombre', + 'Class:AuditFilterField/Attribute:type/Value:number+' => '', + 'Class:AuditFilterField/Attribute:type/Value:date' => 'Date', + 'Class:AuditFilterField/Attribute:type/Value:date+' => '', + 'Class:AuditFilterFieldSelectOQL/Attribute:oql' => 'Requête', + 'Class:AuditFilterFieldSelectOQL/Attribute:oql+' => 'Requête de définition de l\'ensemble des objets pouvant être selectionnés pour les règles et les catégories d\'audit', + 'Class:AuditFilterFieldSelectValues/Attribute:values' => ' Liste des valeurs possibles', + 'Class:AuditFilterFieldSelectValues/Attribute:values+' => ' Liste des valeurs pouvant être selectionnés pour les règles et les catégories d\'audit', + 'Class:AuditFilterField/Attribute:oql/Error:Empty' => 'Si le type sélectionné est "Select définit par OQL", le champ "Oql" est obligatoire', + 'Class:AuditFilterField/Attribute:values/Error:Empty' => 'Si le type sélectionné est "Select définit avec une liste de valeurs", le champ "Liste des valeurs" est obligatoire', + 'Class:AuditDomain/Select:DependentFields' => 'Veuillez sélectionner tous les champs nécessaires :
%1%s', ]); diff --git a/dictionaries/hu.dictionary.itop.ui.php b/dictionaries/hu.dictionary.itop.ui.php index e06a73b2f..f6e03f362 100755 --- a/dictionaries/hu.dictionary.itop.ui.php +++ b/dictionaries/hu.dictionary.itop.ui.php @@ -11,18 +11,30 @@ // Dict::Add('HU HU', 'Hungarian', 'Magyar', [ - 'Class:AuditFilterField' => 'Audit Filter Fields~~', - 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', - 'Class:AuditFilterField/Attribute:label' => 'Label~~', - 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', - 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', - 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', + 'Class:AuditFilterField' => 'Audit Filter Fields~~', + 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', + 'Class:AuditFilterField/Attribute:label' => 'Label~~', + 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', + 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', + 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', 'Class:AuditFilterField/Attribute:placeholder:Error:StartWithThis' => 'The placeholder can not start with the reserved word "%1$s"~~', 'Class:AuditFilterField/Attribute:placeholder:Error:ReservedWord' => 'The placeholder can not be the reserved word "%1$s"~~', - 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', - 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', - 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', - 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:type' =>'Field type~~', + 'Class:AuditFilterField/Attribute:type+' =>'~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql' => ' Select defined by OQL~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select list defined by OQL.~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values' => 'Audit Filter Fields - Select defined by values~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select value list defined here.~~', + 'Class:AuditFilterField/Attribute:type/Value:number' => 'Audit Filter Fields - Number~~', + 'Class:AuditFilterField/Attribute:type/Value:number+' => 'In Audit rules and Audit categories you can use number Filter Fields.~~', + 'Class:AuditFilterField/Attribute:type/Value:date' => 'Audit Filter Fields - Date~~', + 'Class:AuditFilterField/Attribute:type/Value:date+' => 'In Audit rules and Audit categories you can use date Filter Fields.~~', + 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', + 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', + 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:oql/Error:Empty' => 'If selected type is "Select defined by OQL", Oql field is mandatory~~', + 'Class:AuditFilterField/Attribute:values/Error:Empty' => 'If selected type is "Select defined by values", Values field is mandatory~~', ]); diff --git a/dictionaries/it.dictionary.itop.ui.php b/dictionaries/it.dictionary.itop.ui.php index 3b57829c1..b6ae15792 100644 --- a/dictionaries/it.dictionary.itop.ui.php +++ b/dictionaries/it.dictionary.itop.ui.php @@ -11,18 +11,30 @@ // Dict::Add('IT IT', 'Italian', 'Italiano', [ - 'Class:AuditFilterField' => 'Audit Filter Fields~~', - 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', - 'Class:AuditFilterField/Attribute:label' => 'Label~~', - 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', - 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', - 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', + 'Class:AuditFilterField' => 'Audit Filter Fields~~', + 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', + 'Class:AuditFilterField/Attribute:label' => 'Label~~', + 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', + 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', + 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', 'Class:AuditFilterField/Attribute:placeholder:Error:StartWithThis' => 'The placeholder can not start with the reserved word "%1$s"~~', 'Class:AuditFilterField/Attribute:placeholder:Error:ReservedWord' => 'The placeholder can not be the reserved word "%1$s"~~', - 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', - 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', - 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', - 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:type' =>'Field type~~', + 'Class:AuditFilterField/Attribute:type+' =>'~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql' => ' Select defined by OQL~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select list defined by OQL.~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values' => ' Select defined by values~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select value list defined here.~~', + 'Class:AuditFilterField/Attribute:type/Value:number' => ' Number~~', + 'Class:AuditFilterField/Attribute:type/Value:number+' => 'In Audit rules and Audit categories you can use number Filter Fields.~~', + 'Class:AuditFilterField/Attribute:type/Value:date' => ' Date~~', + 'Class:AuditFilterField/Attribute:type/Value:date+' => 'In Audit rules and Audit categories you can use date Filter Fields.~~', + 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', + 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', + 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:oql/Error:Empty' => 'If selected type is "Select defined by OQL", Oql field is mandatory~~', + 'Class:AuditFilterField/Attribute:values/Error:Empty' => 'If selected type is "Select defined by values", Values field is mandatory~~', ]); diff --git a/dictionaries/ja.dictionary.itop.ui.php b/dictionaries/ja.dictionary.itop.ui.php index f692ecb2d..2ad97fd85 100644 --- a/dictionaries/ja.dictionary.itop.ui.php +++ b/dictionaries/ja.dictionary.itop.ui.php @@ -15,18 +15,30 @@ // Dict::Add('JA JP', 'Japanese', '日本語', [ - 'Class:AuditFilterField' => 'Audit Filter Fields~~', - 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', - 'Class:AuditFilterField/Attribute:label' => 'Label~~', - 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', - 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', - 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', + 'Class:AuditFilterField' => 'Audit Filter Fields~~', + 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', + 'Class:AuditFilterField/Attribute:label' => 'Label~~', + 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', + 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', + 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', 'Class:AuditFilterField/Attribute:placeholder:Error:StartWithThis' => 'The placeholder can not start with the reserved word "%1$s"~~', 'Class:AuditFilterField/Attribute:placeholder:Error:ReservedWord' => 'The placeholder can not be the reserved word "%1$s"~~', - 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', - 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', - 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', - 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:type' =>'Field type~~', + 'Class:AuditFilterField/Attribute:type+' =>'~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql' => ' Select defined by OQL~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select list defined by OQL.~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values' => ' Select defined by values~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select value list defined here.~~', + 'Class:AuditFilterField/Attribute:type/Value:number' => ' Number~~', + 'Class:AuditFilterField/Attribute:type/Value:number+' => 'In Audit rules and Audit categories you can use number Filter Fields.~~', + 'Class:AuditFilterField/Attribute:type/Value:date' => ' Date~~', + 'Class:AuditFilterField/Attribute:type/Value:date+' => 'In Audit rules and Audit categories you can use date Filter Fields.~~', + 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', + 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', + 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:oql/Error:Empty' => 'If selected type is "Select defined by OQL", Oql field is mandatory~~', + 'Class:AuditFilterField/Attribute:values/Error:Empty' => 'If selected type is "Select defined by values", Values field is mandatory~~', ]); diff --git a/dictionaries/nl.dictionary.itop.ui.php b/dictionaries/nl.dictionary.itop.ui.php index e91336356..6c34d017e 100644 --- a/dictionaries/nl.dictionary.itop.ui.php +++ b/dictionaries/nl.dictionary.itop.ui.php @@ -11,18 +11,30 @@ // Dict::Add('NL NL', 'Dutch', 'Nederlands', [ - 'Class:AuditFilterField' => 'Audit Filter Fields~~', - 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', - 'Class:AuditFilterField/Attribute:label' => 'Label~~', - 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', - 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', - 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', + 'Class:AuditFilterField' => 'Audit Filter Fields~~', + 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', + 'Class:AuditFilterField/Attribute:label' => 'Label~~', + 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', + 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', + 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', 'Class:AuditFilterField/Attribute:placeholder:Error:StartWithThis' => 'The placeholder can not start with the reserved word "%1$s"~~', 'Class:AuditFilterField/Attribute:placeholder:Error:ReservedWord' => 'The placeholder can not be the reserved word "%1$s"~~', - 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', - 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', - 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', - 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:type' =>'Field type~~', + 'Class:AuditFilterField/Attribute:type+' =>'~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql' => ' Select defined by OQL~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select list defined by OQL.~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values' => ' Select defined by values~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select value list defined here.~~', + 'Class:AuditFilterField/Attribute:type/Value:number' => ' Number~~', + 'Class:AuditFilterField/Attribute:type/Value:number+' => 'In Audit rules and Audit categories you can use number Filter Fields.~~', + 'Class:AuditFilterField/Attribute:type/Value:date' => ' Date~~', + 'Class:AuditFilterField/Attribute:type/Value:date+' => 'In Audit rules and Audit categories you can use date Filter Fields.~~', + 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', + 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', + 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:oql/Error:Empty' => 'If selected type is "Select defined by OQL", Oql field is mandatory~~', + 'Class:AuditFilterField/Attribute:values/Error:Empty' => 'If selected type is "Select defined by values", Values field is mandatory~~', ]); diff --git a/dictionaries/pl.dictionary.itop.ui.php b/dictionaries/pl.dictionary.itop.ui.php index 052eb184c..ccba9c142 100644 --- a/dictionaries/pl.dictionary.itop.ui.php +++ b/dictionaries/pl.dictionary.itop.ui.php @@ -11,18 +11,30 @@ // Dict::Add('PL PL', 'Polish', 'Polski', [ - 'Class:AuditFilterField' => 'Audit Filter Fields~~', - 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', - 'Class:AuditFilterField/Attribute:label' => 'Label~~', - 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', - 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', - 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', + 'Class:AuditFilterField' => 'Audit Filter Fields~~', + 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', + 'Class:AuditFilterField/Attribute:label' => 'Label~~', + 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', + 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', + 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', 'Class:AuditFilterField/Attribute:placeholder:Error:StartWithThis' => 'The placeholder can not start with the reserved word "%1$s"~~', 'Class:AuditFilterField/Attribute:placeholder:Error:ReservedWord' => 'The placeholder can not be the reserved word "%1$s"~~', - 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', - 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', - 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', - 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:type' =>'Field type~~', + 'Class:AuditFilterField/Attribute:type+' =>'~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql' => ' Select defined by OQL~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select list defined by OQL.~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values' => ' Select defined by values~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select value list defined here.~~', + 'Class:AuditFilterField/Attribute:type/Value:number' => ' Number~~', + 'Class:AuditFilterField/Attribute:type/Value:number+' => 'In Audit rules and Audit categories you can use number Filter Fields.~~', + 'Class:AuditFilterField/Attribute:type/Value:date' => ' Date~~', + 'Class:AuditFilterField/Attribute:type/Value:date+' => 'In Audit rules and Audit categories you can use date Filter Fields.~~', + 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', + 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', + 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:oql/Error:Empty' => 'If selected type is "Select defined by OQL", Oql field is mandatory~~', + 'Class:AuditFilterField/Attribute:values/Error:Empty' => 'If selected type is "Select defined by values", Values field is mandatory~~', ]); diff --git a/dictionaries/pt_br.dictionary.itop.ui.php b/dictionaries/pt_br.dictionary.itop.ui.php index 4cbc01746..146a58203 100644 --- a/dictionaries/pt_br.dictionary.itop.ui.php +++ b/dictionaries/pt_br.dictionary.itop.ui.php @@ -11,18 +11,30 @@ // Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ - 'Class:AuditFilterField' => 'Audit Filter Fields~~', - 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', - 'Class:AuditFilterField/Attribute:label' => 'Label~~', - 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', - 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', - 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', + 'Class:AuditFilterField' => 'Audit Filter Fields~~', + 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', + 'Class:AuditFilterField/Attribute:label' => 'Label~~', + 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', + 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', + 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', 'Class:AuditFilterField/Attribute:placeholder:Error:StartWithThis' => 'The placeholder can not start with the reserved word "%1$s"~~', 'Class:AuditFilterField/Attribute:placeholder:Error:ReservedWord' => 'The placeholder can not be the reserved word "%1$s"~~', - 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', - 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', - 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', - 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:type' =>'Field type~~', + 'Class:AuditFilterField/Attribute:type+' =>'~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql' => ' Select defined by OQL~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select list defined by OQL.~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values' => ' Select defined by values~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select value list defined here.~~', + 'Class:AuditFilterField/Attribute:type/Value:number' => ' Number~~', + 'Class:AuditFilterField/Attribute:type/Value:number+' => 'In Audit rules and Audit categories you can use number Filter Fields.~~', + 'Class:AuditFilterField/Attribute:type/Value:date' => ' Date~~', + 'Class:AuditFilterField/Attribute:type/Value:date+' => 'In Audit rules and Audit categories you can use date Filter Fields.~~', + 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', + 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', + 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:oql/Error:Empty' => 'If selected type is "Select defined by OQL", Oql field is mandatory~~', + 'Class:AuditFilterField/Attribute:values/Error:Empty' => 'If selected type is "Select defined by values", Values field is mandatory~~', ]); diff --git a/dictionaries/ru.dictionary.itop.ui.php b/dictionaries/ru.dictionary.itop.ui.php index e7e54336a..a6aa82172 100644 --- a/dictionaries/ru.dictionary.itop.ui.php +++ b/dictionaries/ru.dictionary.itop.ui.php @@ -11,18 +11,30 @@ // Dict::Add('RU RU', 'Russian', 'Русский', [ - 'Class:AuditFilterField' => 'Audit Filter Fields~~', - 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', - 'Class:AuditFilterField/Attribute:label' => 'Label~~', - 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', - 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', - 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', + 'Class:AuditFilterField' => 'Audit Filter Fields~~', + 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', + 'Class:AuditFilterField/Attribute:label' => 'Label~~', + 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', + 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', + 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', 'Class:AuditFilterField/Attribute:placeholder:Error:StartWithThis' => 'The placeholder can not start with the reserved word "%1$s"~~', 'Class:AuditFilterField/Attribute:placeholder:Error:ReservedWord' => 'The placeholder can not be the reserved word "%1$s"~~', - 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', - 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', - 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', - 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:type' =>'Field type~~', + 'Class:AuditFilterField/Attribute:type+' =>'~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql' => ' Select defined by OQL~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select list defined by OQL.~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values' => ' Select defined by values~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select value list defined here.~~', + 'Class:AuditFilterField/Attribute:type/Value:number' => ' Number~~', + 'Class:AuditFilterField/Attribute:type/Value:number+' => 'In Audit rules and Audit categories you can use number Filter Fields.~~', + 'Class:AuditFilterField/Attribute:type/Value:date' => ' Date~~', + 'Class:AuditFilterField/Attribute:type/Value:date+' => 'In Audit rules and Audit categories you can use date Filter Fields.~~', + 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', + 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', + 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:oql/Error:Empty' => 'If selected type is "Select defined by OQL", Oql field is mandatory~~', + 'Class:AuditFilterField/Attribute:values/Error:Empty' => 'If selected type is "Select defined by values", Values field is mandatory~~', ]); diff --git a/dictionaries/sk.dictionary.itop.ui.php b/dictionaries/sk.dictionary.itop.ui.php index a07712d9f..5daf7271f 100644 --- a/dictionaries/sk.dictionary.itop.ui.php +++ b/dictionaries/sk.dictionary.itop.ui.php @@ -11,18 +11,30 @@ // Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ - 'Class:AuditFilterField' => 'Audit Filter Fields~~', - 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', - 'Class:AuditFilterField/Attribute:label' => 'Label~~', - 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', - 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', - 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', + 'Class:AuditFilterField' => 'Audit Filter Fields~~', + 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', + 'Class:AuditFilterField/Attribute:label' => 'Label~~', + 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', + 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', + 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', 'Class:AuditFilterField/Attribute:placeholder:Error:StartWithThis' => 'The placeholder can not start with the reserved word "%1$s"~~', 'Class:AuditFilterField/Attribute:placeholder:Error:ReservedWord' => 'The placeholder can not be the reserved word "%1$s"~~', - 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', - 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', - 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', - 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:type' =>'Field type~~', + 'Class:AuditFilterField/Attribute:type+' =>'~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql' => ' Select defined by OQL~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select list defined by OQL.~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values' => ' Select defined by values~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select value list defined here.~~', + 'Class:AuditFilterField/Attribute:type/Value:number' => ' Number~~', + 'Class:AuditFilterField/Attribute:type/Value:number+' => 'In Audit rules and Audit categories you can use number Filter Fields.~~', + 'Class:AuditFilterField/Attribute:type/Value:date' => ' Date~~', + 'Class:AuditFilterField/Attribute:type/Value:date+' => 'In Audit rules and Audit categories you can use date Filter Fields.~~', + 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', + 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', + 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:oql/Error:Empty' => 'If selected type is "Select defined by OQL", Oql field is mandatory~~', + 'Class:AuditFilterField/Attribute:values/Error:Empty' => 'If selected type is "Select defined by values", Values field is mandatory~~', ]); diff --git a/dictionaries/tr.dictionary.itop.ui.php b/dictionaries/tr.dictionary.itop.ui.php index 4837774e2..8f02b0ea0 100644 --- a/dictionaries/tr.dictionary.itop.ui.php +++ b/dictionaries/tr.dictionary.itop.ui.php @@ -11,18 +11,30 @@ // Dict::Add('TR TR', 'Turkish', 'Türkçe', [ - 'Class:AuditFilterField' => 'Audit Filter Fields~~', - 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', - 'Class:AuditFilterField/Attribute:label' => 'Label~~', - 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', - 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', - 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', + 'Class:AuditFilterField' => 'Audit Filter Fields~~', + 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', + 'Class:AuditFilterField/Attribute:label' => 'Label~~', + 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', + 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', + 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', 'Class:AuditFilterField/Attribute:placeholder:Error:StartWithThis' => 'The placeholder can not start with the reserved word "%1$s"~~', 'Class:AuditFilterField/Attribute:placeholder:Error:ReservedWord' => 'The placeholder can not be the reserved word "%1$s"~~', - 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', - 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', - 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', - 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:type' =>'Field type~~', + 'Class:AuditFilterField/Attribute:type+' =>'~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql' => ' Select defined by OQL~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select list defined by OQL.~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values' => ' Select defined by values~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select value list defined here.~~', + 'Class:AuditFilterField/Attribute:type/Value:number' => ' Number~~', + 'Class:AuditFilterField/Attribute:type/Value:number+' => 'In Audit rules and Audit categories you can use number Filter Fields.~~', + 'Class:AuditFilterField/Attribute:type/Value:date' => ' Date~~', + 'Class:AuditFilterField/Attribute:type/Value:date+' => 'In Audit rules and Audit categories you can use date Filter Fields.~~', + 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', + 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', + 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:oql/Error:Empty' => 'If selected type is "Select defined by OQL", Oql field is mandatory~~', + 'Class:AuditFilterField/Attribute:values/Error:Empty' => 'If selected type is "Select defined by values", Values field is mandatory~~', ]); diff --git a/dictionaries/zh_cn.dictionary.itop.ui.php b/dictionaries/zh_cn.dictionary.itop.ui.php index 25b541870..a2e8e68b7 100644 --- a/dictionaries/zh_cn.dictionary.itop.ui.php +++ b/dictionaries/zh_cn.dictionary.itop.ui.php @@ -11,18 +11,30 @@ // Dict::Add('ZH CN', 'Chinese', '简体中文', [ - 'Class:AuditFilterField' => 'Audit Filter Fields~~', - 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', - 'Class:AuditFilterField/Attribute:label' => 'Label~~', - 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', - 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', - 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', + 'Class:AuditFilterField' => 'Audit Filter Fields~~', + 'Class:AuditFilterField+' => 'In Audit rules and Audit categories you can use Filter Fields defined here.~~', + 'Class:AuditFilterField/Attribute:label' => 'Label~~', + 'Class:AuditFilterField/Attribute:label+' => 'Label for select field~~', + 'Class:AuditFilterField/Attribute:placeholder' => 'Placeholder~~', + 'Class:AuditFilterField/Attribute:placeholder+' => 'The field can be used in Audit rules and Audit categories requests~~', 'Class:AuditFilterField/Attribute:placeholder:Error:StartWithThis' => 'The placeholder can not start with the reserved word "%1$s"~~', 'Class:AuditFilterField/Attribute:placeholder:Error:ReservedWord' => 'The placeholder can not be the reserved word "%1$s"~~', - 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', - 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', - 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', - 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:type' =>'Field type~~', + 'Class:AuditFilterField/Attribute:type+' =>'~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql' => ' Select defined by OQL~~', + 'Class:AuditFilterField/Attribute:type/Value:select_oql+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select list defined by OQL.~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values' => ' Select defined by values~~', + 'Class:AuditFilterField/Attribute:type/Value:select_values+' => 'In Audit rules and Audit categories you can use Filter Fields value in a select value list defined here.~~', + 'Class:AuditFilterField/Attribute:type/Value:number' => ' Number~~', + 'Class:AuditFilterField/Attribute:type/Value:number+' => 'In Audit rules and Audit categories you can use number Filter Fields.~~', + 'Class:AuditFilterField/Attribute:type/Value:date' => ' Date~~', + 'Class:AuditFilterField/Attribute:type/Value:date+' => 'In Audit rules and Audit categories you can use date Filter Fields.~~', + 'Class:AuditFilterField/Attribute:oql' => 'Query for select~~', + 'Class:AuditFilterField/Attribute:oql+' => 'OQL query defining the set of objects to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:values' => 'List of avalaible values~~', + 'Class:AuditFilterField/Attribute:values+' => ' Defining the list of values to be selected in audit rules and audit categories~~', + 'Class:AuditFilterField/Attribute:oql/Error:Empty' => 'If selected type is "Select defined by OQL", Oql field is mandatory~~', + 'Class:AuditFilterField/Attribute:values/Error:Empty' => 'If selected type is "Select defined by values", Values field is mandatory~~', ]); diff --git a/pages/audit.php b/pages/audit.php index cfb9b94ff..62ee3ca14 100644 --- a/pages/audit.php +++ b/pages/audit.php @@ -11,8 +11,6 @@ use Combodo\iTop\Application\UI\Base\Component\Dashlet\DashletFactory; use Combodo\iTop\Application\UI\Base\Component\DataTable\DataTableUIBlockFactory; use Combodo\iTop\Application\UI\Base\Component\Field\FieldUIBlockFactory; use Combodo\iTop\Application\UI\Base\Component\Html\Html; -use Combodo\iTop\Application\UI\Base\Component\Input\Select\SelectOptionUIBlockFactory; -use Combodo\iTop\Application\UI\Base\Component\Input\Select\SelectUIBlockFactory; use Combodo\iTop\Application\UI\Base\Component\Panel\Panel; use Combodo\iTop\Application\UI\Base\Component\Panel\PanelUIBlockFactory; use Combodo\iTop\Application\UI\Base\Component\Text\Text; @@ -23,7 +21,6 @@ use Combodo\iTop\Application\UI\Base\Layout\UIContentBlockUIBlockFactory; use Combodo\iTop\Application\WebPage\CSVPage; use Combodo\iTop\Application\WebPage\ErrorPage; use Combodo\iTop\Application\WebPage\iTopWebPage; -use Combodo\iTop\Core\MetaModel\FriendlyNameType; /** * Adds the context parameters to the audit rule query @@ -152,146 +149,6 @@ function GetRuleResultFilter($iRuleId, $oDefinitionFilter, $oAppContext, $aParam return $oFilter; } -function MakeSelectField($oPage, string $sLabel, string $sFieldName, string $sOql, string $sCurrentValue) -{ - - $oSearch = DBObjectSearch::FromOQL($sOql); - $oAllowedValues = new DBObjectSet($oSearch); - $oAllowedValues->SetShowObsoleteData(utils::ShowObsoleteData()); - $iMaxComboLength = MetaModel::GetConfig()->Get('max_combo_length'); - - $bIsAutocomplete = $oAllowedValues->CountExceeds($iMaxComboLength); - $sWrapperCssClass = $bIsAutocomplete ? 'field_input_extkey ibo-input-wrapper ibo-input-select-wrapper--with-buttons ibo-input-select-autocomplete-wrapper' : 'ibo-input-select-wrapper'; - $sHTMLValue = "
"; - - // We just need to compare the number of entries with MaxComboLength, so no need to get the real count. - if (!$bIsAutocomplete) { - // Discrete list of values, use a SELECT or RADIO buttons depending on the config - $sHelpText = ''; - $aOptions = []; - $aOptions['value'] = ""; - $aOptions['label'] = Dict::S('UI:SelectOne'); - - $oAllowedValues->Rewind(); - $sClassAllowed = $oAllowedValues->GetClass(); - $bAddingValue = false; - - $aFieldsToLoad = []; - - $aComplementAttributeSpec = MetaModel::GetNameSpec($oAllowedValues->GetClass(), FriendlyNameType::COMPLEMENTARY); - $sFormatAdditionalField = $aComplementAttributeSpec[0]; - $aAdditionalField = $aComplementAttributeSpec[1]; - - if (count($aAdditionalField) > 0) { - $bAddingValue = true; - $aFieldsToLoad[$sClassAllowed] = $aAdditionalField; - } - $sObjectImageAttCode = MetaModel::GetImageAttributeCode($sClassAllowed); - if (!empty($sObjectImageAttCode)) { - $aFieldsToLoad[$sClassAllowed][] = $sObjectImageAttCode; - } - $aFieldsToLoad[$sClassAllowed][] = 'friendlyname'; - $oAllowedValues->OptimizeColumnLoad($aFieldsToLoad); - - $oSelect = SelectUIBlockFactory::MakeForSelect($sFieldName, $sFieldName); - $oSelect->AddCSSClass('ibo-input-field-wrapper'); - - while ($oChoiceItem = $oAllowedValues->Fetch()) { - - $sOptionName = utils::HtmlEntityDecode($oChoiceItem->GetName()); - - if ($bAddingValue) { - $aArguments = []; - foreach ($aAdditionalField as $sAdditionalField) { - array_push($aArguments, $oAllowedValues->Get($sAdditionalField)); - } - $sOptionName .= '
' . utils::HtmlEntities(vsprintf($sFormatAdditionalField, $aArguments)) . '';; - } - if (!empty($sObjectImageAttCode)) { - // Try to retrieve image for contact - /** @var \ormDocument $oImage */ - $oImage = $oAllowedValues->Get($sObjectImageAttCode); - if (!$oImage->IsEmpty()) { - $sPicturepictureUrl = $oImage->GetDisplayURL($sClassAllowed, $oChoiceItem->GetKey(), $sObjectImageAttCode); - $sOptionName .= ' '; - } else { - $sInitials = utils::FormatInitialsForMedallion(utils::ToAcronym($oChoiceItem->Get('friendlyname'))); - $sOptionName .= ' ' . $sInitials . ''; - } - } - $oOption = SelectOptionUIBlockFactory::MakeForSelectOption($oChoiceItem->GetKey(), $sOptionName, ($sCurrentValue == $oChoiceItem->GetKey())); - $oSelect->AddOption($oOption); - } - $sInputType = CmdbAbstractObject::ENUM_INPUT_TYPE_DROPDOWN_DECORATED; - - $sJsonOptions = str_replace("'", "\'", str_replace('\\', '\\\\', json_encode($aOptions))); - $oPage->add_ready_script( - <<GetFilter(); - $oSearch->AddCondition('id', $sCurrentValue); - $oSet = new DBObjectSet($oSearch); - $sClass = $oSet->GetClass(); - if ($oSet->Count() == 0) { - $sCurrentValue = null; - } - - if (is_null($sCurrentValue) || ($sCurrentValue == 0)) // Null values are displayed as '' - { - $sDisplayValue = ''; - } else { - $sDisplayValue = MetaModel::GetObject($sClass, $sCurrentValue)->GetName(); - } - $iMinChars = MetaModel::GetConfig()->Get('min_autocomplete_chars'); //@@@ $this->oAttDef->GetMinAutoCompleteChars(); - - // the input for the auto-complete - $sInputType = CmdbAbstractObject::ENUM_INPUT_TYPE_AUTOCOMPLETE; - $sHTMLValue .= ""; - - // another hidden input to store & pass the object's Id - $sHTMLValue .= "\n"; - - $sMessage = Dict::S('UI:Message:EmptyList:UseSearchForm'); - $oPage->add_ready_script( - <<

$sMessage

"; - oACWidget_{$sFieldName}.AddAutocomplete($iMinChars, ''); - if ($('#ac_dlg_{$sFieldName}').length == 0) - { - $('body').append('
'); - } -EOF - ); - $sHTMLValue .= "
"; - $sHTMLValue .= ""; - $sHTMLValue .= ""; - if (MetaModel::IsHierarchicalClass($sClass) !== false) { - $sHTMLValue .= ""; - $oPage->add_ready_script( - <<
'); - } - JS - ); - } - } - - $sHTMLValue .= ""; - $sHTMLValue .= ""; - - return new Html($sHTMLValue); -} try { @@ -470,29 +327,15 @@ try $oP->AddUiBlock($oPanel); while ($oAuditFilter = $oAuditFilterSet->Fetch()) { + + $sCurrentValue = utils::ReadParam($oAuditFilter->Get('placeholder'), ''); + $oBlock = FieldUIBlockFactory::MakeStandard($oAuditFilter->Get('label')); $oBlock->SetAttLabel($oAuditFilter->Get('label')) ->AddDataAttribute("input-id", $oAuditFilter->Get('placeholder')) ->AddDataAttribute("input-type", 'input-type'); $oValue = UIContentBlockUIBlockFactory::MakeStandard("", ["form-field-content", "ibo-input-field-wrapper"]); - - $sCurrentValue = utils::ReadParam($oAuditFilter->Get('placeholder'), ''); - - if (utils::IsNotNullOrEmptyString($oAuditFilter->Get('oql'))) { - $oValue->AddSubBlock(MakeSelectField( $oP, $oAuditFilter->Get('label'), $oAuditFilter->Get('placeholder'), $oAuditFilter->Get('oql'), $sCurrentValue)); - } else {//this is a list of values - $aListValues = explode(',',$oAuditFilter->Get('values')); - $oSelect = SelectUIBlockFactory::MakeForSelect($oAuditFilter->Get('placeholder'), $oAuditFilter->Get('placeholder')); - $oSelect->AddCSSClass('ibo-input-field-wrapper'); - - //foreach($aListValues as $sKey => $sValue) { - // $oSelect->AddOption(SelectOptionUIBlockFactory::MakeForSelectOption($sKey, $sValue, ($sCurrentValue == $sKey))); - foreach($aListValues as $sValue) { - $oSelect->AddOption(SelectOptionUIBlockFactory::MakeForSelectOption($sValue, $sValue, ($sCurrentValue == $sValue))); - } - - $oValue->AddSubBlock($oSelect); - } + $oValue->AddSubBlock($oAuditFilter->GetFieldBlock($oP, $sCurrentValue)); $oBlock->AddSubBlock($oValue); $oPanel->AddSubBlock($oBlock); @@ -564,17 +407,18 @@ try if ($bHasAudiFilter) { $sFieldCondition = ''; //JS sEnableDisableButtonJS .= 'if ('.implode(' && ', array_keys($aAllFields)).' == 0) {'; - foreach ($oAuditDomain->GetDependentFields() as $sPlaceholder) { + $aDependentFields = $oAuditDomain->GetDependentFields(); + foreach ($aDependentFields as $sPlaceholder) { if($sFieldCondition != ''){ $sFieldCondition .= ' && '; } $sFieldCondition .= '$("[name=' . $sPlaceholder . ']").val() != "" '; } - IssueLog::Error('$sFieldCondition: ' . $sFieldCondition); if ($sFieldCondition != '') { $sEnableDisableButtonJS .= 'if(' . $sFieldCondition . '){ $("#' . $oDomainDashlet->GetId() . ' a").removeClass("ibo-dashlet-badge--disabled"); } else { $("#' . $oDomainDashlet->GetId() . ' a").addClass("ibo-dashlet-badge--disabled"); }'; $oP->add_ready_script('$("#' . $oDomainDashlet->GetId() . ' a").addClass("ibo-dashlet-badge--disabled")'); } + $oDomainBlock->SetClassDescription($oDomainBlock->GetClassDescription() . Dict::S('Class:AuditDomain/Select:DependentFields', implode(', ', $aDependentFields))); } } $oP->AddUiBlock($oDashboardRow); @@ -590,7 +434,6 @@ try }); }); observerOrgFromId.observe(document.getElementById('$sPanelFilterId'), { attributes : true, attributeFilter : ['value'], subtree: true,childList: true }); - console.warn('yo'); $('body').on('click', 'a.ibo-dashlet-badge--disabled', function(event) { event.preventDefault(); }); @@ -603,6 +446,7 @@ JS; case 'audit': default: $sDomainKey = utils::ReadParam('domain', ''); + $oAuditDomain = null; $sCategories = utils::ReadParam('categories', '', false, utils::ENUM_SANITIZATION_FILTER_STRING); // May contain commas // Default case, full audit $oCategoriesSet = new DBObjectSet(new DBObjectSearch('AuditCategory')); @@ -628,6 +472,17 @@ JS; $sSubTitle = Dict::Format('UI:Audit:Interactive:Domain:SubTitle', $sDomainName); $sBreadCrumbLabel = Dict::Format('UI:Audit:Interactive:Domain:BreadCrumb', $sDomainName); $sBreadCrumbTooltip = Dict::Format('UI:Audit:Interactive:Domain:BreadCrumb+', $sDomainName); + if ($bHasAudiFilter) { + if ($oAuditDomain != null) { + $aListNecessaryParameters = $oAuditDomain->GetDependentFields(); + if ($aListNecessaryParameters == []) { + $bHasAudiFilter = false; + } else { + $oSearch->AddCondition('placeholder',$aListNecessaryParameters, 'IN'); + $oAuditFilterSet = new DBObjectSet($oSearch, array(), array()); + } + } + } } $oP->SetBreadCrumbEntry('ui-tool-audit', $sBreadCrumbLabel, $sBreadCrumbTooltip, '', 'fas fa-stethoscope', iTopWebPage::ENUM_BREADCRUMB_ENTRY_ICON_TYPE_CSS_CLASSES); @@ -635,34 +490,34 @@ JS; $oP->AddUiBlock($oBackButton); $oP->AddUiBlock(TitleUIBlockFactory::MakeForPage($sTitle)); - $aFilterParams = []; - $sAddingParams = ''; - if ($bHasAudiFilter) { - $oPanel = PanelUIBlockFactory::MakeNeutral('', Dict::S('UI:Audit:Interactive:FilterList')); - $oP->AddUiBlock($oPanel); + $aFilterParams = []; + $sAddingParams = ''; + if ($bHasAudiFilter) { + $oPanel = PanelUIBlockFactory::MakeNeutral('', Dict::S('UI:Audit:Interactive:FilterList')); + $oP->AddUiBlock($oPanel); - while ($oAuditFilter = $oAuditFilterSet->Fetch()) { - $sCurrentValue = utils::ReadParam($oAuditFilter->Get('placeholder'), ''); - try { - $sAddingParams .= '&' . $oAuditFilter->Get('placeholder') . '=' . $sCurrentValue; - $aFilterParams[$oAuditFilter->Get('placeholder')] = $sCurrentValue; - $sName = ''; - if (utils::IsNotNullOrEmptyString($oAuditFilter->Get('oql'))) { - $oSearch = new DBObjectSet(DBObjectSearch::FromOQL($oAuditFilter->Get('oql'))); - $sClass = $oSearch->GetClass(); - $oObject = MetaModel::GetObject($sClass, $sCurrentValue); - $sName = $oObject->GetName(); - } else {//this is a list of values - $sName = $sCurrentValue;//$oAuditFilter->Get('values')[$sCurrentValue]; - } - $sFilterText .= '
  • ' . $oAuditFilter->Get('label') . ': ' . $sName . '
  • '; - } catch (Exception $e) { - $sFilterText .= '
  • no '.$oAuditFilter->Get('label').' filter' . '
  • '; + while ($oAuditFilter = $oAuditFilterSet->Fetch()) { + $sCurrentValue = utils::ReadParam($oAuditFilter->Get('placeholder'), ''); + try { + $sAddingParams .= '&' . $oAuditFilter->Get('placeholder') . '=' . $sCurrentValue; + $aFilterParams[$oAuditFilter->Get('placeholder')] = $sCurrentValue; + $sName = ''; + if (utils::IsNotNullOrEmptyString($oAuditFilter->Get('oql'))) { + $oSearch = new DBObjectSet(DBObjectSearch::FromOQL($oAuditFilter->Get('oql'))); + $sClass = $oSearch->GetClass(); + $oObject = MetaModel::GetObject($sClass, $sCurrentValue); + $sName = $oObject->GetName(); + } else {//this is a list of values + $sName = $sCurrentValue;//$oAuditFilter->Get('values')[$sCurrentValue]; } - + $sFilterText .= '
  • ' . $oAuditFilter->Get('label') . ': ' . $sName . '
  • '; + } catch (Exception $e) { + $sFilterText .= '
  • no '.$oAuditFilter->Get('label').' filter' . '
  • '; } - $oPanel->AddSubBlock(new Html($sFilterText . '')); + } + $oPanel->AddSubBlock(new Html($sFilterText . '')); + } $oP->AddUiBlock(new Html('
    ')); $oP->AddUiBlock(new Text($sSubTitle));