diff --git a/composer.json b/composer.json
index 470d0e9de0..88f71d6075 100644
--- a/composer.json
+++ b/composer.json
@@ -1,6 +1,21 @@
{
"require": {
- "php": ">=5.6.0"
+ "php": ">=5.6.0",
+ "ext-soap": "*",
+ "ext-json": "*",
+ "ext-zip": "*",
+ "ext-mysqli": "*",
+ "ext-dom": "*",
+ "ext-iconv": "*",
+ "ext-gd": "*"
+ },
+ "suggest": {
+ "ext-libsodium": "Required to use the AttributeEncryptedString.",
+ "ext-openssl": "Can be used as a polyfill if libsodium is not installed",
+ "ext-mcrypt": "Can be used as a polyfill if either libsodium and openssl are not installed (libsodium and openssl are more secure)",
+ "ext-ldap": "Required to use LDAP as an identity provider",
+ "ext-posix": "Not required by the core, but some extensions uses it.",
+ "ext-imap": "Required by the extension \"Mail to ticket automation\""
},
"config": {
"platform": {
diff --git a/core/metamodel.class.php b/core/metamodel.class.php
index 2700942cd2..7092eaf00a 100644
--- a/core/metamodel.class.php
+++ b/core/metamodel.class.php
@@ -3169,12 +3169,17 @@ abstract class MetaModel
$iMissingMandatoryKeysNb = $UNIQUENESS_MANDATORY_KEYS_NB;
/** @var boolean $bHasNonDisabledKeys true if rule contains at least one key that is not 'disabled' */
$bHasNonDisabledKeys = false;
+ $bDisabledKeyValue = null;
foreach ($aUniquenessRuleProperties as $sUniquenessRuleKey => $aUniquenessRuleProperty)
{
- if (($sUniquenessRuleKey === 'disabled') && (!is_null($aUniquenessRuleProperty)))
+ if ($sUniquenessRuleKey === 'disabled')
{
- continue;
+ $bDisabledKeyValue = $aUniquenessRuleProperty;
+ if (!is_null($aUniquenessRuleProperty))
+ {
+ continue;
+ }
}
if (is_null($aUniquenessRuleProperty))
{
@@ -3211,6 +3216,10 @@ abstract class MetaModel
{
throw new CoreUnexpectedValue('Uniqueness rule : only the \'disabled\' key can be overridden');
}
+ if ($bRuleOverride && is_null($bDisabledKeyValue))
+ {
+ throw new CoreUnexpectedValue('Uniqueness rule : when overriding a rule, value must be set for the \'disabled\' key');
+ }
if (!$bRuleOverride && $bHasMissingMandatoryKey)
{
throw new CoreUnexpectedValue('Uniqueness rule : missing mandatory property');
diff --git a/datamodels/2.x/itop-attachments/ru.dict.itop-attachments.php b/datamodels/2.x/itop-attachments/ru.dict.itop-attachments.php
index 0011b83a85..070ceef405 100755
--- a/datamodels/2.x/itop-attachments/ru.dict.itop-attachments.php
+++ b/datamodels/2.x/itop-attachments/ru.dict.itop-attachments.php
@@ -31,17 +31,17 @@ Dict::Add('RU RU', 'Russian', 'Русский', array(
Dict::Add('RU RU', 'Russian', 'Русский', array(
'Class:Attachment' => 'Attachment~~',
- 'Class:Attachment+' => '~~',
+ 'Class:Attachment+' => '',
'Class:Attachment/Attribute:expire' => 'Expire~~',
- 'Class:Attachment/Attribute:expire+' => '~~',
- 'Class:Attachment/Attribute:temp_id' => 'Temporary id~~',
- 'Class:Attachment/Attribute:temp_id+' => '~~',
+ 'Class:Attachment/Attribute:expire+' => '',
+ 'Class:Attachment/Attribute:temp_id' => 'Temp id~~',
+ 'Class:Attachment/Attribute:temp_id+' => '',
'Class:Attachment/Attribute:item_class' => 'Item class~~',
- 'Class:Attachment/Attribute:item_class+' => '~~',
- 'Class:Attachment/Attribute:item_id' => 'Item~~',
- 'Class:Attachment/Attribute:item_id+' => '~~',
- 'Class:Attachment/Attribute:item_org_id' => 'Item organization~~',
- 'Class:Attachment/Attribute:item_org_id+' => '~~',
+ 'Class:Attachment/Attribute:item_class+' => '',
+ 'Class:Attachment/Attribute:item_id' => 'Item id~~',
+ 'Class:Attachment/Attribute:item_id+' => '',
+ 'Class:Attachment/Attribute:item_org_id' => 'Item org id~~',
+ 'Class:Attachment/Attribute:item_org_id+' => '',
'Class:Attachment/Attribute:contents' => 'Contents~~',
- 'Class:Attachment/Attribute:contents+' => '~~',
+ 'Class:Attachment/Attribute:contents+' => '',
));
diff --git a/datamodels/2.x/itop-incident-mgmt-itil/cs.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/cs.dict.itop-incident-mgmt-itil.php
index 2aa0aa0137..6f01097b35 100755
--- a/datamodels/2.x/itop-incident-mgmt-itil/cs.dict.itop-incident-mgmt-itil.php
+++ b/datamodels/2.x/itop-incident-mgmt-itil/cs.dict.itop-incident-mgmt-itil.php
@@ -241,3 +241,14 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array(
'Class:Incident/Method:ResolveChildTickets+' => 'Cascade the resolution to child ticket (ev_autoresolve), and align the following characteristics: service, team, agent, resolution info~~',
'Tickets:Related:OpenIncidents' => 'Otevřené incidenty',
));
+
+//
+// Class: Incident
+//
+
+Dict::Add('CS CZ', 'Czech', 'Čeština', array(
+ 'Class:Incident/Attribute:parent_problem_id' => 'Nadřazený problém',
+ 'Class:Incident/Attribute:parent_problem_id+' => '',
+ 'Class:Incident/Attribute:parent_problem_ref' => 'Odkaz na nadřazený problém',
+ 'Class:Incident/Attribute:parent_problem_ref+' => '',
+));
diff --git a/datamodels/2.x/itop-incident-mgmt-itil/da.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/da.dict.itop-incident-mgmt-itil.php
index 8eaa6c76b0..52ff549d24 100644
--- a/datamodels/2.x/itop-incident-mgmt-itil/da.dict.itop-incident-mgmt-itil.php
+++ b/datamodels/2.x/itop-incident-mgmt-itil/da.dict.itop-incident-mgmt-itil.php
@@ -238,3 +238,14 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:Incident/Method:ResolveChildTickets+' => 'Cascade the resolution to child ticket (ev_autoresolve), and align the following characteristics: service, team, agent, resolution info~~',
'Tickets:Related:OpenIncidents' => 'Open incidents~~',
));
+
+//
+// Class: Incident
+//
+
+Dict::Add('DA DA', 'Danish', 'Dansk', array(
+ 'Class:Incident/Attribute:parent_problem_id' => 'Parent problem id~~',
+ 'Class:Incident/Attribute:parent_problem_id+' => '~~',
+ 'Class:Incident/Attribute:parent_problem_ref' => 'Parent problem ref~~',
+ 'Class:Incident/Attribute:parent_problem_ref+' => '~~',
+));
diff --git a/datamodels/2.x/itop-incident-mgmt-itil/de.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/de.dict.itop-incident-mgmt-itil.php
index 7464e612d1..8884c84b69 100644
--- a/datamodels/2.x/itop-incident-mgmt-itil/de.dict.itop-incident-mgmt-itil.php
+++ b/datamodels/2.x/itop-incident-mgmt-itil/de.dict.itop-incident-mgmt-itil.php
@@ -240,3 +240,14 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:Incident/Method:ResolveChildTickets+' => 'Lösung auf Kind-Tickets übertragen (ev_autoresolve), und folgende Ticket-Eigenschaften angleichen: Service, Team, Agent, Lösungsinformationen',
'Tickets:Related:OpenIncidents' => 'Offene Incidents',
));
+
+//
+// Class: Incident
+//
+
+Dict::Add('DE DE', 'German', 'Deutsch', array(
+ 'Class:Incident/Attribute:parent_problem_id' => 'Parent-Problem',
+ 'Class:Incident/Attribute:parent_problem_id+' => '',
+ 'Class:Incident/Attribute:parent_problem_ref' => 'Parent-Problem-Referenz',
+ 'Class:Incident/Attribute:parent_problem_ref+' => '',
+));
diff --git a/datamodels/2.x/itop-incident-mgmt-itil/en.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/en.dict.itop-incident-mgmt-itil.php
index 81e416fed5..be9874c1f2 100755
--- a/datamodels/2.x/itop-incident-mgmt-itil/en.dict.itop-incident-mgmt-itil.php
+++ b/datamodels/2.x/itop-incident-mgmt-itil/en.dict.itop-incident-mgmt-itil.php
@@ -239,3 +239,14 @@ Dict::Add('EN US', 'English', 'English', array(
'Class:Incident/Method:ResolveChildTickets+' => 'Cascade the resolution to child ticket (ev_autoresolve), and align the following characteristics: service, team, agent, resolution info',
'Tickets:Related:OpenIncidents' => 'Open incidents',
));
+
+//
+// Class: Incident
+//
+
+Dict::Add('EN US', 'English', 'English', array(
+ 'Class:Incident/Attribute:parent_problem_id' => 'Parent problem id',
+ 'Class:Incident/Attribute:parent_problem_id+' => '',
+ 'Class:Incident/Attribute:parent_problem_ref' => 'Parent problem ref',
+ 'Class:Incident/Attribute:parent_problem_ref+' => '',
+));
diff --git a/datamodels/2.x/itop-incident-mgmt-itil/es_cr.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/es_cr.dict.itop-incident-mgmt-itil.php
index c5000877fb..ff50cda42a 100644
--- a/datamodels/2.x/itop-incident-mgmt-itil/es_cr.dict.itop-incident-mgmt-itil.php
+++ b/datamodels/2.x/itop-incident-mgmt-itil/es_cr.dict.itop-incident-mgmt-itil.php
@@ -240,3 +240,14 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array(
'Class:Incident/Method:ResolveChildTickets+' => 'Cascadear la solución a los tickets hijos (ev_autoresolve), y alinear las siguientes características: servicio, equipo, agente, información de solución',
'Tickets:Related:OpenIncidents' => 'Incidentes Abiertos',
));
+
+//
+// Class: Incident
+//
+
+Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array(
+ 'Class:Incident/Attribute:parent_problem_id' => 'Problema Padre',
+ 'Class:Incident/Attribute:parent_problem_id+' => 'Problema Padre',
+ 'Class:Incident/Attribute:parent_problem_ref' => 'Parent problem ref~~',
+ 'Class:Incident/Attribute:parent_problem_ref+' => '~~',
+));
diff --git a/datamodels/2.x/itop-incident-mgmt-itil/fr.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/fr.dict.itop-incident-mgmt-itil.php
index 67a556695f..cd245680c7 100755
--- a/datamodels/2.x/itop-incident-mgmt-itil/fr.dict.itop-incident-mgmt-itil.php
+++ b/datamodels/2.x/itop-incident-mgmt-itil/fr.dict.itop-incident-mgmt-itil.php
@@ -194,8 +194,8 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:Incident/Attribute:parent_change_ref+' => '',
'Class:Incident/Attribute:parent_problem_id' => 'Problème lié',
'Class:Incident/Attribute:parent_problem_id+' => '',
- 'Class:Incident/Attribute:parent_problem_ref' => 'Référence Problème lié',
- 'Class:Incident/Attribute:parent_problem_ref+' => '',
+ 'Class:Incident/Attribute:parent_problem_ref' => 'Parent problem ref~~',
+ 'Class:Incident/Attribute:parent_problem_ref+' => '~~',
'Class:Incident/Attribute:related_request_list' => 'Requêtes filles',
'Class:Incident/Attribute:related_request_list+' => '',
'Class:Incident/Attribute:child_incidents_list' => 'Incidents fils',
@@ -240,3 +240,14 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:Incident/Method:ResolveChildTickets+' => 'Cascader l\'action de résolution du ticket (ev_autoresolve) vers les requêtes et incidents fils, et aligner les caractéristiques suivantes : service, équipe, agent, information de résolution',
'Tickets:Related:OpenIncidents' => 'Open incidents',
));
+
+//
+// Class: Incident
+//
+
+Dict::Add('FR FR', 'French', 'Français', array(
+ 'Class:Incident/Attribute:parent_problem_id' => 'Problème lié',
+ 'Class:Incident/Attribute:parent_problem_id+' => '',
+ 'Class:Incident/Attribute:parent_problem_ref' => 'Parent problem ref~~',
+ 'Class:Incident/Attribute:parent_problem_ref+' => '~~',
+));
diff --git a/datamodels/2.x/itop-incident-mgmt-itil/hu.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/hu.dict.itop-incident-mgmt-itil.php
index 9346f2bf64..4006a262e7 100644
--- a/datamodels/2.x/itop-incident-mgmt-itil/hu.dict.itop-incident-mgmt-itil.php
+++ b/datamodels/2.x/itop-incident-mgmt-itil/hu.dict.itop-incident-mgmt-itil.php
@@ -238,3 +238,14 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
'Class:Incident/Method:ResolveChildTickets+' => 'Cascade the resolution to child ticket (ev_autoresolve), and align the following characteristics: service, team, agent, resolution info~~',
'Tickets:Related:OpenIncidents' => 'Open incidents~~',
));
+
+//
+// Class: Incident
+//
+
+Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
+ 'Class:Incident/Attribute:parent_problem_id' => 'Parent problem id~~',
+ 'Class:Incident/Attribute:parent_problem_id+' => '~~',
+ 'Class:Incident/Attribute:parent_problem_ref' => 'Parent problem ref~~',
+ 'Class:Incident/Attribute:parent_problem_ref+' => '~~',
+));
diff --git a/datamodels/2.x/itop-incident-mgmt-itil/it.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/it.dict.itop-incident-mgmt-itil.php
index 5f5a4e9a3a..36ce21f6e4 100644
--- a/datamodels/2.x/itop-incident-mgmt-itil/it.dict.itop-incident-mgmt-itil.php
+++ b/datamodels/2.x/itop-incident-mgmt-itil/it.dict.itop-incident-mgmt-itil.php
@@ -238,3 +238,14 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array(
'Class:Incident/Method:ResolveChildTickets+' => 'Cascade the resolution to child ticket (ev_autoresolve), and align the following characteristics: service, team, agent, resolution info~~',
'Tickets:Related:OpenIncidents' => 'Open incidents~~',
));
+
+//
+// Class: Incident
+//
+
+Dict::Add('IT IT', 'Italian', 'Italiano', array(
+ 'Class:Incident/Attribute:parent_problem_id' => 'Parent problem id~~',
+ 'Class:Incident/Attribute:parent_problem_id+' => '~~',
+ 'Class:Incident/Attribute:parent_problem_ref' => 'Parent problem ref~~',
+ 'Class:Incident/Attribute:parent_problem_ref+' => '~~',
+));
diff --git a/datamodels/2.x/itop-incident-mgmt-itil/ja.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/ja.dict.itop-incident-mgmt-itil.php
index 36e4477c97..91de2bf806 100644
--- a/datamodels/2.x/itop-incident-mgmt-itil/ja.dict.itop-incident-mgmt-itil.php
+++ b/datamodels/2.x/itop-incident-mgmt-itil/ja.dict.itop-incident-mgmt-itil.php
@@ -237,3 +237,14 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:Incident/Method:ResolveChildTickets+' => 'Cascade the resolution to child ticket (ev_autoresolve), and align the following characteristics: service, team, agent, resolution info~~',
'Tickets:Related:OpenIncidents' => 'Open incidents~~',
));
+
+//
+// Class: Incident
+//
+
+Dict::Add('JA JP', 'Japanese', '日本語', array(
+ 'Class:Incident/Attribute:parent_problem_id' => 'Parent problem id~~',
+ 'Class:Incident/Attribute:parent_problem_id+' => '~~',
+ 'Class:Incident/Attribute:parent_problem_ref' => 'Parent problem ref~~',
+ 'Class:Incident/Attribute:parent_problem_ref+' => '~~',
+));
diff --git a/datamodels/2.x/itop-incident-mgmt-itil/nl.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/nl.dict.itop-incident-mgmt-itil.php
index 7978a53929..596f4b7d04 100644
--- a/datamodels/2.x/itop-incident-mgmt-itil/nl.dict.itop-incident-mgmt-itil.php
+++ b/datamodels/2.x/itop-incident-mgmt-itil/nl.dict.itop-incident-mgmt-itil.php
@@ -225,3 +225,14 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:Incident/Method:ResolveChildTickets+' => 'Pas de oplossing ook toe op subverzoeken (ev_autoresolve) en neem de kenmerken over wat betreft service, team, agent, oplossing',
'Tickets:Related:OpenIncidents' => 'Open incidenten',
));
+
+//
+// Class: Incident
+//
+
+Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
+ 'Class:Incident/Attribute:parent_problem_id' => 'Parent problem id~~',
+ 'Class:Incident/Attribute:parent_problem_id+' => '~~',
+ 'Class:Incident/Attribute:parent_problem_ref' => 'Parent problem ref~~',
+ 'Class:Incident/Attribute:parent_problem_ref+' => '~~',
+));
diff --git a/datamodels/2.x/itop-incident-mgmt-itil/pt_br.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/pt_br.dict.itop-incident-mgmt-itil.php
index bbf142be55..14a972c26c 100644
--- a/datamodels/2.x/itop-incident-mgmt-itil/pt_br.dict.itop-incident-mgmt-itil.php
+++ b/datamodels/2.x/itop-incident-mgmt-itil/pt_br.dict.itop-incident-mgmt-itil.php
@@ -239,3 +239,14 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
'Class:Incident/Method:ResolveChildTickets+' => 'Cascade the resolution to child ticket (ev_autoresolve), and align the following characteristics: service, team, agent, resolution info~~',
'Tickets:Related:OpenIncidents' => 'Open incidents~~',
));
+
+//
+// Class: Incident
+//
+
+Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
+ 'Class:Incident/Attribute:parent_problem_id' => 'Problema principal',
+ 'Class:Incident/Attribute:parent_problem_id+' => '',
+ 'Class:Incident/Attribute:parent_problem_ref' => 'Ref problema principal',
+ 'Class:Incident/Attribute:parent_problem_ref+' => '',
+));
diff --git a/datamodels/2.x/itop-incident-mgmt-itil/ru.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/ru.dict.itop-incident-mgmt-itil.php
index 9473fab6f4..10de195a05 100755
--- a/datamodels/2.x/itop-incident-mgmt-itil/ru.dict.itop-incident-mgmt-itil.php
+++ b/datamodels/2.x/itop-incident-mgmt-itil/ru.dict.itop-incident-mgmt-itil.php
@@ -226,3 +226,14 @@ Dict::Add('RU RU', 'Russian', 'Русский', array(
'Class:Incident/Method:ResolveChildTickets+' => 'Cascade the resolution to child ticket (ev_autoresolve), and align the following characteristics: service, team, agent, resolution info',
'Tickets:Related:OpenIncidents' => 'Открытые инциденты',
));
+
+//
+// Class: Incident
+//
+
+Dict::Add('RU RU', 'Russian', 'Русский', array(
+ 'Class:Incident/Attribute:parent_problem_id' => 'Родительская проблема',
+ 'Class:Incident/Attribute:parent_problem_id+' => '',
+ 'Class:Incident/Attribute:parent_problem_ref' => 'Родительская проблема',
+ 'Class:Incident/Attribute:parent_problem_ref+' => '',
+));
diff --git a/datamodels/2.x/itop-incident-mgmt-itil/tr.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/tr.dict.itop-incident-mgmt-itil.php
index 9ac5e693a8..aaddb68772 100644
--- a/datamodels/2.x/itop-incident-mgmt-itil/tr.dict.itop-incident-mgmt-itil.php
+++ b/datamodels/2.x/itop-incident-mgmt-itil/tr.dict.itop-incident-mgmt-itil.php
@@ -238,3 +238,14 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
'Class:Incident/Method:ResolveChildTickets+' => 'Cascade the resolution to child ticket (ev_autoresolve), and align the following characteristics: service, team, agent, resolution info~~',
'Tickets:Related:OpenIncidents' => 'Open incidents~~',
));
+
+//
+// Class: Incident
+//
+
+Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
+ 'Class:Incident/Attribute:parent_problem_id' => 'Parent problem id~~',
+ 'Class:Incident/Attribute:parent_problem_id+' => '~~',
+ 'Class:Incident/Attribute:parent_problem_ref' => 'Parent problem ref~~',
+ 'Class:Incident/Attribute:parent_problem_ref+' => '~~',
+));
diff --git a/datamodels/2.x/itop-incident-mgmt-itil/zh_cn.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/zh_cn.dict.itop-incident-mgmt-itil.php
index 753037e4dd..35820fbb3e 100644
--- a/datamodels/2.x/itop-incident-mgmt-itil/zh_cn.dict.itop-incident-mgmt-itil.php
+++ b/datamodels/2.x/itop-incident-mgmt-itil/zh_cn.dict.itop-incident-mgmt-itil.php
@@ -238,3 +238,14 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Class:Incident/Method:ResolveChildTickets+' => '级联解决子Ticket(事件自动解决),和调整以下内容保持一至: 服务, 团队, 办理人, 解决方案',
'Tickets:Related:OpenIncidents' => '打开的事件',
));
+
+//
+// Class: Incident
+//
+
+Dict::Add('ZH CN', 'Chinese', '简体中文', array(
+ 'Class:Incident/Attribute:parent_problem_id' => 'Parent problem id~~',
+ 'Class:Incident/Attribute:parent_problem_id+' => '~~',
+ 'Class:Incident/Attribute:parent_problem_ref' => 'Parent problem ref~~',
+ 'Class:Incident/Attribute:parent_problem_ref+' => '~~',
+));
diff --git a/datamodels/2.x/itop-service-mgmt-provider/es_cr.dict.itop-service-mgmt-provider.php b/datamodels/2.x/itop-service-mgmt-provider/es_cr.dict.itop-service-mgmt-provider.php
index b792505f26..0311fdbe5b 100644
--- a/datamodels/2.x/itop-service-mgmt-provider/es_cr.dict.itop-service-mgmt-provider.php
+++ b/datamodels/2.x/itop-service-mgmt-provider/es_cr.dict.itop-service-mgmt-provider.php
@@ -422,16 +422,16 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array(
'Class:lnkSLAToSLT/Attribute:slt_id+' => 'SLT',
'Class:lnkSLAToSLT/Attribute:slt_name' => 'SLT',
'Class:lnkSLAToSLT/Attribute:slt_name+' => 'SLT',
- 'Class:lnkSLAToSLT/Attribute:slt_metric' => 'SLT metric~~',
- 'Class:lnkSLAToSLT/Attribute:slt_metric+' => '~~',
- 'Class:lnkSLAToSLT/Attribute:slt_request_type' => 'SLT request type~~',
- 'Class:lnkSLAToSLT/Attribute:slt_request_type+' => '~~',
- 'Class:lnkSLAToSLT/Attribute:slt_ticket_priority' => 'SLT ticket priority~~',
- 'Class:lnkSLAToSLT/Attribute:slt_ticket_priority+' => '~~',
- 'Class:lnkSLAToSLT/Attribute:slt_value' => 'SLT value~~',
- 'Class:lnkSLAToSLT/Attribute:slt_value+' => '~~',
- 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'SLT value unit~~',
- 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '~~',
+ 'Class:lnkSLAToSLT/Attribute:slt_metric' => 'Slt metric~~',
+ 'Class:lnkSLAToSLT/Attribute:slt_metric+' => '',
+ 'Class:lnkSLAToSLT/Attribute:slt_request_type' => 'Slt request type~~',
+ 'Class:lnkSLAToSLT/Attribute:slt_request_type+' => '',
+ 'Class:lnkSLAToSLT/Attribute:slt_ticket_priority' => 'Slt ticket priority~~',
+ 'Class:lnkSLAToSLT/Attribute:slt_ticket_priority+' => '',
+ 'Class:lnkSLAToSLT/Attribute:slt_value' => 'Slt value~~',
+ 'Class:lnkSLAToSLT/Attribute:slt_value+' => '',
+ 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Slt value unit~~',
+ 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '',
));
//
diff --git a/datamodels/2.x/itop-service-mgmt/es_cr.dict.itop-service-mgmt.php b/datamodels/2.x/itop-service-mgmt/es_cr.dict.itop-service-mgmt.php
index 917b7712f8..299f6a52ba 100755
--- a/datamodels/2.x/itop-service-mgmt/es_cr.dict.itop-service-mgmt.php
+++ b/datamodels/2.x/itop-service-mgmt/es_cr.dict.itop-service-mgmt.php
@@ -422,15 +422,15 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array(
'Class:lnkSLAToSLT/Attribute:slt_name' => 'SLT',
'Class:lnkSLAToSLT/Attribute:slt_name+' => 'SLT',
'Class:lnkSLAToSLT/Attribute:slt_metric' => 'Slt metric~~',
- 'Class:lnkSLAToSLT/Attribute:slt_metric+' => '~~',
+ 'Class:lnkSLAToSLT/Attribute:slt_metric+' => '',
'Class:lnkSLAToSLT/Attribute:slt_request_type' => 'Slt request type~~',
- 'Class:lnkSLAToSLT/Attribute:slt_request_type+' => '~~',
+ 'Class:lnkSLAToSLT/Attribute:slt_request_type+' => '',
'Class:lnkSLAToSLT/Attribute:slt_ticket_priority' => 'Slt ticket priority~~',
- 'Class:lnkSLAToSLT/Attribute:slt_ticket_priority+' => '~~',
+ 'Class:lnkSLAToSLT/Attribute:slt_ticket_priority+' => '',
'Class:lnkSLAToSLT/Attribute:slt_value' => 'Slt value~~',
- 'Class:lnkSLAToSLT/Attribute:slt_value+' => '~~',
+ 'Class:lnkSLAToSLT/Attribute:slt_value+' => '',
'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Slt value unit~~',
- 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '~~',
+ 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '',
));
//
diff --git a/datamodels/2.x/itop-tickets/en.dict.itop-tickets.php b/datamodels/2.x/itop-tickets/en.dict.itop-tickets.php
index 25a9cad901..da6d0344f0 100755
--- a/datamodels/2.x/itop-tickets/en.dict.itop-tickets.php
+++ b/datamodels/2.x/itop-tickets/en.dict.itop-tickets.php
@@ -253,3 +253,12 @@ Dict::Add('EN US', 'English', 'English', array(
'Brick:Portal:OngoingRequests:Tab:Resolved' => 'Resolved',
'Brick:Portal:ClosedRequests:Title' => 'Closed requests',
));
+
+//
+// Class: lnkFunctionalCIToTicket
+//
+
+Dict::Add('EN US', 'English', 'English', array(
+ 'Class:lnkFunctionalCIToTicket/Attribute:ticket_title' => 'Ticket title',
+ 'Class:lnkFunctionalCIToTicket/Attribute:ticket_title+' => '',
+));
diff --git a/datamodels/2.x/itop-tickets/es_cr.dict.itop-tickets.php b/datamodels/2.x/itop-tickets/es_cr.dict.itop-tickets.php
index b5222268bb..e2d749e91d 100755
--- a/datamodels/2.x/itop-tickets/es_cr.dict.itop-tickets.php
+++ b/datamodels/2.x/itop-tickets/es_cr.dict.itop-tickets.php
@@ -251,3 +251,12 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array(
'Brick:Portal:OngoingRequests:Tab:Resolved' => 'Solucionado',
'Brick:Portal:ClosedRequests:Title' => 'Requerimientos Cerrados',
));
+
+//
+// Class: lnkFunctionalCIToTicket
+//
+
+Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array(
+ 'Class:lnkFunctionalCIToTicket/Attribute:ticket_title' => 'Ticket title~~',
+ 'Class:lnkFunctionalCIToTicket/Attribute:ticket_title+' => '~~',
+));
diff --git a/datamodels/2.x/itop-tickets/pt_br.dict.itop-tickets.php b/datamodels/2.x/itop-tickets/pt_br.dict.itop-tickets.php
index ad7298700a..8f5b180ab7 100755
--- a/datamodels/2.x/itop-tickets/pt_br.dict.itop-tickets.php
+++ b/datamodels/2.x/itop-tickets/pt_br.dict.itop-tickets.php
@@ -250,3 +250,12 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
'Brick:Portal:OngoingRequests:Tab:Resolved' => 'Resolvido',
'Brick:Portal:ClosedRequests:Title' => 'Fechar solicitações',
));
+
+//
+// Class: lnkFunctionalCIToTicket
+//
+
+Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
+ 'Class:lnkFunctionalCIToTicket/Attribute:ticket_title' => 'Ticket title~~',
+ 'Class:lnkFunctionalCIToTicket/Attribute:ticket_title+' => '~~',
+));
diff --git a/datamodels/2.x/itop-tickets/tr.dict.itop-tickets.php b/datamodels/2.x/itop-tickets/tr.dict.itop-tickets.php
index b8e6f70804..2b00ff27eb 100755
--- a/datamodels/2.x/itop-tickets/tr.dict.itop-tickets.php
+++ b/datamodels/2.x/itop-tickets/tr.dict.itop-tickets.php
@@ -15,12 +15,12 @@
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see
-/**
- * Localized data
- *
- * @author Izzet Sirin
- * @copyright Copyright (C) 2010-2012 Combodo SARL
- * @license http://opensource.org/licenses/AGPL-3.0
+/**
+ * Localized data
+ *
+ * @author Izzet Sirin
+ * @copyright Copyright (C) 2010-2012 Combodo SARL
+ * @license http://opensource.org/licenses/AGPL-3.0
*/
// Dictionnay conventions
// Class:
diff --git a/dictionaries/cs.dictionary.itop.model.php b/dictionaries/cs.dictionary.itop.model.php
new file mode 100644
index 0000000000..ed0fb5e36d
--- /dev/null
+++ b/dictionaries/cs.dictionary.itop.model.php
@@ -0,0 +1,27 @@
+
+
+
+/**
+ * Localized data
+ *
+ * @copyright Copyright (C) 2010-2012 Combodo SARL
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+?>
diff --git a/dictionaries/da.dictionary.itop.model.php b/dictionaries/da.dictionary.itop.model.php
new file mode 100644
index 0000000000..ed0fb5e36d
--- /dev/null
+++ b/dictionaries/da.dictionary.itop.model.php
@@ -0,0 +1,27 @@
+
+
+
+/**
+ * Localized data
+ *
+ * @copyright Copyright (C) 2010-2012 Combodo SARL
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+?>
diff --git a/dictionaries/de.dictionary.itop.model.php b/dictionaries/de.dictionary.itop.model.php
new file mode 100644
index 0000000000..ed0fb5e36d
--- /dev/null
+++ b/dictionaries/de.dictionary.itop.model.php
@@ -0,0 +1,27 @@
+
+
+
+/**
+ * Localized data
+ *
+ * @copyright Copyright (C) 2010-2012 Combodo SARL
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+?>
diff --git a/dictionaries/es_cr.dictionary.itop.model.php b/dictionaries/es_cr.dictionary.itop.model.php
new file mode 100644
index 0000000000..ed0fb5e36d
--- /dev/null
+++ b/dictionaries/es_cr.dictionary.itop.model.php
@@ -0,0 +1,27 @@
+
+
+
+/**
+ * Localized data
+ *
+ * @copyright Copyright (C) 2010-2012 Combodo SARL
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+?>
diff --git a/dictionaries/fr.dictionary.itop.model.php b/dictionaries/fr.dictionary.itop.model.php
new file mode 100644
index 0000000000..ed0fb5e36d
--- /dev/null
+++ b/dictionaries/fr.dictionary.itop.model.php
@@ -0,0 +1,27 @@
+
+
+
+/**
+ * Localized data
+ *
+ * @copyright Copyright (C) 2010-2012 Combodo SARL
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+?>
diff --git a/dictionaries/hu.dictionary.itop.model.php b/dictionaries/hu.dictionary.itop.model.php
new file mode 100644
index 0000000000..ed0fb5e36d
--- /dev/null
+++ b/dictionaries/hu.dictionary.itop.model.php
@@ -0,0 +1,27 @@
+
+
+
+/**
+ * Localized data
+ *
+ * @copyright Copyright (C) 2010-2012 Combodo SARL
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+?>
diff --git a/dictionaries/it.dictionary.itop.model.php b/dictionaries/it.dictionary.itop.model.php
new file mode 100644
index 0000000000..ed0fb5e36d
--- /dev/null
+++ b/dictionaries/it.dictionary.itop.model.php
@@ -0,0 +1,27 @@
+
+
+
+/**
+ * Localized data
+ *
+ * @copyright Copyright (C) 2010-2012 Combodo SARL
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+?>
diff --git a/dictionaries/ja.dictionary.itop.model.php b/dictionaries/ja.dictionary.itop.model.php
new file mode 100644
index 0000000000..ed0fb5e36d
--- /dev/null
+++ b/dictionaries/ja.dictionary.itop.model.php
@@ -0,0 +1,27 @@
+
+
+
+/**
+ * Localized data
+ *
+ * @copyright Copyright (C) 2010-2012 Combodo SARL
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+?>
diff --git a/dictionaries/nl.dictionary.itop.model.php b/dictionaries/nl.dictionary.itop.model.php
new file mode 100644
index 0000000000..ed0fb5e36d
--- /dev/null
+++ b/dictionaries/nl.dictionary.itop.model.php
@@ -0,0 +1,27 @@
+
+
+
+/**
+ * Localized data
+ *
+ * @copyright Copyright (C) 2010-2012 Combodo SARL
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+?>
diff --git a/dictionaries/pt_br.dictionary.itop.model.php b/dictionaries/pt_br.dictionary.itop.model.php
new file mode 100644
index 0000000000..ed0fb5e36d
--- /dev/null
+++ b/dictionaries/pt_br.dictionary.itop.model.php
@@ -0,0 +1,27 @@
+
+
+
+/**
+ * Localized data
+ *
+ * @copyright Copyright (C) 2010-2012 Combodo SARL
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+?>
diff --git a/dictionaries/ru.dictionary.itop.model.php b/dictionaries/ru.dictionary.itop.model.php
new file mode 100644
index 0000000000..ed0fb5e36d
--- /dev/null
+++ b/dictionaries/ru.dictionary.itop.model.php
@@ -0,0 +1,27 @@
+
+
+
+/**
+ * Localized data
+ *
+ * @copyright Copyright (C) 2010-2012 Combodo SARL
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+?>
diff --git a/dictionaries/tr.dictionary.itop.model.php b/dictionaries/tr.dictionary.itop.model.php
new file mode 100644
index 0000000000..ed0fb5e36d
--- /dev/null
+++ b/dictionaries/tr.dictionary.itop.model.php
@@ -0,0 +1,27 @@
+
+
+
+/**
+ * Localized data
+ *
+ * @copyright Copyright (C) 2010-2012 Combodo SARL
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+?>
diff --git a/dictionaries/zh_cn.dictionary.itop.model.php b/dictionaries/zh_cn.dictionary.itop.model.php
new file mode 100644
index 0000000000..ed0fb5e36d
--- /dev/null
+++ b/dictionaries/zh_cn.dictionary.itop.model.php
@@ -0,0 +1,27 @@
+
+
+
+/**
+ * Localized data
+ *
+ * @copyright Copyright (C) 2010-2012 Combodo SARL
+ * @license http://opensource.org/licenses/AGPL-3.0
+ */
+
+?>