Merge remote-tracking branch 'origin/develop' into feature/backoffice-full-moon-design

# Conflicts:
#	core/cmdbobject.class.inc.php
#	datamodels/2.x/itop-bridge-cmdb-ticket/datamodel.itop-bridge-cmdb-ticket.xml
#	datamodels/2.x/itop-structure/datamodel.itop-structure.xml
This commit is contained in:
Pierre Goiffon
2020-11-02 10:28:12 +01:00
38 changed files with 2431 additions and 2277 deletions

View File

@@ -309,7 +309,7 @@ class BulkChange
$value = $oForeignAtt->MakeValueFromString($aRowData[$iCol], $this->m_bLocalizedValues);
}
$oReconFilter->AddCondition($sForeignAttCode, $value, '=');
$aResults[$iCol] = new CellStatus_Void(htmlentities($aRowData[$iCol]));
$aResults[$iCol] = new CellStatus_Void(utils::HtmlEntities($aRowData[$iCol]));
}
$oExtObjects = new CMDBObjectSet($oReconFilter);
@@ -396,7 +396,7 @@ class BulkChange
}
$aCacheKeys[] = $value;
$oReconFilter->AddCondition($sForeignAttCode, $value, '=');
$aResults[$iCol] = new CellStatus_Void(htmlentities($aRowData[$iCol]));
$aResults[$iCol] = new CellStatus_Void(utils::HtmlEntities($aRowData[$iCol]));
}
$sCacheKey = implode('_|_', $aCacheKeys); // Unique key for this query...
$iForeignKey = null;
@@ -466,7 +466,7 @@ class BulkChange
foreach ($aKeyConfig as $sForeignAttCode => $iCol)
{
// Report the change on reconciliation values as well
$aResults[$iCol] = new CellStatus_Modify(htmlentities($aRowData[$iCol]));
$aResults[$iCol] = new CellStatus_Modify(utils::HtmlEntities($aRowData[$iCol]));
}
}
}
@@ -539,7 +539,7 @@ class BulkChange
{
if ($sAttCode == 'id')
{
$aResults[$iCol]= new CellStatus_Void(htmlentities($aRowData[$iCol]));
$aResults[$iCol]= new CellStatus_Void(utils::HtmlEntities($aRowData[$iCol]));
}
else
{
@@ -555,7 +555,7 @@ class BulkChange
}
if (isset($aErrors[$sAttCode]))
{
$aResults[$iCol]= new CellStatus_Issue(htmlentities($aRowData[$iCol]), $sOrigValue, $aErrors[$sAttCode]);
$aResults[$iCol]= new CellStatus_Issue(utils::HtmlEntities($aRowData[$iCol]), $sOrigValue, $aErrors[$sAttCode]);
}
elseif (array_key_exists($sAttCode, $aChangedFields))
{
@@ -578,7 +578,7 @@ class BulkChange
}
else
{
$aResults[$iCol]= new CellStatus_Void(htmlentities($aRowData[$iCol]));
$aResults[$iCol]= new CellStatus_Void(utils::HtmlEntities($aRowData[$iCol]));
}
}
}
@@ -925,7 +925,7 @@ class BulkChange
{
// Leave the cell unchanged
$aResult[$iRow]["__STATUS__"]= new RowStatus_Issue(Dict::S('UI:CSVReport-Row-Issue-DateFormat'));
$aResult[$iRow][$sAttCode] = new CellStatus_Issue(null, htmlentities($this->m_aData[$iRow][$iCol]), Dict::S('UI:CSVReport-Row-Issue-DateFormat'));
$aResult[$iRow][$sAttCode] = new CellStatus_Issue(null, utils::HtmlEntities($this->m_aData[$iRow][$iCol]), Dict::S('UI:CSVReport-Row-Issue-DateFormat'));
}
}
}
@@ -1083,7 +1083,7 @@ class BulkChange
{
if (!array_key_exists($iCol, $aResult[$iRow]))
{
$aResult[$iRow][$iCol] = new CellStatus_Void(htmlentities($aRowData[$iCol]));
$aResult[$iRow][$iCol] = new CellStatus_Void(utils::HtmlEntities($aRowData[$iCol]));
}
}
foreach($this->m_aExtKeys as $sAttCode => $aForeignAtts)
@@ -1097,7 +1097,7 @@ class BulkChange
if (!array_key_exists($iCol, $aResult[$iRow]))
{
// The foreign attribute is one of our reconciliation key
$aResult[$iRow][$iCol] = new CellStatus_Void(htmlentities($aRowData[$iCol]));
$aResult[$iRow][$iCol] = new CellStatus_Void(utils::HtmlEntities($aRowData[$iCol]));
}
}
}

View File

@@ -103,8 +103,12 @@ abstract class CMDBObject extends DBObject
* @see SetTrackInfo if CurrentChange is null, then a new one will be create using trackinfo
*
* @param CMDBChange|null $oChange use null so that the API will recreate a new CMDBChange using TrackInfo & TrackOrigin
* If providing a CMDBChange, you should persist it first ! Indeed the API will automatically create CMDBChangeOp (see
* \CMDBObject::RecordObjCreation / RecordAttChange / RecordObjDeletion for example) and link them to the current change : in
* consequence this CMDBChange must have a key set !
*
* @since 2.7.2 N°3219 can now reset CMDBChange by passing null
* @since 2.7.2 N°3218 PHPDoc about persisting the $oChange parameter first
*/
public static function SetCurrentChange($oChange)
{
@@ -119,7 +123,11 @@ abstract class CMDBObject extends DBObject
// GetCurrentChange to create a default change if not already done in the current context
//
/**
* Get a change record (create it if not existing)
* @param bool $bAutoCreate if true calls {@link CreateChange} to get a new persisted object
*
* @return \CMDBChange
*
* @uses CreateChange
*/
public static function GetCurrentChange($bAutoCreate = true)
{
@@ -226,7 +234,9 @@ abstract class CMDBObject extends DBObject
}
/**
* Create a standard change record (done here 99% of the time, and nearly once per page)
* Set to {@link $m_oCurrChange} a standard change record (done here 99% of the time, and nearly once per page)
*
* The CMDBChange is persisted so that it has a key > 0, and any new CMDBChangeOp can link to it
*
* @throws \ArchivedObjectException
* @throws \CoreCannotSaveObjectException

View File

@@ -9,469 +9,531 @@
<category>bizmodel</category>
<abstract>false</abstract>
<key_type>autoincrement</key_type>
<db_table>lnkfunctionalcitoticket</db_table>
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<attributes>
<attribute id="ticket_id"/>
<attribute id="functionalci_id"/>
</attributes>
</naming>
<icon/>
<reconciliation>
<attributes>
<attribute id="ticket_id"/>
<attribute id="functionalci_id"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field id="ticket_id" xsi:type="AttributeExternalKey">
<sql>ticket_id</sql>
<target_class>Ticket</target_class>
<is_null_allowed>false</is_null_allowed>
<on_target_delete>DEL_AUTO</on_target_delete>
</field>
<field id="ticket_ref" xsi:type="AttributeExternalField">
<extkey_attcode>ticket_id</extkey_attcode>
<target_attcode>ref</target_attcode>
</field>
<field id="ticket_title" xsi:type="AttributeExternalField">
<extkey_attcode>ticket_id</extkey_attcode>
<target_attcode>title</target_attcode>
</field>
<field id="functionalci_id" xsi:type="AttributeExternalKey">
<sql>functionalci_id</sql>
<target_class>FunctionalCI</target_class>
<is_null_allowed>false</is_null_allowed>
<on_target_delete>DEL_AUTO</on_target_delete>
</field>
<field id="functionalci_name" xsi:type="AttributeExternalField">
<extkey_attcode>functionalci_id</extkey_attcode>
<target_attcode>name</target_attcode>
</field>
<field id="impact" xsi:type="AttributeString">
<sql>impact</sql>
<default_value/>
<is_null_allowed>true</is_null_allowed>
</field>
<field id="impact_code" xsi:type="AttributeEnum">
<values>
<value id="manual">manual</value>
<value id="computed">computed</value>
<value id="not_impacted">not_impacted</value>
</values>
<sql>impact_code</sql>
<default_value>manual</default_value>
<is_null_allowed>false</is_null_allowed>
<display_style>list</display_style>
</field>
</fields>
<methods/>
<presentation>
<details>
<items>
<item id="ticket_id">
<rank>10</rank>
</item>
<item id="functionalci_id">
<rank>20</rank>
</item>
<item id="impact_code">
<rank>30</rank>
</item>
</items>
</details>
<search>
<items>
<item id="ticket_id">
<rank>10</rank>
</item>
<item id="functionalci_id">
<rank>20</rank>
</item>
<item id="impact_code">
<rank>30</rank>
</item>
</items>
</search>
<list>
<items>
<item id="ticket_id">
<rank>10</rank>
</item>
<item id="functionalci_id">
<rank>20</rank>
</item>
<item id="impact_code">
<rank>30</rank>
</item>
</items>
</list>
</presentation>
</class>
<class id="lnkFunctionalCIToProviderContract" _delta="define">
<parent>cmdbAbstractObject</parent>
<properties>
<is_link>1</is_link>
<category>bizmodel</category>
<abstract>false</abstract>
<key_type>autoincrement</key_type>
<db_table>lnkfunctionalcitoprovidercontract</db_table>
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<attributes>
<attribute id="providercontract_id"/>
<attribute id="functionalci_id"/>
</attributes>
</naming>
<icon/>
<reconciliation>
<attributes>
<attribute id="providercontract_id"/>
<attribute id="functionalci_id"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field id="providercontract_id" xsi:type="AttributeExternalKey">
<sql>providercontract_id</sql>
<target_class>ProviderContract</target_class>
<is_null_allowed>false</is_null_allowed>
<on_target_delete>DEL_AUTO</on_target_delete>
</field>
<field id="providercontract_name" xsi:type="AttributeExternalField">
<extkey_attcode>providercontract_id</extkey_attcode>
<target_attcode>name</target_attcode>
</field>
<field id="functionalci_id" xsi:type="AttributeExternalKey">
<sql>functionalci_id</sql>
<target_class>FunctionalCI</target_class>
<is_null_allowed>false</is_null_allowed>
<on_target_delete>DEL_AUTO</on_target_delete>
</field>
<field id="functionalci_name" xsi:type="AttributeExternalField">
<extkey_attcode>functionalci_id</extkey_attcode>
<target_attcode>name</target_attcode>
</field>
</fields>
<methods/>
<presentation>
<details>
<items>
<item id="providercontract_id">
<rank>10</rank>
</item>
<item id="functionalci_id">
<rank>20</rank>
</item>
</items>
</details>
<search>
<items>
<item id="providercontract_id">
<rank>10</rank>
</item>
<item id="functionalci_id">
<rank>20</rank>
</item>
</items>
</search>
<list>
<items>
<item id="providercontract_id">
<rank>10</rank>
</item>
<item id="functionalci_id">
<rank>20</rank>
</item>
</items>
</list>
</presentation>
</class>
<class id="lnkFunctionalCIToService" _delta="define">
<parent>cmdbAbstractObject</parent>
<properties>
<is_link>1</is_link>
<category>bizmodel</category>
<abstract>false</abstract>
<key_type>autoincrement</key_type>
<db_table>lnkfunctionalcitoservice</db_table>
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<attributes>
<attribute id="service_id"/>
<attribute id="functionalci_id"/>
</attributes>
</naming>
<icon/>
<reconciliation>
<attributes>
<attribute id="service_id"/>
<attribute id="functionalci_id"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field id="service_id" xsi:type="AttributeExternalKey">
<sql>service_id</sql>
<target_class>Service</target_class>
<is_null_allowed>false</is_null_allowed>
<on_target_delete>DEL_AUTO</on_target_delete>
</field>
<field id="service_name" xsi:type="AttributeExternalField">
<extkey_attcode>service_id</extkey_attcode>
<target_attcode>name</target_attcode>
</field>
<field id="functionalci_id" xsi:type="AttributeExternalKey">
<sql>functionalci_id</sql>
<target_class>FunctionalCI</target_class>
<is_null_allowed>false</is_null_allowed>
<on_target_delete>DEL_AUTO</on_target_delete>
</field>
<field id="functionalci_name" xsi:type="AttributeExternalField">
<extkey_attcode>functionalci_id</extkey_attcode>
<target_attcode>name</target_attcode>
</field>
</fields>
<methods/>
<presentation>
<details>
<items>
<item id="service_id">
<rank>10</rank>
</item>
<item id="functionalci_id">
<rank>20</rank>
</item>
</items>
</details>
<search>
<items>
<item id="service_id">
<rank>10</rank>
</item>
<item id="functionalci_id">
<rank>20</rank>
</item>
</items>
</search>
<list>
<items>
<item id="service_id">
<rank>10</rank>
</item>
<item id="functionalci_id">
<rank>20</rank>
</item>
</items>
</list>
</presentation>
</class>
<class id="FunctionalCI" _delta="must_exist">
<fields>
<field id="providercontracts_list" xsi:type="AttributeLinkedSetIndirect" _delta="define">
<linked_class>lnkFunctionalCIToProviderContract</linked_class>
<ext_key_to_me>functionalci_id</ext_key_to_me>
<count_min>0</count_min>
<count_max>0</count_max>
<ext_key_to_remote>providercontract_id</ext_key_to_remote>
<duplicates/>
</field>
<field id="services_list" xsi:type="AttributeLinkedSetIndirect" _delta="define">
<linked_class>lnkFunctionalCIToService</linked_class>
<ext_key_to_me>functionalci_id</ext_key_to_me>
<count_min>0</count_min>
<count_max>0</count_max>
<ext_key_to_remote>service_id</ext_key_to_remote>
<duplicates/>
</field>
<field id="tickets_list" xsi:type="AttributeLinkedSetIndirect" _delta="define">
<linked_class>lnkFunctionalCIToTicket</linked_class>
<ext_key_to_me>functionalci_id</ext_key_to_me>
<count_min>0</count_min>
<count_max>0</count_max>
<ext_key_to_remote>ticket_id</ext_key_to_remote>
<duplicates/>
</field>
</fields>
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>100</rank>
</item>
<item id="services_list" _delta="define">
<rank>110</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="NetworkDevice" _delta="must_exist">
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>60</rank>
</item>
<item id="services_list" _delta="define">
<rank>70</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="Server" _delta="must_exist">
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>100</rank>
</item>
<item id="services_list" _delta="define">
<rank>110</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="ApplicationSolution" _delta="must_exist">
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>120</rank>
</item>
<item id="services_list" _delta="define">
<rank>130</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="Middleware" _delta="must_exist">
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>160</rank>
</item>
<item id="services_list" _delta="define">
<rank>170</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="DBServer" _delta="must_exist">
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>160</rank>
</item>
<item id="services_list" _delta="define">
<rank>170</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="WebServer" _delta="must_exist">
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>160</rank>
</item>
<item id="services_list" _delta="define">
<rank>170</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="PCSoftware" _delta="must_exist">
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>150</rank>
</item>
<item id="services_list" _delta="define">
<rank>160</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="OtherSoftware" _delta="must_exist">
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>150</rank>
</item>
<item id="services_list" _delta="define">
<rank>160</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="MiddlewareInstance" _delta="must_exist">
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>110</rank>
</item>
<item id="services_list" _delta="define">
<rank>120</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="DatabaseSchema" _delta="must_exist">
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>110</rank>
</item>
<item id="services_list" _delta="define">
<rank>120</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="WebApplication" _delta="must_exist">
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>120</rank>
</item>
<item id="services_list" _delta="define">
<rank>130</rank>
</item>
</items>
</details>
</presentation>
</class>
</classes>
<menus>
</menus>
<user_rights>
<groups>
</groups>
<profiles>
</profiles>
</user_rights>
<db_table>lnkfunctionalcitoticket</db_table>
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<attributes>
<attribute id="ticket_id"/>
<attribute id="functionalci_id"/>
</attributes>
</naming>
<icon/>
<reconciliation>
<attributes>
<attribute id="ticket_id"/>
<attribute id="functionalci_id"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field id="ticket_id" xsi:type="AttributeExternalKey">
<sql>ticket_id</sql>
<target_class>Ticket</target_class>
<is_null_allowed>false</is_null_allowed>
<on_target_delete>DEL_AUTO</on_target_delete>
</field>
<field id="ticket_ref" xsi:type="AttributeExternalField">
<extkey_attcode>ticket_id</extkey_attcode>
<target_attcode>ref</target_attcode>
</field>
<field id="ticket_title" xsi:type="AttributeExternalField">
<extkey_attcode>ticket_id</extkey_attcode>
<target_attcode>title</target_attcode>
</field>
<field id="functionalci_id" xsi:type="AttributeExternalKey">
<sql>functionalci_id</sql>
<target_class>FunctionalCI</target_class>
<is_null_allowed>false</is_null_allowed>
<on_target_delete>DEL_AUTO</on_target_delete>
</field>
<field id="functionalci_name" xsi:type="AttributeExternalField">
<extkey_attcode>functionalci_id</extkey_attcode>
<target_attcode>name</target_attcode>
</field>
<field id="impact" xsi:type="AttributeString">
<sql>impact</sql>
<default_value/>
<is_null_allowed>true</is_null_allowed>
</field>
<field id="impact_code" xsi:type="AttributeEnum">
<values>
<value id="manual">manual</value>
<value id="computed">computed</value>
<value id="not_impacted">not_impacted</value>
</values>
<sql>impact_code</sql>
<default_value>manual</default_value>
<is_null_allowed>false</is_null_allowed>
<display_style>list</display_style>
</field>
</fields>
<methods/>
<presentation>
<details>
<items>
<item id="ticket_id">
<rank>10</rank>
</item>
<item id="functionalci_id">
<rank>20</rank>
</item>
<item id="impact_code">
<rank>30</rank>
</item>
</items>
</details>
<search>
<items>
<item id="ticket_id">
<rank>10</rank>
</item>
<item id="functionalci_id">
<rank>20</rank>
</item>
<item id="impact_code">
<rank>30</rank>
</item>
</items>
</search>
<list>
<items>
<item id="ticket_id">
<rank>10</rank>
</item>
<item id="functionalci_id">
<rank>20</rank>
</item>
<item id="impact_code">
<rank>30</rank>
</item>
</items>
</list>
</presentation>
</class>
<class id="lnkFunctionalCIToProviderContract" _delta="define">
<parent>cmdbAbstractObject</parent>
<properties>
<is_link>1</is_link>
<category>bizmodel</category>
<abstract>false</abstract>
<key_type>autoincrement</key_type>
<db_table>lnkfunctionalcitoprovidercontract</db_table>
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<attributes>
<attribute id="providercontract_id"/>
<attribute id="functionalci_id"/>
</attributes>
</naming>
<icon/>
<reconciliation>
<attributes>
<attribute id="providercontract_id"/>
<attribute id="functionalci_id"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field id="providercontract_id" xsi:type="AttributeExternalKey">
<sql>providercontract_id</sql>
<target_class>ProviderContract</target_class>
<is_null_allowed>false</is_null_allowed>
<on_target_delete>DEL_AUTO</on_target_delete>
</field>
<field id="providercontract_name" xsi:type="AttributeExternalField">
<extkey_attcode>providercontract_id</extkey_attcode>
<target_attcode>name</target_attcode>
</field>
<field id="functionalci_id" xsi:type="AttributeExternalKey">
<sql>functionalci_id</sql>
<target_class>FunctionalCI</target_class>
<is_null_allowed>false</is_null_allowed>
<on_target_delete>DEL_AUTO</on_target_delete>
</field>
<field id="functionalci_name" xsi:type="AttributeExternalField">
<extkey_attcode>functionalci_id</extkey_attcode>
<target_attcode>name</target_attcode>
</field>
</fields>
<methods/>
<presentation>
<details>
<items>
<item id="providercontract_id">
<rank>10</rank>
</item>
<item id="functionalci_id">
<rank>20</rank>
</item>
</items>
</details>
<search>
<items>
<item id="providercontract_id">
<rank>10</rank>
</item>
<item id="functionalci_id">
<rank>20</rank>
</item>
</items>
</search>
<list>
<items>
<item id="providercontract_id">
<rank>10</rank>
</item>
<item id="functionalci_id">
<rank>20</rank>
</item>
</items>
</list>
</presentation>
</class>
<class id="lnkFunctionalCIToService" _delta="define">
<parent>cmdbAbstractObject</parent>
<properties>
<is_link>1</is_link>
<category>bizmodel</category>
<abstract>false</abstract>
<key_type>autoincrement</key_type>
<db_table>lnkfunctionalcitoservice</db_table>
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<attributes>
<attribute id="service_id"/>
<attribute id="functionalci_id"/>
</attributes>
</naming>
<icon/>
<reconciliation>
<attributes>
<attribute id="service_id"/>
<attribute id="functionalci_id"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field id="service_id" xsi:type="AttributeExternalKey">
<sql>service_id</sql>
<target_class>Service</target_class>
<is_null_allowed>false</is_null_allowed>
<on_target_delete>DEL_AUTO</on_target_delete>
</field>
<field id="service_name" xsi:type="AttributeExternalField">
<extkey_attcode>service_id</extkey_attcode>
<target_attcode>name</target_attcode>
</field>
<field id="functionalci_id" xsi:type="AttributeExternalKey">
<sql>functionalci_id</sql>
<target_class>FunctionalCI</target_class>
<is_null_allowed>false</is_null_allowed>
<on_target_delete>DEL_AUTO</on_target_delete>
</field>
<field id="functionalci_name" xsi:type="AttributeExternalField">
<extkey_attcode>functionalci_id</extkey_attcode>
<target_attcode>name</target_attcode>
</field>
</fields>
<methods/>
<presentation>
<details>
<items>
<item id="service_id">
<rank>10</rank>
</item>
<item id="functionalci_id">
<rank>20</rank>
</item>
</items>
</details>
<search>
<items>
<item id="service_id">
<rank>10</rank>
</item>
<item id="functionalci_id">
<rank>20</rank>
</item>
</items>
</search>
<list>
<items>
<item id="service_id">
<rank>10</rank>
</item>
<item id="functionalci_id">
<rank>20</rank>
</item>
</items>
</list>
</presentation>
</class>
<class id="FunctionalCI" _delta="must_exist">
<fields>
<field id="providercontracts_list" xsi:type="AttributeLinkedSetIndirect" _delta="define">
<linked_class>lnkFunctionalCIToProviderContract</linked_class>
<ext_key_to_me>functionalci_id</ext_key_to_me>
<count_min>0</count_min>
<count_max>0</count_max>
<ext_key_to_remote>providercontract_id</ext_key_to_remote>
<duplicates/>
</field>
<field id="services_list" xsi:type="AttributeLinkedSetIndirect" _delta="define">
<linked_class>lnkFunctionalCIToService</linked_class>
<ext_key_to_me>functionalci_id</ext_key_to_me>
<count_min>0</count_min>
<count_max>0</count_max>
<ext_key_to_remote>service_id</ext_key_to_remote>
<duplicates/>
</field>
<field id="tickets_list" xsi:type="AttributeLinkedSetIndirect" _delta="define">
<linked_class>lnkFunctionalCIToTicket</linked_class>
<ext_key_to_me>functionalci_id</ext_key_to_me>
<count_min>0</count_min>
<count_max>0</count_max>
<ext_key_to_remote>ticket_id</ext_key_to_remote>
<duplicates/>
</field>
</fields>
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>100</rank>
</item>
<item id="services_list" _delta="define">
<rank>110</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="NetworkDevice" _delta="must_exist">
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>60</rank>
</item>
<item id="services_list" _delta="define">
<rank>70</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="Server" _delta="must_exist">
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>100</rank>
</item>
<item id="services_list" _delta="define">
<rank>110</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="ApplicationSolution" _delta="must_exist">
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>120</rank>
</item>
<item id="services_list" _delta="define">
<rank>130</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="Middleware" _delta="must_exist">
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>160</rank>
</item>
<item id="services_list" _delta="define">
<rank>170</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="DBServer" _delta="must_exist">
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>160</rank>
</item>
<item id="services_list" _delta="define">
<rank>170</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="WebServer" _delta="must_exist">
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>160</rank>
</item>
<item id="services_list" _delta="define">
<rank>170</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="PCSoftware" _delta="must_exist">
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>150</rank>
</item>
<item id="services_list" _delta="define">
<rank>160</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="OtherSoftware" _delta="must_exist">
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>150</rank>
</item>
<item id="services_list" _delta="define">
<rank>160</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="MiddlewareInstance" _delta="must_exist">
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>110</rank>
</item>
<item id="services_list" _delta="define">
<rank>120</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="DatabaseSchema" _delta="must_exist">
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>110</rank>
</item>
<item id="services_list" _delta="define">
<rank>120</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="WebApplication" _delta="must_exist">
<presentation>
<details>
<items>
<item id="providercontracts_list" _delta="define">
<rank>120</rank>
</item>
<item id="services_list" _delta="define">
<rank>130</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="DocumentFile" _delta="must_exist">
<presentation>
<details>
<items>
<item id="cis_list" _delta="define">
<rank>70</rank>
</item>
<item id="contracts_list" _delta="define">
<rank>80</rank>
</item>
<item id="services_list" _delta="define">
<rank>90</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="Location" _delta="must_exist">
<presentation>
<details>
<items>
<item id="physicaldevice_list" _delta="define">
<rank>90</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="DocumentWeb" _delta="must_exist">
<presentation>
<details>
<items>
<item id="cis_list" _delta="define">
<rank>60</rank>
</item>
<item id="contracts_list" _delta="define">
<rank>70</rank>
</item>
<item id="services_list" _delta="define">
<rank>80</rank>
</item>
</items>
</details>
</presentation>
</class>
<class id="DocumentNote" _delta="must_exist">
<presentation>
<details>
<items>
<item id="cis_list" _delta="define">
<rank>70</rank>
</item>
<item id="contracts_list" _delta="define">
<rank>80</rank>
</item>
<item id="services_list" _delta="define">
<rank>90</rank>
</item>
</items>
</details>
</presentation>
</class>
</classes>
<menus>
</menus>
<user_rights>
<groups>
</groups>
<profiles>
</profiles>
</user_rights>
</itop_design>

View File

@@ -1519,10 +1519,6 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array(
'Server:moreinfo' => 'Více informací',
'Server:otherinfo' => 'Další informace',
'Server:power' => 'Napájení',
'Person:info' => 'Obecné informace',
'UserLocal:info' => 'General information~~',
'Person:personal_info' => 'Personal information~~',
'Person:notifiy' => 'Upozornění',
'Class:Subnet/Tab:IPUsage' => 'Využití IP',
'Class:Subnet/Tab:IPUsage-explain' => 'Rozhraní, která mají IP adresu v rozsahu: <em>%1$s</em>-<em>%2$s</em>',
'Class:Subnet/Tab:FreeIPs' => 'Volné IP adresy',
@@ -1540,8 +1536,6 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array(
'Menu:Application+' => 'Všechny aplikace',
'Menu:DBServer' => 'Databázové servery',
'Menu:DBServer+' => 'Databázové servery',
'Menu:ConfigManagementCI' => 'Konfigurační položky',
'Menu:ConfigManagementCI+' => 'Konfigurační položky',
'Menu:BusinessProcess' => 'Obchodní procesy',
'Menu:BusinessProcess+' => 'Všechny obchodní procesy',
'Menu:ApplicationSolution' => 'Aplikační řešení',

View File

@@ -1515,10 +1515,6 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Server:moreinfo' => 'Yderligere Information',
'Server:otherinfo' => 'Øvrig Information',
'Server:power' => 'Power supply~~',
'Person:info' => 'Almindelig Information',
'UserLocal:info' => 'General information~~',
'Person:personal_info' => 'Personal information~~',
'Person:notifiy' => 'Underretning',
'Class:Subnet/Tab:IPUsage' => 'IP Brug',
'Class:Subnet/Tab:IPUsage-explain' => 'Interfaces der har en IP i området: <em>%1$s</em> til <em>%2$s</em>',
'Class:Subnet/Tab:FreeIPs' => 'Ledige IP',
@@ -1536,8 +1532,6 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Menu:Application+' => 'Alle Anvendelser',
'Menu:DBServer' => 'Database server',
'Menu:DBServer+' => 'Database server',
'Menu:ConfigManagementCI' => 'Configuration Items',
'Menu:ConfigManagementCI+' => 'Configuration Items',
'Menu:BusinessProcess' => 'Forretnings proces',
'Menu:BusinessProcess+' => 'Alle forretnings processer',
'Menu:ApplicationSolution' => 'Applikations løsning',

View File

@@ -1518,10 +1518,6 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Server:moreinfo' => 'Weitere Informationen',
'Server:otherinfo' => 'Sonstige Informationen',
'Server:power' => 'Stromversorgung',
'Person:info' => 'Allgemeine Informationen',
'UserLocal:info' => 'Allgemeine Informationen',
'Person:personal_info' => 'Persönliche Informationen',
'Person:notifiy' => 'Benachrichtigungen',
'Class:Subnet/Tab:IPUsage' => 'IP-Nutzung',
'Class:Subnet/Tab:IPUsage-explain' => 'Interfaces mit einer IP in der Range: <em>%1$s</em> bis <em>%2$s</em>',
'Class:Subnet/Tab:FreeIPs' => 'Freie IPs',
@@ -1539,8 +1535,6 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Menu:Application+' => 'Alle Anwendungen',
'Menu:DBServer' => 'Datenbank-Server',
'Menu:DBServer+' => 'Datenbank-Server',
'Menu:ConfigManagementCI' => 'Configuration Items',
'Menu:ConfigManagementCI+' => 'Configuration Items',
'Menu:BusinessProcess' => 'Business-Prozesse',
'Menu:BusinessProcess+' => 'Alle Business-Prozesse',
'Menu:ApplicationSolution' => 'Anwendungslösungen',

View File

@@ -1503,10 +1503,6 @@ Dict::Add('EN US', 'English', 'English', array(
'Server:moreinfo' => 'More information',
'Server:otherinfo' => 'Other information',
'Server:power' => 'Power supply',
'Person:info' => 'General information',
'UserLocal:info' => 'General information',
'Person:personal_info' => 'Personal information',
'Person:notifiy' => 'Notification',
'Class:Subnet/Tab:IPUsage' => 'IP Usage',
'Class:Subnet/Tab:IPUsage-explain' => 'Interfaces having an IP in the range: <em>%1$s</em> to <em>%2$s</em>',
'Class:Subnet/Tab:FreeIPs' => 'Free IPs',
@@ -1542,8 +1538,6 @@ Dict::Add('EN US', 'English', 'English', array(
'Menu:Application+' => 'All applications',
'Menu:DBServer' => 'Database servers',
'Menu:DBServer+' => 'Database servers',
'Menu:ConfigManagementCI' => 'Configuration items',
'Menu:ConfigManagementCI+' => 'Configuration items',
'Menu:BusinessProcess' => 'Business processes',
'Menu:BusinessProcess+' => 'All business processes',
'Menu:ApplicationSolution' => 'Application solutions',

View File

@@ -1520,10 +1520,6 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array(
'Server:moreinfo' => 'Más Información',
'Server:otherinfo' => 'Otra Información',
'Server:power' => 'Fuente de Poder',
'Person:info' => 'Información General',
'UserLocal:info' => 'Información General',
'Person:personal_info' => 'Información Personal',
'Person:notifiy' => 'Notificación',
'Class:Subnet/Tab:IPUsage' => 'Uso de IP',
'Class:Subnet/Tab:IPUsage-explain' => 'Interfases con IP en el rango: <em>%1$s</em> a <em>%2$s</em>',
'Class:Subnet/Tab:FreeIPs' => 'IPs Libres',
@@ -1541,8 +1537,6 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array(
'Menu:Application+' => 'Aplicaciones/Programas',
'Menu:DBServer' => 'Servidores de Base de Datos',
'Menu:DBServer+' => 'Servidores de Base de Datos',
'Menu:ConfigManagementCI' => 'Elementos de Configuración',
'Menu:ConfigManagementCI+' => 'Elementos de Confirguración',
'Menu:BusinessProcess' => 'Proceso de Negocio',
'Menu:BusinessProcess+' => 'Proceso de Negocios',
'Menu:ApplicationSolution' => 'Solución Aplicativa',

View File

@@ -1454,10 +1454,6 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Server:moreinfo' => 'Informations complémentaires',
'Server:otherinfo' => 'Autres informations',
'Server:power' => 'Alimentation électrique',
'Person:info' => 'Informations générales',
'UserLocal:info' => 'Informations générales',
'Person:personal_info' => 'Informations personnelles',
'Person:notifiy' => 'Notification',
'Class:Subnet/Tab:IPUsage' => 'IP utilisées',
'Class:Subnet/Tab:IPUsage-explain' => 'Interfaces ayant une IP dans la plage: <em>%1$s</em> à <em>%2$s</em>',
'Class:Subnet/Tab:FreeIPs' => 'IP disponibles',
@@ -1547,8 +1543,6 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Menu:Application+' => 'Tous les logiciels',
'Menu:DBServer' => 'Serveur de base de données',
'Menu:DBServer+' => '',
'Menu:ConfigManagementCI' => 'CIs',
'Menu:ConfigManagementCI+' => 'CIs',
'Menu:BusinessProcess' => 'Processus métier',
'Menu:BusinessProcess+' => 'Tous les processus métiers',
'Menu:ApplicationSolution' => 'Solutions applicatives',

View File

@@ -1512,10 +1512,6 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
'Server:moreinfo' => 'More information~~',
'Server:otherinfo' => 'Other information~~',
'Server:power' => 'Power supply~~',
'Person:info' => 'General information~~',
'UserLocal:info' => 'General information~~',
'Person:personal_info' => 'Personal information~~',
'Person:notifiy' => 'Notification~~',
'Class:Subnet/Tab:IPUsage' => 'IP felhasználás',
'Class:Subnet/Tab:IPUsage-explain' => 'Interfészek a következő tartományba esnek: <em>%1$s</em> - <em>%2$s</em>',
'Class:Subnet/Tab:FreeIPs' => 'Szabad IP-k',
@@ -1533,8 +1529,6 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
'Menu:Application+' => '',
'Menu:DBServer' => 'Adatbázis szerverek',
'Menu:DBServer+' => '',
'Menu:ConfigManagementCI' => 'Konfigurációs elemek (CI)',
'Menu:ConfigManagementCI+' => '',
'Menu:BusinessProcess' => 'Üzleti folyamatok',
'Menu:BusinessProcess+' => '',
'Menu:ApplicationSolution' => 'Egyedi alkalmazások',

View File

@@ -1306,8 +1306,6 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array(
'Class:IPInterface+' => '~~',
'Class:IPInterface/Attribute:ipaddress' => 'IP address~~',
'Class:IPInterface/Attribute:ipaddress+' => '~~',
'Class:IPInterface/Attribute:macaddress' => 'MAC address~~',
'Class:IPInterface/Attribute:macaddress+' => '~~',
'Class:IPInterface/Attribute:comment' => 'Comment~~',
@@ -1515,10 +1513,6 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array(
'Server:moreinfo' => 'More information~~',
'Server:otherinfo' => 'Other information~~',
'Server:power' => 'Power supply~~',
'Person:info' => 'General information~~',
'UserLocal:info' => 'General information~~',
'Person:personal_info' => 'Personal information~~',
'Person:notifiy' => 'Notification~~',
'Class:Subnet/Tab:IPUsage' => 'Utilizzo IP',
'Class:Subnet/Tab:IPUsage-explain' => 'Iterfacce che hanno un IP nell\'intervallo: <em>%1$s</em> e <em>%2$s</em>',
'Class:Subnet/Tab:FreeIPs' => 'IP liberi',
@@ -1536,8 +1530,6 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array(
'Menu:Application+' => 'Tutte le applicazioni',
'Menu:DBServer' => 'Database Servers',
'Menu:DBServer+' => 'Database Servers',
'Menu:ConfigManagementCI' => 'Elementi di Configurazione (CI)',
'Menu:ConfigManagementCI+' => 'Elementi di Configurazione (CI)',
'Menu:BusinessProcess' => 'Processi di business',
'Menu:BusinessProcess+' => 'Tutti i processi di business',
'Menu:ApplicationSolution' => 'Soluzioni applicative',

View File

@@ -1515,10 +1515,6 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Server:moreinfo' => '追加情報',
'Server:otherinfo' => '他の情報',
'Server:power' => 'Power supply~~',
'Person:info' => '情報',
'UserLocal:info' => 'General information~~',
'Person:personal_info' => 'Personal information~~',
'Person:notifiy' => '通知',
'Class:Subnet/Tab:IPUsage' => 'IP 利用',
'Class:Subnet/Tab:IPUsage-explain' => 'インターフェースは、レンジ: <em>%1$s</em> から <em>%2$s</em>の中のIPを持っています。',
'Class:Subnet/Tab:FreeIPs' => 'フリーなIP',
@@ -1536,8 +1532,6 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Menu:Application+' => '全アプリケーション',
'Menu:DBServer' => 'DBサーバ',
'Menu:DBServer+' => 'DBサーバ',
'Menu:ConfigManagementCI' => '構成管理項目',
'Menu:ConfigManagementCI+' => '構成管理項目',
'Menu:BusinessProcess' => 'ビジネスプロセス',
'Menu:BusinessProcess+' => '全ビジネスプロセス',
'Menu:ApplicationSolution' => 'アプリケーションソリューション',

View File

@@ -1527,10 +1527,6 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Server:moreinfo' => 'Meer informatie',
'Server:otherinfo' => 'Andere informatie',
'Server:power' => 'Stroomtoevoer',
'Person:info' => 'Globale informatie',
'UserLocal:info' => 'Globale informatie',
'Person:personal_info' => 'Persoonlijke informatie',
'Person:notifiy' => 'Notificeer',
'Class:Subnet/Tab:IPUsage' => 'IP-gebruik',
'Class:Subnet/Tab:IPUsage-explain' => 'Interfaces met een IP-adres in de reeks: <em>%1$s</em> tot en met <em>%2$s</em>',
'Class:Subnet/Tab:FreeIPs' => 'Beschikbare IP-adressen',
@@ -1548,8 +1544,6 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Menu:Application+' => 'Alle applicaties',
'Menu:DBServer' => 'Databaseservers',
'Menu:DBServer+' => 'Databaseservers',
'Menu:ConfigManagementCI' => 'Configuratie-items',
'Menu:ConfigManagementCI+' => 'Configuratie-items',
'Menu:BusinessProcess' => 'Bedrijfsprocessen',
'Menu:BusinessProcess+' => 'Alle bedrijfsprocessen',
'Menu:ApplicationSolution' => 'Applicatie-oplossing',

View File

@@ -1520,10 +1520,6 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
'Server:moreinfo' => 'Mais informações',
'Server:otherinfo' => 'Outras informações',
'Server:power' => 'Fonte de alimentação',
'Person:info' => 'Informações gerais',
'UserLocal:info' => 'General information~~',
'Person:personal_info' => 'Informação pessoal',
'Person:notifiy' => 'Notificação',
'Class:Subnet/Tab:IPUsage' => 'IP usado',
'Class:Subnet/Tab:IPUsage-explain' => 'Placas de rede contendo IP na faixa: <em>%1$s</em> para <em>%2$s</em>',
'Class:Subnet/Tab:FreeIPs' => 'IPs livres',
@@ -1541,8 +1537,6 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
'Menu:Application+' => 'Todas aplicações',
'Menu:DBServer' => 'Serviços Banco de Dados',
'Menu:DBServer+' => 'Serviços Banco de Dados',
'Menu:ConfigManagementCI' => 'Itens de configuração',
'Menu:ConfigManagementCI+' => 'Itens de configuração',
'Menu:BusinessProcess' => 'Processos de negócios',
'Menu:BusinessProcess+' => 'Todos processos de negócios',
'Menu:ApplicationSolution' => 'Solução aplicação',

View File

@@ -1505,10 +1505,6 @@ Dict::Add('RU RU', 'Russian', 'Русский', array(
'Server:moreinfo' => 'Спецификация',
'Server:otherinfo' => 'Дополнительно',
'Server:power' => 'Электропитание',
'Person:info' => 'Основная информация',
'UserLocal:info' => 'Основная информация',
'Person:personal_info' => 'Личная информация',
'Person:notifiy' => 'Уведомления',
'Class:Subnet/Tab:IPUsage' => 'Использование IP-адресов',
'Class:Subnet/Tab:IPUsage-explain' => 'Интерфейсы с IP-адресом в диапазоне: <em>%1$s</em> - <em>%2$s</em>',
'Class:Subnet/Tab:FreeIPs' => 'Свободные IP-адреса',
@@ -1526,8 +1522,6 @@ Dict::Add('RU RU', 'Russian', 'Русский', array(
'Menu:Application+' => 'Все приложения',
'Menu:DBServer' => 'Серверы баз данных',
'Menu:DBServer+' => 'Серверы баз данных',
'Menu:ConfigManagementCI' => 'Конфигурационные единицы',
'Menu:ConfigManagementCI+' => 'Конфигурационные единицы',
'Menu:BusinessProcess' => 'Бизнес-процессы',
'Menu:BusinessProcess+' => 'Все бизнес-процессы',
'Menu:ApplicationSolution' => 'Прикладные решения',

View File

@@ -1519,10 +1519,6 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Server:moreinfo' => 'Viac informácií',
'Server:otherinfo' => 'Iné informácie',
'Server:power' => 'Power supply~~',
'Person:info' => 'Všeobecné informácie',
'UserLocal:info' => 'General information~~',
'Person:personal_info' => 'Personal information~~',
'Person:notifiy' => 'Upozornenie',
'Class:Subnet/Tab:IPUsage' => 'Využívanosť IP adries',
'Class:Subnet/Tab:IPUsage-explain' => 'Rozhrania majúce IP adresu v rozsahu: <em>%1$s</em> do <em>%2$s</em>',
'Class:Subnet/Tab:FreeIPs' => 'Voľné IP adresy',
@@ -1540,8 +1536,6 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Menu:Application+' => '',
'Menu:DBServer' => 'Databázové servery',
'Menu:DBServer+' => '',
'Menu:ConfigManagementCI' => 'Konfiguračné položky',
'Menu:ConfigManagementCI+' => '',
'Menu:BusinessProcess' => 'Biznisové procesy',
'Menu:BusinessProcess+' => '',
'Menu:ApplicationSolution' => 'Aplikačné riešenia',

View File

@@ -1521,10 +1521,6 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
'Server:moreinfo' => 'More information~~',
'Server:otherinfo' => 'Other information~~',
'Server:power' => 'Power supply~~',
'Person:info' => 'General information~~',
'UserLocal:info' => 'General information~~',
'Person:personal_info' => 'Personal information~~',
'Person:notifiy' => 'Notification~~',
'Class:Subnet/Tab:IPUsage' => 'IP Kullanımı',
'Class:Subnet/Tab:IPUsage-explain' => '<em>%1$s</em> - <em>%2$s</em> aralığındaki IPye sahip arayüzler',
'Class:Subnet/Tab:FreeIPs' => 'Boş IPler',
@@ -1542,8 +1538,6 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
'Menu:Application+' => 'Tüm Uygulamalar',
'Menu:DBServer' => 'Veritabanı sunucuları',
'Menu:DBServer+' => 'Veritabanı sunucuları',
'Menu:ConfigManagementCI' => 'Konfigürasyon Kalemleri',
'Menu:ConfigManagementCI+' => 'Konfigürasyon Kalemleri',
'Menu:BusinessProcess' => 'İş süreçleri',
'Menu:BusinessProcess+' => 'Tüm İş süreçleri',
'Menu:ApplicationSolution' => 'Uygulama çözümleri',

View File

@@ -1520,10 +1520,6 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Server:moreinfo' => '更多信息',
'Server:otherinfo' => '其它信息',
'Server:power' => '电力供应',
'Person:info' => '基本信息',
'UserLocal:info' => 'General information~~',
'Person:personal_info' => '个人信息',
'Person:notifiy' => '通知',
'Class:Subnet/Tab:IPUsage' => 'IP 使用率',
'Class:Subnet/Tab:IPUsage-explain' => '网卡IP范围: <em>%1$s</em> 到 <em>%2$s</em>',
'Class:Subnet/Tab:FreeIPs' => '空闲 IP',
@@ -1537,8 +1533,6 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Menu:Application+' => '所有应用',
'Menu:DBServer' => '数据库服务器',
'Menu:DBServer+' => '数据库服务器',
'Menu:ConfigManagementCI' => '配置项',
'Menu:ConfigManagementCI+' => '配置项',
'Menu:BusinessProcess' => '业务流程',
'Menu:BusinessProcess+' => '所有业务流程',
'Menu:ApplicationSolution' => '应用方案',

View File

@@ -103,7 +103,7 @@ class FilesIntegrity
$sChecksum = md5($sContent);
if (($iSize != $aFileInfo['size']) || ($sChecksum != $aFileInfo['md5']))
{
throw new FileIntegrityException(Dict::Format('FilesInformation:Error:CorruptedFile', basename($sFile)));
throw new FileIntegrityException(Dict::Format('FilesInformation:Error:CorruptedFile', $sFile));
}
}
// Packed with missing files...

View File

@@ -330,6 +330,8 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array(
'Menu:Organization+' => 'Všechny organizace',
'Menu:ConfigManagement' => 'Správa konfigurací',
'Menu:ConfigManagement+' => 'Správa konfigurací',
'Menu:ConfigManagementCI' => 'Konfigurační položky',
'Menu:ConfigManagementCI+' => 'Konfigurační položky',
'Menu:ConfigManagementOverview' => 'Přehled',
'Menu:ConfigManagementOverview+' => 'Přehled',
'Menu:Contact' => 'Kontakty',
@@ -355,4 +357,12 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array(
'Menu:ConfigManagement:Typology' => 'Konfigurace typologie',
));
// Add translation for Fieldsets
Dict::Add('CS CZ', 'Czech', 'Čeština', array(
'Person:info' => 'Obecné informace',
'UserLocal:info' => 'General information~~',
'Person:personal_info' => 'Personal information~~',
'Person:notifiy' => 'Upozornění',
));
?>

View File

@@ -318,6 +318,8 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Menu:Organization+' => 'Alle Organisationer',
'Menu:ConfigManagement' => 'Configuration Management',
'Menu:ConfigManagement+' => 'Configuration Management',
'Menu:ConfigManagementCI' => 'Configuration Items',
'Menu:ConfigManagementCI+' => 'Configuration Items',
'Menu:ConfigManagementOverview' => 'Oversigt',
'Menu:ConfigManagementOverview+' => 'Oversigt',
'Menu:Contact' => 'Kontakt',
@@ -342,4 +344,14 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'UI_WelcomeMenu_AllConfigItems' => 'Sammenfatning',
'Menu:ConfigManagement:Typology' => 'Typologi Konfiguration',
));
// Add translation for Fieldsets
Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Person:info' => 'Almindelig Information',
'UserLocal:info' => 'General information~~',
'Person:personal_info' => 'Personal information~~',
'Person:notifiy' => 'Underretning',
));
?>

File diff suppressed because it is too large Load Diff

View File

@@ -329,6 +329,8 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Menu:Organization+' => 'Alle Organisationen',
'Menu:ConfigManagement' => 'Configuration Management',
'Menu:ConfigManagement+' => 'Configuration Management',
'Menu:ConfigManagementCI' => 'Configuration Items',
'Menu:ConfigManagementCI+' => 'Configuration Items',
'Menu:ConfigManagementOverview' => 'Übersicht',
'Menu:ConfigManagementOverview+' => 'Übersicht',
'Menu:Contact' => 'Kontakte',
@@ -354,4 +356,15 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Menu:ConfigManagement:Typology' => 'Typologie-Konfiguration',
));
//
// Add translation for Fieldsets
//
Dict::Add('DE DE', 'German', 'Deutsch', array(
'Person:info' => 'Allgemeine Informationen',
'UserLocal:info' => 'Allgemeine Informationen',
'Person:personal_info' => 'Persönliche Informationen',
'Person:notifiy' => 'Benachrichtigungen',
));
?>

View File

@@ -352,6 +352,8 @@ Dict::Add('EN US', 'English', 'English', array(
'Menu:Organization+' => 'All organizations',
'Menu:ConfigManagement' => 'Configuration Management',
'Menu:ConfigManagement+' => 'Configuration Management',
'Menu:ConfigManagementCI' => 'Configuration items',
'Menu:ConfigManagementCI+' => 'Configuration items',
'Menu:ConfigManagementOverview' => 'Overview',
'Menu:ConfigManagementOverview+' => 'Overview',
'Menu:Contact' => 'Contacts',
@@ -377,3 +379,11 @@ Dict::Add('EN US', 'English', 'English', array(
'Menu:ConfigManagement:Typology' => 'Typology configuration',
));
// Add translation for Fieldsets
Dict::Add('EN US', 'English', 'English', array(
'Person:info' => 'General information',
'UserLocal:info' => 'General information',
'Person:personal_info' => 'Personal information',
'Person:notifiy' => 'Notification',
));

View File

@@ -323,6 +323,8 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array(
'Menu:Organization+' => 'Organizaciones',
'Menu:ConfigManagement' => 'Administración de la Configuración',
'Menu:ConfigManagement+' => 'Administración de la Configuración',
'Menu:ConfigManagementCI' => 'Elementos de Configuración',
'Menu:ConfigManagementCI+' => 'Elementos de Confirguración',
'Menu:ConfigManagementOverview' => 'Resumen de Infraestructura',
'Menu:ConfigManagementOverview+' => 'Resumen de Infraestructura',
'Menu:Contact' => 'Contactos',
@@ -349,3 +351,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array(
));
//
// Add translation for Fieldsets
//
Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array(
'Person:info' => 'Información General',
'UserLocal:info' => 'Información General',
'Person:personal_info' => 'Información Personal',
'Person:notifiy' => 'Notificación',
));

View File

@@ -355,6 +355,8 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Menu:Organization+' => 'Toutes les organisations',
'Menu:ConfigManagement' => 'Gestion des configurations',
'Menu:ConfigManagement+' => 'Gestion des configurations',
'Menu:ConfigManagementCI' => 'CIs',
'Menu:ConfigManagementCI+' => 'CIs',
'Menu:ConfigManagementOverview' => 'Tableaux de bord',
'Menu:ConfigManagementOverview+' => 'Tableaux de bord',
'Menu:Contact' => 'Contacts',
@@ -380,3 +382,11 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Menu:ConfigManagement:Typology' => 'Configuration des typologies',
));
// Add translation for Fieldsets
Dict::Add('FR FR', 'French', 'Français', array(
'Person:info' => 'Informations générales',
'UserLocal:info' => 'Informations générales',
'Person:personal_info' => 'Informations personnelles',
'Person:notifiy' => 'Notification',
));

View File

@@ -321,6 +321,8 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
'Menu:Organization+' => '',
'Menu:ConfigManagement' => 'Konfiguráció menedzsment',
'Menu:ConfigManagement+' => '',
'Menu:ConfigManagementCI' => 'Konfigurációs elemek (CI)',
'Menu:ConfigManagementCI+' => '',
'Menu:ConfigManagementOverview' => 'Áttekintő',
'Menu:ConfigManagementOverview+' => '',
'Menu:Contact' => 'Kapcsolattartók',
@@ -345,4 +347,16 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
'UI_WelcomeMenu_AllConfigItems' => 'Summary~~',
'Menu:ConfigManagement:Typology' => 'Typology configuration~~',
));
//
// Add translation for Fieldsets
//
Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
'Person:info' => 'General information~~',
'UserLocal:info' => 'General information~~',
'Person:personal_info' => 'Personal information~~',
'Person:notifiy' => 'Notification~~',
));
?>

View File

@@ -320,6 +320,8 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array(
'Menu:Organization+' => 'Tutte le organizzazioni',
'Menu:ConfigManagement' => 'Gestione delle Configurazioni',
'Menu:ConfigManagement+' => 'Gestione delle Configurazioni',
'Menu:ConfigManagementCI' => 'Elementi di Configurazione (CI)',
'Menu:ConfigManagementCI+' => 'Elementi di Configurazione (CI)',
'Menu:ConfigManagementOverview' => 'Panoramica',
'Menu:ConfigManagementOverview+' => 'Panoramica',
'Menu:Contact' => 'Contatti',
@@ -343,4 +345,16 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array(
'Menu:Typology+' => 'Typology configuration~~',
'UI_WelcomeMenu_AllConfigItems' => 'Summary~~',
'Menu:ConfigManagement:Typology' => 'Typology configuration~~',
));
//
// Add translation for Fieldsets
//
Dict::Add('IT IT', 'Italian', 'Italiano', array(
'Person:info' => 'General information~~',
'UserLocal:info' => 'General information~~',
'Person:personal_info' => 'Personal information~~',
'Person:notifiy' => 'Notification~~',
));

View File

@@ -321,6 +321,8 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Menu:Organization+' => '全組織',
'Menu:ConfigManagement' => '構成管理',
'Menu:ConfigManagement+' => '構成管理',
'Menu:ConfigManagementCI' => '構成管理項目',
'Menu:ConfigManagementCI+' => '構成管理項目',
'Menu:ConfigManagementOverview' => '概要',
'Menu:ConfigManagementOverview+' => '概要',
'Menu:Contact' => '連絡先',
@@ -344,4 +346,15 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Menu:Typology+' => 'トポロジー構成',
'UI_WelcomeMenu_AllConfigItems' => 'サマリー',
'Menu:ConfigManagement:Typology' => '分類構成',
));
//
// Add translation for Fieldsets
//
Dict::Add('JA JP', 'Japanese', '日本語', array(
'Person:info' => '情報',
'UserLocal:info' => 'General information~~',
'Person:personal_info' => 'Personal information~~',
'Person:notifiy' => '通知',
));

View File

@@ -326,6 +326,8 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Menu:Organization+' => 'Alle organisaties',
'Menu:ConfigManagement' => 'Configuratiebeheer',
'Menu:ConfigManagement+' => 'Configuratiebeheer',
'Menu:ConfigManagementCI' => 'Configuratie-items',
'Menu:ConfigManagementCI+' => 'Configuratie-items',
'Menu:ConfigManagementOverview' => 'Overzicht',
'Menu:ConfigManagementOverview+' => 'Overzicht',
'Menu:Contact' => 'Contacten',
@@ -350,3 +352,14 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'UI_WelcomeMenu_AllConfigItems' => 'Samenvatting',
'Menu:ConfigManagement:Typology' => 'Configuratie typologie',
));
//
// Add translation for Fieldsets
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Person:info' => 'Globale informatie',
'UserLocal:info' => 'Globale informatie',
'Person:personal_info' => 'Persoonlijke informatie',
'Person:notifiy' => 'Notificeer',
));

View File

@@ -320,6 +320,8 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
'Menu:Organization+' => 'Todas organizações',
'Menu:ConfigManagement' => 'Gerenciamento Configurações',
'Menu:ConfigManagement+' => 'Gerenciamento Configurações',
'Menu:ConfigManagementCI' => 'Itens de configuração',
'Menu:ConfigManagementCI+' => 'Itens de configuração',
'Menu:ConfigManagementOverview' => 'Visão geral',
'Menu:ConfigManagementOverview+' => 'Visão geral',
'Menu:Contact' => 'Contatos',
@@ -343,4 +345,15 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
'Menu:Typology+' => 'Configuração tipologia',
'UI_WelcomeMenu_AllConfigItems' => 'Índice',
'Menu:ConfigManagement:Typology' => 'Configuração tipologia',
));
//
// Add translation for Fieldsets
//
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
'Person:info' => 'Informações gerais',
'UserLocal:info' => 'General information~~',
'Person:personal_info' => 'Informação pessoal',
'Person:notifiy' => 'Notificação',
));

View File

@@ -306,6 +306,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', array(
'Menu:Organization+' => 'Все организации',
'Menu:ConfigManagement' => 'Управление конфигурациями',
'Menu:ConfigManagement+' => 'Управление конфигурациями',
'Menu:ConfigManagementCI' => 'Конфигурационные единицы',
'Menu:ConfigManagementCI+' => 'Конфигурационные единицы',
'Menu:ConfigManagementOverview' => 'Обзор',
'Menu:ConfigManagementOverview+' => 'Обзор',
'Menu:Contact' => 'Контакты',
@@ -329,4 +331,15 @@ Dict::Add('RU RU', 'Russian', 'Русский', array(
'Menu:Typology+' => 'Типология',
'UI_WelcomeMenu_AllConfigItems' => 'Все конфигурационные единицы',
'Menu:ConfigManagement:Typology' => 'Настройка типологии',
));
//
// Add translation for Fieldsets
//
Dict::Add('RU RU', 'Russian', 'Русский', array(
'Person:info' => 'Основная информация',
'UserLocal:info' => 'Основная информация',
'Person:personal_info' => 'Личная информация',
'Person:notifiy' => 'Уведомления',
));

View File

@@ -319,6 +319,8 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Menu:Organization+' => '',
'Menu:ConfigManagement' => 'Manažment konfigurácie',
'Menu:ConfigManagement+' => '',
'Menu:ConfigManagementCI' => 'Konfiguračné položky',
'Menu:ConfigManagementCI+' => '',
'Menu:ConfigManagementOverview' => 'Prehľad',
'Menu:ConfigManagementOverview+' => '',
'Menu:Contact' => 'Kontakty',
@@ -342,4 +344,15 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Menu:Typology+' => '',
'UI_WelcomeMenu_AllConfigItems' => 'Zhrnutie',
'Menu:ConfigManagement:Typology' => 'Konfiguračná typológia',
));
//
// Add translation for Fieldsets
//
Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Person:info' => 'Všeobecné informácie',
'UserLocal:info' => 'General information~~',
'Person:personal_info' => 'Personal information~~',
'Person:notifiy' => 'Upozornenie',
));

View File

@@ -321,6 +321,8 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
'Menu:Organization+' => 'Tüm Kurumlar',
'Menu:ConfigManagement' => 'Konfigürasyon Yönetimi',
'Menu:ConfigManagement+' => 'Konfigürasyon Yönetimi',
'Menu:ConfigManagementCI' => 'Konfigürasyon Kalemleri',
'Menu:ConfigManagementCI+' => 'Konfigürasyon Kalemleri',
'Menu:ConfigManagementOverview' => 'Özet',
'Menu:ConfigManagementOverview+' => 'Özet',
'Menu:Contact' => 'İrtibatlar',
@@ -345,3 +347,14 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
'UI_WelcomeMenu_AllConfigItems' => 'Summary~~',
'Menu:ConfigManagement:Typology' => 'Typology configuration~~',
));
//
// Add translation for Fieldsets
//
Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
'Person:info' => 'General information~~',
'UserLocal:info' => 'General information~~',
'Person:personal_info' => 'Personal information~~',
'Person:notifiy' => 'Notification~~',
));

View File

@@ -319,6 +319,8 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Menu:Organization+' => '所有组织',
'Menu:ConfigManagement' => '配置管理',
'Menu:ConfigManagement+' => '配置管理',
'Menu:ConfigManagementCI' => '配置项',
'Menu:ConfigManagementCI+' => '配置项',
'Menu:ConfigManagementOverview' => '概览',
'Menu:ConfigManagementOverview+' => '概览',
'Menu:Contact' => '联系人',
@@ -342,4 +344,15 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Menu:Typology+' => '类型配置',
'UI_WelcomeMenu_AllConfigItems' => '摘要',
'Menu:ConfigManagement:Typology' => '类型配置',
));
//
// Add translation for Fieldsets
//
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Person:info' => '基本信息',
'UserLocal:info' => 'General information~~',
'Person:personal_info' => '个人信息',
'Person:notifiy' => '通知',
));

View File

@@ -102,10 +102,16 @@ class CMDBSourceTest extends ItopTestCase
"enum('1','2','3') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '1'",
),
'ENUM with values containing parenthesis' => array(
true,
true, // see N°3065 : if having distinct values having parenthesis in enum values will cause comparison to be inexact
"ENUM('CSP A','CSP M','NA','OEM(ROC)','OPEN(VL)','RETAIL (Boite)') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci",
"enum('CSP A','CSP M','NA','OEM(ROC)','OPEN(VL)','RETAIL (Boite)') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci",
),
//FIXME N°3065 before the fix this returns true :(
// 'ENUM with different values, containing parenthesis' => array(
// false,
// "ENUM('value 1 (with parenthesis)','value 2') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci",
// "enum('value 1 (with parenthesis)','value 3') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci",
// ),
);
}
}

View File

@@ -24,6 +24,7 @@ use iTopDesignFormat;
* @runTestsInSeparateProcesses
* @preserveGlobalState disabled
* @backupGlobals disabled
* @group itop-community
*
* @covers iTopDesignFormat
*

View File

@@ -25,6 +25,7 @@ use iTopDesignFormat;
* @runTestsInSeparateProcesses
* @preserveGlobalState disabled
* @backupGlobals disabled
* @group itop-community
*
* @covers iTopDesignFormat
*
@@ -57,14 +58,12 @@ class iTopModulesXmlVersionIntegrationTest extends ItopTestCase
$oTransformedXml->load($sXmlFile);
$oFormat = new iTopDesignFormat($oTransformedXml);
if ($oFormat->Convert())
{
if ($oFormat->Convert()) {
// Compare the original and new format
$sExpectedXmlVersion = ITOP_DESIGN_LATEST_VERSION;
$this->assertSame($oTransformedXml->saveXML(), $oOriginalXml->saveXML(), "Datamodel file $sXmlFile:2 not in the latest format ($sExpectedXmlVersion)");
}
else
{
$this->assertSame($oTransformedXml->saveXML(), $oOriginalXml->saveXML(),
"Datamodel file $sXmlFile:2 not in the latest format ($sExpectedXmlVersion)");
} else {
$this->fail("Failed to convert $sXmlFile into the latest format");
}
}
@@ -80,8 +79,7 @@ class iTopModulesXmlVersionIntegrationTest extends ItopTestCase
$aXmlFiles[] = APPROOT.'application/datamodel.application.xml';
$aTestCases = array();
foreach ($aXmlFiles as $sXmlFile)
{
foreach ($aXmlFiles as $sXmlFile) {
$aTestCases[$sXmlFile] = array(
'sXmlFile' => $sXmlFile,
);