Compare commits

...

72 Commits

Author SHA1 Message Date
Anne-Catherine
e793b02f8b N°6766 - Fix dependent fields not updated due to WizardHelper.UpdateFields() being triggered too early (#548)
* N°6766 - Javascript : function WizardHelper.UpdateFields triggered to early does not update fields

* N°6766 - Code review

---------

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>
2023-09-26 12:25:56 +02:00
Molkobain
c6edbf982d N°6124 - Performance: Draw datatable only once when elements added in linksets 2023-04-26 11:24:34 +02:00
Molkobain
5aea7ccbc9 N°6124 - Performance: Draw datatable only once when elements remove in linksets 2023-04-26 10:33:18 +02:00
Molkobain
9d3e389011 N°6124 - Workaround performance problem on adding items to an object with an n:n relation having a large volume 2023-04-25 17:43:51 +02:00
Molkobain
46e869d1f4 N°6124 - Workaround performance problem on the modification of an object with an n:n relation having a large volume 2023-04-20 12:22:12 +02:00
Pierre Goiffon
064e8ee511 Fix AttributeDefinitionTest parse error in PHP 7.2
(cherry picked from commit 307edd3f7a)
2023-04-11 09:19:31 +02:00
Eric Espie
ca7aa482ab N°6085 - UNION is not supported in UserRightsProfile::GetSelectFilter
(cherry picked from commit 8ffddeff01)
2023-04-07 09:43:50 +02:00
Eric Espie
368b3f4ef7 N°6085 - UNION is not supported in UserRightsProfile::GetSelectFilter
(cherry picked from commit 21d37fb237)
2023-04-07 09:43:40 +02:00
Molkobain
dc8e6f314a N°6085 - UNION is not supported in UserRightsProfile::GetSelectFilter
(cherry picked from commit fca4006811)
2023-04-07 09:43:25 +02:00
Molkobain
b1fd7716f6 Fix community-licenses.xml 2023-03-14 12:08:54 +01:00
Molkobain
ac7abb3049 Prepare iTop 3.0.3 release
* Increase constants version to 3.0.3
* Increase modules version to 3.0.3
* Update licenses file
2023-03-14 09:55:18 +01:00
Pierre Goiffon
3689f3d026 Merge remote-tracking branch 'origin/support/2.7' into support/3.0
# Conflicts:
#	tests/php-unit-tests/unitary-tests/core/TriggerTest.php
2023-03-10 16:24:17 +01:00
Pierre Goiffon
5ee6223434 N°5893 Add test for \TriggerOnObject::LogException 2023-03-10 16:04:55 +01:00
Molkobain
4bfc1747b7 N°5784 - Fix AttributeOneWayPassword::HasAValue() implementation 2023-03-08 10:54:55 +01:00
Molkobain
15f32bf843 N°5784 - Fix ormPassword::IsEmpty() method 2023-03-08 10:04:59 +01:00
Molkobain
0ba386c0bc N°5784 - Rename unit test file to match convention 2023-03-08 09:47:42 +01:00
Molkobain
0c3cdb202b N°5784 - Fix ormPassword::IsEmpty() using the wrong class property 2023-03-08 09:36:52 +01:00
Molkobain
03ac3d4e7c N°5784 - Fix unit test for PHP 8.2 2023-03-08 09:34:35 +01:00
acognet
6510dc5c51 N°3805 - Collectors not working on iTop 3.0 (cherry picked from 4d7bac89f3 on origin/develop) 2023-03-07 22:58:38 +01:00
Molkobain
01faf39372 Tests: Force Synchro unit tests not to verify SSL certificate as most dev / test envs are self-signed 2023-03-07 22:50:29 +01:00
Molkobain
176e373d6c N°5530 - Fix list of impacted elements (Impact Analysis) not display correctly due to mixup in async JS files loading 2023-03-07 22:03:44 +01:00
Molkobain
a34274b883 N°5784 - PHP 8.0: Fix mandatory attribute not visible in transition form due to bad emptiness test (#379)
* N°5784 - PHP 8.0: Fix mandatory attribute not visible in transition form due to bad emptiness test

* N°5784 - Rework AttributeDefinition::HasAValue() implementation after code review

* N°5784 - Add unit test
2023-03-07 10:16:14 +01:00
Pierre Goiffon
03fb78c38c N°6068 Setup : fix no formatting on error messages 2023-03-06 14:23:21 +01:00
Stephen Abello
c9e656f7a0 N°4460 - Fix configuration editor selected line contrast in Darkmoon 2023-03-06 11:40:32 +01:00
Pierre Goiffon
976566ec71 Merge remote-tracking branch 'origin/support/2.7' into support/3.0
# Conflicts:
#	setup/setuppage.class.inc.php
2023-03-06 11:26:33 +01:00
Pierre Goiffon
d908827787 N°6016 Setup Wizard : fix MissingDependencyException message logged as html in setup.log
Was the case since e831d66b (commit for parent bug N°5090)
Now we are getting the text version in the log (and still the html one on screen)

The unattended install isn't concerned : it just prints back CheckResult returned by \SetupUtils::CheckSelectedModules, with the exception text message ($e->getMessage())
2023-03-06 11:24:46 +01:00
Denis
93c0b98eb7 N°5922 - Fix plus button semantic on ext. key widget (#448)
* N°5922 - Enhance plus button on extkeywidget

* Properly reset the target class when closing the dialog

* Make icon buttons as actual clickable links for BeHat

* Apply suggestions from code review

Review by Guillaume. Thanks!

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>
2023-03-03 14:20:38 +01:00
Stephen Abello
98ab5aa1a4 N°4460 - Fix menu drawer color in Darkmoon 2023-03-03 10:59:49 +01:00
Stephen Abello
f117a2912b N°4460 - Fix minor contrast issue in Darkmoon 2023-03-03 10:50:02 +01:00
Stephen Abello
6594072617 N°4460 - Fix import contrast in Darkmoon 2023-03-03 10:43:39 +01:00
Stephen Abello
6bed56b34e Fix csv import SCSS file 2023-03-03 10:43:17 +01:00
Stephen Abello
94e8151519 N°4460 - Fix popover menu icons and separators style in Darkmoon 2023-03-03 10:24:52 +01:00
Stephen Abello
75b350f638 N°4460 - Fix ace editor style in Darkmoon 2023-03-03 10:06:47 +01:00
Stephen Abello
14cd60dd17 Fix hardcoded white color in markup 2023-03-02 16:36:07 +01:00
Stephen Abello
08f1e5a041 N°4460 - Fix configure this list contrast in Darkmoon 2023-03-02 16:36:07 +01:00
Stephen Abello
4c117d1a33 Fix hardcoded orange in backoffice style 2023-03-02 16:36:07 +01:00
Stephen Abello
f91dfbcf23 N°4460 - Fix datamodel viewer autocomplete contrast in Darkmoon 2023-03-02 16:36:07 +01:00
Stephen Abello
58497b380b Allow to overload datamodel viewer autocomplete style 2023-03-02 16:36:07 +01:00
Stephen Abello
03bff9f2c2 N°4460 - Fix export header contrast in Darkmoon 2023-03-02 16:36:07 +01:00
Stephen Abello
a34d3f91be Fix tabular fields selector SCSS variables 2023-03-02 16:36:06 +01:00
Stephen Abello
05753f174a N°4460 - Fix "load more entries" activity panel buttons contrast in Darkmoon 2023-03-02 16:36:06 +01:00
Stephen Abello
d0c89343b4 N°4460 - Fix skeletons placeholders contrast issue in Darkmoon 2023-03-02 16:36:06 +01:00
Stephen Abello
3021234895 N°4460 - Allow to customize skeleton placeholders colors using CSS3 variables 2023-03-02 16:36:06 +01:00
Stephen Abello
bccdb1bc3a N°4460 - Fix <code> contrast in Darkmoon 2023-03-02 16:36:06 +01:00
Molkobain
143410f4cd Merge remote-tracking branch 'origin/support/2.7' into support/3.0
# Conflicts:
#	core/dbobject.class.php
2023-02-28 15:20:07 +01:00
Pierre Goiffon
4cea418517 N°5893 - Log triggers exception in CRUD stack (#390)
* Log TriggerOnObjectCreate crash

* Log TriggerOnObjectUpdate crash

* Log TriggerOnObjectDelete crash

* Factorize TriggerOnObject log

* \TriggerOnObject::LogException : do not replace not persisted yet object keys
2023-02-28 15:13:28 +01:00
Molkobain
759b1825fe N°5918 - Fix activity panel disappearing when DoCheckToWrite fails 2023-02-28 13:33:47 +01:00
Anne-Catherine
370c1345d9 N°2916 - Import of IPv6 addresses fails when reconciliation is done on the IP (#382) 2023-02-28 12:08:32 +01:00
Anne-Catherine
af8f06c8c3 N°5603 - Autocomplete fails with error for an external key pointing to an abstract class with no friendlyname (#375) 2023-02-27 16:18:36 +01:00
Pierre Goiffon
bfe55183d0 N°6023 Fix error log
Thanks @Hipska !
2023-02-27 15:09:49 +01:00
odain
939771aa15 N°6022 - Make synchro scripts work by http via token authentication with SYNCHRO scopes 2023-02-27 11:07:52 +01:00
Molkobain
b174e4cab3 N°4517 - PHP 8.1: Fix deprecated notice for null value passed to string parameter of native PHP functions 2023-02-24 22:40:17 +01:00
Molkobain
61bd8b6bb4 N°4517 - PHP 8.1: Fix deprecated notice for null value passed to string parameter of native PHP functions 2023-02-24 21:40:10 +01:00
Pierre Goiffon
5c9eb7fa38 N°6020 PHPUnit for \utils::EscapeHtml and EscapedHtmlDecode methods
This will ensure conversion back and forth is working as expected (in other words, parameters to the php functions stays the same in both methods)
2023-02-23 18:56:28 +01:00
Pierre Goiffon
e960a4ad53 N°6023 Fix cannot load SVG files in AttributeImage since 3.0.0 (#449)
Caused by merge error in ddd6bf2

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>
2023-02-23 18:38:03 +01:00
Molkobain
7aad60ed1b Merge remote-tracking branch 'origin/support/2.7' into support/3.0
# Conflicts:
#	composer.json
#	composer.lock
#	lib/composer/autoload_classmap.php
#	lib/composer/autoload_static.php
#	lib/composer/installed.php
#	lib/composer/platform_check.php
#	setup/setuputils.class.inc.php
2023-02-23 16:21:56 +01:00
Molkobain
97965277c7 N°6017 - Update OAuth dependencies 2023-02-23 15:57:32 +01:00
Pierre Goiffon
93aee5883b N°6020 New \utils::EscapedHtmlDecode method 2023-02-23 15:17:46 +01:00
Molkobain
18ed5ed526 N°6019 - Increase PHP min version to 7.1.3 to enable dependencies update 2023-02-23 14:53:48 +01:00
Pierre Goiffon
bbf6476570 Merge remote-tracking branch 'origin/support/2.7' into support/3.0 2023-02-23 12:05:38 +01:00
Pierre Goiffon
94c4f8c929 N°6016 MissingDependencyException : better log message (#355)
The error displayed on screen was already improved (see #280)
This commit improves the log message we can have for example by running unattended install.
2023-02-23 12:04:56 +01:00
Pierre Goiffon
d40cf7fe3b ReOrder LogChannels const 2023-02-23 11:52:19 +01:00
Pierre Goiffon
6997c0fd83 Merge remote-tracking branch 'origin/support/2.7' into support/3.0
# Conflicts:
#	core/log.class.inc.php
2023-02-23 11:47:49 +01:00
Pierre Goiffon
822922df5c N°5588 - Improve PDF export robustness when AttributeImage dimensions cannot be determined (#350)
Can happen for example on SVG images
Now the export won't crash anymore, and we'll get a log (export channel, warning level) with  the object and attribute causing a problem as context

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>
2023-02-23 11:45:29 +01:00
Pierre Goiffon
cb2be0eccd N°5121 New AttributeURL validation use case
In comment as it isn't handled yet
2023-02-23 11:16:50 +01:00
Pierre Goiffon
f55fc8d264 N°6014 Validation pattern for URL : now handles commas in params (#356)
Seen on PRTG URLs

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>
2023-02-23 10:59:38 +01:00
Molkobain
ea2140258c N°5317 - Handle overlapping tables when table cells have fixed widths 2023-02-22 18:57:56 +01:00
Stephen Abello
31f2666941 Merge branch 'support/2.7' into support/3.0
# Conflicts:
#	js/wizardhelper.js
2023-02-22 15:46:13 +01:00
Stephen Abello
cac7e94a67 N°5729 - Fix disabled button in bulk update/transition when picking a value in a drop-down list 2023-02-22 15:42:20 +01:00
Stephen Abello
da02a05fa3 Merge branch 'support/2.7' into support/3.0 2023-02-22 10:18:38 +01:00
Stephen Abello
6d019615d0 N°5865 - Restore DoCheckToWrite error messages in portal 2023-02-22 10:17:34 +01:00
Molkobain
ccdd315357 N°5919 - Add missing linkset descriptions in french and other languages 2023-02-21 22:14:57 +01:00
208 changed files with 3430 additions and 3918 deletions

View File

@@ -3374,13 +3374,14 @@ EOF
// Consider only the "expected" fields for the target state
if (array_key_exists($sAttCode, $aExpectedAttributes)) {
$iExpectCode = $aExpectedAttributes[$sAttCode];
// Prompt for an attribute if
// - the attribute must be changed or must be displayed to the user for confirmation
// - or the field is mandatory and currently empty
if (($iExpectCode & (OPT_ATT_MUSTCHANGE | OPT_ATT_MUSTPROMPT)) ||
(($iExpectCode & OPT_ATT_MANDATORY) && ($this->Get($sAttCode) == ''))) {
$oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode);
(($iExpectCode & OPT_ATT_MANDATORY) && (false === $this->HasAValue($sAttCode)))) {
$aArgs = array('this' => $this);
$oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode);
// If the field is mandatory, set it to the only possible value
if ((!$oAttDef->IsNullAllowed()) || ($iExpectCode & OPT_ATT_MANDATORY)) {
if ($oAttDef->IsExternalKey()) {

View File

@@ -5,6 +5,7 @@
*/
use Combodo\iTop\Application\UI\Base\Component\Form\FormUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Input\InputUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Layout\UIContentBlockUIBlockFactory;
use Combodo\iTop\Core\MetaModel\FriendlyNameType;
@@ -323,12 +324,12 @@ EOF
EOF
);
$sHTMLValue .= "<div class=\"ibo-input-select--action-buttons\">";
$sHTMLValue .= " <div class=\"ibo-input-select--action-button ibo-input-select--action-button--clear ibo-is-hidden\" id=\"mini_clear_{$this->iId}\" onClick=\"oACWidget_{$this->iId}.Clear();\" data-tooltip-content='".Dict::S('UI:Button:Clear')."'><i class=\"fas fa-times\"></i></div>";
$sHTMLValue .= " <a href=\"#\" class=\"ibo-input-select--action-button ibo-input-select--action-button--clear ibo-is-hidden\" id=\"mini_clear_{$this->iId}\" onClick=\"oACWidget_{$this->iId}.Clear();\" data-tooltip-content='".Dict::S('UI:Button:Clear')."'><i class=\"fas fa-times\"></i></a>";
}
if ($bCreate && $bExtensions) {
$sCallbackName = (MetaModel::IsAbstract($this->sTargetClass)) ? 'SelectObjectClass' : 'CreateObject';
$sHTMLValue .= "<div class=\"ibo-input-select--action-button ibo-input-select--action-button--create\" id=\"mini_add_{$this->iId}\" onClick=\"oACWidget_{$this->iId}.{$sCallbackName}();\" data-tooltip-content='".Dict::S('UI:Button:Create')."'><i class=\"fas fa-plus\"></i></div>";
$sHTMLValue .= "<a href=\"#\" class=\"ibo-input-select--action-button ibo-input-select--action-button--create\" id=\"mini_add_{$this->iId}\" onClick=\"oACWidget_{$this->iId}.{$sCallbackName}();\" data-tooltip-content='".Dict::S('UI:Button:Create')."'><i class=\"fas fa-plus\"></i></a>";
$oPage->add_ready_script(
<<<JS
if ($('#ajax_{$this->iId}').length == 0)
@@ -339,7 +340,7 @@ JS
);
}
if ($bExtensions && MetaModel::IsHierarchicalClass($this->sTargetClass) !== false) {
$sHTMLValue .= "<div class=\"ibo-input-select--action-button ibo-input-select--action-button--hierarchy\" id=\"mini_tree_{$this->iId}\" onClick=\"oACWidget_{$this->iId}.HKDisplay();\" data-tooltip-content='".Dict::S('UI:Button:SearchInHierarchy')."'><i class=\"fas fa-sitemap\"></i></div>";
$sHTMLValue .= "<a href=\"#\" class=\"ibo-input-select--action-button ibo-input-select--action-button--hierarchy\" id=\"mini_tree_{$this->iId}\" onClick=\"oACWidget_{$this->iId}.HKDisplay();\" data-tooltip-content='".Dict::S('UI:Button:SearchInHierarchy')."'><i class=\"fas fa-sitemap\"></i></a>";
$oPage->add_ready_script(
<<<JS
if ($('#ac_tree_{$this->iId}').length == 0)
@@ -350,7 +351,7 @@ JS
);
}
if ($oAllowedValues->CountExceeds($iMaxComboLength)) {
$sHTMLValue .= " <div class=\"ibo-input-select--action-button ibo-input-select--action-button--search\" id=\"mini_search_{$this->iId}\" onClick=\"oACWidget_{$this->iId}.Search();\" data-tooltip-content='".Dict::S('UI:Button:Search')."'><i class=\"fas fa-search\"></i></div>";
$sHTMLValue .= " <a href=\"#\" class=\"ibo-input-select--action-button ibo-input-select--action-button--search\" id=\"mini_search_{$this->iId}\" onClick=\"oACWidget_{$this->iId}.Search();\" data-tooltip-content='".Dict::S('UI:Button:Search')."'><i class=\"fas fa-search\"></i></a>";
}
$sHTMLValue .= "</div>";
$sHTMLValue .= "</div>";
@@ -904,7 +905,7 @@ JS
{
// For security reasons: check that the "proposed" class is actually a subclass of the linked class
// and that the current user is allowed to create objects of this class
$aSubClasses = MetaModel::EnumChildClasses($this->sTargetClass);
$aSubClasses = MetaModel::EnumChildClasses($this->sTargetClass, ENUM_CHILD_CLASSES_ALL);
$aPossibleClasses = array();
foreach($aSubClasses as $sCandidateClass)
{
@@ -924,6 +925,7 @@ JS
$sDialogTitleEscaped = addslashes($sDialogTitle);
$oPage->add_ready_script("$('#ac_create_$this->iId').dialog({ width: 'auto', height: 'auto', maxHeight: $(window).height() - 50, autoOpen: false, modal: true, title: '$sDialogTitleEscaped'});\n");
$oPage->add_ready_script("$('#ac_create_{$this->iId} form').removeAttr('onsubmit');");
$oPage->add_ready_script("$('#ac_create_{$this->iId} form').find('select').attr('id', 'ac_create_{$this->iId}_select');");
$oPage->add_ready_script("$('#ac_create_{$this->iId} form').on('submit.uilinksWizard', oACWidget_{$this->iId}.DoSelectObjectClass);");
}

View File

@@ -100,15 +100,18 @@ class UILinksWidget
* @param array $aArgs Extra context arguments
* @param DBObject $oCurrentObj The object to which all the elements of the linked set refer to
* @param int $iUniqueId A unique identifier of new links
* @param boolean $bReadOnly Display link as editable or read-only. Default is false (editable)
* @param bool $bReadOnly Display link as editable or read-only. Default is false (editable)
* @param bool $bAllowRemoteExtKeyEdit If true, the ext. key to the remote object can be edited, otherwise it will be read-only
*
* @return array The HTML fragment of the one-row form
* @throws \ArchivedObjectException
* @throws \CoreException
* @throws \CoreUnexpectedValue
* @throws \Exception
*
* @since 3.1.0 3.0.4 3.0.3-1 N°6124 - Workaround performance problem on the modification of an object with an n:n relation having a large volume
*/
protected function GetFormRow(WebPage $oP, DBObject $oLinkedObj, $linkObjOrId, $aArgs, $oCurrentObj, $iUniqueId, $bReadOnly = false)
protected function GetFormRow(WebPage $oP, DBObject $oLinkedObj, $linkObjOrId, $aArgs, $oCurrentObj, $iUniqueId, $bReadOnly = false, $bAllowRemoteExtKeyEdit = true)
{
$sPrefix = "$this->m_sAttCode{$this->m_sNameSuffix}";
$aRow = array();
@@ -139,8 +142,11 @@ class UILinksWidget
$aRow['form::checkbox'] = "<input class=\"selection\" data-remote-id=\"$iRemoteObjKey\" data-link-id=\"$iKey\" data-unique-id=\"$iUniqueId\" type=\"checkbox\" onClick=\"oWidget".$this->m_iInputId.".OnSelectChange();\" value=\"$iKey\">";
foreach ($this->m_aEditableFields as $sFieldCode)
{
// N°6124 - Force remote ext. key as read-only if too many items in the linkset
$bReadOnlyField = ($sFieldCode === $this->m_sExtKeyToRemote) && (false === $bAllowRemoteExtKeyEdit);
$sSafeFieldId = $this->GetFieldId($linkObjOrId->GetKey(), $sFieldCode);
$this->AddRowForFieldCode($aRow, $sFieldCode, $aArgs, $linkObjOrId, $oP, $sNameSuffix, $sSafeFieldId);
$this->AddRowForFieldCode($aRow, $sFieldCode, $aArgs, $linkObjOrId, $oP, $sNameSuffix, $sSafeFieldId, $bReadOnlyField);
$aFieldsMap[$sFieldCode] = $sSafeFieldId;
}
}
@@ -201,8 +207,11 @@ EOF
foreach($this->m_aEditableFields as $sFieldCode)
{
// N°6124 - Force remote ext. key as read-only if too many items in the linkset
$bReadOnlyField = ($sFieldCode === $this->m_sExtKeyToRemote) && (false === $bAllowRemoteExtKeyEdit);
$sSafeFieldId = $this->GetFieldId($iUniqueId, $sFieldCode);
$this->AddRowForFieldCode($aRow, $sFieldCode, $aArgs, $oNewLinkObj, $oP, $sNameSuffix, $sSafeFieldId);
$this->AddRowForFieldCode($aRow, $sFieldCode, $aArgs, $oNewLinkObj, $oP, $sNameSuffix, $sSafeFieldId, $bReadOnlyField);
$aFieldsMap[$sFieldCode] = $sSafeFieldId;
$sValue = $oNewLinkObj->Get($sFieldCode);
@@ -255,11 +264,24 @@ JS
return $aRow;
}
private function AddRowForFieldCode(&$aRow, $sFieldCode, &$aArgs, $oLnk, $oP, $sNameSuffix, $sSafeFieldId): void
/**
* @param $aRow
* @param $sFieldCode
* @param $aArgs
* @param $oLnk
* @param $oP
* @param $sNameSuffix
* @param $sSafeFieldId
* @param bool $bReadOnlyField If true, the field will be read-only, otherwise it can be edited
*
* @return void
* @since 3.1.0 3.0.4 3.0.3-1 N°6124 - Workaround performance problem on the modification of an object with an n:n relation having a large volume
*/
private function AddRowForFieldCode(&$aRow, $sFieldCode, &$aArgs, $oLnk, $oP, $sNameSuffix, $sSafeFieldId, $bReadOnlyField = false): void
{
if (($sFieldCode === $this->m_sExtKeyToRemote))
{
// current field is the lnk extkey to the remote class
// Current field is the lnk extkey to the remote class
$aArgs['replaceDependenciesByRemoteClassFields'] = true;
$sRowFieldCode = 'static::key';
$aArgs['wizHelperRemote'] = $aArgs['wizHelper'].'_remote';
@@ -281,20 +303,31 @@ JS
$sDisplayValue = $oLnk->GetEditValue($sFieldCode);
$oAttDef = MetaModel::GetAttributeDef($this->m_sLinkedClass, $sFieldCode);
$aRow[$sRowFieldCode] = '<div class="field_container" style="border:none;"><div class="field_data"><div class="field_value">'
.cmdbAbstractObject::GetFormElementForField(
$oP,
$this->m_sLinkedClass,
$sFieldCode,
$oAttDef,
$sValue,
$sDisplayValue,
$sSafeFieldId,
$sNameSuffix,
0,
$aArgs
)
.'</div></div></div>';
if ($bReadOnlyField) {
$sFieldForHtml = $sDisplayValue;
} else {
$sFieldForHtml = cmdbAbstractObject::GetFormElementForField(
$oP,
$this->m_sLinkedClass,
$sFieldCode,
$oAttDef,
$sValue,
$sDisplayValue,
$sSafeFieldId,
$sNameSuffix,
0,
$aArgs
);
}
$aRow[$sRowFieldCode] = <<<HTML
<div class="field_container" style="border:none;">
<div class="field_data">
<div class="field_value">$sFieldForHtml</div>
</div>
</div>
HTML
;
}
private function GetFieldId($iLnkId, $sFieldCode, $bSafe = true)
@@ -374,6 +407,7 @@ JS
$oBlock->sRemoteClass = $this->m_sRemoteClass;
$oValue->Rewind();
$bAllowRemoteExtKeyEdit = $oValue->Count() <= utils::GetConfig()->Get('link_set_max_edit_ext_key');
$aForm = array();
$iMaxAddedId = 0;
$iAddedId = -1; // Unique id for new links
@@ -398,7 +432,7 @@ JS
}
$iMaxAddedId = max($iMaxAddedId, $key);
$aForm[$key] = $this->GetFormRow($oPage, $oLinkedObj, $oCurrentLink, $aArgs, $oCurrentObj, $key, $bReadOnly);
$aForm[$key] = $this->GetFormRow($oPage, $oLinkedObj, $oCurrentLink, $aArgs, $oCurrentObj, $key, $bReadOnly, $bAllowRemoteExtKeyEdit);
}
$oBlock->iMaxAddedId = (int) $iMaxAddedId;
@@ -571,10 +605,11 @@ JS
$aLinkedObjectIds = utils::ReadMultipleSelection($oFullSetFilter);
$iAdditionId = $iMaxAddedId + 1;
$bAllowRemoteExtKeyEdit = count($aLinkedObjectIds) <= utils::GetConfig()->Get('link_set_max_edit_ext_key');
foreach ($aLinkedObjectIds as $iObjectId) {
$oLinkedObj = MetaModel::GetObject($this->m_sRemoteClass, $iObjectId, false);
if (is_object($oLinkedObj)) {
$aRow = $this->GetFormRow($oP, $oLinkedObj, $iObjectId, array(), $oCurrentObj, $iAdditionId); // Not yet created link get negative Ids
$aRow = $this->GetFormRow($oP, $oLinkedObj, $iObjectId, array(), $oCurrentObj, $iAdditionId, false /* Default value */, $bAllowRemoteExtKeyEdit); // Not yet created link get negative Ids
$aData = [];
foreach ($aRow as $item) {
$aData[] = $item;

View File

@@ -60,7 +60,7 @@ class UISearchFormForeignKeys
$oPage->add(<<<HTML
<form id="ObjectsAddForm_{$this->m_iInputId}">
<div id="SearchResultsToAdd_{$this->m_iInputId}" style="vertical-align:top;background: #fff;height:100%;overflow:auto;padding:0;border:0;">
<div id="SearchResultsToAdd_{$this->m_iInputId}" style="vertical-align:top;height:100%;overflow:auto;padding:0;border:0;">
<div style="background: #fff; border:0; text-align:center; vertical-align:middle;"><p>{$sEmptyList}</p></div>
</div>
<input type="hidden" id="count_{$this->m_iInputId}" value="0"/>

View File

@@ -158,7 +158,7 @@ class utils
self::$m_aParamsFromFile = array();
}
$aParamLines = explode("\n", $sParams);
$aParamLines = explode("\n", $sParams ?? '');
foreach ($aParamLines as $sLine)
{
$sLine = trim($sLine);
@@ -1687,7 +1687,7 @@ class utils
// If cURL is available, let's use it, since it provides a greater control over the various HTTP/SSL options
// For instance fopen does not allow to work around the bug: http://stackoverflow.com/questions/18191672/php-curl-ssl-routinesssl23-get-server-helloreason1112
// by setting the SSLVERSION to 3 as done below.
$aHeaders = explode("\n", $sOptionnalHeaders);
$aHeaders = explode("\n", $sOptionnalHeaders ?? '');
// N°3267 - Webservices: Fix optional headers not being taken into account
// See https://www.php.net/curl_setopt CURLOPT_HTTPHEADER
$aHTTPHeaders = array();
@@ -1864,20 +1864,37 @@ class utils
return html_entity_decode($sValue, ENT_QUOTES, 'UTF-8');
}
/**
* @param string $sValue value encoded with {@see self::EscapeHtml()}
*
* @return string decoded value
*
* @uses \htmlspecialchars_decode()
* @link https://www.php.net/manual/en/function.htmlspecialchars-decode.php
* @since 3.0.3 3.1.0 N°6020 method creation
*/
public static function EscapedHtmlDecode($sValue)
{
return htmlspecialchars_decode(
$sValue,
ENT_QUOTES | ENT_DISALLOWED | ENT_HTML5
);
}
/**
* Convert a string containing some (valid) HTML markup to plain text
*
* @param string $sHtml
*
* @return string
*/
public static function HtmlToText($sHtml)
{
try
{
try {
//return '<?xml encoding="UTF-8">'.$sHtml;
return \Html2Text\Html2Text::convert('<?xml encoding="UTF-8">'.$sHtml);
}
catch(Exception $e)
{
catch (Exception $e) {
return $e->getMessage();
}
}
@@ -2254,7 +2271,7 @@ class utils
$aParams = array();
foreach(explode('&', $sQuery) as $sChunk)
{
$aParts = explode('=', $sChunk);
$aParts = explode('=', $sChunk ?? '');
if (count($aParts) != 2) continue;
$aParams[$aParts[0]] = urldecode($aParts[1]);
}
@@ -2401,7 +2418,7 @@ class utils
$aCleanHeaders = array();
foreach( $aHeaders as $sKey => $sValue )
{
$aTokens = explode(':', $sValue, 2);
$aTokens = explode(':', $sValue ?? '', 2);
if(isset($aTokens[1]))
{
$aCleanHeaders[trim($aTokens[0])] = trim($aTokens[1]);
@@ -2802,7 +2819,7 @@ HTML;
$sKey = isset($aShortcutPrefs[$aShortcutKey['id']]) ? $aShortcutPrefs[$aShortcutKey['id']] : $aShortcutKey['key'];
// Format key for display
$aKeyParts = explode('+', $sKey);
$aKeyParts = explode('+', $sKey ?? '');
$aFormattedKeyParts = [];
foreach ($aKeyParts as $sKeyPart) {
$aFormattedKeyParts[] = ucfirst(trim($sKeyPart));

View File

@@ -347,6 +347,7 @@ class WizardHelper
/**
* @return string JS code to be executed for fields update
* @since 3.0.0 N°3198
* @deprecated 3.0.3-2 3.0.4 3.1.1 3.2.0 Use {@see \WizardHelper::AddJsForUpdateFields()} instead
*/
public function GetJsForUpdateFields()
{
@@ -359,15 +360,39 @@ class WizardHelper
JS;
}
/**
* Add necessary JS snippets (to the page) to be executed for fields update
*
* @param \WebPage $oPage
* @return void
* @since 3.0.3-2 3.0.4 3.1.1 3.2.0 N°6766
*/
public function AddJsForUpdateFields(WebPage $oPage)
{
$sWizardHelperJsVar = (!is_null($this->m_aData['m_sWizHelperJsVarName'])) ? utils::Sanitize($this->m_aData['m_sWizHelperJsVarName'], '', utils::ENUM_SANITIZATION_FILTER_PARAMETER) : 'oWizardHelper'.$this->GetFormPrefix();
$sWizardHelperJson = $this->ToJSON();
$oPage->add_script(<<<JS
{$sWizardHelperJsVar}.m_oData = {$sWizardHelperJson};
{$sWizardHelperJsVar}.UpdateFields();
JS
);
$oPage->add_ready_script(<<<JS
if ({$sWizardHelperJsVar}.m_oDependenciesUpdatedPromiseResolve !== null){
{$sWizardHelperJsVar}.m_oDependenciesUpdatedPromiseResolve();
}
JS
);
}
static function ParseJsonSet($oMe, $sLinkClass, $sExtKeyToMe, $sJsonSet)
{
$aSet = json_decode($sJsonSet, true); // true means hash array instead of object
$oSet = CMDBObjectSet::FromScratch($sLinkClass);
foreach ($aSet as $aLinkObj)
{
foreach ($aSet as $aLinkObj) {
$oLink = MetaModel::NewObject($sLinkClass);
foreach ($aLinkObj as $sAttCode => $value)
{
foreach ($aLinkObj as $sAttCode => $value) {
$oAttDef = MetaModel::GetAttributeDef($sLinkClass, $sAttCode);
if (($oAttDef->IsExternalKey()) && ($value != '') && ($value > 0))
{

View File

@@ -23,6 +23,6 @@ define('ITOP_DESIGN_LATEST_VERSION', '3.0');
* @used-by utils::GetItopVersionWikiSyntax()
* @used-by iTopModulesPhpVersionIntegrationTest
*/
define('ITOP_CORE_VERSION', '3.0.2');
define('ITOP_CORE_VERSION', '3.0.3');
require_once APPROOT.'bootstrap.inc.php';

View File

@@ -13,6 +13,7 @@
"ext-mysqli": "*",
"ext-soap": "*",
"combodo/tcpdf": "~6.4.4",
"firebase/php-jwt": "~6.4.0",
"guzzlehttp/guzzle": "^6.5.8",
"laminas/laminas-mail": "^2.11",
"laminas/laminas-servicemanager": "^3.5",

26
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "86ca84263f7f271dfc10e5e63bd02385",
"content-hash": "bad4899b1df95e6ab4ab2e42e4213acd",
"packages": [
{
"name": "combodo/tcpdf",
@@ -266,25 +266,31 @@
},
{
"name": "firebase/php-jwt",
"version": "v5.5.1",
"version": "v6.4.0",
"source": {
"type": "git",
"url": "https://github.com/firebase/php-jwt.git",
"reference": "83b609028194aa042ea33b5af2d41a7427de80e6"
"reference": "4dd1e007f22a927ac77da5a3fbb067b42d3bc224"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/firebase/php-jwt/zipball/83b609028194aa042ea33b5af2d41a7427de80e6",
"reference": "83b609028194aa042ea33b5af2d41a7427de80e6",
"url": "https://api.github.com/repos/firebase/php-jwt/zipball/4dd1e007f22a927ac77da5a3fbb067b42d3bc224",
"reference": "4dd1e007f22a927ac77da5a3fbb067b42d3bc224",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
"php": "^7.1||^8.0"
},
"require-dev": {
"phpunit/phpunit": ">=4.8 <=9"
"guzzlehttp/guzzle": "^6.5||^7.4",
"phpspec/prophecy-phpunit": "^1.1",
"phpunit/phpunit": "^7.5||^9.5",
"psr/cache": "^1.0||^2.0",
"psr/http-client": "^1.0",
"psr/http-factory": "^1.0"
},
"suggest": {
"ext-sodium": "Support EdDSA (Ed25519) signatures",
"paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present"
},
"type": "library",
@@ -317,9 +323,9 @@
],
"support": {
"issues": "https://github.com/firebase/php-jwt/issues",
"source": "https://github.com/firebase/php-jwt/tree/v5.5.1"
"source": "https://github.com/firebase/php-jwt/tree/v6.4.0"
},
"time": "2021-11-08T20:18:51+00:00"
"time": "2023-02-09T21:01:23+00:00"
},
{
"name": "guzzlehttp/guzzle",
@@ -4752,7 +4758,7 @@
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
"php": ">=7.1.3 <8.0.0",
"php": ">=7.1.3 <8.1.0",
"ext-ctype": "*",
"ext-dom": "*",
"ext-gd": "*",

View File

@@ -110,7 +110,7 @@ class apcFile
*/
static public function GetCacheFileName($sKey = '')
{
$sPath = str_replace(array(' ', '/', '\\', '.'), '-', $sKey);
$sPath = str_replace(array(' ', '/', '\\', '.'), '-', $sKey ?? '');
return utils::GetCachePath().'apc-emul/'.$sPath;
}

View File

@@ -705,6 +705,18 @@ abstract class AttributeDefinition
return is_null($proposedValue);
}
/**
* @param mixed $proposedValue
*
* @return bool True if $proposedValue is an actual value set in the attribute, false is the attribute remains "empty"
* @since 3.0.3, 3.1.0 N°5784
*/
public function HasAValue($proposedValue): bool
{
// Default implementation, we don't really know what type $proposedValue will be
return is_null($proposedValue);
}
/**
* force an allowed value (type conversion and possibly forces a value as mySQL would do upon writing!
*
@@ -1384,6 +1396,15 @@ class AttributeDashboard extends AttributeDefinition
{
return '';
}
/**
* @inheritDoc
*/
public function HasAValue($proposedValue): bool
{
// Always return false for now, we don't consider a custom version of a dashboard
return false;
}
}
/**
@@ -2233,6 +2254,22 @@ class AttributeLinkedSet extends AttributeDefinition
{
return false;
}
/**
* @inheritDoc
* @param \ormLinkSet $proposedValue
*/
public function HasAValue($proposedValue): bool
{
// Protection against wrong value type
if (false === ($proposedValue instanceof ormLinkSet))
{
return parent::HasAValue($proposedValue);
}
// We test if there is at least 1 item in the linkset (new or existing), not if an item is being added to it.
return $proposedValue->Count() > 0;
}
}
/**
@@ -2614,6 +2651,14 @@ class AttributeInteger extends AttributeDBField
return is_null($proposedValue);
}
/**
* @inheritDoc
*/
public function HasAValue($proposedValue): bool
{
return utils::IsNotNullOrEmptyString($proposedValue);
}
public function MakeRealValue($proposedValue, $oHostObj)
{
if (is_null($proposedValue))
@@ -2713,6 +2758,14 @@ class AttributeObjectKey extends AttributeDBFieldVoid
return ($proposedValue == 0);
}
/**
* @inheritDoc
*/
public function HasAValue($proposedValue): bool
{
return ((int) $proposedValue) !== 0;
}
public function MakeRealValue($proposedValue, $oHostObj)
{
if (is_null($proposedValue))
@@ -2912,6 +2965,14 @@ class AttributeDecimal extends AttributeDBField
return is_null($proposedValue);
}
/**
* @inheritDoc
*/
public function HasAValue($proposedValue): bool
{
return utils::IsNotNullOrEmptyString($proposedValue);
}
public function MakeRealValue($proposedValue, $oHostObj)
{
if (is_null($proposedValue))
@@ -3323,6 +3384,14 @@ class AttributeString extends AttributeDBField
return ($proposedValue == '');
}
/**
* @inheritDoc
*/
public function HasAValue($proposedValue): bool
{
return utils::IsNotNullOrEmptyString($proposedValue);
}
public function MakeRealValue($proposedValue, $oHostObj)
{
if (is_null($proposedValue))
@@ -4478,6 +4547,22 @@ class AttributeCaseLog extends AttributeLongText
return ($proposedValue->GetText() == '');
}
/**
* @inheritDoc
* @param \ormCaseLog $proposedValue
*/
public function HasAValue($proposedValue): bool
{
// Protection against wrong value type
if (false === ($proposedValue instanceof ormCaseLog)) {
return parent::HasAValue($proposedValue);
}
// We test if there is at least 1 entry in the log, not if the user is adding one
return $proposedValue->GetEntryCount() > 0;
}
public function ScalarToSQL($value)
{
if (!is_string($value) && !is_null($value))
@@ -6798,6 +6883,14 @@ class AttributeExternalKey extends AttributeDBFieldVoid
return ($proposedValue == 0);
}
/**
* @inheritDoc
*/
public function HasAValue($proposedValue): bool
{
return ((int) $proposedValue) !== 0;
}
public function MakeRealValue($proposedValue, $oHostObj)
{
if (is_null($proposedValue))
@@ -7530,6 +7623,16 @@ class AttributeExternalField extends AttributeDefinition
return $oExtAttDef->IsNull($proposedValue);
}
/**
* @inheritDoc
*/
public function HasAValue($proposedValue): bool
{
$oExtAttDef = $this->GetExtAttDef();
return $oExtAttDef->HasAValue($proposedValue);
}
public function MakeRealValue($proposedValue, $oHostObj)
{
$oExtAttDef = $this->GetExtAttDef();
@@ -7664,6 +7767,17 @@ class AttributeExternalField extends AttributeDefinition
*/
class AttributeURL extends AttributeString
{
/**
* @var string
* SCHEME....... USER....................... PASSWORD.......................... HOST/IP........... PORT.......... PATH......................... GET............................................ ANCHOR..........................
* Example: http://User:passWord@127.0.0.1:8888/patH/Page.php?arrayArgument[2]=something:blah20#myAnchor
* @link http://www.php.net/manual/fr/function.preg-match.php#93824 regexp source
* @since 3.0.1 N°4515 handle Alfresco and Sharepoint URLs
* @since 3.0.3 moved from Config to AttributeURL constant
*/
public const DEFAULT_VALIDATION_PATTERN = /** @lang RegExp */
'(https?|ftp)\://([a-zA-Z0-9+!*(),;?&=\$_.-]+(\:[a-zA-Z0-9+!*(),;?&=\$_.-]+)?@)?([a-zA-Z0-9-.]{3,})(\:[0-9]{2,5})?(/([a-zA-Z0-9:%+\$_-]\.?)+)*/?(\?[a-zA-Z+&\$_.-][a-zA-Z0-9;:[\]@&%=+/\$_.,-]*)?(#[a-zA-Z0-9_.-][a-zA-Z0-9+\$_.-]*)?';
/**
* Useless constructor, but if not present PHP 7.4.0/7.4.1 is crashing :( (N°2329)
*
@@ -8105,6 +8219,20 @@ class AttributeBlob extends AttributeDefinition
return $oFormField;
}
/**
* @inheritDoc
*/
public function HasAValue($proposedValue): bool
{
if (false === ($proposedValue instanceof ormDocument)) {
return parent::HasAValue($proposedValue);
}
// Empty file (no content, just a filename) are supported since PR {@link https://github.com/Combodo/combodo-email-synchro/pull/17}, so we check for both empty content and empty filename to determine that a document has no value
return utils::IsNotNullOrEmptyString($proposedValue->GetData()) && utils::IsNotNullOrEmptyString($proposedValue->GetFileName());
}
}
/**
@@ -9131,6 +9259,17 @@ class AttributeStopWatch extends AttributeDefinition
return $sRet;
}
/**
* @inheritDoc
*/
public function HasAValue($proposedValue): bool
{
// A stopwatch always has a value
return true;
}
}
/**
@@ -9616,6 +9755,23 @@ class AttributeOneWayPassword extends AttributeDefinition implements iAttributeN
return '*****';
}
/**
* @inheritDoc
*/
public function HasAValue($proposedValue): bool
{
// Protection against wrong value type
if (false === ($proposedValue instanceof ormPassword)) {
// On object creation, the attribute value is "" instead of an ormPassword...
if (is_string($proposedValue)) {
return utils::IsNotNullOrEmptyString($proposedValue);
}
return parent::HasAValue($proposedValue);
}
return $proposedValue->IsEmpty() === false;
}
}
// Indexed array having two dimensions
@@ -9665,6 +9821,15 @@ class AttributeTable extends AttributeDBField
return (count($proposedValue) == 0);
}
/**
* @inheritDoc
*/
public function HasAValue($proposedValue): bool
{
return count($proposedValue) > 0;
}
public function GetEditValue($sValue, $oHostObj = null)
{
return '';
@@ -10186,6 +10351,18 @@ abstract class AttributeSet extends AttributeDBFieldVoid
return $proposedValue->Count() == 0;
}
/**
* @inheritDoc
*/
public function HasAValue($proposedValue): bool
{
if (false === ($proposedValue instanceof ormSet)) {
return parent::HasAValue($proposedValue);
}
return $proposedValue->Count() > 0;
}
/**
* To be overloaded for localized enums
*
@@ -12893,6 +13070,21 @@ class AttributeCustomFields extends AttributeDefinition
return $bEquals;
}
/**
* @inheritDoc
*/
public function HasAValue($proposedValue): bool
{
// Protection against wrong value type
if (false === ($proposedValue instanceof ormCustomFieldsValue)) {
return parent::HasAValue($proposedValue);
}
return count($proposedValue->GetValues()) > 0;
}
}
class AttributeArchiveFlag extends AttributeBoolean

View File

@@ -11,7 +11,7 @@ define('UTF8_BOM', chr(239).chr(187).chr(191)); // 0xEF, 0xBB, 0xBF
/**
* CellChangeSpec
* A series of classes, keeping the information about a given cell: could it be changed or not (and why)?
* A series of classes, keeping the information about a given cell: could it be changed or not (and why)?
*
* @package iTopORM
*/
@@ -144,7 +144,7 @@ class CellStatus_Ambiguous extends CellStatus_Issue
/**
* RowStatus
* A series of classes, keeping the information about a given row: could it be changed or not (and why)?
* A series of classes, keeping the information about a given row: could it be changed or not (and why)?
*
* @package iTopORM
*/
@@ -220,7 +220,7 @@ class RowStatus_Issue extends RowStatus
*/
class BulkChange
{
protected $m_sClass;
protected $m_sClass;
protected $m_aData; // Note: hereafter, iCol maybe actually be any acceptable key (string)
// #@# todo: rename the variables to sColIndex
protected $m_aAttList; // attcode => iCol
@@ -261,7 +261,7 @@ class BulkChange
$this->m_sReportCsvSep = $sSeparator;
$this->m_sReportCsvDelimiter = $sDelimiter;
}
protected function ResolveExternalKey($aRowData, $sAttCode, &$aResults)
{
$oExtKey = MetaModel::GetAttributeDef($this->m_sClass, $sAttCode);
@@ -318,7 +318,7 @@ class BulkChange
{
$aResults = array();
$aErrors = array();
// External keys reconciliation
//
foreach($this->m_aExtKeys as $sAttCode => $aKeyConfig)
@@ -408,12 +408,12 @@ class BulkChange
$aErrors[$sAttCode] = Dict::S('UI:CSVReport-Value-Issue-NotFound');
$aResults[$sAttCode]= new CellStatus_SearchIssue();
break;
case 1:
// Do change the external key attribute
$oTargetObj->Set($sAttCode, $iForeignKey);
break;
default:
$aErrors[$sAttCode] = Dict::Format('UI:CSVReport-Value-Issue-FoundMany', $iCount);
$aResults[$sAttCode]= new CellStatus_Ambiguous($oTargetObj->Get($sAttCode), $iCount, $sOQL);
@@ -446,7 +446,7 @@ class BulkChange
}
}
}
// Set the object attributes
//
foreach ($this->m_aAttList as $sAttCode => $iCol)
@@ -467,30 +467,21 @@ class BulkChange
$iFlags = ($oTargetObj->IsNew())
? $oTargetObj->GetInitialStateAttributeFlags($sAttCode, $aReasons)
: $oTargetObj->GetAttributeFlags($sAttCode, $aReasons);
if ( (($iFlags & OPT_ATT_READONLY) == OPT_ATT_READONLY) && ( $oTargetObj->Get($sAttCode) != $aRowData[$iCol]) ) {
if ((($iFlags & OPT_ATT_READONLY) == OPT_ATT_READONLY) && ($oTargetObj->Get($sAttCode) != $oAttDef->MakeValueFromString($aRowData[$iCol], $this->m_bLocalizedValues))) {
$aErrors[$sAttCode] = Dict::Format('UI:CSVReport-Value-Issue-Readonly', $sAttCode, $oTargetObj->Get($sAttCode), $aRowData[$iCol]);
}
else if ($oAttDef->IsLinkSet() && $oAttDef->IsIndirect())
{
try
{
} else if ($oAttDef->IsLinkSet() && $oAttDef->IsIndirect()) {
try {
$oSet = $oAttDef->MakeValueFromString($aRowData[$iCol], $this->m_bLocalizedValues);
$oTargetObj->Set($sAttCode, $oSet);
}
catch(CoreException $e)
{
catch (CoreException $e) {
$aErrors[$sAttCode] = Dict::Format('UI:CSVReport-Value-Issue-Format', $e->getMessage());
}
}
else
{
} else {
$value = $oAttDef->MakeValueFromString($aRowData[$iCol], $this->m_bLocalizedValues);
if (is_null($value) && (strlen($aRowData[$iCol]) > 0))
{
if (is_null($value) && (strlen($aRowData[$iCol]) > 0)) {
$aErrors[$sAttCode] = Dict::Format('UI:CSVReport-Value-Issue-NoMatch', $sAttCode);
}
else
{
} else {
$res = $oTargetObj->CheckValue($sAttCode, $value);
if ($res === true)
{
@@ -504,7 +495,7 @@ class BulkChange
}
}
}
// Reporting on fields
//
$aChangedFields = $oTargetObj->ListChanges();
@@ -556,7 +547,7 @@ class BulkChange
}
}
}
// Checks
//
$res = $oTargetObj->CheckConsistency();
@@ -567,12 +558,12 @@ class BulkChange
}
return $aResults;
}
protected function PrepareMissingObject(&$oTargetObj, &$aErrors)
{
$aResults = array();
$aErrors = array();
// External keys
//
foreach($this->m_aExtKeys as $sAttCode => $aKeyConfig)
@@ -585,7 +576,7 @@ class BulkChange
$aResults[$iCol] = new CellStatus_Void('?');
}
}
// Update attributes
//
foreach($this->m_aOnDisappear as $sAttCode => $value)
@@ -596,7 +587,7 @@ class BulkChange
}
$oTargetObj->Set($sAttCode, $value);
}
// Reporting on fields
//
$aChangedFields = $oTargetObj->ListChanges();
@@ -616,7 +607,7 @@ class BulkChange
$aResults[$iCol]= new CellStatus_Void($oTargetObj->Get($sAttCode));
}
}
// Checks
//
$res = $oTargetObj->CheckConsistency();
@@ -674,14 +665,14 @@ class BulkChange
}
$aResult[$iRow] = $this->PrepareObject($oTargetObj, $aRowData, $aErrors);
if (count($aErrors) > 0)
{
$sErrors = implode(', ', $aErrors);
$aResult[$iRow]["__STATUS__"] = new RowStatus_Issue(Dict::S('UI:CSVReport-Row-Issue-Attribute'));
return $oTargetObj;
}
// Check that any external key will have a value proposed
$aMissingKeys = array();
foreach (MetaModel::GetExternalKeys($this->m_sClass) as $sExtKeyAttCode => $oExtKey)
@@ -689,7 +680,7 @@ class BulkChange
if (!$oExtKey->IsNullAllowed())
{
if (!array_key_exists($sExtKeyAttCode, $this->m_aExtKeys) && !array_key_exists($sExtKeyAttCode, $this->m_aAttList))
{
{
$aMissingKeys[] = $oExtKey->GetLabel();
}
}
@@ -747,12 +738,12 @@ class BulkChange
$aResult[$iRow]["__STATUS__"] = new RowStatus_Issue(Dict::S('UI:CSVReport-Row-Issue-Attribute'));
return;
}
$aChangedFields = $oTargetObj->ListChanges();
if (count($aChangedFields) > 0)
{
$aResult[$iRow]["__STATUS__"] = new RowStatus_Modify(count($aChangedFields));
// Optionaly record the results
//
if ($oChange)
@@ -796,7 +787,7 @@ class BulkChange
$aResult[$iRow]["__STATUS__"] = new RowStatus_Issue(Dict::S('UI:CSVReport-Row-Issue-Attribute'));
return;
}
$aChangedFields = $oTargetObj->ListChanges();
if (count($aChangedFields) > 0)
{
@@ -821,7 +812,7 @@ class BulkChange
$aResult[$iRow]["__STATUS__"] = new RowStatus_Disappeared(0);
}
}
public function Process(CMDBChange $oChange = null)
{
if ($oChange)
@@ -866,7 +857,7 @@ class BulkChange
foreach ($this->m_aAttList as $sAttCode => $iCol)
{
if ($sAttCode == 'id') continue;
$oAttDef = MetaModel::GetAttributeDef($this->m_sClass, $sAttCode);
if ($oAttDef instanceof AttributeDateTime) // AttributeDate is derived from AttributeDateTime
{
@@ -953,22 +944,22 @@ class BulkChange
{
// The value has to be found or verified
list($sQuery, $aMatches) = $this->ResolveExternalKey($aRowData, $sAttCode, $aResult[$iRow]);
if (count($aMatches) == 1)
{
$oRemoteObj = reset($aMatches); // first item
$valuecondition = $oRemoteObj->GetKey();
$aResult[$iRow][$sAttCode] = new CellStatus_Void($oRemoteObj->GetKey());
}
}
elseif (count($aMatches) == 0)
{
$aResult[$iRow][$sAttCode] = new CellStatus_SearchIssue();
}
}
else
{
$aResult[$iRow][$sAttCode] = new CellStatus_Ambiguous(null, count($aMatches), $sQuery);
}
}
}
}
else
{
@@ -990,7 +981,7 @@ class BulkChange
}
else
{
$oReconciliationFilter->AddCondition($sAttCode, $valuecondition, '=');
$oReconciliationFilter->AddCondition($sAttCode, $valuecondition, '=', true);
}
}
if ($bSkipQuery)
@@ -1110,7 +1101,7 @@ class BulkChange
}
}
$oBulkChanges->Seek(0);
$aDetails = array();
while ($oChange = $oBulkChanges->Fetch())
{
@@ -1274,7 +1265,7 @@ EOF
$oOldTarget = MetaModel::GetObject($oAttDef->GetTargetClass(), $oOperation->Get('oldvalue'));
$sOldValue = $oOldTarget->GetHyperlink();
}
$sNewValue = Dict::S('UI:UndefinedObject');
if ($oOperation->Get('newvalue') != 0)
{
@@ -1300,11 +1291,11 @@ EOF
}
else
{
$aAttributes[$sAttCode] = 1;
$aAttributes[$sAttCode] = 1;
}
}
}
$aDetails = array();
foreach($aObjects as $iUId => $aObjData)
{
@@ -1356,6 +1347,6 @@ EOF
$aConfig[$sAttCode] = array('label' => MetaModel::GetLabel($sClass, $sAttCode), 'description' => MetaModel::GetDescription($sClass, $sAttCode));
}
$oPage->table($aConfig, $aDetails);
}
}
}

View File

@@ -480,6 +480,14 @@ class Config
'source_of_value' => '',
'show_in_conf_sample' => true,
],
'link_set_max_edit_ext_key' => [
'type' => 'integer',
'description' => 'Maximum number of items in the link that allow editing the remote external key. Above that limit, remote external key cannot be edited. Mind that setting this limit too high can have a negative impact on performances.',
'default' => 50,
'value' => 50,
'source_of_value' => '',
'show_in_conf_sample' => true,
],
'tag_set_item_separator' => [
'type' => 'string',
'description' => 'Tag set from string: tag label separator',
@@ -899,16 +907,11 @@ class Config
'show_in_conf_sample' => false,
],
'url_validation_pattern' => [
'type' => 'string',
'description' => 'Regular expression to validate/detect the format of an URL (URL attributes and Wiki formatting for Text attributes)',
'default' => /** @lang RegExp */
'(https?|ftp)\://([a-zA-Z0-9+!*(),;?&=\$_.-]+(\:[a-zA-Z0-9+!*(),;?&=\$_.-]+)?@)?([a-zA-Z0-9-.]{3,})(\:[0-9]{2,5})?(/([a-zA-Z0-9:%+\$_-]\.?)+)*/?(\?[a-zA-Z+&\$_.-][a-zA-Z0-9;:[\]@&%=+/\$_.-]*)?(#[a-zA-Z0-9_.-][a-zA-Z0-9+\$_.-]*)?',
// SCHEME....... USER....................... PASSWORD.......................... HOST/IP........... PORT.......... PATH......................... GET............................................ ANCHOR..........................
// Example: http://User:passWord@127.0.0.1:8888/patH/Page.php?arrayArgument[2]=something:blah20#myAnchor
// RegExp source: http://www.php.net/manual/fr/function.preg-match.php#93824
// Update with N°4515
'value' => '',
'source_of_value' => '',
'type' => 'string',
'description' => 'Regular expression to validate/detect the format of an URL (URL attributes and Wiki formatting for Text attributes)',
'default' => AttributeURL::DEFAULT_VALIDATION_PATTERN,
'value' => '',
'source_of_value' => '',
'show_in_conf_sample' => true,
],
'email_validation_pattern' => [

View File

@@ -2792,12 +2792,6 @@ abstract class DBObject implements iDisplay
$this->DoComputeValues();
$this->OnInsert();
if ($this->m_iKey < 0)
{
// This was a temporary "memory" key: discard it so that DBInsertSingleTable will not try to use it!
$this->m_iKey = null;
}
// If not automatically computed, then check that the key is given by the caller
if (!MetaModel::IsAutoIncrementKey($sRootClass))
{
@@ -2814,6 +2808,12 @@ abstract class DBObject implements iDisplay
throw new CoreCannotSaveObjectException(array('issues' => $aIssues, 'class' => get_class($this), 'id' => $this->GetKey()));
}
if ($this->m_iKey < 0)
{
// This was a temporary "memory" key: discard it so that DBInsertSingleTable will not try to use it!
$this->m_iKey = null;
}
// Stop watches
$sState = $this->GetState();
if ($sState != '')
@@ -2925,13 +2925,14 @@ abstract class DBObject implements iDisplay
$oSet = new DBObjectSet(DBObjectSearch::FromOQL("SELECT TriggerOnObjectCreate AS t WHERE t.target_class IN (:class_list)"), array(), $aParams);
while ($oTrigger = $oSet->Fetch())
{
/** @var \Trigger $oTrigger */
/** @var \TriggerOnObjectCreate $oTrigger */
try
{
$oTrigger->DoActivate($this->ToArgs('this'));
}
catch(Exception $e)
{
$oTrigger->LogException($e, $this);
utils::EnrichRaisedException($oTrigger, $e);
}
}
@@ -3396,6 +3397,7 @@ abstract class DBObject implements iDisplay
$oTrigger->DoActivate($this->ToArgs('this'));
}
catch (Exception $e) {
$oTrigger->LogException($e, $this);
utils::EnrichRaisedException($oTrigger, $e);
}
}
@@ -3575,13 +3577,13 @@ abstract class DBObject implements iDisplay
$aParams);
while ($oTrigger = $oSet->Fetch())
{
/** @var \Trigger $oTrigger */
/** @var \TriggerOnObjectDelete $oTrigger */
try
{
$oTrigger->DoActivate($this->ToArgs('this'));
}
catch(Exception $e)
{
catch(Exception $e) {
$oTrigger->LogException($e, $this);
utils::EnrichRaisedException($oTrigger, $e);
}
}
@@ -3970,6 +3972,7 @@ abstract class DBObject implements iDisplay
$oTrigger->DoActivate($this->ToArgs('this'));
}
catch (Exception $e) {
$oTrigger->LogException($e, $this);
utils::EnrichRaisedException($oTrigger, $e);
}
}
@@ -3981,6 +3984,7 @@ abstract class DBObject implements iDisplay
$oTrigger->DoActivate($this->ToArgs('this'));
}
catch (Exception $e) {
$oTrigger->LogException($e, $this);
utils::EnrichRaisedException($oTrigger, $e);
}
}
@@ -3997,6 +4001,20 @@ abstract class DBObject implements iDisplay
return $bSuccess;
}
/**
* @param string $sAttCode
*
* @return bool True if $sAttCode has an actual value set, false is the attribute remains "empty"
* @throws \ArchivedObjectException
* @throws \CoreException
* @since 3.0.3, 3.1.0 N°5784
*/
public function HasAValue(string $sAttCode): bool
{
$oAttDef = MetaModel::GetAttributeDef(get_class($this), $sAttCode);
return $oAttDef->HasAValue($this->Get($sAttCode));
}
/**
* Helper to recover the default value (aka when an object is being created)
* Suitable for use as a lifecycle action

View File

@@ -1103,22 +1103,39 @@ class DBObjectSearch extends DBSearch
public function Filter($sClassAlias, DBSearch $oFilter)
{
// If the conditions are the correct ones for Intersect
if (MetaModel::IsParentClass($oFilter->GetFirstJoinedClass(),$this->GetFirstJoinedClass()))
{
if (MetaModel::IsParentClass($oFilter->GetFirstJoinedClass(), $this->GetFirstJoinedClass())) {
return $this->Intersect($oFilter);
}
/** @var \DBObjectSearch $oFilteredSearch */
$oFilteredSearch = $this->DeepClone();
$oFilterExpression = self::FilterSubClass($oFilteredSearch, $sClassAlias, $oFilter, $this->m_aClasses);
if ($oFilterExpression === false)
{
throw new CoreException("Limitation: cannot filter search");
if ($oFilter instanceof DBUnionSearch) {
$aFilters = $oFilter->GetSearches();
} else {
$aFilters = [$oFilter];
}
$oFilteredSearch->AddConditionExpression($oFilterExpression);
$aSearches = [];
foreach ($aFilters as $oRightFilter) {
/** @var \DBObjectSearch $oFilteredSearch */
$oFilteredSearch = $this->DeepClone();
$oFilterExpression = self::FilterSubClass($oFilteredSearch, $sClassAlias, $oRightFilter, $this->m_aClasses);
if ($oFilterExpression === false) {
throw new CoreException("Limitation: cannot filter search");
}
return $oFilteredSearch;
$oFilteredSearch->AddConditionExpression($oFilterExpression);
$aSearches[] = $oFilteredSearch;
}
if (count($aSearches) == 0) {
throw new CoreException('Filtering '.$this->ToOQL().' by '.$oFilter->ToOQL().' failed');
}
if (count($aSearches) == 1) {
// return a DBObjectSearch
return $aSearches[0];
}
return new DBUnionSearch($aSearches);
}
/**
@@ -1184,22 +1201,10 @@ class DBObjectSearch extends DBSearch
* @throws \CoreException
*/
public function Intersect(DBSearch $oFilter)
{
return $this->IntersectSubClass($oFilter, $this->m_aClasses);
}
/**
* @param \DBSearch $oFilter
* @param array $aRootClasses classes of the root search (for aliases)
*
* @return \DBUnionSearch|mixed
* @throws \CoreException
*/
protected function IntersectSubClass(DBSearch $oFilter, $aRootClasses)
{
if ($oFilter instanceof DBUnionSearch)
{
// Develop!
// Develop!
$aFilters = $oFilter->GetSearches();
}
else
@@ -1210,56 +1215,61 @@ class DBObjectSearch extends DBSearch
$aSearches = array();
foreach ($aFilters as $oRightFilter)
{
// Limitation: the queried class must be the first declared class
if ($oRightFilter->GetFirstJoinedClassAlias() != $oRightFilter->GetClassAlias())
{
throw new CoreException("Limitation: cannot merge two queries if the queried class ({$oRightFilter->GetClass()} AS {$oRightFilter->GetClassAlias()}) is not the first joined class ({$oRightFilter->GetFirstJoinedClass()} AS {$oRightFilter->GetFirstJoinedClassAlias()})");
}
/** @var \DBObjectSearch $oLeftFilter */
$oLeftFilter = $this->DeepClone();
$oRightFilter = $oRightFilter->DeepClone();
$bAllowAllData = ($oLeftFilter->IsAllDataAllowed() && $oRightFilter->IsAllDataAllowed());
if ($bAllowAllData)
{
$oLeftFilter->AllowAllData();
}
if ($oLeftFilter->GetFirstJoinedClass() != $oRightFilter->GetClass())
{
if (MetaModel::IsParentClass($oLeftFilter->GetFirstJoinedClass(), $oRightFilter->GetClass()))
{
// Specialize $oLeftFilter
$oLeftFilter->ChangeClass($oRightFilter->GetClass(), $oLeftFilter->GetFirstJoinedClassAlias());
}
elseif (MetaModel::IsParentClass($oRightFilter->GetFirstJoinedClass(), $oLeftFilter->GetClass()))
{
// Specialize $oRightFilter
$oRightFilter->ChangeClass($oLeftFilter->GetFirstJoinedClass());
}
else
{
throw new CoreException("Attempting to merge a filter of class '{$oLeftFilter->GetClass()}' with a filter of class '{$oRightFilter->GetClass()}'");
}
}
$aAliasTranslation = array();
$oLeftFilter->RenameNestedQueriesAliasesInNameSpace($aRootClasses, $aAliasTranslation);
$oLeftFilter->MergeWith_InNamespace($oRightFilter, $aRootClasses, $aAliasTranslation);
$oRightFilter->RenameNestedQueriesAliasesInNameSpace($aRootClasses, $aAliasTranslation);
$oLeftFilter->TransferConditionExpression($oRightFilter, $aAliasTranslation);
$aSearches[] = $oLeftFilter;
$aSearches[] = $this->IntersectSubClass($oRightFilter, $this->m_aClasses);
}
if (count($aSearches) == 1)
{
// return a DBObjectSearch
return $aSearches[0];
}
else
{
return new DBUnionSearch($aSearches);
return new DBUnionSearch($aSearches);
}
/**
* @param \DBObjectSearch $oRightFilter
* @param array $aRootClasses classes of the root search (for aliases)
*
* @return \DBObjectSearch
* @throws \CoreException
*/
protected function IntersectSubClass(DBObjectSearch $oRightFilter, array $aRootClasses): DBObjectSearch
{
// Limitation: the queried class must be the first declared class
if ($oRightFilter->GetFirstJoinedClassAlias() != $oRightFilter->GetClassAlias()) {
throw new CoreException("Limitation: cannot merge two queries if the queried class ({$oRightFilter->GetClass()} AS {$oRightFilter->GetClassAlias()}) is not the first joined class ({$oRightFilter->GetFirstJoinedClass()} AS {$oRightFilter->GetFirstJoinedClassAlias()})");
}
/** @var \DBObjectSearch $oLeftFilter */
$oLeftFilter = $this->DeepClone();
/** @var DBObjectSearch $oRightFilter */
$oRightFilter = $oRightFilter->DeepClone();
$bAllowAllData = ($oLeftFilter->IsAllDataAllowed() && $oRightFilter->IsAllDataAllowed());
if ($bAllowAllData) {
$oLeftFilter->AllowAllData();
}
if ($oLeftFilter->GetFirstJoinedClass() != $oRightFilter->GetClass()) {
if (MetaModel::IsParentClass($oLeftFilter->GetFirstJoinedClass(), $oRightFilter->GetClass())) {
// Specialize $oLeftFilter
$oLeftFilter->ChangeClass($oRightFilter->GetClass(), $oLeftFilter->GetFirstJoinedClassAlias());
} elseif (MetaModel::IsParentClass($oRightFilter->GetFirstJoinedClass(), $oLeftFilter->GetClass())) {
// Specialize $oRightFilter
$oRightFilter->ChangeClass($oLeftFilter->GetFirstJoinedClass());
} else {
throw new CoreException("Attempting to merge a filter of class '{$oLeftFilter->GetClass()}' with a filter of class '{$oRightFilter->GetClass()}'");
}
}
$aAliasTranslation = array();
$oLeftFilter->RenameNestedQueriesAliasesInNameSpace($aRootClasses, $aAliasTranslation);
$oLeftFilter->MergeWith_InNamespace($oRightFilter, $aRootClasses, $aAliasTranslation);
$oRightFilter->RenameNestedQueriesAliasesInNameSpace($aRootClasses, $aAliasTranslation);
$oLeftFilter->TransferConditionExpression($oRightFilter, $aAliasTranslation);
return $oLeftFilter;
}
/**

View File

@@ -34,32 +34,36 @@ abstract class HTMLSanitizer
/**
* Sanitize an HTML string with the configured sanitizer, falling back to HTMLDOMSanitizer in case of Exception or invalid configuration
*
* @param string $sHTML
* @param string $sConfigKey eg. 'html_sanitizer', 'svg_sanitizer'
*
* @return string
*/
public static function Sanitize($sHTML)
public static function Sanitize($sHTML, $sConfigKey = 'html_sanitizer')
{
$sSanitizerClass = MetaModel::GetConfig()->Get('html_sanitizer');
if(!class_exists($sSanitizerClass))
{
IssueLog::Warning('The configured "html_sanitizer" class "'.$sSanitizerClass.'" is not a valid class. Will use HTMLDOMSanitizer as the default sanitizer.');
$sSanitizerClass = 'HTMLDOMSanitizer';
}
else if(!is_subclass_of($sSanitizerClass, 'HTMLSanitizer'))
{
IssueLog::Warning('The configured "html_sanitizer" class "'.$sSanitizerClass.'" is not a subclass of HTMLSanitizer. Will use HTMLDOMSanitizer as the default sanitizer.');
$sSanitizerClass = utils::GetConfig()->Get($sConfigKey);
if (!class_exists($sSanitizerClass)) {
IssueLog::Warning('The configured "'.$sConfigKey.'" class "'.$sSanitizerClass.'" is not a valid class. Will use HTMLDOMSanitizer as the default sanitizer.');
$sSanitizerClass = 'HTMLDOMSanitizer';
} else if (!is_subclass_of($sSanitizerClass, 'HTMLSanitizer')) {
if ($sConfigKey === 'html_sanitizer') {
IssueLog::Warning('The configured "'.$sConfigKey.'" class "'.$sSanitizerClass.'" is not a subclass of HTMLSanitizer. Will use HTMLDOMSanitizer as the default sanitizer.');
$sSanitizerClass = 'HTMLDOMSanitizer';
}
if ($sConfigKey === 'svg_sanitizer') {
IssueLog::Error('The configured "'.$sConfigKey.'" class "'.$sSanitizerClass.'" is not a subclass of '.HTMLSanitizer::class.' ! Won\'t sanitize string.');
return $sHTML;
}
}
try
{
try {
$oSanitizer = new $sSanitizerClass();
$sCleanHTML = $oSanitizer->DoSanitize($sHTML);
}
catch(Exception $e)
{
if($sSanitizerClass != 'HTMLDOMSanitizer')
{
catch (Exception $e) {
if ($sSanitizerClass != 'HTMLDOMSanitizer') {
IssueLog::Warning('Failed to sanitize an HTML string with "'.$sSanitizerClass.'". The following exception occured: '.$e->getMessage());
IssueLog::Warning('Will try to sanitize with HTMLDOMSanitizer.');
// try again with the HTMLDOMSanitizer

View File

@@ -242,7 +242,7 @@ class InlineImage extends DBObject
public static function OnFormCancel($sTempId): bool
{
// Protection against unfortunate massive delete of inline images when a null temp ID is passed
if (strlen($sTempId) === 0) {
if (utils::IsNullOrEmptyString($sTempId)) {
IssueLog::Trace('OnFormCancel "error" $sTempId is null or empty', LogChannels::INLINE_IMAGE, array(
'$sTempId' => $sTempId,
'$sUser' => UserRights::GetUser(),

View File

@@ -544,13 +544,6 @@ class LogChannels
{
public const APC = 'apc';
/**
* @var string
* @since 3.0.1 N°4849
* @since 2.7.7 N°4635
*/
public const NOTIFICATIONS = 'notifications';
/**
* @since 3.0.0
*/
@@ -572,8 +565,21 @@ class LogChannels
public const DEADLOCK = 'DeadLock';
/**
* @var string
* @since 2.7.9 3.0.3 3.1.0 N°5588
*/
public const EXPORT = 'export';
public const INLINE_IMAGE = 'InlineImage';
/**
* @var string
* @since 3.0.1 N°4849
* @since 2.7.7 N°4635
*/
public const NOTIFICATIONS = 'notifications';
public const PORTAL = 'portal';
}

View File

@@ -66,7 +66,7 @@ class ormPassword
public function IsEmpty()
{
return ($this->m_hashed == null);
return utils::IsNullOrEmptyString($this->m_sHashed);
}
public function GetHash()

View File

@@ -223,28 +223,33 @@ EOF
// As sample data will be displayed in the web browser, AttributeImage needs to be rendered with a regular HTML format, meaning its "src" looking like "data:image/png;base64,iVBORw0KGgoAAAANSUh..."
// Whereas for the PDF generation it needs to be rendered with a TCPPDF-compatible format, meaning its "src" looking like "@iVBORw0KGgoAAAANSUh..."
if ($oAttDef instanceof AttributeImage) {
return $this->GetAttributeImageValue($oAttDef, $oObj->Get($sAttCode), static::ENUM_OUTPUT_TYPE_SAMPLE);
return $this->GetAttributeImageValue($oObj, $sAttCode, static::ENUM_OUTPUT_TYPE_SAMPLE);
}
}
return parent::GetSampleData($oObj, $sAttCode);
}
/**
* @param \DBObject $oObj
* @param string $sAttCode
*
* @return int|string
* @throws \Exception
*/
protected function GetValue($oObj, $sAttCode)
{
switch($sAttCode)
{
switch ($sAttCode) {
case 'id':
$sRet = parent::GetValue($oObj, $sAttCode);
break;
default:
$value = $oObj->Get($sAttCode);
if ($value instanceof ormDocument)
{
if ($value instanceof ormDocument) {
$oAttDef = MetaModel::GetAttributeDef(get_class($oObj), $sAttCode);
if ($oAttDef instanceof AttributeImage)
{
$sRet = $this->GetAttributeImageValue($oAttDef, $value, static::ENUM_OUTPUT_TYPE_REAL);
$sRet = $this->GetAttributeImageValue($oObj, $sAttCode, static::ENUM_OUTPUT_TYPE_REAL);
}
else
{
@@ -260,15 +265,22 @@ EOF
}
/**
* @param \AttributeImage $oAttDef Instance of image attribute
* @param \ormDocument $oValue Value of image attribute
* @param \DBObject $oObj
* @param string $sAttCode
* @param string $sOutputType {@see \PDFBulkExport::ENUM_OUTPUT_TYPE_SAMPLE}, {@see \PDFBulkExport::ENUM_OUTPUT_TYPE_REAL}
*
* @return string Rendered value of $oAttDef / $oValue according to the desired $sOutputType
* @since 2.7.8
* @throws \ArchivedObjectException
* @throws \CoreException
*
* @since 2.7.8 N°2244 method creation
* @since 2.7.9 N°5588 signature change to get the object so that we can log all the needed information
*/
protected function GetAttributeImageValue(AttributeImage $oAttDef, ormDocument $oValue, string $sOutputType)
protected function GetAttributeImageValue(DBObject $oObj, string $sAttCode, string $sOutputType)
{
$oValue = $oObj->Get($sAttCode);
$oAttDef = MetaModel::GetAttributeDef(get_class($oObj), $sAttCode);
// To limit the image size in the PDF output, we have to enforce the size as height/width because max-width/max-height have no effect
//
$iDefaultMaxWidthPx = 48;
@@ -279,13 +291,27 @@ EOF
$sUrl = $oAttDef->Get('default_image');
} else {
list($iWidth, $iHeight) = utils::GetImageSize($oValue->GetData());
$iMaxWidthPx = min($iDefaultMaxWidthPx, $oAttDef->Get('display_max_width'));
$iMaxHeightPx = min($iDefaultMaxHeightPx, $oAttDef->Get('display_max_height'));
$fScale = min($iMaxWidthPx / $iWidth, $iMaxHeightPx / $iHeight);
$iNewWidth = $iWidth * $fScale;
$iNewHeight = $iHeight * $fScale;
list($iWidth, $iHeight) = utils::GetImageSize($oValue->GetData());
if ((is_null($iWidth)) || (is_null($iHeight)) || ($iWidth === 0) || ($iHeight === 0)) {
// Avoid division by zero exception (SVGs, corrupted images, ...)
$iNewWidth = $iDefaultMaxWidthPx;
$iNewHeight = $iDefaultMaxHeightPx;
$sAttCode = $oAttDef->GetCode();
IssueLog::Warning('AttributeImage: Cannot read image size', LogChannels::EXPORT, [
'ObjClass' => get_class($oObj),
'ObjKey' => $oObj->GetKey(),
'ObjFriendlyName' => $oObj->GetName(),
'AttCode' => $sAttCode,
]);
} else {
$fScale = min($iMaxWidthPx / $iWidth, $iMaxHeightPx / $iHeight);
$iNewWidth = $iWidth * $fScale;
$iNewHeight = $iHeight * $fScale;
}
$sValueAsBase64 = base64_encode($oValue->GetData());
switch ($sOutputType) {

View File

@@ -250,21 +250,48 @@ abstract class TriggerOnObject extends Trigger
public function IsTargetObject($iObjectId, $aChanges = array())
{
$sFilter = trim($this->Get('filter'));
if (strlen($sFilter) > 0)
{
if (strlen($sFilter) > 0) {
$oSearch = DBObjectSearch::FromOQL($sFilter);
$oSearch->AddCondition('id', $iObjectId, '=');
$oSearch->AllowAllData();
$oSet = new DBObjectSet($oSearch);
$bRet = ($oSet->Count() > 0);
}
else
{
} else {
$bRet = true;
}
return $bRet;
}
/**
* @param Exception $oException
* @param \DBObject $oObject
*
* @return void
*
* @uses \IssueLog::Error()
*
* @since 2.7.9 3.0.3 3.1.0 N°5893
*/
public function LogException($oException, $oObject)
{
$sObjectKey = $oObject->GetKey(); // if object wasn't persisted yet, then we'll have a negative value
$aContext = [
'exception.class' => get_class($oException),
'exception.message' => $oException->getMessage(),
'trigger.class' => get_class($this),
'trigger.id' => $this->GetKey(),
'trigger.friendlyname' => $this->GetRawName(),
'object.class' => get_class($oObject),
'object.id' => $sObjectKey,
'object.friendlyname' => $oObject->GetRawName(),
'current_user' => UserRights::GetUser(),
'exception.stack' => $oException->getTraceAsString(),
];
IssueLog::Error('A trigger did throw an exception', null, $aContext);
}
}
/**

View File

@@ -225,108 +225,106 @@ class ValueSetObjects extends ValueSetDefinition
$this->m_aValues = array();
if ($this->m_bAllowAllData)
{
$oFilter = DBObjectSearch::FromOQL_AllData($this->m_sFilterExpr);
$oFilter = $this->GetFilter($sOperation, $sContains);
$oObjects = new DBObjectSet($oFilter, $this->m_aOrderBy, $aArgs, null, $this->m_iLimit, 0, $this->m_bSort);
if (empty($this->m_sValueAttCode)) {
$aAttToLoad = array($oFilter->GetClassAlias() => array('friendlyname'));
} else {
$aAttToLoad = array($oFilter->GetClassAlias() => array($this->m_sValueAttCode));
}
else
{
$oObjects->OptimizeColumnLoad($aAttToLoad);
while ($oObject = $oObjects->Fetch()) {
if (empty($this->m_sValueAttCode)) {
$this->m_aValues[$oObject->GetKey()] = $oObject->GetName();
} else {
$this->m_aValues[$oObject->GetKey()] = $oObject->Get($this->m_sValueAttCode);
}
}
return true;
}
/**
* Get filter for functions LoadValues and LoadValuesForAutocomplete
*
* @param $sOperation
* @param $sContains
*
* @return \DBObjectSearch|\DBSearch|\DBUnionSearch|false|mixed
* @throws \CoreException
* @throws \OQLException
* @since 3.0.3 3.1.0
*/
protected function GetFilter($sOperation, $sContains)
{
$this->m_sContains = $sContains;
$this->m_sOperation = $sOperation;
if ($this->m_bAllowAllData) {
$oFilter = DBObjectSearch::FromOQL_AllData($this->m_sFilterExpr);
} else {
$oFilter = DBObjectSearch::FromOQL($this->m_sFilterExpr);
$oFilter->SetShowObsoleteData(utils::ShowObsoleteData());
}
if (!$oFilter) return false;
if (!is_null($this->m_oExtraCondition))
{
if (!$oFilter) {
return false;
}
if (!is_null($this->m_oExtraCondition)) {
$oFilter = $oFilter->Intersect($this->m_oExtraCondition);
}
foreach($this->m_aModifierProperties as $sPluginClass => $aProperties)
{
foreach ($aProperties as $sProperty => $value)
{
foreach ($this->m_aModifierProperties as $sPluginClass => $aProperties) {
foreach ($aProperties as $sProperty => $value) {
$oFilter->SetModifierProperty($sPluginClass, $sProperty, $value);
}
}
$oExpression = DBObjectSearch::GetPolymorphicExpression($oFilter->GetClass(), 'friendlyname');
$aFields = $oExpression->ListRequiredFields();
$sClass = $oFilter->GetClass();
/*foreach($aFields as $sField)
{
$aFieldItems = explode('.', $sField);
if ($aFieldItems[0] != $sClass)
{
$sOperation = 'contains';
break;
}
}*/
switch ($sOperation)
{
switch ($this->m_sOperation) {
case 'equals':
$aAttributes = MetaModel::GetFriendlyNameAttributeCodeList($sClass);
$sClassAlias = $oFilter->GetClassAlias();
$aFilters = array();
$oValueExpr = new ScalarExpression($sContains);
foreach($aAttributes as $sAttribute)
{
$oNewFilter = $oFilter->DeepClone();
$oNameExpr = new FieldExpression($sAttribute, $sClassAlias);
$oCondition = new BinaryExpression($oNameExpr, '=', $oValueExpr);
$oNewFilter->AddConditionExpression($oCondition);
$aFilters[] = $oNewFilter;
case 'start_with':
if ($this->m_sOperation === 'start_with') {
$this->m_sContains .= '%';
$sOperator = 'LIKE';
} else {
$sOperator = '=';
}
$aAttributes = MetaModel::GetFriendlyNameAttributeCodeList($sClass);
if (count($aAttributes) > 0) {
$sClassAlias = $oFilter->GetClassAlias();
$aFilters = array();
$oValueExpr = new ScalarExpression($this->m_sContains);
foreach ($aAttributes as $sAttribute) {
$oNewFilter = $oFilter->DeepClone();
$oNameExpr = new FieldExpression($sAttribute, $sClassAlias);
$oCondition = new BinaryExpression($oNameExpr, $sOperator, $oValueExpr);
$oNewFilter->AddConditionExpression($oCondition);
$aFilters[] = $oNewFilter;
}
// Unions are much faster than OR conditions
$oFilter = new DBUnionSearch($aFilters);
} else {
$oValueExpr = new ScalarExpression($this->m_sContains);
$oNameExpr = new FieldExpression('friendlyname', $oFilter->GetClassAlias());
$oNewCondition = new BinaryExpression($oNameExpr, $sOperator, $oValueExpr);
$oFilter->AddConditionExpression($oNewCondition);
}
// Unions are much faster than OR conditions
$oFilter = new DBUnionSearch($aFilters);
break;
case 'start_with':
$aAttributes = MetaModel::GetFriendlyNameAttributeCodeList($sClass);
$sClassAlias = $oFilter->GetClassAlias();
$aFilters = array();
$oValueExpr = new ScalarExpression($sContains.'%');
foreach($aAttributes as $sAttribute)
{
$oNewFilter = $oFilter->DeepClone();
$oNameExpr = new FieldExpression($sAttribute, $sClassAlias);
$oCondition = new BinaryExpression($oNameExpr, 'LIKE', $oValueExpr);
$oNewFilter->AddConditionExpression($oCondition);
$aFilters[] = $oNewFilter;
}
// Unions are much faster than OR conditions
$oFilter = new DBUnionSearch($aFilters);
break;
default:
$oValueExpr = new ScalarExpression('%'.$sContains.'%');
$oValueExpr = new ScalarExpression('%'.$this->m_sContains.'%');
$oNameExpr = new FieldExpression('friendlyname', $oFilter->GetClassAlias());
$oNewCondition = new BinaryExpression($oNameExpr, 'LIKE', $oValueExpr);
$oFilter->AddConditionExpression($oNewCondition);
break;
}
$oObjects = new DBObjectSet($oFilter, $this->m_aOrderBy, $aArgs, null, $this->m_iLimit, 0, $this->m_bSort);
if (empty($this->m_sValueAttCode))
{
$aAttToLoad = array($oFilter->GetClassAlias() => array('friendlyname'));
}
else
{
$aAttToLoad = array($oFilter->GetClassAlias() => array($this->m_sValueAttCode));
}
$oObjects->OptimizeColumnLoad($aAttToLoad);
while ($oObject = $oObjects->Fetch())
{
if (empty($this->m_sValueAttCode))
{
$this->m_aValues[$oObject->GetKey()] = $oObject->GetName();
}
else
{
$this->m_aValues[$oObject->GetKey()] = $oObject->Get($this->m_sValueAttCode);
}
}
return true;
return $oFilter;
}
public function GetValuesDescription()
{
return 'Filter: '.$this->m_sFilterExpr;
@@ -376,73 +374,12 @@ class ValueSetObjects extends ValueSetDefinition
*/
protected function LoadValuesForAutocomplete($aArgs, $sContains = '', $sOperation = 'contains')
{
$this->m_sContains = $sContains;
$this->m_sOperation = $sOperation;
$this->m_aValues = array();
if ($this->m_bAllowAllData) {
$oFilter = DBObjectSearch::FromOQL_AllData($this->m_sFilterExpr);
} else {
$oFilter = DBObjectSearch::FromOQL($this->m_sFilterExpr);
$oFilter->SetShowObsoleteData(utils::ShowObsoleteData());
}
if (!$oFilter) {
return false;
}
if (!is_null($this->m_oExtraCondition)) {
$oFilter = $oFilter->Intersect($this->m_oExtraCondition);
}
foreach ($this->m_aModifierProperties as $sPluginClass => $aProperties) {
foreach ($aProperties as $sProperty => $value) {
$oFilter->SetModifierProperty($sPluginClass, $sProperty, $value);
}
}
//$oExpression = DBObjectSearch::GetPolymorphicExpression($oFilter->GetClass(), 'friendlyname');
$oFilter = $this->GetFilter($sOperation, $sContains);
$sClass = $oFilter->GetClass();
$sClassAlias = $oFilter->GetClassAlias();
switch ($sOperation) {
case 'equals':
$aAttributes = MetaModel::GetFriendlyNameAttributeCodeList($sClass);
$aFilters = array();
$oValueExpr = new ScalarExpression($sContains);
foreach ($aAttributes as $sAttribute) {
$oNewFilter = $oFilter->DeepClone();
$oNameExpr = new FieldExpression($sAttribute, $sClassAlias);
$oCondition = new BinaryExpression($oNameExpr, '=', $oValueExpr);
$oNewFilter->AddConditionExpression($oCondition);
$aFilters[] = $oNewFilter;
}
// Unions are much faster than OR conditions
$oFilter = new DBUnionSearch($aFilters);
break;
case 'start_with':
$aAttributes = MetaModel::GetFriendlyNameAttributeCodeList($sClass);
$aFilters = array();
$oValueExpr = new ScalarExpression($sContains.'%');
foreach($aAttributes as $sAttribute)
{
$oNewFilter = $oFilter->DeepClone();
$oNameExpr = new FieldExpression($sAttribute, $sClassAlias);
$oCondition = new BinaryExpression($oNameExpr, 'LIKE', $oValueExpr);
$oNewFilter->AddConditionExpression($oCondition);
$aFilters[] = $oNewFilter;
}
// Unions are much faster than OR conditions
$oFilter = new DBUnionSearch($aFilters);
break;
default:
$oValueExpr = new ScalarExpression('%'.$sContains.'%');
$oNameExpr = new FieldExpression('friendlyname', $sClassAlias);
$oNewCondition = new BinaryExpression($oNameExpr, 'LIKE', $oValueExpr);
$oFilter->AddConditionExpression($oNewCondition);
break;
}
$oObjects = new DBObjectSet($oFilter, $this->m_aOrderBy, $aArgs, null, $this->m_iLimit, 0, $this->m_bSort);
if (empty($this->m_sValueAttCode)) {
$aAttToLoad = ['friendlyname'];

View File

@@ -1,46 +1,60 @@
/*
* @copyright Copyright (C) 2010-2021 Combodo SARL
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
$ibo-table-preview--header-cell--padding: $ibo-spacing-200 $ibo-spacing-600 $ibo-spacing-200 $ibo-spacing-200 !default;
$ibo-table-preview--header-cell--background-color: $ibo-color-white-200 !default;
$ibo-table-preview--header-cell--border-width: 1px 1px 0 !default;
$ibo-table-preview--body-cell--padding-x: $ibo-spacing-200 !default;
$ibo-table-preview--body-cell--border-width: 0 1px !default;
$ibo-table-preview--body-cell--last--border-bottom-width: 1px !default;
$ibo-preview-header--margin-bottom: $ibo-spacing-200 !default;
$ibo-table-preview--remove-column--top: $ibo-spacing-300 !default;
$ibo-table-preview--remove-column--right: $ibo-spacing-300 !default;
$ibo-table-preview--remove-column--font-size: 8px !default;
$ibo-form-part-interactive-fields--margin-top: $ibo-spacing-600 !default;
.ibo-table-preview {
margin-top: 20px;
overflow-x: auto;
th {
position: relative;
padding: 5px;
padding-right: $ibo-spacing-600;
border-width: 1px 1px 0;
padding: $ibo-table-preview--header-cell--padding;
border-width: $ibo-table-preview--header-cell--border-width;
border-style: groove groove none;
background: $ibo-color-white-200;
background: $ibo-table-preview--header-cell--background-color;
}
td {
padding-right: 5px;
padding-left: 5px;
border-width: 0 1px;
padding-right: $ibo-table-preview--body-cell--padding-x;
padding-left: $ibo-table-preview--body-cell--padding-x;
border-width: $ibo-table-preview--body-cell--border-width;
border-style: none groove;
}
tr:last-child td {
border-bottom-width: 1px;
border-bottom-width: $ibo-table-preview--body-cell--last--border-bottom-width;
border-bottom-style: groove;
}
}
.ibo-preview-header {
margin-bottom: 5px;
margin-bottom: $ibo-preview-header--margin-bottom;
}
.ibo-table-preview--remove-column {
position: absolute;
top: $ibo-spacing-300;
right: $ibo-spacing-300;
top: $ibo-table-preview--remove-column--top;
right: $ibo-table-preview--remove-column--right;
display: inline-block;
cursor: pointer;
font-size: 8px;
font-size: $ibo-table-preview--remove-column--font-size;
}
#form_part_interactive_fields_xlsx, #form_part_interactive_fields_csv, #form_part_interactive_fields_pdf {
margin-top: $ibo-spacing-600;
margin-top: $ibo-form-part-interactive-fields--margin-top;
}

View File

@@ -20,7 +20,7 @@ $ibo-datatable--row--background-color--is-selected: $ibo-color-primary-300 !defa
$ibo-datatable--selection-validation-buttons-toolbar--margin-top: 10px !default;
$ibo-list-column--max-height: 150px !default;
$ibo-datatable--sort-order--color: $ibo-color-orange-600 !default;
$ibo-datatable--sort-order--color: $ibo-color-primary-600 !default;
$ibo-fieldsorter--selected--background-color: $ibo-color-blue-200 !default;

View File

@@ -253,3 +253,6 @@ $ibo-field--enable-bulk--checkbox--margin-left: $ibo-spacing-300 !default;
margin-left: $ibo-field--enable-bulk--checkbox--margin-left;
}
.ibo-input-select--action-buttons a {
@extend %ibo-hyperlink-inherited-colors;
}

View File

@@ -3,7 +3,14 @@
* @license http://opensource.org/licenses/AGPL-3.0
*/
$ibo-csv-import--cell-message-padding:3px;
$ibo-csv-import--cell-message--padding-top: 3px !default;
$ibo-csv-import--cell-modified--color: $ibo-color-blue-700 !default;
$ibo-csv-import--cell-error--color: $ibo-color-red-700 !default;
$ibo-csv-import--row--border-color: $ibo-color-grey-400 !default;
$ibo-csv-import--row-error--background-color: $ibo-color-red-200 !default;
$ibo-csv-import--download-file--color: $ibo-color-primary-400 !default;
$ibo-csv-import--download-file--font-size: 4em !default;
$ibo-csv-import--download-file--margin: 20px !default;
#tabs1-import .ibo-field--label {
max-width: 50%;
@@ -11,37 +18,37 @@ $ibo-csv-import--cell-message-padding:3px;
div.ibo-csv-import--cell-modified {
font-weight: bold;
color: $ibo-color-blue-700;
color: $ibo-csv-import--cell-modified--color;
}
div.ibo-csv-import--cell-error {
font-weight: bold;
color: $ibo-color-red-700;
color: $ibo-csv-import--cell-error--color;
}
div.ibo-csv-import--cell-message {
padding-top: $ibo-csv-import--cell-message-padding;
padding-top: $ibo-csv-import--cell-message--padding-top;
}
tr.ibo-csv-import--row-unchanged td {
border-bottom: 1px $ibo-color-grey-400 solid;
border-bottom: 1px $ibo-csv-import--row--border-color solid;
}
.wizContainer table tr.ibo-csv-import--row-error td {
border-bottom: 1px $ibo-color-grey-400 solid;
background-color: $ibo-color-red-200;
border-bottom: 1px $ibo-csv-import--row--border-color solid;
background-color: $ibo-csv-import--row-error--background-color;
}
tr.ibo-csv-import--row-modified td {
border-bottom: 1px $ibo-color-grey-400 solid;
border-bottom: 1px $ibo-csv-import--row--border-color solid;
}
tr.ibo-csv-import--row-added td {
border-bottom: 1px $ibo-color-grey-400 solid;
border-bottom: 1px $ibo-csv-import--row--border-color solid;
}
.ibo-csv-import--download-file {
font-size: 4em;
color: $ibo-color-primary-400;
margin: 20px;
font-size: $ibo-csv-import--download-file--font-size;
color: $ibo-csv-import--download-file--color;
margin: $ibo-csv-import--download-file--margin;
}

View File

@@ -6,6 +6,10 @@
$ibo-datamodel-viewer--parent--spacer--padding-y: $ibo-spacing-0 !default;
$ibo-datamodel-viewer--parent--spacer--padding-x: $ibo-spacing-300 !default;
$ibo-datamodel-viewer--classes-list--selectize-input--background-color: $ibo-color-white-100 !default;
$ibo-datamodel-viewer--classes-list--selectize-input--color: $ibo-color-grey-800 !default;
$ibo-datamodel-viewer--classes-list--selectize-input--border-color: $ibo-color-grey-500 !default;
$ibo-datamodel-viewer--attributes-table--first-column--width: 3px !default;
$ibo-datamodel-viewer--origin-cell--diameter: 8px !default;
@@ -45,6 +49,15 @@ $ibo-datamodel-viewer--lifecycle-image--margin-bottom: $ibo-spacing-500 !default
padding: $ibo-datamodel-viewer--parent--spacer--padding-y $ibo-datamodel-viewer--parent--spacer--padding-x;
}
// Overwrite selectize rules with !important
.ibo-datamodel-viewer--classes-list .selectize-input{
background-color: $ibo-datamodel-viewer--classes-list--selectize-input--background-color !important;
background-image: none !important;
color: $ibo-datamodel-viewer--classes-list--selectize-input--color;
box-shadow: none !important;
border-color: $ibo-datamodel-viewer--classes-list--selectize-input--border-color !important;
}
#ibo-datamodel-viewer--attributes-table{
> tbody tr td:first-child{
width: $ibo-datamodel-viewer--attributes-table--first-column--width;

View File

@@ -159,6 +159,16 @@ body.ibo-has-fullscreen-descendant {
border-spacing: 2px;
}
/*
* N°5317 - Handle overlapping tables when table cells have fixed widths
* Force table cell NOT to have a fixed width and to wrap when necessary
*/
td {
width: unset !important;
word-break: break-word !important;
white-space: unset !important;
}
/* Preserve original text color in code blocks, except for the Highlight.js blocks which have their own colors */
& > code,
code:not(.hljs) {

View File

@@ -6,4 +6,5 @@
@import "base";
@import "base-palette";
@import "semantic-palette";
@import "lifecycle-palette";
@import "lifecycle-palette";
@import "skeleton-palette";

View File

@@ -0,0 +1,17 @@
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
/* Skeleton palette */
/* - Colors used by skeletons svg to display placeholders */
$ibo-skeleton-start-color: $ibo-color-grey-200 !default;
$ibo-skeleton-stop-color: $ibo-color-blue-grey-100 !default;
/* CSS variables */
/* Skeleton CSS3 variables are not ibo prefixed as they are not iTop backoffice exclusives*/
:root {
--skeleton-start-color: #{$ibo-skeleton-start-color};
--skeleton-stop-color: #{$ibo-skeleton-stop-color};
}

View File

@@ -5,7 +5,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'authent-cas/3.0.2',
'authent-cas/3.0.3',
array(
// Identification
//

View File

@@ -27,7 +27,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'authent-external/3.0.2',
'authent-external/3.0.3',
array(
// Identification
//

View File

@@ -9,7 +9,7 @@ if (function_exists('ldap_connect'))
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'authent-ldap/3.0.2',
'authent-ldap/3.0.3',
array(
// Identification
//

View File

@@ -3,7 +3,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'authent-local/3.0.2',
'authent-local/3.0.3',
array(
// Identification
//

View File

@@ -12,6 +12,7 @@
<stylesheets>
<stylesheet id="fullmoon">../css/backoffice/main.scss</stylesheet>
<stylesheet id="editor">combodo-backoffice-darkmoon-theme/scss/editor.scss</stylesheet>
<stylesheet id="ace_editor">combodo-backoffice-darkmoon-theme/scss/ace_editor.scss</stylesheet>
</stylesheets>
<precompiled_stylesheet>combodo-backoffice-darkmoon-theme/precompiled-themes/main.css</precompiled_stylesheet>
</theme>

View File

@@ -5,7 +5,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'combodo-backoffice-darkmoon-theme/3.0.2',
'combodo-backoffice-darkmoon-theme/3.0.3',
array(
// Identification
//

View File

@@ -0,0 +1,96 @@
.ace-eclipse .ace_gutter {
background: unset !important;
border-right: unset !important;
color: $ibo-color-grey-400 !important;
}
.ace-eclipse .ace_print-margin {
width: 1px !important;
background: $ibo-color-grey-500 !important;
}
.ace-eclipse {
background-color: $ibo-color-grey-800 !important;
color: $ibo-color-grey-200 !important;
}
.ace-eclipse .ace_entity.ace_other.ace_attribute-name,
.ace-eclipse .ace_storage {
color: $ibo-color-grey-200 !important;
}
.ace-eclipse .ace_cursor {
color: $ibo-color-grey-200 !important;
}
.ace-eclipse .ace_string.ace_regexp {
color: $ibo-color-red-600 !important;
}
.ace-eclipse .ace_marker-layer .ace_active-line {
&:only-child {
background: $ibo-color-grey-600 !important;
}
&:not(:only-child) {
background: $ibo-color-grey-700 !important;
}
}
.ace-eclipse .ace_marker-layer .ace_selection {
background: $ibo-color-grey-500 !important;
}
.ace-eclipse.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px $ibo-color-grey-800 !important;
}
.ace-eclipse .ace_marker-layer .ace_step {
background: $nord13 !important;
}
.ace-eclipse .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px !important;
border: 1px solid $ibo-color-primary-300 !important;
}
.ace-eclipse .ace_gutter-active-line {
background-color: $ibo-color-grey-600 !important;
}
.ace-eclipse .ace_marker-layer .ace_selected-word {
border: 1px solid $ibo-color-primary-300 !important;
}
.ace-eclipse .ace_invisible {
color: $ibo-color-grey-500 !important;
}
.ace-eclipse .ace_keyword,
.ace-eclipse .ace_meta,
.ace-eclipse .ace_support.ace_class,
.ace-eclipse .ace_support.ace_type {
color: $ibo-color-primary-500 !important;
}
.ace-eclipse .ace_constant.ace_character,
.ace-eclipse .ace_constant.ace_other {
color: $ibo-color-grey-200 !important;
}
.ace-eclipse .ace_constant.ace_language {
color: $ibo-color-primary-800 !important;
}
.ace-eclipse .ace_constant.ace_escape {
color: $nord13 !important;
}
.ace-eclipse .ace_constant.ace_numeric {
color: $nord15 !important;
}
.ace-eclipse .ace_fold {
background-color: $ibo-color-grey-500 !important;
border-color: $ibo-color-grey-200 !important;
}
.ace-eclipse .ace_entity.ace_name.ace_function,
.ace-eclipse .ace_entity.ace_name.ace_tag,
.ace-eclipse .ace_support.ace_function,
.ace-eclipse .ace_variable,
.ace-eclipse .ace_variable.ace_language {
color: #8fbcbb !important;
}
.ace-eclipse .ace_string {
color: $nord14 !important;
}
.ace-eclipse .ace_comment {
color: $nord7 !important;
}
.ace-eclipse .ace_indent-guide {
box-shadow: inset -1px 0 0 0 $ibo-color-grey-600 !important;
}
.ace-eclipse .ace_indent-guide-active {
box-shadow: inset -1px 0 0 0 $ibo-color-grey-400 !important;
}

View File

@@ -50,8 +50,8 @@ $text : $ibo-color-grey-100;
$text-invert: $ibo-color-grey-800;
$text-light : $ibo-color-grey-200;
$text-strong: inherit;
$code: $ibo-color-primary-800;
$code-background: $ibo-color-grey-300;
$code: $ibo-color-primary-400;
$code-background: $ibo-color-grey-700;
$pre-background: $ibo-color-grey-600;
$ibo-scrollbar--scrollbar-track-background-color: $ibo-color-grey-700;
@@ -145,6 +145,10 @@ $ibo-vendors-datatables--row--background-color--is-even: $ibo-color-grey-800;
$ibo-datatable--row--background-color--is-hover: $ibo-color-blue-900;
$ibo-datatable--row--background-color--is-selected: $ibo-color-blue-700;
$ibo-fieldsorter--selected--background-color: $ibo-color-blue-800;
$ibo-table-preview--header-cell--background-color: $ibo-color-grey-500;
$ibo-field--value--color: $ibo-body-text-color;
$ibo-title--text-color: $ibo-body-text-color;
@@ -173,8 +177,9 @@ $ibo-input-select-selectize--item--active--text-color: $ibo-color-grey-100;
$ibo-input-select-selectize--item--active--background-color: $ibo-color-grey-500;
$ibo-vendors-selectize-input--color: $ibo-body-text-color;
$ibo-popover-menu--separator--background-color: $ibo-color-grey-500;
$ibo-popover-menu--item-separator--background-color: $ibo-color-grey-500;
$ibo-popover-menu--item--text-color: $ibo-color-grey-200;
$ibo-popover-menu--item--icon--color: $ibo-color-grey-300;
$ibo-popover-menu--background-color: $ibo-color-grey-700;
$ibo-popover-menu--item--hover-background-color: $ibo-color-grey-500;
@@ -189,9 +194,17 @@ $ibo-tab-container--extra-tab-toggler--background-color--on-hover: $ibo-color-gr
$ibo-activity-panel--header--background-color: $ibo-color-grey-400;
$ibo-activity-panel--tab-toggler--is-active--background-color: $ibo-color-grey-200;
$ibo-activity-panel--tab-toolbar--background-color: $ibo-activity-panel--tab-toggler--is-active--background-color;
$ibo-activity-panel--load-entries-button--background-color: $ibo-color-grey-500;
$ibo-caselog-entry-form--background-color: $ibo-activity-panel--tab-toolbar--background-color;
$ibo-object-details--tag--separator--background-color: $ibo-color-grey-300;
$ibo-skeleton-start-color: $ibo-color-grey-500;
$ibo-skeleton-stop-color: $ibo-color-grey-400;
$ibo-tab--temporary-remote-content--button--color: $ibo-color-grey-200;
$ibo-tab--temporary-remote-content--button--hover--color: $ibo-color-grey-200;
$ibo-tab--temporary-remote-content--button--hover--background-color: $ibo-color-grey-800;
$ibo-activity-panel--tab-toolbar--text-color: $ibo-color-grey-800;
$ibo-activity-panel--tab-toolbar-action--color: $ibo-color-grey-800;
@@ -216,7 +229,7 @@ $ibo-search-form-panel--criteria--color: $ibo-color-grey-100;
$ibo-search-form-panel--more-criteria--background-color: $ibo-color-grey-800;
$ibo-search-form-panel--more-criteria--color: $ibo-color-grey-100;
$ibo-search-form-panel--more-criteria--icon--color: $ibo-color-primary-500;
$ibo-search-form-panel--criteria--border-color: $ibo-color-grey-500;
$ibo-search-form-panel--criteria--border-color: $ibo-color-grey-900;
$ibo-search-form-panel--multiple-choice--hover--color: $ibo-color-grey-500;
$ibo-search-form-panel--items--hover--color: $ibo-search-form-panel--multiple-choice--hover--color;
@@ -251,4 +264,16 @@ $ibo-vendors-c3--legend--background-color: $ibo-color-white-100;
$ibo-vendors-c3--legend-item--fill: $ibo-color-grey-100;
$ibo-vendors-c3--axis--fill: $ibo-color-grey-200;
$ibo-run-query--highlight--background-color: $ibo-color-primary-700;
$ibo-run-query--highlight--background-color: $ibo-color-primary-700;
$ibo-datamodel-viewer--classes-list--selectize-input--background-color: $ibo-color-grey-700;
$ibo-datamodel-viewer--classes-list--selectize-input--border-color: $ibo-color-grey-500;
$ibo-datamodel-viewer--classes-list--selectize-input--color: $ibo-color-grey-200;
$ibo-datamodel-viewer--lifecycle--code--color: $ibo-color-grey-300;
$ibo-datamodel-viewer--lifecycle--stimuli--color: $ibo-color-blue-300;
$ibo-datamodel-viewer--lifecycle--attribute-option--color: $ibo-color-pink-300;
$ibo-datamodel-viewer--schema--tooltip--fill: $ibo-color-grey-600;
$ibo-csv-import--row-error--background-color: $ibo-color-red-950;
$ibo-csv-import--cell-error--color: $ibo-color-red-500;
$ibo-csv-import--cell-modified--color: $ibo-color-blue-500;

View File

@@ -24,7 +24,7 @@
/** @noinspection PhpUnhandledExceptionInspection */
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'combodo-db-tools/3.0.2',
'combodo-db-tools/3.0.3',
array(
// Identification
//

View File

@@ -19,7 +19,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-attachments/3.0.2',
'itop-attachments/3.0.3',
array(
// Identification
//

View File

@@ -3,7 +3,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-backup/3.0.2',
'itop-backup/3.0.3',
array(
// Identification
//

View File

@@ -91,9 +91,9 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array(
Dict::Add('CS CZ', 'Czech', 'Čeština', array(
'Class:FunctionalCI/Attribute:providercontracts_list' => 'Smlouvy s poskytovateli',
'Class:FunctionalCI/Attribute:providercontracts_list+' => '',
'Class:FunctionalCI/Attribute:providercontracts_list+' => 'All the provider contracts for this configuration item~~',
'Class:FunctionalCI/Attribute:services_list' => 'Služby',
'Class:FunctionalCI/Attribute:services_list+' => '',
'Class:FunctionalCI/Attribute:services_list+' => 'All the services impacted by this configuration item~~',
'Class:FunctionalCI/Attribute:tickets_list' => 'Tikety',
'Class:FunctionalCI/Attribute:tickets_list+' => '',
'Class:FunctionalCI/Attribute:tickets_list+' => 'All the tickets for this configuration item~~',
));

View File

@@ -91,9 +91,9 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:FunctionalCI/Attribute:providercontracts_list' => 'Leverandør kontrakter',
'Class:FunctionalCI/Attribute:providercontracts_list+' => '',
'Class:FunctionalCI/Attribute:providercontracts_list+' => 'All the provider contracts for this configuration item~~',
'Class:FunctionalCI/Attribute:services_list' => 'Ydelser',
'Class:FunctionalCI/Attribute:services_list+' => '',
'Class:FunctionalCI/Attribute:services_list+' => 'All the services impacted by this configuration item~~',
'Class:FunctionalCI/Attribute:tickets_list' => 'Tickets',
'Class:FunctionalCI/Attribute:tickets_list+' => '',
'Class:FunctionalCI/Attribute:tickets_list+' => 'All the tickets for this configuration item~~',
));

View File

@@ -91,9 +91,9 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:FunctionalCI/Attribute:providercontracts_list' => 'Provider-Verträge',
'Class:FunctionalCI/Attribute:providercontracts_list+' => '',
'Class:FunctionalCI/Attribute:providercontracts_list+' => 'All the provider contracts for this configuration item~~',
'Class:FunctionalCI/Attribute:services_list' => 'Services',
'Class:FunctionalCI/Attribute:services_list+' => '',
'Class:FunctionalCI/Attribute:services_list+' => 'All the services impacted by this configuration item~~',
'Class:FunctionalCI/Attribute:tickets_list' => 'Tickets',
'Class:FunctionalCI/Attribute:tickets_list+' => '',
'Class:FunctionalCI/Attribute:tickets_list+' => 'All the tickets for this configuration item~~',
));

View File

@@ -91,9 +91,9 @@ Dict::Add('FR FR', 'French', 'Français', array(
Dict::Add('FR FR', 'French', 'Français', array(
'Class:FunctionalCI/Attribute:providercontracts_list' => 'Contrats fournisseur',
'Class:FunctionalCI/Attribute:providercontracts_list+' => '',
'Class:FunctionalCI/Attribute:providercontracts_list+' => 'Tous les contrats fournisseurs pour cet élément de configuration',
'Class:FunctionalCI/Attribute:services_list' => 'Services',
'Class:FunctionalCI/Attribute:services_list+' => '',
'Class:FunctionalCI/Attribute:services_list+' => 'Tous les services impactés par cet élément de configuration',
'Class:FunctionalCI/Attribute:tickets_list' => 'Tickets',
'Class:FunctionalCI/Attribute:tickets_list+' => '',
'Class:FunctionalCI/Attribute:tickets_list+' => 'Tous les tickets de cet élément de configuration',
));

View File

@@ -91,9 +91,9 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:FunctionalCI/Attribute:providercontracts_list' => 'プロバイダー契約',
'Class:FunctionalCI/Attribute:providercontracts_list+' => '',
'Class:FunctionalCI/Attribute:providercontracts_list+' => 'All the provider contracts for this configuration item~~',
'Class:FunctionalCI/Attribute:services_list' => 'サービス',
'Class:FunctionalCI/Attribute:services_list+' => '',
'Class:FunctionalCI/Attribute:services_list+' => 'All the services impacted by this configuration item~~',
'Class:FunctionalCI/Attribute:tickets_list' => 'チケット',
'Class:FunctionalCI/Attribute:tickets_list+' => '',
'Class:FunctionalCI/Attribute:tickets_list+' => 'All the tickets for this configuration item~~',
));

View File

@@ -91,9 +91,9 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:FunctionalCI/Attribute:providercontracts_list' => 'Poskytovateľské zmluvy',
'Class:FunctionalCI/Attribute:providercontracts_list+' => '',
'Class:FunctionalCI/Attribute:providercontracts_list+' => 'All the provider contracts for this configuration item~~',
'Class:FunctionalCI/Attribute:services_list' => 'Služby',
'Class:FunctionalCI/Attribute:services_list+' => '',
'Class:FunctionalCI/Attribute:services_list+' => 'All the services impacted by this configuration item~~',
'Class:FunctionalCI/Attribute:tickets_list' => 'Tickety',
'Class:FunctionalCI/Attribute:tickets_list+' => '',
'Class:FunctionalCI/Attribute:tickets_list+' => 'All the tickets for this configuration item~~',
));

View File

@@ -5,7 +5,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-bridge-cmdb-ticket/3.0.2',
'itop-bridge-cmdb-ticket/3.0.3',
array(
// Identification
//

View File

@@ -3,7 +3,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-bridge-virtualization-storage/3.0.2',
'itop-bridge-virtualization-storage/3.0.3',
array(
// Identification
//

View File

@@ -125,13 +125,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:Change/Attribute:parent_name' => 'Parent Change Ref',
'Class:Change/Attribute:parent_name+' => '',
'Class:Change/Attribute:related_request_list' => 'Relaterede Requests',
'Class:Change/Attribute:related_request_list+' => '',
'Class:Change/Attribute:related_request_list+' => 'All the user requests linked to this change~~',
'Class:Change/Attribute:related_problems_list' => 'Relaterede Problemer',
'Class:Change/Attribute:related_problems_list+' => '',
'Class:Change/Attribute:related_problems_list+' => 'All the problems linked to this change~~',
'Class:Change/Attribute:related_incident_list' => 'Relaterede incidents',
'Class:Change/Attribute:related_incident_list+' => '',
'Class:Change/Attribute:related_incident_list+' => 'All the incidents linked to this change~~',
'Class:Change/Attribute:child_changes_list' => 'Afledte Changes',
'Class:Change/Attribute:child_changes_list+' => '',
'Class:Change/Attribute:child_changes_list+' => 'All the sub changes linked to this change~~',
'Class:Change/Attribute:parent_id_friendlyname' => 'Parent Friendly Name',
'Class:Change/Attribute:parent_id_friendlyname+' => '',
'Class:Change/Attribute:parent_id_finalclass_recall' => 'Change-Type',

View File

@@ -127,13 +127,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:Change/Attribute:parent_name' => 'Parent Change Ref',
'Class:Change/Attribute:parent_name+' => '',
'Class:Change/Attribute:related_request_list' => 'Verwandte Requests',
'Class:Change/Attribute:related_request_list+' => '',
'Class:Change/Attribute:related_request_list+' => 'All the user requests linked to this change~~',
'Class:Change/Attribute:related_problems_list' => 'Verwandte Probleme',
'Class:Change/Attribute:related_problems_list+' => '',
'Class:Change/Attribute:related_problems_list+' => 'All the problems linked to this change~~',
'Class:Change/Attribute:related_incident_list' => 'Verwandte Incidents',
'Class:Change/Attribute:related_incident_list+' => '',
'Class:Change/Attribute:related_incident_list+' => 'All the incidents linked to this change~~',
'Class:Change/Attribute:child_changes_list' => 'Abgeleitete Changes',
'Class:Change/Attribute:child_changes_list+' => '',
'Class:Change/Attribute:child_changes_list+' => 'All the sub changes linked to this change~~',
'Class:Change/Attribute:parent_id_friendlyname' => 'Parent Friendly Name',
'Class:Change/Attribute:parent_id_friendlyname+' => '',
'Class:Change/Attribute:parent_id_finalclass_recall' => 'Change-Typ',

View File

@@ -127,13 +127,13 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:Change/Attribute:parent_name' => 'Ref changement parent',
'Class:Change/Attribute:parent_name+' => '',
'Class:Change/Attribute:related_request_list' => 'Requêtes liées',
'Class:Change/Attribute:related_request_list+' => '',
'Class:Change/Attribute:related_request_list+' => 'Toutes les demandes utilisateurs liées à ce changement',
'Class:Change/Attribute:related_problems_list' => 'Problèmes liés',
'Class:Change/Attribute:related_problems_list+' => '',
'Class:Change/Attribute:related_problems_list+' => 'Tous les problèmes liés à ce changement',
'Class:Change/Attribute:related_incident_list' => 'Incidents liés',
'Class:Change/Attribute:related_incident_list+' => '',
'Class:Change/Attribute:related_incident_list+' => 'Tous les incidents liés à ce changement',
'Class:Change/Attribute:child_changes_list' => 'Changements fils',
'Class:Change/Attribute:child_changes_list+' => '',
'Class:Change/Attribute:child_changes_list+' => 'Tous les sous-changements liés à ce changement',
'Class:Change/Attribute:parent_id_friendlyname' => 'Nom commun du changement parent',
'Class:Change/Attribute:parent_id_friendlyname+' => '',
'Class:Change/Attribute:parent_id_finalclass_recall' => 'Type de changement',

View File

@@ -124,13 +124,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:Change/Attribute:parent_name' => '親変更参照',
'Class:Change/Attribute:parent_name+' => '',
'Class:Change/Attribute:related_request_list' => '関連要求',
'Class:Change/Attribute:related_request_list+' => '',
'Class:Change/Attribute:related_request_list+' => 'All the user requests linked to this change~~',
'Class:Change/Attribute:related_problems_list' => '関連問題',
'Class:Change/Attribute:related_problems_list+' => '',
'Class:Change/Attribute:related_problems_list+' => 'All the problems linked to this change~~',
'Class:Change/Attribute:related_incident_list' => '関連するインシデント',
'Class:Change/Attribute:related_incident_list+' => '',
'Class:Change/Attribute:related_incident_list+' => 'All the incidents linked to this change~~',
'Class:Change/Attribute:child_changes_list' => '子変更',
'Class:Change/Attribute:child_changes_list+' => '',
'Class:Change/Attribute:child_changes_list+' => 'All the sub changes linked to this change~~',
'Class:Change/Attribute:parent_id_friendlyname' => '親のフレンドリー名',
'Class:Change/Attribute:parent_id_friendlyname+' => '',
'Class:Change/Attribute:parent_id_finalclass_recall' => '変更タイプ',

View File

@@ -125,13 +125,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:Change/Attribute:parent_name' => 'Referencia na rodičovskú zmenu',
'Class:Change/Attribute:parent_name+' => '',
'Class:Change/Attribute:related_request_list' => 'Súvisiace požiadavky',
'Class:Change/Attribute:related_request_list+' => '',
'Class:Change/Attribute:related_request_list+' => 'All the user requests linked to this change~~',
'Class:Change/Attribute:related_problems_list' => 'Súvisiace problémy',
'Class:Change/Attribute:related_problems_list+' => '',
'Class:Change/Attribute:related_problems_list+' => 'All the problems linked to this change~~',
'Class:Change/Attribute:related_incident_list' => 'Súvisiace incidenty',
'Class:Change/Attribute:related_incident_list+' => '',
'Class:Change/Attribute:related_incident_list+' => 'All the incidents linked to this change~~',
'Class:Change/Attribute:child_changes_list' => 'Podriadené zmeny',
'Class:Change/Attribute:child_changes_list+' => '',
'Class:Change/Attribute:child_changes_list+' => 'All the sub changes linked to this change~~',
'Class:Change/Attribute:parent_id_friendlyname' => 'Priateľské meno rodičovskej zmeny',
'Class:Change/Attribute:parent_id_friendlyname+' => '',
'Class:Change/Attribute:parent_id_finalclass_recall' => 'Change type~~',

View File

@@ -3,7 +3,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-change-mgmt-itil/3.0.2',
'itop-change-mgmt-itil/3.0.3',
array(
// Identification
//

View File

@@ -109,13 +109,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:Change/Attribute:fallback_plan' => 'Fallback-Plan',
'Class:Change/Attribute:fallback_plan+' => '',
'Class:Change/Attribute:related_request_list' => 'Relaterede Requests',
'Class:Change/Attribute:related_request_list+' => '',
'Class:Change/Attribute:related_request_list+' => 'All the user requests linked to this change~~',
'Class:Change/Attribute:related_incident_list' => 'Relaterede Incidents',
'Class:Change/Attribute:related_incident_list+' => '',
'Class:Change/Attribute:related_incident_list+' => 'All the incidents linked to this change~~',
'Class:Change/Attribute:related_problems_list' => 'Relaterede problemer',
'Class:Change/Attribute:related_problems_list+' => '',
'Class:Change/Attribute:related_problems_list+' => 'All the problems linked to this change~~',
'Class:Change/Attribute:child_changes_list' => 'Afledte Changes',
'Class:Change/Attribute:child_changes_list+' => '',
'Class:Change/Attribute:child_changes_list+' => 'All the sub changes linked to this change~~',
'Class:Change/Attribute:parent_id_friendlyname' => 'Parent Change Friendly Name',
'Class:Change/Attribute:parent_id_friendlyname+' => '',
'Class:Change/Stimulus:ev_assign' => 'Tildel',

View File

@@ -111,13 +111,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:Change/Attribute:fallback_plan' => 'Fallback-Plan',
'Class:Change/Attribute:fallback_plan+' => '',
'Class:Change/Attribute:related_request_list' => 'Verwandte Requests',
'Class:Change/Attribute:related_request_list+' => '',
'Class:Change/Attribute:related_request_list+' => 'All the user requests linked to this change~~',
'Class:Change/Attribute:related_incident_list' => 'Verwandte Incidents',
'Class:Change/Attribute:related_incident_list+' => '',
'Class:Change/Attribute:related_incident_list+' => 'All the incidents linked to this change~~',
'Class:Change/Attribute:related_problems_list' => 'Verwandte Probleme',
'Class:Change/Attribute:related_problems_list+' => '',
'Class:Change/Attribute:related_problems_list+' => 'All the problems linked to this change~~',
'Class:Change/Attribute:child_changes_list' => 'Abgeleitete Changes',
'Class:Change/Attribute:child_changes_list+' => '',
'Class:Change/Attribute:child_changes_list+' => 'All the sub changes linked to this change~~',
'Class:Change/Attribute:parent_id_friendlyname' => 'Parent Change',
'Class:Change/Attribute:parent_id_friendlyname+' => '',
'Class:Change/Stimulus:ev_assign' => 'Zuweisen',

View File

@@ -111,13 +111,13 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:Change/Attribute:fallback_plan' => 'Plan de secours',
'Class:Change/Attribute:fallback_plan+' => '',
'Class:Change/Attribute:related_request_list' => 'Requêtes liées',
'Class:Change/Attribute:related_request_list+' => '',
'Class:Change/Attribute:related_request_list+' => 'Toutes les demandes utilisateurs liées à ce changement',
'Class:Change/Attribute:related_incident_list' => 'Incidents liés',
'Class:Change/Attribute:related_incident_list+' => '',
'Class:Change/Attribute:related_incident_list+' => 'Tous les incidents liés à ce changement',
'Class:Change/Attribute:related_problems_list' => 'Problèmes liés',
'Class:Change/Attribute:related_problems_list+' => '',
'Class:Change/Attribute:related_problems_list+' => 'Tous les problèmes liés à ce changement',
'Class:Change/Attribute:child_changes_list' => 'Changements fils',
'Class:Change/Attribute:child_changes_list+' => '',
'Class:Change/Attribute:child_changes_list+' => 'Tous les sous-changements liés à ce changement',
'Class:Change/Attribute:parent_id_friendlyname' => 'Nom usuel du changement parent',
'Class:Change/Attribute:parent_id_friendlyname+' => '',
'Class:Change/Stimulus:ev_assign' => 'Assigner',

View File

@@ -108,13 +108,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:Change/Attribute:fallback_plan' => 'フォールバック計画',
'Class:Change/Attribute:fallback_plan+' => '',
'Class:Change/Attribute:related_request_list' => '関連要求',
'Class:Change/Attribute:related_request_list+' => '',
'Class:Change/Attribute:related_request_list+' => 'All the user requests linked to this change~~',
'Class:Change/Attribute:related_incident_list' => '関連インシデント',
'Class:Change/Attribute:related_incident_list+' => '',
'Class:Change/Attribute:related_incident_list+' => 'All the incidents linked to this change~~',
'Class:Change/Attribute:related_problems_list' => '関連問題',
'Class:Change/Attribute:related_problems_list+' => '',
'Class:Change/Attribute:related_problems_list+' => 'All the problems linked to this change~~',
'Class:Change/Attribute:child_changes_list' => '子変更',
'Class:Change/Attribute:child_changes_list+' => '',
'Class:Change/Attribute:child_changes_list+' => 'All the sub changes linked to this change~~',
'Class:Change/Attribute:parent_id_friendlyname' => '親変更フレンドリー名',
'Class:Change/Attribute:parent_id_friendlyname+' => '',
'Class:Change/Stimulus:ev_assign' => '割り当て',

View File

@@ -109,13 +109,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:Change/Attribute:fallback_plan' => 'Návratový plán',
'Class:Change/Attribute:fallback_plan+' => '',
'Class:Change/Attribute:related_request_list' => 'Súvisiace požiadavky',
'Class:Change/Attribute:related_request_list+' => '',
'Class:Change/Attribute:related_request_list+' => 'All the user requests linked to this change~~',
'Class:Change/Attribute:related_incident_list' => 'Súvisiace incidenty',
'Class:Change/Attribute:related_incident_list+' => '',
'Class:Change/Attribute:related_incident_list+' => 'All the incidents linked to this change~~',
'Class:Change/Attribute:related_problems_list' => 'Súvisiace problémy',
'Class:Change/Attribute:related_problems_list+' => '',
'Class:Change/Attribute:related_problems_list+' => 'All the problems linked to this change~~',
'Class:Change/Attribute:child_changes_list' => 'Podriadené zmeny',
'Class:Change/Attribute:child_changes_list+' => '',
'Class:Change/Attribute:child_changes_list+' => 'All the sub changes linked to this change~~',
'Class:Change/Attribute:parent_id_friendlyname' => 'Priateľské meno rodičovskej zmeny',
'Class:Change/Attribute:parent_id_friendlyname+' => '',
'Class:Change/Stimulus:ev_assign' => 'Prideiť',

View File

@@ -3,7 +3,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-change-mgmt/3.0.2',
'itop-change-mgmt/3.0.3',
array(
// Identification
//

View File

@@ -122,13 +122,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array(
'Class:FunctionalCI/Attribute:move2production' => 'Datum uvedení do produkce',
'Class:FunctionalCI/Attribute:move2production+' => '',
'Class:FunctionalCI/Attribute:contacts_list' => 'Kontakty',
'Class:FunctionalCI/Attribute:contacts_list+' => '',
'Class:FunctionalCI/Attribute:contacts_list+' => 'All the contacts for this configuration item~~',
'Class:FunctionalCI/Attribute:documents_list' => 'Dokumenty',
'Class:FunctionalCI/Attribute:documents_list+' => '',
'Class:FunctionalCI/Attribute:documents_list+' => 'All the documents linked to this configuration item~~',
'Class:FunctionalCI/Attribute:applicationsolution_list' => 'Aplikační řešení',
'Class:FunctionalCI/Attribute:applicationsolution_list+' => 'Všechna aplikační řešení závisející na této konfigurační položce',
'Class:FunctionalCI/Attribute:softwares_list' => 'Software',
'Class:FunctionalCI/Attribute:softwares_list+' => '',
'Class:FunctionalCI/Attribute:softwares_list+' => 'All the softwares installed on this configuration item~~',
'Class:FunctionalCI/Attribute:finalclass' => 'Typ konfigurační položky',
'Class:FunctionalCI/Attribute:finalclass+' => '',
'Class:FunctionalCI/Tab:OpenedTickets' => 'Aktivní tikety',
@@ -183,9 +183,9 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array(
'Class:Rack/Attribute:nb_u' => 'Velikost (U)',
'Class:Rack/Attribute:nb_u+' => '',
'Class:Rack/Attribute:device_list' => 'Zařízení',
'Class:Rack/Attribute:device_list+' => '',
'Class:Rack/Attribute:device_list+' => 'All the physical devices racked into this rack~~',
'Class:Rack/Attribute:enclosure_list' => 'Šasi',
'Class:Rack/Attribute:enclosure_list+' => '',
'Class:Rack/Attribute:enclosure_list+' => 'All the enclosures in this rack~~',
));
//
@@ -247,9 +247,9 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array(
'Class:ConnectableCI' => 'Připojitelná konfigurační položka',
'Class:ConnectableCI+' => '',
'Class:ConnectableCI/Attribute:networkdevice_list' => 'Síťové prvky',
'Class:ConnectableCI/Attribute:networkdevice_list+' => '',
'Class:ConnectableCI/Attribute:networkdevice_list+' => 'All network devices connected to this device~~',
'Class:ConnectableCI/Attribute:physicalinterface_list' => 'Síťová rozhraní',
'Class:ConnectableCI/Attribute:physicalinterface_list+' => '',
'Class:ConnectableCI/Attribute:physicalinterface_list+' => 'All the physical network interfaces~~',
));
//
@@ -280,9 +280,9 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array(
'Class:DatacenterDevice/Attribute:powerB_name' => 'Název napájecího zdroje B',
'Class:DatacenterDevice/Attribute:powerB_name+' => '',
'Class:DatacenterDevice/Attribute:fiberinterfacelist_list' => 'FC porty',
'Class:DatacenterDevice/Attribute:fiberinterfacelist_list+' => '',
'Class:DatacenterDevice/Attribute:fiberinterfacelist_list+' => 'All the fiber channel interfaces for this device~~',
'Class:DatacenterDevice/Attribute:san_list' => 'SAN switche',
'Class:DatacenterDevice/Attribute:san_list+' => '',
'Class:DatacenterDevice/Attribute:san_list+' => 'All the SAN switches connected to this device~~',
'Class:DatacenterDevice/Attribute:redundancy' => 'Redundance',
'Class:DatacenterDevice/Attribute:redundancy/count' => 'Zařízení je v provozu, pokud je funkční alespoň jeden zdroj',
// Unused yet
@@ -302,7 +302,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array(
'Class:NetworkDevice/Attribute:networkdevicetype_name' => 'Název typu zařízení',
'Class:NetworkDevice/Attribute:networkdevicetype_name+' => '',
'Class:NetworkDevice/Attribute:connectablecis_list' => 'Zařízení',
'Class:NetworkDevice/Attribute:connectablecis_list+' => '',
'Class:NetworkDevice/Attribute:connectablecis_list+' => 'All the devices connected to this network device~~',
'Class:NetworkDevice/Attribute:iosversion_id' => 'Verze IOS',
'Class:NetworkDevice/Attribute:iosversion_id+' => '',
'Class:NetworkDevice/Attribute:iosversion_name' => 'Název verze IOS',
@@ -335,7 +335,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array(
'Class:Server/Attribute:ram' => 'RAM',
'Class:Server/Attribute:ram+' => '',
'Class:Server/Attribute:logicalvolumes_list' => 'Logické svazky',
'Class:Server/Attribute:logicalvolumes_list+' => '',
'Class:Server/Attribute:logicalvolumes_list+' => 'All the logical volumes connected to this server~~',
));
//

View File

@@ -115,13 +115,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:FunctionalCI/Attribute:move2production' => 'Overgået til produktions dato',
'Class:FunctionalCI/Attribute:move2production+' => 'Dato for overgang til produktion',
'Class:FunctionalCI/Attribute:contacts_list' => 'Kontakter',
'Class:FunctionalCI/Attribute:contacts_list+' => '',
'Class:FunctionalCI/Attribute:contacts_list+' => 'All the contacts for this configuration item~~',
'Class:FunctionalCI/Attribute:documents_list' => 'Dokumenter',
'Class:FunctionalCI/Attribute:documents_list+' => '',
'Class:FunctionalCI/Attribute:documents_list+' => 'All the documents linked to this configuration item~~',
'Class:FunctionalCI/Attribute:applicationsolution_list' => 'Applikations løsning',
'Class:FunctionalCI/Attribute:applicationsolution_list+' => '',
'Class:FunctionalCI/Attribute:applicationsolution_list+' => 'All the application solutions depending on this configuration item~~',
'Class:FunctionalCI/Attribute:softwares_list' => 'Software',
'Class:FunctionalCI/Attribute:softwares_list+' => '',
'Class:FunctionalCI/Attribute:softwares_list+' => 'All the softwares installed on this configuration item~~',
'Class:FunctionalCI/Attribute:finalclass' => 'Type',
'Class:FunctionalCI/Attribute:finalclass+' => '',
'Class:FunctionalCI/Tab:OpenedTickets' => 'Active Tickets~~',
@@ -176,9 +176,9 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:Rack/Attribute:nb_u' => 'NB U',
'Class:Rack/Attribute:nb_u+' => '',
'Class:Rack/Attribute:device_list' => 'Enheder',
'Class:Rack/Attribute:device_list+' => '',
'Class:Rack/Attribute:device_list+' => 'All the physical devices racked into this rack~~',
'Class:Rack/Attribute:enclosure_list' => 'Enclosures',
'Class:Rack/Attribute:enclosure_list+' => '',
'Class:Rack/Attribute:enclosure_list+' => 'All the enclosures in this rack~~',
));
//
@@ -240,9 +240,9 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:ConnectableCI' => 'Forbindbare CI',
'Class:ConnectableCI+' => 'Fysiske CI',
'Class:ConnectableCI/Attribute:networkdevice_list' => 'Netværks enheder',
'Class:ConnectableCI/Attribute:networkdevice_list+' => '',
'Class:ConnectableCI/Attribute:networkdevice_list+' => 'All network devices connected to this device~~',
'Class:ConnectableCI/Attribute:physicalinterface_list' => 'Netværks interfaces',
'Class:ConnectableCI/Attribute:physicalinterface_list+' => '',
'Class:ConnectableCI/Attribute:physicalinterface_list+' => 'All the physical network interfaces~~',
));
//
@@ -273,9 +273,9 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:DatacenterDevice/Attribute:powerB_name' => 'PowerB kildenavn',
'Class:DatacenterDevice/Attribute:powerB_name+' => '',
'Class:DatacenterDevice/Attribute:fiberinterfacelist_list' => 'FC Porte',
'Class:DatacenterDevice/Attribute:fiberinterfacelist_list+' => '',
'Class:DatacenterDevice/Attribute:fiberinterfacelist_list+' => 'All the fiber channel interfaces for this device~~',
'Class:DatacenterDevice/Attribute:san_list' => 'SANs',
'Class:DatacenterDevice/Attribute:san_list+' => '',
'Class:DatacenterDevice/Attribute:san_list+' => 'All the SAN switches connected to this device~~',
'Class:DatacenterDevice/Attribute:redundancy' => 'Redundancy~~',
'Class:DatacenterDevice/Attribute:redundancy/count' => 'The device is up if at least one power connection (A or B) is up~~',
// Unused yet
@@ -295,7 +295,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:NetworkDevice/Attribute:networkdevicetype_name' => 'Netværktypenavn',
'Class:NetworkDevice/Attribute:networkdevicetype_name+' => '',
'Class:NetworkDevice/Attribute:connectablecis_list' => 'Enhed',
'Class:NetworkDevice/Attribute:connectablecis_list+' => '',
'Class:NetworkDevice/Attribute:connectablecis_list+' => 'All the devices connected to this network device~~',
'Class:NetworkDevice/Attribute:iosversion_id' => 'IOS Version',
'Class:NetworkDevice/Attribute:iosversion_id+' => '',
'Class:NetworkDevice/Attribute:iosversion_name' => 'IOS versionsnavn',
@@ -328,7 +328,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:Server/Attribute:ram' => 'RAM',
'Class:Server/Attribute:ram+' => '',
'Class:Server/Attribute:logicalvolumes_list' => 'Logical Volumes',
'Class:Server/Attribute:logicalvolumes_list+' => '',
'Class:Server/Attribute:logicalvolumes_list+' => 'All the logical volumes connected to this server~~',
));
//
@@ -339,7 +339,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:StorageSystem' => 'Storage-System',
'Class:StorageSystem+' => '',
'Class:StorageSystem/Attribute:logicalvolume_list' => 'Logical Volumes',
'Class:StorageSystem/Attribute:logicalvolume_list+' => '',
'Class:StorageSystem/Attribute:logicalvolume_list+' => 'All the logical volumes in this storage system~~',
));
//
@@ -350,7 +350,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:SANSwitch' => 'SAN-Switch',
'Class:SANSwitch+' => '',
'Class:SANSwitch/Attribute:datacenterdevice_list' => 'Enhed',
'Class:SANSwitch/Attribute:datacenterdevice_list+' => '',
'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'All the devices connected to this SAN switch~~',
));
//
@@ -361,7 +361,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:TapeLibrary' => 'Tape-Library',
'Class:TapeLibrary+' => '',
'Class:TapeLibrary/Attribute:tapes_list' => 'Bånd',
'Class:TapeLibrary/Attribute:tapes_list+' => '',
'Class:TapeLibrary/Attribute:tapes_list+' => 'All the tapes in the tape library~~',
));
//
@@ -372,7 +372,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:NAS' => 'NAS',
'Class:NAS+' => '',
'Class:NAS/Attribute:nasfilesystem_list' => 'NAS filsystem liste',
'Class:NAS/Attribute:nasfilesystem_list+' => '',
'Class:NAS/Attribute:nasfilesystem_list+' => 'All the file systems in this NAS~~',
));
//
@@ -428,7 +428,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:PowerSource' => 'Strømkilde',
'Class:PowerSource+' => '',
'Class:PowerSource/Attribute:pdus_list' => 'PDUs',
'Class:PowerSource/Attribute:pdus_list+' => '',
'Class:PowerSource/Attribute:pdus_list+' => 'All the PDUs using this power source~~',
));
//
@@ -471,7 +471,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:Enclosure/Attribute:nb_u' => 'NB U',
'Class:Enclosure/Attribute:nb_u+' => '',
'Class:Enclosure/Attribute:device_list' => 'Enhed',
'Class:Enclosure/Attribute:device_list+' => '',
'Class:Enclosure/Attribute:device_list+' => 'All the devices in this enclosure~~',
));
//
@@ -482,9 +482,9 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:ApplicationSolution' => 'Anvendelsområde',
'Class:ApplicationSolution+' => 'Hvilken applikations løsning anvendes den i?',
'Class:ApplicationSolution/Attribute:functionalcis_list' => 'CIs',
'Class:ApplicationSolution/Attribute:functionalcis_list+' => '',
'Class:ApplicationSolution/Attribute:functionalcis_list+' => 'All the configuration items that compose this application solution~~',
'Class:ApplicationSolution/Attribute:businessprocess_list' => 'Forretningsprocesser',
'Class:ApplicationSolution/Attribute:businessprocess_list+' => '',
'Class:ApplicationSolution/Attribute:businessprocess_list+' => 'All the business processes depending on this application solution~~',
'Class:ApplicationSolution/Attribute:status' => 'Status',
'Class:ApplicationSolution/Attribute:status+' => '',
'Class:ApplicationSolution/Attribute:status/Value:active' => 'Aktiv',
@@ -551,7 +551,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:Middleware' => 'Middleware',
'Class:Middleware+' => '',
'Class:Middleware/Attribute:middlewareinstance_list' => 'Middleware-Instans(er)',
'Class:Middleware/Attribute:middlewareinstance_list+' => '',
'Class:Middleware/Attribute:middlewareinstance_list+' => 'All the middleware instances provided by this middleware~~',
));
//
@@ -562,7 +562,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:DBServer' => 'DB Server',
'Class:DBServer+' => '',
'Class:DBServer/Attribute:dbschema_list' => 'DB Schema',
'Class:DBServer/Attribute:dbschema_list+' => '',
'Class:DBServer/Attribute:dbschema_list+' => 'All the database schemas for this DB server~~',
));
//
@@ -573,7 +573,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:WebServer' => 'Web Server',
'Class:WebServer+' => '',
'Class:WebServer/Attribute:webapp_list' => 'Web Applikationer',
'Class:WebServer/Attribute:webapp_list+' => '',
'Class:WebServer/Attribute:webapp_list+' => 'All the web applications available on this web server~~',
));
//
@@ -654,7 +654,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:VirtualDevice/Attribute:status/Value:stock' => 'Lager',
'Class:VirtualDevice/Attribute:status/Value:stock+' => '',
'Class:VirtualDevice/Attribute:logicalvolumes_list' => 'Logiske Volumes',
'Class:VirtualDevice/Attribute:logicalvolumes_list+' => '',
'Class:VirtualDevice/Attribute:logicalvolumes_list+' => 'All the logical volumes used by this device~~',
));
//
@@ -665,7 +665,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:VirtualHost' => 'Host',
'Class:VirtualHost+' => '',
'Class:VirtualHost/Attribute:virtualmachine_list' => 'Virtuelle Maskiner',
'Class:VirtualHost/Attribute:virtualmachine_list+' => '',
'Class:VirtualHost/Attribute:virtualmachine_list+' => 'All the virtual machines hosted by this host~~',
));
//
@@ -693,7 +693,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:Farm' => 'Farm',
'Class:Farm+' => '',
'Class:Farm/Attribute:hypervisor_list' => 'Hypervisorer',
'Class:Farm/Attribute:hypervisor_list+' => '',
'Class:Farm/Attribute:hypervisor_list+' => 'All the hypervisors that compose this farm~~',
'Class:Farm/Attribute:redundancy' => 'High availability~~',
'Class:Farm/Attribute:redundancy/disabled' => 'The farm is up if all the hypervisors are up~~',
'Class:Farm/Attribute:redundancy/count' => 'The farm is up if at least %1$s hypervisor(s) is(are) up~~',
@@ -730,7 +730,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:VirtualMachine/Attribute:managementip' => 'IP~~',
'Class:VirtualMachine/Attribute:managementip+' => '~~',
'Class:VirtualMachine/Attribute:logicalinterface_list' => 'Netværks interface',
'Class:VirtualMachine/Attribute:logicalinterface_list+' => '',
'Class:VirtualMachine/Attribute:logicalinterface_list+' => 'All the logical network interfaces~~',
));
//
@@ -755,9 +755,9 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:LogicalVolume/Attribute:storagesystem_name' => 'Storage systemnavn',
'Class:LogicalVolume/Attribute:storagesystem_name+' => '',
'Class:LogicalVolume/Attribute:servers_list' => 'Server',
'Class:LogicalVolume/Attribute:servers_list+' => '',
'Class:LogicalVolume/Attribute:servers_list+' => 'All the servers using this volume~~',
'Class:LogicalVolume/Attribute:virtualdevices_list' => 'Virtuelle enheder',
'Class:LogicalVolume/Attribute:virtualdevices_list+' => '',
'Class:LogicalVolume/Attribute:virtualdevices_list+' => 'All the virtual devices using this volume~~',
));
//
@@ -873,7 +873,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:Software/Attribute:version' => 'Version',
'Class:Software/Attribute:version+' => '',
'Class:Software/Attribute:documents_list' => 'Dokument',
'Class:Software/Attribute:documents_list+' => '',
'Class:Software/Attribute:documents_list+' => 'All the documents linked to this software~~',
'Class:Software/Attribute:type' => 'Type',
'Class:Software/Attribute:type+' => '',
'Class:Software/Attribute:type/Value:DBServer' => 'DB Server',
@@ -887,11 +887,11 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:Software/Attribute:type/Value:WebServer' => 'Web server',
'Class:Software/Attribute:type/Value:WebServer+' => '',
'Class:Software/Attribute:softwareinstance_list' => 'Software Instanser',
'Class:Software/Attribute:softwareinstance_list+' => '',
'Class:Software/Attribute:softwareinstance_list+' => 'All the software instances for this software~~',
'Class:Software/Attribute:softwarepatch_list' => 'Software Patches',
'Class:Software/Attribute:softwarepatch_list+' => '',
'Class:Software/Attribute:softwarepatch_list+' => 'All the patchs for this software~~',
'Class:Software/Attribute:softwarelicence_list' => 'Software Licenser',
'Class:Software/Attribute:softwarelicence_list+' => '',
'Class:Software/Attribute:softwarelicence_list+' => 'All the licenses for this software~~',
));
//
@@ -904,7 +904,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:Patch/Attribute:name' => 'Navn',
'Class:Patch/Attribute:name+' => '',
'Class:Patch/Attribute:documents_list' => 'Dokumenter',
'Class:Patch/Attribute:documents_list+' => '',
'Class:Patch/Attribute:documents_list+' => 'All the documents linked to this patch~~',
'Class:Patch/Attribute:description' => 'Beskrivelse',
'Class:Patch/Attribute:description+' => '',
'Class:Patch/Attribute:finalclass' => 'Type',
@@ -919,7 +919,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:OSPatch' => 'OS-Patch',
'Class:OSPatch+' => '',
'Class:OSPatch/Attribute:functionalcis_list' => 'Enhed',
'Class:OSPatch/Attribute:functionalcis_list+' => '',
'Class:OSPatch/Attribute:functionalcis_list+' => 'All the systems where this patch is installed~~',
'Class:OSPatch/Attribute:osversion_id' => 'OS Version',
'Class:OSPatch/Attribute:osversion_id+' => '',
'Class:OSPatch/Attribute:osversion_name' => 'OS versionsnavn',
@@ -938,7 +938,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:SoftwarePatch/Attribute:software_name' => 'Software navn',
'Class:SoftwarePatch/Attribute:software_name+' => '',
'Class:SoftwarePatch/Attribute:softwareinstances_list' => 'Software Instanser',
'Class:SoftwarePatch/Attribute:softwareinstances_list+' => '',
'Class:SoftwarePatch/Attribute:softwareinstances_list+' => 'All the systems where this software patch is installed~~',
));
//
@@ -951,7 +951,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:Licence/Attribute:name' => 'Navn',
'Class:Licence/Attribute:name+' => '',
'Class:Licence/Attribute:documents_list' => 'Dokumenter',
'Class:Licence/Attribute:documents_list+' => '',
'Class:Licence/Attribute:documents_list+' => 'All the documents linked to this license~~',
'Class:Licence/Attribute:org_id' => 'Ejer',
'Class:Licence/Attribute:org_id+' => '',
'Class:Licence/Attribute:organization_name' => 'Organisationsnavn',
@@ -988,9 +988,9 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:OSLicence/Attribute:osversion_name' => 'OS versionsnavn',
'Class:OSLicence/Attribute:osversion_name+' => '',
'Class:OSLicence/Attribute:virtualmachines_list' => 'Virtuelle Maskiner',
'Class:OSLicence/Attribute:virtualmachines_list+' => '',
'Class:OSLicence/Attribute:virtualmachines_list+' => 'All the virtual machines where this license is used~~',
'Class:OSLicence/Attribute:servers_list' => 'Server',
'Class:OSLicence/Attribute:servers_list+' => '',
'Class:OSLicence/Attribute:servers_list+' => 'All the servers where this license is used~~',
));
//
@@ -1005,7 +1005,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:SoftwareLicence/Attribute:software_name' => 'Software navn',
'Class:SoftwareLicence/Attribute:software_name+' => '',
'Class:SoftwareLicence/Attribute:softwareinstance_list' => 'Software Instanser',
'Class:SoftwareLicence/Attribute:softwareinstance_list+' => '',
'Class:SoftwareLicence/Attribute:softwareinstance_list+' => 'All the systems where this license is used~~',
));
//
@@ -1055,7 +1055,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:Brand' => 'Mærke',
'Class:Brand+' => '',
'Class:Brand/Attribute:physicaldevices_list' => 'Fysisk enhed',
'Class:Brand/Attribute:physicaldevices_list+' => '',
'Class:Brand/Attribute:physicaldevices_list+' => 'All the physical devices corresponding to this brand~~',
'Class:Brand/UniquenessRule:name+' => 'The name must be unique~~',
'Class:Brand/UniquenessRule:name' => 'This brand already exists~~',
));
@@ -1110,7 +1110,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:Model/Attribute:type/Value:Phone' => 'Telephone~~',
'Class:Model/Attribute:type/Value:Phone+' => 'Telephone~~',
'Class:Model/Attribute:physicaldevices_list' => 'Fyisk enhed',
'Class:Model/Attribute:physicaldevices_list+' => '',
'Class:Model/Attribute:physicaldevices_list+' => 'All the physical devices corresponding to this model~~',
'Class:Model/UniquenessRule:name_brand+' => 'Name must be unique in the brand~~',
'Class:Model/UniquenessRule:name_brand' => 'this model already exists for this brand~~',
));
@@ -1123,7 +1123,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:NetworkDeviceType' => 'Netværksenhed type',
'Class:NetworkDeviceType+' => '',
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'Netværks enheder',
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => '',
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => 'All the network devices corresponding to this type~~',
));
//
@@ -1467,7 +1467,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:Group/Attribute:parent_name' => 'Navn',
'Class:Group/Attribute:parent_name+' => '',
'Class:Group/Attribute:ci_list' => 'Forbundne CIs',
'Class:Group/Attribute:ci_list+' => '',
'Class:Group/Attribute:ci_list+' => 'All the configuration items linked to this group~~',
'Class:Group/Attribute:parent_id_friendlyname' => 'Parent Gruppe',
'Class:Group/Attribute:parent_id_friendlyname+' => '',
));

View File

@@ -117,13 +117,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:FunctionalCI/Attribute:move2production' => 'Go-Live-Datum',
'Class:FunctionalCI/Attribute:move2production+' => 'Datum, an dem in Produktivbetrieb gegangen wird/wurde',
'Class:FunctionalCI/Attribute:contacts_list' => 'Kontakte',
'Class:FunctionalCI/Attribute:contacts_list+' => '',
'Class:FunctionalCI/Attribute:contacts_list+' => 'All the contacts for this configuration item~~',
'Class:FunctionalCI/Attribute:documents_list' => 'Dokumente',
'Class:FunctionalCI/Attribute:documents_list+' => '',
'Class:FunctionalCI/Attribute:documents_list+' => 'All the documents linked to this configuration item~~',
'Class:FunctionalCI/Attribute:applicationsolution_list' => 'Anwendungslösungen',
'Class:FunctionalCI/Attribute:applicationsolution_list+' => '',
'Class:FunctionalCI/Attribute:applicationsolution_list+' => 'All the application solutions depending on this configuration item~~',
'Class:FunctionalCI/Attribute:softwares_list' => 'Software',
'Class:FunctionalCI/Attribute:softwares_list+' => '',
'Class:FunctionalCI/Attribute:softwares_list+' => 'All the softwares installed on this configuration item~~',
'Class:FunctionalCI/Attribute:finalclass' => 'Typ',
'Class:FunctionalCI/Attribute:finalclass+' => '',
'Class:FunctionalCI/Tab:OpenedTickets' => 'Offene Tickets',
@@ -178,9 +178,9 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:Rack/Attribute:nb_u' => 'Höheneinheiten',
'Class:Rack/Attribute:nb_u+' => '',
'Class:Rack/Attribute:device_list' => 'Devices',
'Class:Rack/Attribute:device_list+' => '',
'Class:Rack/Attribute:device_list+' => 'All the physical devices racked into this rack~~',
'Class:Rack/Attribute:enclosure_list' => 'Enclosures',
'Class:Rack/Attribute:enclosure_list+' => '',
'Class:Rack/Attribute:enclosure_list+' => 'All the enclosures in this rack~~',
));
//
@@ -242,9 +242,9 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:ConnectableCI' => 'Verknüpfbares CI',
'Class:ConnectableCI+' => 'Physisches CI',
'Class:ConnectableCI/Attribute:networkdevice_list' => 'Netzwerkgeräte',
'Class:ConnectableCI/Attribute:networkdevice_list+' => '',
'Class:ConnectableCI/Attribute:networkdevice_list+' => 'All network devices connected to this device~~',
'Class:ConnectableCI/Attribute:physicalinterface_list' => 'Netzwerkinterfaces',
'Class:ConnectableCI/Attribute:physicalinterface_list+' => '',
'Class:ConnectableCI/Attribute:physicalinterface_list+' => 'All the physical network interfaces~~',
));
//
@@ -275,9 +275,9 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:DatacenterDevice/Attribute:powerB_name' => 'Strom-B-Quellenname',
'Class:DatacenterDevice/Attribute:powerB_name+' => '',
'Class:DatacenterDevice/Attribute:fiberinterfacelist_list' => 'FC-Ports',
'Class:DatacenterDevice/Attribute:fiberinterfacelist_list+' => '',
'Class:DatacenterDevice/Attribute:fiberinterfacelist_list+' => 'All the fiber channel interfaces for this device~~',
'Class:DatacenterDevice/Attribute:san_list' => 'SANs',
'Class:DatacenterDevice/Attribute:san_list+' => '',
'Class:DatacenterDevice/Attribute:san_list+' => 'All the SAN switches connected to this device~~',
'Class:DatacenterDevice/Attribute:redundancy' => 'Redundanz',
'Class:DatacenterDevice/Attribute:redundancy/count' => 'Das Gerät läuft, wenn mindestens eine der Stromversorgungen (A oder B) läuft.',
// Unused yet
@@ -297,7 +297,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:NetworkDevice/Attribute:networkdevicetype_name' => 'Netzwerk-Typname',
'Class:NetworkDevice/Attribute:networkdevicetype_name+' => '',
'Class:NetworkDevice/Attribute:connectablecis_list' => 'Geräte',
'Class:NetworkDevice/Attribute:connectablecis_list+' => '',
'Class:NetworkDevice/Attribute:connectablecis_list+' => 'All the devices connected to this network device~~',
'Class:NetworkDevice/Attribute:iosversion_id' => 'IOS Version',
'Class:NetworkDevice/Attribute:iosversion_id+' => '',
'Class:NetworkDevice/Attribute:iosversion_name' => 'IOS-Versionsname',
@@ -330,7 +330,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:Server/Attribute:ram' => 'RAM',
'Class:Server/Attribute:ram+' => '',
'Class:Server/Attribute:logicalvolumes_list' => 'Logische Volumes',
'Class:Server/Attribute:logicalvolumes_list+' => '',
'Class:Server/Attribute:logicalvolumes_list+' => 'All the logical volumes connected to this server~~',
));
//
@@ -341,7 +341,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:StorageSystem' => 'Storage-System',
'Class:StorageSystem+' => '',
'Class:StorageSystem/Attribute:logicalvolume_list' => 'Logische Volumes',
'Class:StorageSystem/Attribute:logicalvolume_list+' => '',
'Class:StorageSystem/Attribute:logicalvolume_list+' => 'All the logical volumes in this storage system~~',
));
//
@@ -352,7 +352,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:SANSwitch' => 'SAN-Switch',
'Class:SANSwitch+' => '',
'Class:SANSwitch/Attribute:datacenterdevice_list' => 'Geräte',
'Class:SANSwitch/Attribute:datacenterdevice_list+' => '',
'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'All the devices connected to this SAN switch~~',
));
//
@@ -363,7 +363,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:TapeLibrary' => 'Tape-Library',
'Class:TapeLibrary+' => '',
'Class:TapeLibrary/Attribute:tapes_list' => 'Tapes',
'Class:TapeLibrary/Attribute:tapes_list+' => '',
'Class:TapeLibrary/Attribute:tapes_list+' => 'All the tapes in the tape library~~',
));
//
@@ -374,7 +374,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:NAS' => 'NAS',
'Class:NAS+' => '',
'Class:NAS/Attribute:nasfilesystem_list' => 'Dateisysteme',
'Class:NAS/Attribute:nasfilesystem_list+' => '',
'Class:NAS/Attribute:nasfilesystem_list+' => 'All the file systems in this NAS~~',
));
//
@@ -430,7 +430,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:PowerSource' => 'Stromquelle',
'Class:PowerSource+' => '',
'Class:PowerSource/Attribute:pdus_list' => 'PDUs',
'Class:PowerSource/Attribute:pdus_list+' => '',
'Class:PowerSource/Attribute:pdus_list+' => 'All the PDUs using this power source~~',
));
//
@@ -473,7 +473,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:Enclosure/Attribute:nb_u' => 'Höheneinheiten',
'Class:Enclosure/Attribute:nb_u+' => '',
'Class:Enclosure/Attribute:device_list' => 'Geräte',
'Class:Enclosure/Attribute:device_list+' => '',
'Class:Enclosure/Attribute:device_list+' => 'All the devices in this enclosure~~',
));
//
@@ -484,9 +484,9 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:ApplicationSolution' => 'Anwendungslösung',
'Class:ApplicationSolution+' => '',
'Class:ApplicationSolution/Attribute:functionalcis_list' => 'CIs',
'Class:ApplicationSolution/Attribute:functionalcis_list+' => '',
'Class:ApplicationSolution/Attribute:functionalcis_list+' => 'All the configuration items that compose this application solution~~',
'Class:ApplicationSolution/Attribute:businessprocess_list' => 'Business-Prozesse',
'Class:ApplicationSolution/Attribute:businessprocess_list+' => '',
'Class:ApplicationSolution/Attribute:businessprocess_list+' => 'All the business processes depending on this application solution~~',
'Class:ApplicationSolution/Attribute:status' => 'Status',
'Class:ApplicationSolution/Attribute:status+' => '',
'Class:ApplicationSolution/Attribute:status/Value:active' => 'aktiv',
@@ -507,7 +507,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:BusinessProcess' => 'Business-Prozess',
'Class:BusinessProcess+' => '',
'Class:BusinessProcess/Attribute:applicationsolutions_list' => 'Anwendungslösungen',
'Class:BusinessProcess/Attribute:applicationsolutions_list+' => '',
'Class:BusinessProcess/Attribute:applicationsolutions_list+' => 'All the application solutions that impact this business process~~',
'Class:BusinessProcess/Attribute:status' => 'Status',
'Class:BusinessProcess/Attribute:status+' => '',
'Class:BusinessProcess/Attribute:status/Value:active' => 'aktiv',
@@ -553,7 +553,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:Middleware' => 'Middleware',
'Class:Middleware+' => '',
'Class:Middleware/Attribute:middlewareinstance_list' => 'Middleware-Instanzen',
'Class:Middleware/Attribute:middlewareinstance_list+' => '',
'Class:Middleware/Attribute:middlewareinstance_list+' => 'All the middleware instances provided by this middleware~~',
));
//
@@ -564,7 +564,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:DBServer' => 'DB Server',
'Class:DBServer+' => '',
'Class:DBServer/Attribute:dbschema_list' => 'DB Schemata',
'Class:DBServer/Attribute:dbschema_list+' => '',
'Class:DBServer/Attribute:dbschema_list+' => 'All the database schemas for this DB server~~',
));
//
@@ -575,7 +575,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:WebServer' => 'Web Server',
'Class:WebServer+' => '',
'Class:WebServer/Attribute:webapp_list' => 'Webapplikationen',
'Class:WebServer/Attribute:webapp_list+' => '',
'Class:WebServer/Attribute:webapp_list+' => 'All the web applications available on this web server~~',
));
//
@@ -656,7 +656,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:VirtualDevice/Attribute:status/Value:stock' => 'Lager',
'Class:VirtualDevice/Attribute:status/Value:stock+' => '',
'Class:VirtualDevice/Attribute:logicalvolumes_list' => 'Logical Volumes',
'Class:VirtualDevice/Attribute:logicalvolumes_list+' => '',
'Class:VirtualDevice/Attribute:logicalvolumes_list+' => 'All the logical volumes used by this device~~',
));
//
@@ -667,7 +667,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:VirtualHost' => 'Host',
'Class:VirtualHost+' => '',
'Class:VirtualHost/Attribute:virtualmachine_list' => 'Virtuelle Maschinen',
'Class:VirtualHost/Attribute:virtualmachine_list+' => '',
'Class:VirtualHost/Attribute:virtualmachine_list+' => 'All the virtual machines hosted by this host~~',
));
//
@@ -695,7 +695,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:Farm' => 'Farm',
'Class:Farm+' => '',
'Class:Farm/Attribute:hypervisor_list' => 'Hypervisoren',
'Class:Farm/Attribute:hypervisor_list+' => '',
'Class:Farm/Attribute:hypervisor_list+' => 'All the hypervisors that compose this farm~~',
'Class:Farm/Attribute:redundancy' => 'Hochverfügbarkeit',
'Class:Farm/Attribute:redundancy/disabled' => 'Die Farm läuft, wenn alle Hypervisoren laufen.',
'Class:Farm/Attribute:redundancy/count' => 'Die Farm läuft, wenn mindestens %1$s Hypervisor(en) läuft/laufen.',
@@ -732,7 +732,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:VirtualMachine/Attribute:managementip' => 'Management-IP',
'Class:VirtualMachine/Attribute:managementip+' => '',
'Class:VirtualMachine/Attribute:logicalinterface_list' => 'Netzwerk-Interfaces',
'Class:VirtualMachine/Attribute:logicalinterface_list+' => '',
'Class:VirtualMachine/Attribute:logicalinterface_list+' => 'All the logical network interfaces~~',
));
//
@@ -757,9 +757,9 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:LogicalVolume/Attribute:storagesystem_name' => 'Storage-Systemname',
'Class:LogicalVolume/Attribute:storagesystem_name+' => '',
'Class:LogicalVolume/Attribute:servers_list' => 'Server',
'Class:LogicalVolume/Attribute:servers_list+' => '',
'Class:LogicalVolume/Attribute:servers_list+' => 'All the servers using this volume~~',
'Class:LogicalVolume/Attribute:virtualdevices_list' => 'Virtuelle Geräte',
'Class:LogicalVolume/Attribute:virtualdevices_list+' => '',
'Class:LogicalVolume/Attribute:virtualdevices_list+' => 'All the virtual devices using this volume~~',
));
//
@@ -875,7 +875,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:Software/Attribute:version' => 'Version',
'Class:Software/Attribute:version+' => '',
'Class:Software/Attribute:documents_list' => 'Dokumente',
'Class:Software/Attribute:documents_list+' => '',
'Class:Software/Attribute:documents_list+' => 'All the documents linked to this software~~',
'Class:Software/Attribute:type' => 'Typ',
'Class:Software/Attribute:type+' => '',
'Class:Software/Attribute:type/Value:DBServer' => 'DB-Server',
@@ -889,11 +889,11 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:Software/Attribute:type/Value:WebServer' => 'Webserver',
'Class:Software/Attribute:type/Value:WebServer+' => '',
'Class:Software/Attribute:softwareinstance_list' => 'Software-Instanzen',
'Class:Software/Attribute:softwareinstance_list+' => '',
'Class:Software/Attribute:softwareinstance_list+' => 'All the software instances for this software~~',
'Class:Software/Attribute:softwarepatch_list' => 'Software-Patches',
'Class:Software/Attribute:softwarepatch_list+' => '',
'Class:Software/Attribute:softwarepatch_list+' => 'All the patchs for this software~~',
'Class:Software/Attribute:softwarelicence_list' => 'Softwarelizenzen',
'Class:Software/Attribute:softwarelicence_list+' => '',
'Class:Software/Attribute:softwarelicence_list+' => 'All the licenses for this software~~',
));
//
@@ -906,7 +906,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:Patch/Attribute:name' => 'Name',
'Class:Patch/Attribute:name+' => '',
'Class:Patch/Attribute:documents_list' => 'Dokumente',
'Class:Patch/Attribute:documents_list+' => '',
'Class:Patch/Attribute:documents_list+' => 'All the documents linked to this patch~~',
'Class:Patch/Attribute:description' => 'Beschreibung',
'Class:Patch/Attribute:description+' => '',
'Class:Patch/Attribute:finalclass' => 'Typ',
@@ -921,7 +921,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:OSPatch' => 'OS-Patch',
'Class:OSPatch+' => '',
'Class:OSPatch/Attribute:functionalcis_list' => 'Geräte',
'Class:OSPatch/Attribute:functionalcis_list+' => '',
'Class:OSPatch/Attribute:functionalcis_list+' => 'All the systems where this patch is installed~~',
'Class:OSPatch/Attribute:osversion_id' => 'OS Version',
'Class:OSPatch/Attribute:osversion_id+' => '',
'Class:OSPatch/Attribute:osversion_name' => 'OS-Versionsname',
@@ -940,7 +940,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:SoftwarePatch/Attribute:software_name' => 'Software-Name',
'Class:SoftwarePatch/Attribute:software_name+' => '',
'Class:SoftwarePatch/Attribute:softwareinstances_list' => 'Software-Instanzen',
'Class:SoftwarePatch/Attribute:softwareinstances_list+' => '',
'Class:SoftwarePatch/Attribute:softwareinstances_list+' => 'All the systems where this software patch is installed~~',
));
//
@@ -953,7 +953,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:Licence/Attribute:name' => 'Name',
'Class:Licence/Attribute:name+' => '',
'Class:Licence/Attribute:documents_list' => 'Dokumente',
'Class:Licence/Attribute:documents_list+' => '',
'Class:Licence/Attribute:documents_list+' => 'All the documents linked to this license~~',
'Class:Licence/Attribute:org_id' => 'Besitzer',
'Class:Licence/Attribute:org_id+' => '',
'Class:Licence/Attribute:organization_name' => 'Organisationsname',
@@ -990,9 +990,9 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:OSLicence/Attribute:osversion_name' => 'OS-Versionsname',
'Class:OSLicence/Attribute:osversion_name+' => '',
'Class:OSLicence/Attribute:virtualmachines_list' => 'Virtuelle Maschinen',
'Class:OSLicence/Attribute:virtualmachines_list+' => '',
'Class:OSLicence/Attribute:virtualmachines_list+' => 'All the virtual machines where this license is used~~',
'Class:OSLicence/Attribute:servers_list' => 'Server',
'Class:OSLicence/Attribute:servers_list+' => '',
'Class:OSLicence/Attribute:servers_list+' => 'All the servers where this license is used~~',
));
//
@@ -1007,7 +1007,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:SoftwareLicence/Attribute:software_name' => 'Software-Name',
'Class:SoftwareLicence/Attribute:software_name+' => '',
'Class:SoftwareLicence/Attribute:softwareinstance_list' => 'Software-Instanzen',
'Class:SoftwareLicence/Attribute:softwareinstance_list+' => '',
'Class:SoftwareLicence/Attribute:softwareinstance_list+' => 'All the systems where this license is used~~',
));
//
@@ -1057,7 +1057,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:Brand' => 'Marke',
'Class:Brand+' => '',
'Class:Brand/Attribute:physicaldevices_list' => 'Physische Geräte',
'Class:Brand/Attribute:physicaldevices_list+' => '',
'Class:Brand/Attribute:physicaldevices_list+' => 'All the physical devices corresponding to this brand~~',
'Class:Brand/UniquenessRule:name+' => 'Der Name muss eindeutig sein',
'Class:Brand/UniquenessRule:name' => 'Diese Marke existiert bereits',
));
@@ -1112,7 +1112,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:Model/Attribute:type/Value:Phone' => 'Telefon',
'Class:Model/Attribute:type/Value:Phone+' => '',
'Class:Model/Attribute:physicaldevices_list' => 'Physische Geräte',
'Class:Model/Attribute:physicaldevices_list+' => '',
'Class:Model/Attribute:physicaldevices_list+' => 'All the physical devices corresponding to this model~~',
'Class:Model/UniquenessRule:name_brand+' => 'Der Modellname für eine Marke muss eindeutig sein',
'Class:Model/UniquenessRule:name_brand' => 'Es existiert bereits ein Modell mit diesem Namen für diese Marke',
));
@@ -1125,7 +1125,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:NetworkDeviceType' => 'Netzwerkgerätetyp',
'Class:NetworkDeviceType+' => '',
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'Netzwerkgeräte',
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => '',
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => 'All the network devices corresponding to this type~~',
));
//
@@ -1469,7 +1469,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:Group/Attribute:parent_name' => 'Name',
'Class:Group/Attribute:parent_name+' => '',
'Class:Group/Attribute:ci_list' => 'Verbundene CIs',
'Class:Group/Attribute:ci_list+' => '',
'Class:Group/Attribute:ci_list+' => 'All the configuration items linked to this group~~',
'Class:Group/Attribute:parent_id_friendlyname' => 'Parent-Gruppe',
'Class:Group/Attribute:parent_id_friendlyname+' => '',
));

View File

@@ -117,13 +117,13 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:FunctionalCI/Attribute:move2production' => 'Date de mise en production',
'Class:FunctionalCI/Attribute:move2production+' => '',
'Class:FunctionalCI/Attribute:contacts_list' => 'Contacts',
'Class:FunctionalCI/Attribute:contacts_list+' => '',
'Class:FunctionalCI/Attribute:contacts_list+' => 'Tous les contacts de cet élément de configuration',
'Class:FunctionalCI/Attribute:documents_list' => 'Documents',
'Class:FunctionalCI/Attribute:documents_list+' => '',
'Class:FunctionalCI/Attribute:documents_list+' => 'Tous les documents liés à cet élément de configuration',
'Class:FunctionalCI/Attribute:applicationsolution_list' => 'Solutions applicatives',
'Class:FunctionalCI/Attribute:applicationsolution_list+' => '',
'Class:FunctionalCI/Attribute:applicationsolution_list+' => 'Toutes les solutions applicatives dépendantes de cet élément de configuration',
'Class:FunctionalCI/Attribute:softwares_list' => 'Logiciels',
'Class:FunctionalCI/Attribute:softwares_list+' => '',
'Class:FunctionalCI/Attribute:softwares_list+' => 'Tous les logiciels installés sur cet élément de configuration',
'Class:FunctionalCI/Attribute:finalclass' => 'Sous-classe de CI',
'Class:FunctionalCI/Attribute:finalclass+' => 'Nom de la classe instanciable',
'Class:FunctionalCI/Tab:OpenedTickets' => 'Tickets en cours',
@@ -178,9 +178,9 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:Rack/Attribute:nb_u' => 'NB Unité',
'Class:Rack/Attribute:nb_u+' => '',
'Class:Rack/Attribute:device_list' => 'Matériels',
'Class:Rack/Attribute:device_list+' => '',
'Class:Rack/Attribute:device_list+' => 'Tous les matériels rackés dans ce rack',
'Class:Rack/Attribute:enclosure_list' => 'Chassis',
'Class:Rack/Attribute:enclosure_list+' => '',
'Class:Rack/Attribute:enclosure_list+' => 'Tous les chassis dans ce rack',
));
//
@@ -242,9 +242,9 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:ConnectableCI' => 'CI connecté',
'Class:ConnectableCI+' => '',
'Class:ConnectableCI/Attribute:networkdevice_list' => 'Equipements réseaux',
'Class:ConnectableCI/Attribute:networkdevice_list+' => '',
'Class:ConnectableCI/Attribute:networkdevice_list+' => 'Tous les équipements réseaux connectés à ce matériel',
'Class:ConnectableCI/Attribute:physicalinterface_list' => 'Interfaces réseaux',
'Class:ConnectableCI/Attribute:physicalinterface_list+' => '',
'Class:ConnectableCI/Attribute:physicalinterface_list+' => 'Toutes les interfaces réseaux physiques',
));
//
@@ -275,9 +275,9 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:DatacenterDevice/Attribute:powerB_name' => 'Nom Source électrique B',
'Class:DatacenterDevice/Attribute:powerB_name+' => '',
'Class:DatacenterDevice/Attribute:fiberinterfacelist_list' => 'FC ports',
'Class:DatacenterDevice/Attribute:fiberinterfacelist_list+' => '',
'Class:DatacenterDevice/Attribute:fiberinterfacelist_list+' => 'Toutes les interfaces fibre optique de ce matériel',
'Class:DatacenterDevice/Attribute:san_list' => 'SANs',
'Class:DatacenterDevice/Attribute:san_list+' => '',
'Class:DatacenterDevice/Attribute:san_list+' => 'Tous les switchs SAN connectés à ce matériel',
'Class:DatacenterDevice/Attribute:redundancy' => 'Redondance',
'Class:DatacenterDevice/Attribute:redundancy/count' => 'Le %2$s est alimenté si au moins une source électrique (A ou B) est opérationnelle',
// Unused yet
@@ -297,7 +297,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:NetworkDevice/Attribute:networkdevicetype_name' => 'Nom Type',
'Class:NetworkDevice/Attribute:networkdevicetype_name+' => '',
'Class:NetworkDevice/Attribute:connectablecis_list' => 'Matériel connectés',
'Class:NetworkDevice/Attribute:connectablecis_list+' => '',
'Class:NetworkDevice/Attribute:connectablecis_list+' => 'Tous les matériels connectés à cet appareil réseau',
'Class:NetworkDevice/Attribute:iosversion_id' => 'Version IOS',
'Class:NetworkDevice/Attribute:iosversion_id+' => '',
'Class:NetworkDevice/Attribute:iosversion_name' => 'Nom Version IOS',
@@ -330,7 +330,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:Server/Attribute:ram' => 'RAM',
'Class:Server/Attribute:ram+' => '',
'Class:Server/Attribute:logicalvolumes_list' => 'Volumes logiques',
'Class:Server/Attribute:logicalvolumes_list+' => '',
'Class:Server/Attribute:logicalvolumes_list+' => 'Tous les volumes logiques connectés à ce serveur',
));
//
@@ -341,7 +341,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:StorageSystem' => 'Système de stockage',
'Class:StorageSystem+' => '',
'Class:StorageSystem/Attribute:logicalvolume_list' => 'Volumes logiques',
'Class:StorageSystem/Attribute:logicalvolume_list+' => '',
'Class:StorageSystem/Attribute:logicalvolume_list+' => 'Tous les volumes logiques dans ce système de stockage',
));
//
@@ -352,7 +352,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:SANSwitch' => 'Switch SAN',
'Class:SANSwitch+' => '',
'Class:SANSwitch/Attribute:datacenterdevice_list' => 'Matériels connectés',
'Class:SANSwitch/Attribute:datacenterdevice_list+' => '',
'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'Tous les matériels connectés à ce switch SAN',
));
//
@@ -363,7 +363,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:TapeLibrary' => 'Bandothèque',
'Class:TapeLibrary+' => '',
'Class:TapeLibrary/Attribute:tapes_list' => 'Bandes',
'Class:TapeLibrary/Attribute:tapes_list+' => '',
'Class:TapeLibrary/Attribute:tapes_list+' => 'Toutes les bandes dans cette bandothèque',
));
//
@@ -374,7 +374,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:NAS' => 'NAS',
'Class:NAS+' => '',
'Class:NAS/Attribute:nasfilesystem_list' => 'Systèmes de fichier NAS',
'Class:NAS/Attribute:nasfilesystem_list+' => '',
'Class:NAS/Attribute:nasfilesystem_list+' => 'Tous les systèmes de fichier dans ce NAS',
));
//
@@ -430,7 +430,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:PowerSource' => 'Arrivée électrique',
'Class:PowerSource+' => '',
'Class:PowerSource/Attribute:pdus_list' => 'PDUs',
'Class:PowerSource/Attribute:pdus_list+' => '',
'Class:PowerSource/Attribute:pdus_list+' => 'Toutes les PDUs de cette arrivée électrique',
));
//
@@ -473,7 +473,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:Enclosure/Attribute:nb_u' => 'NB Unité',
'Class:Enclosure/Attribute:nb_u+' => '',
'Class:Enclosure/Attribute:device_list' => 'Devices',
'Class:Enclosure/Attribute:device_list+' => '',
'Class:Enclosure/Attribute:device_list+' => 'Tous les matériels dans ce chassis',
));
//
@@ -484,9 +484,9 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:ApplicationSolution' => 'Solution applicative',
'Class:ApplicationSolution+' => '',
'Class:ApplicationSolution/Attribute:functionalcis_list' => 'CIs',
'Class:ApplicationSolution/Attribute:functionalcis_list+' => '',
'Class:ApplicationSolution/Attribute:functionalcis_list+' => 'Tous les éléments de configuration qui composent cette solution applicative',
'Class:ApplicationSolution/Attribute:businessprocess_list' => 'Processus métiers',
'Class:ApplicationSolution/Attribute:businessprocess_list+' => '',
'Class:ApplicationSolution/Attribute:businessprocess_list+' => 'Tous les processus métiers dépendants de cette solution applicative',
'Class:ApplicationSolution/Attribute:status' => 'Statut',
'Class:ApplicationSolution/Attribute:status+' => '',
'Class:ApplicationSolution/Attribute:status/Value:active' => 'active',
@@ -507,7 +507,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:BusinessProcess' => 'Processus métier',
'Class:BusinessProcess+' => '',
'Class:BusinessProcess/Attribute:applicationsolutions_list' => 'Solutions applicatives',
'Class:BusinessProcess/Attribute:applicationsolutions_list+' => '',
'Class:BusinessProcess/Attribute:applicationsolutions_list+' => 'Toutes les solutions applicatives qui impactent ce processus métier',
'Class:BusinessProcess/Attribute:status' => 'Statut',
'Class:BusinessProcess/Attribute:status+' => '',
'Class:BusinessProcess/Attribute:status/Value:active' => 'actif',
@@ -553,7 +553,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:Middleware' => 'Middleware',
'Class:Middleware+' => '',
'Class:Middleware/Attribute:middlewareinstance_list' => 'Instance Middleware',
'Class:Middleware/Attribute:middlewareinstance_list+' => '',
'Class:Middleware/Attribute:middlewareinstance_list+' => 'Toutes les instances de middleware fournies par ce middleware',
));
//
@@ -564,7 +564,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:DBServer' => 'Serveur de base de données',
'Class:DBServer+' => '',
'Class:DBServer/Attribute:dbschema_list' => 'Instances de base de données',
'Class:DBServer/Attribute:dbschema_list+' => '',
'Class:DBServer/Attribute:dbschema_list+' => 'Toutes les instances de base de données pour ce serveur',
));
//
@@ -575,7 +575,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:WebServer' => 'Serveur Web',
'Class:WebServer+' => '',
'Class:WebServer/Attribute:webapp_list' => 'Application Web',
'Class:WebServer/Attribute:webapp_list+' => '',
'Class:WebServer/Attribute:webapp_list+' => 'Toutes les applications Web disponibles sur ce serveur',
));
//
@@ -656,7 +656,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:VirtualDevice/Attribute:status/Value:stock' => 'stock',
'Class:VirtualDevice/Attribute:status/Value:stock+' => 'stock',
'Class:VirtualDevice/Attribute:logicalvolumes_list' => 'Volumes logiques',
'Class:VirtualDevice/Attribute:logicalvolumes_list+' => '',
'Class:VirtualDevice/Attribute:logicalvolumes_list+' => 'Tous les volumes logiques utilisés par ce matériel',
));
//
@@ -667,7 +667,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:VirtualHost' => 'Hôte Virtuel',
'Class:VirtualHost+' => '',
'Class:VirtualHost/Attribute:virtualmachine_list' => 'Machines virtuelles',
'Class:VirtualHost/Attribute:virtualmachine_list+' => '',
'Class:VirtualHost/Attribute:virtualmachine_list+' => 'Toutes les machiens virtuelles hébergées par cet hôte',
));
//
@@ -695,7 +695,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:Farm' => 'vCluster',
'Class:Farm+' => '',
'Class:Farm/Attribute:hypervisor_list' => 'Hyperviseurs',
'Class:Farm/Attribute:hypervisor_list+' => '',
'Class:Farm/Attribute:hypervisor_list+' => 'Tous les hyperviseurs qui composent ce vCluster',
'Class:Farm/Attribute:redundancy' => 'Haute disponibilité',
'Class:Farm/Attribute:redundancy/disabled' => 'Le vCluster est opérationnel si tous les hyperviseurs qui le composent sont opérationnels',
'Class:Farm/Attribute:redundancy/count' => 'Nombre minimal d\'hyperviseurs pour que le vCluster soit opérationnel : %1$s',
@@ -732,7 +732,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:VirtualMachine/Attribute:managementip' => 'IP',
'Class:VirtualMachine/Attribute:managementip+' => '',
'Class:VirtualMachine/Attribute:logicalinterface_list' => 'Interfaces réseaux',
'Class:VirtualMachine/Attribute:logicalinterface_list+' => '',
'Class:VirtualMachine/Attribute:logicalinterface_list+' => 'Toutes les interfaces réseaux logiques',
));
//
@@ -757,9 +757,9 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:LogicalVolume/Attribute:storagesystem_name' => 'Nom Système de stockage',
'Class:LogicalVolume/Attribute:storagesystem_name+' => '',
'Class:LogicalVolume/Attribute:servers_list' => 'Serveurs',
'Class:LogicalVolume/Attribute:servers_list+' => '',
'Class:LogicalVolume/Attribute:servers_list+' => 'Tous les serveurs utilisant ce volume',
'Class:LogicalVolume/Attribute:virtualdevices_list' => 'Machines virtuelles',
'Class:LogicalVolume/Attribute:virtualdevices_list+' => '',
'Class:LogicalVolume/Attribute:virtualdevices_list+' => 'Toutes les machines virtuelles utilisant ce volume',
));
//
@@ -875,7 +875,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:Software/Attribute:version' => 'Version',
'Class:Software/Attribute:version+' => '',
'Class:Software/Attribute:documents_list' => 'Documents',
'Class:Software/Attribute:documents_list+' => '',
'Class:Software/Attribute:documents_list+' => 'Tous les documents liés à ce logiciel',
'Class:Software/Attribute:type' => 'Type',
'Class:Software/Attribute:type+' => '',
'Class:Software/Attribute:type/Value:DBServer' => 'Serveur de base de données',
@@ -889,11 +889,11 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:Software/Attribute:type/Value:WebServer' => 'Serveur Web',
'Class:Software/Attribute:type/Value:WebServer+' => 'Serveur Web',
'Class:Software/Attribute:softwareinstance_list' => 'Instances logiciels',
'Class:Software/Attribute:softwareinstance_list+' => '',
'Class:Software/Attribute:softwareinstance_list+' => 'Toutes les instances de ce logiciel',
'Class:Software/Attribute:softwarepatch_list' => 'Patchs logiciels',
'Class:Software/Attribute:softwarepatch_list+' => '',
'Class:Software/Attribute:softwarepatch_list+' => 'Tous les patchs de ce logiciel',
'Class:Software/Attribute:softwarelicence_list' => 'Software licences',
'Class:Software/Attribute:softwarelicence_list+' => '',
'Class:Software/Attribute:softwarelicence_list+' => 'Toutes les licences de ce logiciel',
));
//
@@ -906,7 +906,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:Patch/Attribute:name' => 'Nom',
'Class:Patch/Attribute:name+' => '',
'Class:Patch/Attribute:documents_list' => 'Documents',
'Class:Patch/Attribute:documents_list+' => '',
'Class:Patch/Attribute:documents_list+' => 'Tous les documents liés à ce patch',
'Class:Patch/Attribute:description' => 'Description',
'Class:Patch/Attribute:description+' => '',
'Class:Patch/Attribute:finalclass' => 'Sous-classe de Patch',
@@ -921,7 +921,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:OSPatch' => 'Patch OS',
'Class:OSPatch+' => '',
'Class:OSPatch/Attribute:functionalcis_list' => 'Systèmes',
'Class:OSPatch/Attribute:functionalcis_list+' => '',
'Class:OSPatch/Attribute:functionalcis_list+' => 'Tous les systèmes où ce patch est installé',
'Class:OSPatch/Attribute:osversion_id' => 'Version OS',
'Class:OSPatch/Attribute:osversion_id+' => '',
'Class:OSPatch/Attribute:osversion_name' => 'Nom Version OS',
@@ -940,7 +940,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:SoftwarePatch/Attribute:software_name' => 'Nom logiciel',
'Class:SoftwarePatch/Attribute:software_name+' => '',
'Class:SoftwarePatch/Attribute:softwareinstances_list' => 'Instances logiciels',
'Class:SoftwarePatch/Attribute:softwareinstances_list+' => '',
'Class:SoftwarePatch/Attribute:softwareinstances_list+' => 'Tous les systèmes où ce logiciel est installé',
));
//
@@ -953,7 +953,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:Licence/Attribute:name' => 'Nom',
'Class:Licence/Attribute:name+' => '',
'Class:Licence/Attribute:documents_list' => 'Documents',
'Class:Licence/Attribute:documents_list+' => '',
'Class:Licence/Attribute:documents_list+' => 'Tous les documents liés à cette licence',
'Class:Licence/Attribute:org_id' => 'Organisation',
'Class:Licence/Attribute:org_id+' => '',
'Class:Licence/Attribute:organization_name' => 'Nom organisation',
@@ -990,9 +990,9 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:OSLicence/Attribute:osversion_name' => 'Nom Version OS',
'Class:OSLicence/Attribute:osversion_name+' => '',
'Class:OSLicence/Attribute:virtualmachines_list' => 'Machines virtuelles',
'Class:OSLicence/Attribute:virtualmachines_list+' => '',
'Class:OSLicence/Attribute:virtualmachines_list+' => 'Toutes les machines virtuelles où cette licence est utilisée',
'Class:OSLicence/Attribute:servers_list' => 'Serveurs',
'Class:OSLicence/Attribute:servers_list+' => '',
'Class:OSLicence/Attribute:servers_list+' => 'Tous les serveurs où cette licence est utilisée',
));
//
@@ -1007,7 +1007,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:SoftwareLicence/Attribute:software_name' => 'Nom Logiciel',
'Class:SoftwareLicence/Attribute:software_name+' => '',
'Class:SoftwareLicence/Attribute:softwareinstance_list' => 'Instances logiciels',
'Class:SoftwareLicence/Attribute:softwareinstance_list+' => '',
'Class:SoftwareLicence/Attribute:softwareinstance_list+' => 'Tous les systèmes où cette licence est utilisée',
));
//
@@ -1057,7 +1057,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:Brand' => 'Marque',
'Class:Brand+' => '',
'Class:Brand/Attribute:physicaldevices_list' => 'Matériels',
'Class:Brand/Attribute:physicaldevices_list+' => '',
'Class:Brand/Attribute:physicaldevices_list+' => 'Tous les matériels correspondant à cette marque',
'Class:Brand/UniquenessRule:name+' => 'Le nom doit être unique',
'Class:Brand/UniquenessRule:name' => 'cette marque existe déjà',
));
@@ -1112,7 +1112,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:Model/Attribute:type/Value:Phone' => 'Téléphone',
'Class:Model/Attribute:type/Value:Phone+' => 'Téléphone',
'Class:Model/Attribute:physicaldevices_list' => 'Matériels',
'Class:Model/Attribute:physicaldevices_list+' => '',
'Class:Model/Attribute:physicaldevices_list+' => 'Tous les matériels correspondant à ce modèle',
'Class:Model/UniquenessRule:name_brand+' => 'Le nom doit être unique dans une marque',
'Class:Model/UniquenessRule:name_brand' => 'ce modèle existe déjà dans cette marque',
));
@@ -1125,7 +1125,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:NetworkDeviceType' => 'Type d\'équipement réseau',
'Class:NetworkDeviceType+' => '',
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'Equipements réseaux',
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => '',
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => 'Tous les équipements réseaux correspondant à ce type',
));
//
@@ -1469,7 +1469,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:Group/Attribute:parent_name' => 'Nom groupe parent',
'Class:Group/Attribute:parent_name+' => '',
'Class:Group/Attribute:ci_list' => 'CIs liés',
'Class:Group/Attribute:ci_list+' => '',
'Class:Group/Attribute:ci_list+' => 'Tous les éléments de configuration liés à ce groupe',
'Class:Group/Attribute:parent_id_friendlyname' => 'Nom usuel du parent',
'Class:Group/Attribute:parent_id_friendlyname+' => '',
));

View File

@@ -1466,7 +1466,7 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
'Class:Group/Attribute:parent_name' => 'Név',
'Class:Group/Attribute:parent_name+' => '',
'Class:Group/Attribute:ci_list' => 'Kapcsolódó CI-k',
'Class:Group/Attribute:ci_list+' => '',
'Class:Group/Attribute:ci_list+' => 'All the configuration items linked to this group~~',
'Class:Group/Attribute:parent_id_friendlyname' => 'Parent Group~~',
'Class:Group/Attribute:parent_id_friendlyname+' => '~~',
));

View File

@@ -1466,7 +1466,7 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array(
'Class:Group/Attribute:parent_name' => 'Nome',
'Class:Group/Attribute:parent_name+' => '',
'Class:Group/Attribute:ci_list' => 'CIs collegati',
'Class:Group/Attribute:ci_list+' => '',
'Class:Group/Attribute:ci_list+' => 'All the configuration items linked to this group~~',
'Class:Group/Attribute:parent_id_friendlyname' => 'Parent Group~~',
'Class:Group/Attribute:parent_id_friendlyname+' => '~~',
));

View File

@@ -114,13 +114,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:FunctionalCI/Attribute:move2production' => '本稼働開始日',
'Class:FunctionalCI/Attribute:move2production+' => '',
'Class:FunctionalCI/Attribute:contacts_list' => '連絡先',
'Class:FunctionalCI/Attribute:contacts_list+' => '',
'Class:FunctionalCI/Attribute:contacts_list+' => 'All the contacts for this configuration item~~',
'Class:FunctionalCI/Attribute:documents_list' => '文書',
'Class:FunctionalCI/Attribute:documents_list+' => '',
'Class:FunctionalCI/Attribute:documents_list+' => 'All the documents linked to this configuration item~~',
'Class:FunctionalCI/Attribute:applicationsolution_list' => 'アプリケーションソリューション',
'Class:FunctionalCI/Attribute:applicationsolution_list+' => '',
'Class:FunctionalCI/Attribute:applicationsolution_list+' => 'All the application solutions depending on this configuration item~~',
'Class:FunctionalCI/Attribute:softwares_list' => 'ソフトウエア',
'Class:FunctionalCI/Attribute:softwares_list+' => '',
'Class:FunctionalCI/Attribute:softwares_list+' => 'All the softwares installed on this configuration item~~',
'Class:FunctionalCI/Attribute:finalclass' => 'CIタイプ',
'Class:FunctionalCI/Attribute:finalclass+' => '',
'Class:FunctionalCI/Tab:OpenedTickets' => 'Active Tickets~~',
@@ -175,9 +175,9 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:Rack/Attribute:nb_u' => 'ユニット数',
'Class:Rack/Attribute:nb_u+' => '',
'Class:Rack/Attribute:device_list' => 'デバイス',
'Class:Rack/Attribute:device_list+' => '',
'Class:Rack/Attribute:device_list+' => 'All the physical devices racked into this rack~~',
'Class:Rack/Attribute:enclosure_list' => 'エンクロージャ',
'Class:Rack/Attribute:enclosure_list+' => '',
'Class:Rack/Attribute:enclosure_list+' => 'All the enclosures in this rack~~',
));
//
@@ -239,9 +239,9 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:ConnectableCI' => '接続可能なCI',
'Class:ConnectableCI+' => '物理的なCI',
'Class:ConnectableCI/Attribute:networkdevice_list' => 'ネットワークデバイス',
'Class:ConnectableCI/Attribute:networkdevice_list+' => '',
'Class:ConnectableCI/Attribute:networkdevice_list+' => 'All network devices connected to this device~~',
'Class:ConnectableCI/Attribute:physicalinterface_list' => 'ネットワークインターフェース',
'Class:ConnectableCI/Attribute:physicalinterface_list+' => '',
'Class:ConnectableCI/Attribute:physicalinterface_list+' => 'All the physical network interfaces~~',
));
//
@@ -272,9 +272,9 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:DatacenterDevice/Attribute:powerB_name' => '電源B名',
'Class:DatacenterDevice/Attribute:powerB_name+' => '',
'Class:DatacenterDevice/Attribute:fiberinterfacelist_list' => 'FCポート',
'Class:DatacenterDevice/Attribute:fiberinterfacelist_list+' => '',
'Class:DatacenterDevice/Attribute:fiberinterfacelist_list+' => 'All the fiber channel interfaces for this device~~',
'Class:DatacenterDevice/Attribute:san_list' => 'SAN',
'Class:DatacenterDevice/Attribute:san_list+' => '',
'Class:DatacenterDevice/Attribute:san_list+' => 'All the SAN switches connected to this device~~',
'Class:DatacenterDevice/Attribute:redundancy' => 'Redundancy~~',
'Class:DatacenterDevice/Attribute:redundancy/count' => 'The device is up if at least one power connection (A or B) is up~~',
// Unused yet
@@ -294,7 +294,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:NetworkDevice/Attribute:networkdevicetype_name' => 'ネットワークタイプ名',
'Class:NetworkDevice/Attribute:networkdevicetype_name+' => '',
'Class:NetworkDevice/Attribute:connectablecis_list' => 'デバイス',
'Class:NetworkDevice/Attribute:connectablecis_list+' => '',
'Class:NetworkDevice/Attribute:connectablecis_list+' => 'All the devices connected to this network device~~',
'Class:NetworkDevice/Attribute:iosversion_id' => 'IOSバージョン',
'Class:NetworkDevice/Attribute:iosversion_id+' => '',
'Class:NetworkDevice/Attribute:iosversion_name' => 'IOSバージョン名',
@@ -327,7 +327,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:Server/Attribute:ram' => 'RAM',
'Class:Server/Attribute:ram+' => '',
'Class:Server/Attribute:logicalvolumes_list' => '論理ボリューム',
'Class:Server/Attribute:logicalvolumes_list+' => '',
'Class:Server/Attribute:logicalvolumes_list+' => 'All the logical volumes connected to this server~~',
));
//
@@ -338,7 +338,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:StorageSystem' => 'ストレージシステム',
'Class:StorageSystem+' => '',
'Class:StorageSystem/Attribute:logicalvolume_list' => '論理ボリューム',
'Class:StorageSystem/Attribute:logicalvolume_list+' => '',
'Class:StorageSystem/Attribute:logicalvolume_list+' => 'All the logical volumes in this storage system~~',
));
//
@@ -349,7 +349,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:SANSwitch' => 'SANスイッチ',
'Class:SANSwitch+' => '',
'Class:SANSwitch/Attribute:datacenterdevice_list' => 'デバイス',
'Class:SANSwitch/Attribute:datacenterdevice_list+' => '',
'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'All the devices connected to this SAN switch~~',
));
//
@@ -360,7 +360,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:TapeLibrary' => 'テープライブラリ',
'Class:TapeLibrary+' => '',
'Class:TapeLibrary/Attribute:tapes_list' => 'テープ',
'Class:TapeLibrary/Attribute:tapes_list+' => '',
'Class:TapeLibrary/Attribute:tapes_list+' => 'All the tapes in the tape library~~',
));
//
@@ -371,7 +371,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:NAS' => 'NAS',
'Class:NAS+' => '',
'Class:NAS/Attribute:nasfilesystem_list' => 'ファイルシステム',
'Class:NAS/Attribute:nasfilesystem_list+' => '',
'Class:NAS/Attribute:nasfilesystem_list+' => 'All the file systems in this NAS~~',
));
//
@@ -427,7 +427,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:PowerSource' => '電源',
'Class:PowerSource+' => '',
'Class:PowerSource/Attribute:pdus_list' => 'PDU',
'Class:PowerSource/Attribute:pdus_list+' => '',
'Class:PowerSource/Attribute:pdus_list+' => 'All the PDUs using this power source~~',
));
//
@@ -470,7 +470,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:Enclosure/Attribute:nb_u' => 'ユニット数',
'Class:Enclosure/Attribute:nb_u+' => '',
'Class:Enclosure/Attribute:device_list' => 'デバイス',
'Class:Enclosure/Attribute:device_list+' => '',
'Class:Enclosure/Attribute:device_list+' => 'All the devices in this enclosure~~',
));
//
@@ -481,9 +481,9 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:ApplicationSolution' => 'アプリケーションソリューション',
'Class:ApplicationSolution+' => '',
'Class:ApplicationSolution/Attribute:functionalcis_list' => 'CI',
'Class:ApplicationSolution/Attribute:functionalcis_list+' => '',
'Class:ApplicationSolution/Attribute:functionalcis_list+' => 'All the configuration items that compose this application solution~~',
'Class:ApplicationSolution/Attribute:businessprocess_list' => 'ビジネスプロセス',
'Class:ApplicationSolution/Attribute:businessprocess_list+' => '',
'Class:ApplicationSolution/Attribute:businessprocess_list+' => 'All the business processes depending on this application solution~~',
'Class:ApplicationSolution/Attribute:status' => '状態',
'Class:ApplicationSolution/Attribute:status+' => '',
'Class:ApplicationSolution/Attribute:status/Value:active' => 'アクティブ',
@@ -504,7 +504,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:BusinessProcess' => 'ビジネスプロセス',
'Class:BusinessProcess+' => '',
'Class:BusinessProcess/Attribute:applicationsolutions_list' => 'アプリケーションソリューション',
'Class:BusinessProcess/Attribute:applicationsolutions_list+' => '',
'Class:BusinessProcess/Attribute:applicationsolutions_list+' => 'All the application solutions that impact this business process~~',
'Class:BusinessProcess/Attribute:status' => '状態',
'Class:BusinessProcess/Attribute:status+' => '',
'Class:BusinessProcess/Attribute:status/Value:active' => 'アクティブ',
@@ -550,7 +550,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:Middleware' => 'ミドルウエア',
'Class:Middleware+' => '',
'Class:Middleware/Attribute:middlewareinstance_list' => 'ミドルウエアインスタンス',
'Class:Middleware/Attribute:middlewareinstance_list+' => '',
'Class:Middleware/Attribute:middlewareinstance_list+' => 'All the middleware instances provided by this middleware~~',
));
//
@@ -561,7 +561,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:DBServer' => 'DBサーバ',
'Class:DBServer+' => '',
'Class:DBServer/Attribute:dbschema_list' => 'DBスキーマ',
'Class:DBServer/Attribute:dbschema_list+' => '',
'Class:DBServer/Attribute:dbschema_list+' => 'All the database schemas for this DB server~~',
));
//
@@ -572,7 +572,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:WebServer' => 'Webサーバ',
'Class:WebServer+' => '',
'Class:WebServer/Attribute:webapp_list' => 'Webアプリケーション',
'Class:WebServer/Attribute:webapp_list+' => '',
'Class:WebServer/Attribute:webapp_list+' => 'All the web applications available on this web server~~',
));
//
@@ -653,7 +653,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:VirtualDevice/Attribute:status/Value:stock' => '保存',
'Class:VirtualDevice/Attribute:status/Value:stock+' => '保存',
'Class:VirtualDevice/Attribute:logicalvolumes_list' => '論理ボリューム',
'Class:VirtualDevice/Attribute:logicalvolumes_list+' => '',
'Class:VirtualDevice/Attribute:logicalvolumes_list+' => 'All the logical volumes used by this device~~',
));
//
@@ -664,7 +664,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:VirtualHost' => '仮想ホスト',
'Class:VirtualHost+' => '',
'Class:VirtualHost/Attribute:virtualmachine_list' => '仮想マシン',
'Class:VirtualHost/Attribute:virtualmachine_list+' => '',
'Class:VirtualHost/Attribute:virtualmachine_list+' => 'All the virtual machines hosted by this host~~',
));
//
@@ -692,7 +692,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:Farm' => 'ファーム',
'Class:Farm+' => '',
'Class:Farm/Attribute:hypervisor_list' => 'ハイパーバイザー',
'Class:Farm/Attribute:hypervisor_list+' => '',
'Class:Farm/Attribute:hypervisor_list+' => 'All the hypervisors that compose this farm~~',
'Class:Farm/Attribute:redundancy' => 'High availability~~',
'Class:Farm/Attribute:redundancy/disabled' => 'The farm is up if all the hypervisors are up~~',
'Class:Farm/Attribute:redundancy/count' => 'The farm is up if at least %1$s hypervisor(s) is(are) up~~',
@@ -729,7 +729,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:VirtualMachine/Attribute:managementip' => '管理ip',
'Class:VirtualMachine/Attribute:managementip+' => '',
'Class:VirtualMachine/Attribute:logicalinterface_list' => 'ネットワークインターフェース',
'Class:VirtualMachine/Attribute:logicalinterface_list+' => '',
'Class:VirtualMachine/Attribute:logicalinterface_list+' => 'All the logical network interfaces~~',
));
//
@@ -754,9 +754,9 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:LogicalVolume/Attribute:storagesystem_name' => 'ストレージシステム名',
'Class:LogicalVolume/Attribute:storagesystem_name+' => '',
'Class:LogicalVolume/Attribute:servers_list' => 'サーバ',
'Class:LogicalVolume/Attribute:servers_list+' => '',
'Class:LogicalVolume/Attribute:servers_list+' => 'All the servers using this volume~~',
'Class:LogicalVolume/Attribute:virtualdevices_list' => '仮想デバイス',
'Class:LogicalVolume/Attribute:virtualdevices_list+' => '',
'Class:LogicalVolume/Attribute:virtualdevices_list+' => 'All the virtual devices using this volume~~',
));
//
@@ -872,7 +872,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:Software/Attribute:version' => 'バージョン',
'Class:Software/Attribute:version+' => '',
'Class:Software/Attribute:documents_list' => '文書',
'Class:Software/Attribute:documents_list+' => '',
'Class:Software/Attribute:documents_list+' => 'All the documents linked to this software~~',
'Class:Software/Attribute:type' => 'タイプ',
'Class:Software/Attribute:type+' => '',
'Class:Software/Attribute:type/Value:DBServer' => 'DBサーバ',
@@ -886,11 +886,11 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:Software/Attribute:type/Value:WebServer' => 'Webサーバ',
'Class:Software/Attribute:type/Value:WebServer+' => 'Webサーバ',
'Class:Software/Attribute:softwareinstance_list' => 'ソフトウエアインスタンス',
'Class:Software/Attribute:softwareinstance_list+' => '',
'Class:Software/Attribute:softwareinstance_list+' => 'All the software instances for this software~~',
'Class:Software/Attribute:softwarepatch_list' => 'ソフトウエアパッチ',
'Class:Software/Attribute:softwarepatch_list+' => '',
'Class:Software/Attribute:softwarepatch_list+' => 'All the patchs for this software~~',
'Class:Software/Attribute:softwarelicence_list' => 'ソフトウエアライセンス',
'Class:Software/Attribute:softwarelicence_list+' => '',
'Class:Software/Attribute:softwarelicence_list+' => 'All the licenses for this software~~',
));
//
@@ -903,7 +903,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:Patch/Attribute:name' => '名前',
'Class:Patch/Attribute:name+' => '',
'Class:Patch/Attribute:documents_list' => '文書',
'Class:Patch/Attribute:documents_list+' => '',
'Class:Patch/Attribute:documents_list+' => 'All the documents linked to this patch~~',
'Class:Patch/Attribute:description' => '説明',
'Class:Patch/Attribute:description+' => '',
'Class:Patch/Attribute:finalclass' => 'タイプ',
@@ -918,7 +918,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:OSPatch' => 'OSパッチ',
'Class:OSPatch+' => '',
'Class:OSPatch/Attribute:functionalcis_list' => 'デバイス',
'Class:OSPatch/Attribute:functionalcis_list+' => '',
'Class:OSPatch/Attribute:functionalcis_list+' => 'All the systems where this patch is installed~~',
'Class:OSPatch/Attribute:osversion_id' => 'OSバージョン',
'Class:OSPatch/Attribute:osversion_id+' => '',
'Class:OSPatch/Attribute:osversion_name' => 'OSバージョン名',
@@ -937,7 +937,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:SoftwarePatch/Attribute:software_name' => 'ソフトウエア名',
'Class:SoftwarePatch/Attribute:software_name+' => '',
'Class:SoftwarePatch/Attribute:softwareinstances_list' => 'ソフトウエアインスタンス',
'Class:SoftwarePatch/Attribute:softwareinstances_list+' => '',
'Class:SoftwarePatch/Attribute:softwareinstances_list+' => 'All the systems where this software patch is installed~~',
));
//
@@ -950,7 +950,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:Licence/Attribute:name' => '名前',
'Class:Licence/Attribute:name+' => '',
'Class:Licence/Attribute:documents_list' => '文書',
'Class:Licence/Attribute:documents_list+' => '',
'Class:Licence/Attribute:documents_list+' => 'All the documents linked to this license~~',
'Class:Licence/Attribute:org_id' => '組織',
'Class:Licence/Attribute:org_id+' => '',
'Class:Licence/Attribute:organization_name' => '組織名',
@@ -987,9 +987,9 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:OSLicence/Attribute:osversion_name' => 'OSバージョン名',
'Class:OSLicence/Attribute:osversion_name+' => '',
'Class:OSLicence/Attribute:virtualmachines_list' => '仮想マシン',
'Class:OSLicence/Attribute:virtualmachines_list+' => '',
'Class:OSLicence/Attribute:virtualmachines_list+' => 'All the virtual machines where this license is used~~',
'Class:OSLicence/Attribute:servers_list' => 'サーバ',
'Class:OSLicence/Attribute:servers_list+' => '',
'Class:OSLicence/Attribute:servers_list+' => 'All the servers where this license is used~~',
));
//
@@ -1004,7 +1004,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:SoftwareLicence/Attribute:software_name' => 'ソフトウエア名',
'Class:SoftwareLicence/Attribute:software_name+' => '',
'Class:SoftwareLicence/Attribute:softwareinstance_list' => 'ソフトウエアインスタンス',
'Class:SoftwareLicence/Attribute:softwareinstance_list+' => '',
'Class:SoftwareLicence/Attribute:softwareinstance_list+' => 'All the systems where this license is used~~',
));
//
@@ -1054,7 +1054,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:Brand' => 'ブランド',
'Class:Brand+' => '',
'Class:Brand/Attribute:physicaldevices_list' => '物理デバイス',
'Class:Brand/Attribute:physicaldevices_list+' => '',
'Class:Brand/Attribute:physicaldevices_list+' => 'All the physical devices corresponding to this brand~~',
'Class:Brand/UniquenessRule:name+' => 'The name must be unique~~',
'Class:Brand/UniquenessRule:name' => 'This brand already exists~~',
));
@@ -1109,7 +1109,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:Model/Attribute:type/Value:Phone' => '電話',
'Class:Model/Attribute:type/Value:Phone+' => '電話',
'Class:Model/Attribute:physicaldevices_list' => '物理デバイス',
'Class:Model/Attribute:physicaldevices_list+' => '',
'Class:Model/Attribute:physicaldevices_list+' => 'All the physical devices corresponding to this model~~',
'Class:Model/UniquenessRule:name_brand+' => 'Name must be unique in the brand~~',
'Class:Model/UniquenessRule:name_brand' => 'this model already exists for this brand~~',
));
@@ -1122,7 +1122,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:NetworkDeviceType' => 'ネットワークデバイスタイプ',
'Class:NetworkDeviceType+' => '',
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'ネットワークデバイス',
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => '',
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => 'All the network devices corresponding to this type~~',
));
//
@@ -1466,7 +1466,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:Group/Attribute:parent_name' => '名前',
'Class:Group/Attribute:parent_name+' => '',
'Class:Group/Attribute:ci_list' => 'リンクされたCI',
'Class:Group/Attribute:ci_list+' => '',
'Class:Group/Attribute:ci_list+' => 'All the configuration items linked to this group~~',
'Class:Group/Attribute:parent_id_friendlyname' => '親グループ',
'Class:Group/Attribute:parent_id_friendlyname+' => '',
));

View File

@@ -119,13 +119,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:FunctionalCI/Attribute:move2production' => 'Dátum presunu do produkcie',
'Class:FunctionalCI/Attribute:move2production+' => '',
'Class:FunctionalCI/Attribute:contacts_list' => 'Kontakty',
'Class:FunctionalCI/Attribute:contacts_list+' => '',
'Class:FunctionalCI/Attribute:contacts_list+' => 'All the contacts for this configuration item~~',
'Class:FunctionalCI/Attribute:documents_list' => 'Zoznam dokumentov',
'Class:FunctionalCI/Attribute:documents_list+' => '',
'Class:FunctionalCI/Attribute:documents_list+' => 'All the documents linked to this configuration item~~',
'Class:FunctionalCI/Attribute:applicationsolution_list' => 'Zoznam aplikačných riešení',
'Class:FunctionalCI/Attribute:applicationsolution_list+' => '',
'Class:FunctionalCI/Attribute:applicationsolution_list+' => 'All the application solutions depending on this configuration item~~',
'Class:FunctionalCI/Attribute:softwares_list' => 'Softvér',
'Class:FunctionalCI/Attribute:softwares_list+' => '',
'Class:FunctionalCI/Attribute:softwares_list+' => 'All the softwares installed on this configuration item~~',
'Class:FunctionalCI/Attribute:finalclass' => 'Typ komponentu',
'Class:FunctionalCI/Attribute:finalclass+' => '',
'Class:FunctionalCI/Tab:OpenedTickets' => 'Active Tickets~~',
@@ -180,9 +180,9 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:Rack/Attribute:nb_u' => 'NB U',
'Class:Rack/Attribute:nb_u+' => '',
'Class:Rack/Attribute:device_list' => 'Zariadenia',
'Class:Rack/Attribute:device_list+' => '',
'Class:Rack/Attribute:device_list+' => 'All the physical devices racked into this rack~~',
'Class:Rack/Attribute:enclosure_list' => 'Kryt',
'Class:Rack/Attribute:enclosure_list+' => '',
'Class:Rack/Attribute:enclosure_list+' => 'All the enclosures in this rack~~',
));
//
@@ -244,9 +244,9 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:ConnectableCI' => 'Pripojiteľné zariadenie',
'Class:ConnectableCI+' => '',
'Class:ConnectableCI/Attribute:networkdevice_list' => 'Sieťové zariadenia',
'Class:ConnectableCI/Attribute:networkdevice_list+' => '',
'Class:ConnectableCI/Attribute:networkdevice_list+' => 'All network devices connected to this device~~',
'Class:ConnectableCI/Attribute:physicalinterface_list' => 'Sieťové rozhrania',
'Class:ConnectableCI/Attribute:physicalinterface_list+' => '',
'Class:ConnectableCI/Attribute:physicalinterface_list+' => 'All the physical network interfaces~~',
));
//
@@ -277,9 +277,9 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:DatacenterDevice/Attribute:powerB_name' => 'Názov zdroja napájania B',
'Class:DatacenterDevice/Attribute:powerB_name+' => '',
'Class:DatacenterDevice/Attribute:fiberinterfacelist_list' => 'Zoznam optických rozhraní',
'Class:DatacenterDevice/Attribute:fiberinterfacelist_list+' => '',
'Class:DatacenterDevice/Attribute:fiberinterfacelist_list+' => 'All the fiber channel interfaces for this device~~',
'Class:DatacenterDevice/Attribute:san_list' => 'Úložiská (SAN)',
'Class:DatacenterDevice/Attribute:san_list+' => '',
'Class:DatacenterDevice/Attribute:san_list+' => 'All the SAN switches connected to this device~~',
'Class:DatacenterDevice/Attribute:redundancy' => 'Redundancy~~',
'Class:DatacenterDevice/Attribute:redundancy/count' => 'The device is up if at least one power connection (A or B) is up~~',
// Unused yet
@@ -299,7 +299,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:NetworkDevice/Attribute:networkdevicetype_name' => 'Názov typu sieťového zariadenia',
'Class:NetworkDevice/Attribute:networkdevicetype_name+' => '',
'Class:NetworkDevice/Attribute:connectablecis_list' => 'Zariadenia',
'Class:NetworkDevice/Attribute:connectablecis_list+' => '',
'Class:NetworkDevice/Attribute:connectablecis_list+' => 'All the devices connected to this network device~~',
'Class:NetworkDevice/Attribute:iosversion_id' => 'IVerzia OS',
'Class:NetworkDevice/Attribute:iosversion_id+' => '',
'Class:NetworkDevice/Attribute:iosversion_name' => 'Názov IOS verzie',
@@ -332,7 +332,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:Server/Attribute:ram' => 'Operačna pamäť',
'Class:Server/Attribute:ram+' => '',
'Class:Server/Attribute:logicalvolumes_list' => 'Logické disky',
'Class:Server/Attribute:logicalvolumes_list+' => '',
'Class:Server/Attribute:logicalvolumes_list+' => 'All the logical volumes connected to this server~~',
));
//
@@ -343,7 +343,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:StorageSystem' => 'Úložiskový systém',
'Class:StorageSystem+' => '',
'Class:StorageSystem/Attribute:logicalvolume_list' => 'Logické disky',
'Class:StorageSystem/Attribute:logicalvolume_list+' => '',
'Class:StorageSystem/Attribute:logicalvolume_list+' => 'All the logical volumes in this storage system~~',
));
//
@@ -354,7 +354,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:SANSwitch' => 'SAN prepínač',
'Class:SANSwitch+' => '',
'Class:SANSwitch/Attribute:datacenterdevice_list' => 'Zariadenia',
'Class:SANSwitch/Attribute:datacenterdevice_list+' => '',
'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'All the devices connected to this SAN switch~~',
));
//
@@ -365,7 +365,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:TapeLibrary' => 'Pásková knižnica',
'Class:TapeLibrary+' => '',
'Class:TapeLibrary/Attribute:tapes_list' => 'Pásky',
'Class:TapeLibrary/Attribute:tapes_list+' => '',
'Class:TapeLibrary/Attribute:tapes_list+' => 'All the tapes in the tape library~~',
));
//
@@ -376,7 +376,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:NAS' => 'NAS',
'Class:NAS+' => '',
'Class:NAS/Attribute:nasfilesystem_list' => 'Súborové systémy',
'Class:NAS/Attribute:nasfilesystem_list+' => '',
'Class:NAS/Attribute:nasfilesystem_list+' => 'All the file systems in this NAS~~',
));
//
@@ -432,7 +432,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:PowerSource' => 'Napájací zdroj',
'Class:PowerSource+' => '',
'Class:PowerSource/Attribute:pdus_list' => 'Napäťové distribučné jednotky (PDU)',
'Class:PowerSource/Attribute:pdus_list+' => '',
'Class:PowerSource/Attribute:pdus_list+' => 'All the PDUs using this power source~~',
));
//
@@ -475,7 +475,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:Enclosure/Attribute:nb_u' => 'NB U',
'Class:Enclosure/Attribute:nb_u+' => '',
'Class:Enclosure/Attribute:device_list' => 'Zariadenia',
'Class:Enclosure/Attribute:device_list+' => '',
'Class:Enclosure/Attribute:device_list+' => 'All the devices in this enclosure~~',
));
//
@@ -486,9 +486,9 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:ApplicationSolution' => 'Aplikačné riešenie',
'Class:ApplicationSolution+' => '',
'Class:ApplicationSolution/Attribute:functionalcis_list' => 'Komponenty',
'Class:ApplicationSolution/Attribute:functionalcis_list+' => '',
'Class:ApplicationSolution/Attribute:functionalcis_list+' => 'All the configuration items that compose this application solution~~',
'Class:ApplicationSolution/Attribute:businessprocess_list' => 'Biznis procesy',
'Class:ApplicationSolution/Attribute:businessprocess_list+' => '',
'Class:ApplicationSolution/Attribute:businessprocess_list+' => 'All the business processes depending on this application solution~~',
'Class:ApplicationSolution/Attribute:status' => 'Stav',
'Class:ApplicationSolution/Attribute:status+' => '',
'Class:ApplicationSolution/Attribute:status/Value:active' => 'Aktívne',
@@ -509,7 +509,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:BusinessProcess' => 'Biznis proces',
'Class:BusinessProcess+' => '',
'Class:BusinessProcess/Attribute:applicationsolutions_list' => 'Aplikačné riešenia',
'Class:BusinessProcess/Attribute:applicationsolutions_list+' => '',
'Class:BusinessProcess/Attribute:applicationsolutions_list+' => 'All the application solutions that impact this business process~~',
'Class:BusinessProcess/Attribute:status' => 'Stav',
'Class:BusinessProcess/Attribute:status+' => '',
'Class:BusinessProcess/Attribute:status/Value:active' => 'Aktívny',
@@ -555,7 +555,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:Middleware' => 'Middleware',
'Class:Middleware+' => '',
'Class:Middleware/Attribute:middlewareinstance_list' => 'Middleware inštancie',
'Class:Middleware/Attribute:middlewareinstance_list+' => '',
'Class:Middleware/Attribute:middlewareinstance_list+' => 'All the middleware instances provided by this middleware~~',
));
//
@@ -566,7 +566,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:DBServer' => 'DB Server',
'Class:DBServer+' => '',
'Class:DBServer/Attribute:dbschema_list' => 'DB schémy',
'Class:DBServer/Attribute:dbschema_list+' => '',
'Class:DBServer/Attribute:dbschema_list+' => 'All the database schemas for this DB server~~',
));
//
@@ -577,7 +577,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:WebServer' => 'Web server',
'Class:WebServer+' => '',
'Class:WebServer/Attribute:webapp_list' => 'Webové aplikácie',
'Class:WebServer/Attribute:webapp_list+' => '',
'Class:WebServer/Attribute:webapp_list+' => 'All the web applications available on this web server~~',
));
//
@@ -658,7 +658,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:VirtualDevice/Attribute:status/Value:stock' => 'Zásoby',
'Class:VirtualDevice/Attribute:status/Value:stock+' => '',
'Class:VirtualDevice/Attribute:logicalvolumes_list' => 'Zoznam logických dielov',
'Class:VirtualDevice/Attribute:logicalvolumes_list+' => '',
'Class:VirtualDevice/Attribute:logicalvolumes_list+' => 'All the logical volumes used by this device~~',
));
//
@@ -669,7 +669,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:VirtualHost' => 'Virtuálny host',
'Class:VirtualHost+' => '',
'Class:VirtualHost/Attribute:virtualmachine_list' => 'Zoznam virtuálnych strojov',
'Class:VirtualHost/Attribute:virtualmachine_list+' => '',
'Class:VirtualHost/Attribute:virtualmachine_list+' => 'All the virtual machines hosted by this host~~',
));
//
@@ -697,7 +697,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:Farm' => 'Farma',
'Class:Farm+' => '',
'Class:Farm/Attribute:hypervisor_list' => 'Hypervisori',
'Class:Farm/Attribute:hypervisor_list+' => '',
'Class:Farm/Attribute:hypervisor_list+' => 'All the hypervisors that compose this farm~~',
'Class:Farm/Attribute:redundancy' => 'High availability~~',
'Class:Farm/Attribute:redundancy/disabled' => 'The farm is up if all the hypervisors are up~~',
'Class:Farm/Attribute:redundancy/count' => 'The farm is up if at least %1$s hypervisor(s) is(are) up~~',
@@ -734,7 +734,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:VirtualMachine/Attribute:managementip' => 'IP~~',
'Class:VirtualMachine/Attribute:managementip+' => '~~',
'Class:VirtualMachine/Attribute:logicalinterface_list' => 'Zoznam sieťových rozhraní',
'Class:VirtualMachine/Attribute:logicalinterface_list+' => '',
'Class:VirtualMachine/Attribute:logicalinterface_list+' => 'All the logical network interfaces~~',
));
//
@@ -759,9 +759,9 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:LogicalVolume/Attribute:storagesystem_name' => 'Názov úložného systému',
'Class:LogicalVolume/Attribute:storagesystem_name+' => '',
'Class:LogicalVolume/Attribute:servers_list' => 'Servery',
'Class:LogicalVolume/Attribute:servers_list+' => '',
'Class:LogicalVolume/Attribute:servers_list+' => 'All the servers using this volume~~',
'Class:LogicalVolume/Attribute:virtualdevices_list' => 'Virtuálne zariadenia',
'Class:LogicalVolume/Attribute:virtualdevices_list+' => '',
'Class:LogicalVolume/Attribute:virtualdevices_list+' => 'All the virtual devices using this volume~~',
));
//
@@ -877,7 +877,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:Software/Attribute:version' => 'Verzia',
'Class:Software/Attribute:version+' => '',
'Class:Software/Attribute:documents_list' => 'Dokumenty',
'Class:Software/Attribute:documents_list+' => '',
'Class:Software/Attribute:documents_list+' => 'All the documents linked to this software~~',
'Class:Software/Attribute:type' => 'Typ',
'Class:Software/Attribute:type+' => '',
'Class:Software/Attribute:type/Value:DBServer' => 'DB Server',
@@ -891,11 +891,11 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:Software/Attribute:type/Value:WebServer' => 'Web Server',
'Class:Software/Attribute:type/Value:WebServer+' => '',
'Class:Software/Attribute:softwareinstance_list' => 'Softvérové inštancie',
'Class:Software/Attribute:softwareinstance_list+' => '',
'Class:Software/Attribute:softwareinstance_list+' => 'All the software instances for this software~~',
'Class:Software/Attribute:softwarepatch_list' => 'Softvérové záplaty',
'Class:Software/Attribute:softwarepatch_list+' => '',
'Class:Software/Attribute:softwarepatch_list+' => 'All the patchs for this software~~',
'Class:Software/Attribute:softwarelicence_list' => 'Softvérové licencie',
'Class:Software/Attribute:softwarelicence_list+' => '',
'Class:Software/Attribute:softwarelicence_list+' => 'All the licenses for this software~~',
));
//
@@ -908,7 +908,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:Patch/Attribute:name' => 'Názov',
'Class:Patch/Attribute:name+' => '',
'Class:Patch/Attribute:documents_list' => 'Zoznam dokumentov',
'Class:Patch/Attribute:documents_list+' => '',
'Class:Patch/Attribute:documents_list+' => 'All the documents linked to this patch~~',
'Class:Patch/Attribute:description' => 'Popis',
'Class:Patch/Attribute:description+' => '',
'Class:Patch/Attribute:finalclass' => 'Typ',
@@ -923,7 +923,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:OSPatch' => 'Záplata OS',
'Class:OSPatch+' => '',
'Class:OSPatch/Attribute:functionalcis_list' => 'Zariadenia',
'Class:OSPatch/Attribute:functionalcis_list+' => '',
'Class:OSPatch/Attribute:functionalcis_list+' => 'All the systems where this patch is installed~~',
'Class:OSPatch/Attribute:osversion_id' => 'Verzia OS',
'Class:OSPatch/Attribute:osversion_id+' => '',
'Class:OSPatch/Attribute:osversion_name' => 'Názov OS verzie',
@@ -942,7 +942,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:SoftwarePatch/Attribute:software_name' => 'Názov softvéru',
'Class:SoftwarePatch/Attribute:software_name+' => '',
'Class:SoftwarePatch/Attribute:softwareinstances_list' => 'Inštancie softvéru',
'Class:SoftwarePatch/Attribute:softwareinstances_list+' => '',
'Class:SoftwarePatch/Attribute:softwareinstances_list+' => 'All the systems where this software patch is installed~~',
));
//
@@ -955,7 +955,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:Licence/Attribute:name' => 'Názov',
'Class:Licence/Attribute:name+' => '',
'Class:Licence/Attribute:documents_list' => 'Zoznam dokumentov',
'Class:Licence/Attribute:documents_list+' => '',
'Class:Licence/Attribute:documents_list+' => 'All the documents linked to this license~~',
'Class:Licence/Attribute:org_id' => 'Organizácia',
'Class:Licence/Attribute:org_id+' => '',
'Class:Licence/Attribute:organization_name' => 'Názov organizácie',
@@ -992,9 +992,9 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:OSLicence/Attribute:osversion_name' => 'Názov OS verzie',
'Class:OSLicence/Attribute:osversion_name+' => '',
'Class:OSLicence/Attribute:virtualmachines_list' => 'Virtuálne zariadenia',
'Class:OSLicence/Attribute:virtualmachines_list+' => '',
'Class:OSLicence/Attribute:virtualmachines_list+' => 'All the virtual machines where this license is used~~',
'Class:OSLicence/Attribute:servers_list' => 'Servery',
'Class:OSLicence/Attribute:servers_list+' => '',
'Class:OSLicence/Attribute:servers_list+' => 'All the servers where this license is used~~',
));
//
@@ -1009,7 +1009,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:SoftwareLicence/Attribute:software_name' => 'Názov softvéru',
'Class:SoftwareLicence/Attribute:software_name+' => '',
'Class:SoftwareLicence/Attribute:softwareinstance_list' => 'Inštancie softvéru',
'Class:SoftwareLicence/Attribute:softwareinstance_list+' => '',
'Class:SoftwareLicence/Attribute:softwareinstance_list+' => 'All the systems where this license is used~~',
));
//
@@ -1059,7 +1059,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:Brand' => 'Značka',
'Class:Brand+' => '',
'Class:Brand/Attribute:physicaldevices_list' => 'Zariadenia',
'Class:Brand/Attribute:physicaldevices_list+' => '',
'Class:Brand/Attribute:physicaldevices_list+' => 'All the physical devices corresponding to this brand~~',
'Class:Brand/UniquenessRule:name+' => 'The name must be unique~~',
'Class:Brand/UniquenessRule:name' => 'This brand already exists~~',
));
@@ -1114,7 +1114,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:Model/Attribute:type/Value:Phone' => 'Telephone~~',
'Class:Model/Attribute:type/Value:Phone+' => 'Telephone~~',
'Class:Model/Attribute:physicaldevices_list' => 'Zariadenia',
'Class:Model/Attribute:physicaldevices_list+' => '',
'Class:Model/Attribute:physicaldevices_list+' => 'All the physical devices corresponding to this model~~',
'Class:Model/UniquenessRule:name_brand+' => 'Name must be unique in the brand~~',
'Class:Model/UniquenessRule:name_brand' => 'this model already exists for this brand~~',
));
@@ -1127,7 +1127,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:NetworkDeviceType' => 'Typ sieťového zariadenia',
'Class:NetworkDeviceType+' => '',
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'Sieťové zariadenia',
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => '',
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => 'All the network devices corresponding to this type~~',
));
//
@@ -1471,7 +1471,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:Group/Attribute:parent_name' => 'Meno rodiča',
'Class:Group/Attribute:parent_name+' => '',
'Class:Group/Attribute:ci_list' => 'Prislúchajúce zariadenia',
'Class:Group/Attribute:ci_list+' => '',
'Class:Group/Attribute:ci_list+' => 'All the configuration items linked to this group~~',
'Class:Group/Attribute:parent_id_friendlyname' => 'Priateľské meno rodičovskej skupiny',
'Class:Group/Attribute:parent_id_friendlyname+' => '',
));

View File

@@ -1473,7 +1473,7 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
'Class:Group/Attribute:parent_name' => 'Adı',
'Class:Group/Attribute:parent_name+' => '',
'Class:Group/Attribute:ci_list' => 'Bağlantılı Konfigürasyon Kalemleri (KK)',
'Class:Group/Attribute:ci_list+' => '',
'Class:Group/Attribute:ci_list+' => 'All the configuration items linked to this group~~',
'Class:Group/Attribute:parent_id_friendlyname' => 'Ana Grup',
'Class:Group/Attribute:parent_id_friendlyname+' => '~~',
));

View File

@@ -3,7 +3,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-config-mgmt/3.0.2',
'itop-config-mgmt/3.0.3',
array(
// Identification
//

View File

@@ -3,7 +3,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-config/3.0.2',
'itop-config/3.0.3',
array(
// Identification
//

View File

@@ -24,7 +24,7 @@
/** @noinspection PhpUnhandledExceptionInspection */
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-core-update/3.0.2',
'itop-core-update/3.0.3',
array(
// Identification
//

View File

@@ -18,7 +18,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-datacenter-mgmt/3.0.2',
'itop-datacenter-mgmt/3.0.3',
array(
// Identification
//

View File

@@ -25,7 +25,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-endusers-devices/3.0.2',
'itop-endusers-devices/3.0.3',
array(
// Identification
//

View File

@@ -53,7 +53,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:FAQCategory/Attribute:name' => 'Navn',
'Class:FAQCategory/Attribute:name+' => '',
'Class:FAQCategory/Attribute:faq_list' => 'FAQs',
'Class:FAQCategory/Attribute:faq_list+' => '',
'Class:FAQCategory/Attribute:faq_list+' => 'All the frequently asked questions related to this category~~',
));
Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Menu:ProblemManagement' => 'Problem Management',

View File

@@ -55,7 +55,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:FAQCategory/Attribute:name' => 'Name',
'Class:FAQCategory/Attribute:name+' => '',
'Class:FAQCategory/Attribute:faq_list' => 'FAQs',
'Class:FAQCategory/Attribute:faq_list+' => '',
'Class:FAQCategory/Attribute:faq_list+' => 'All the frequently asked questions related to this category~~',
));
Dict::Add('DE DE', 'German', 'Deutsch', array(
'Menu:ProblemManagement' => 'Problem Management',

View File

@@ -52,7 +52,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:FAQCategory/Attribute:name' => 'Nom',
'Class:FAQCategory/Attribute:name+' => '',
'Class:FAQCategory/Attribute:faq_list' => 'FAQs',
'Class:FAQCategory/Attribute:faq_list+' => '',
'Class:FAQCategory/Attribute:faq_list+' => 'Toutes les questions fréquemment posées liées à cette catégorie',
));
Dict::Add('FR FR', 'French', 'Français', array(
'Menu:ProblemManagement' => 'Gestion des problèmes',

View File

@@ -52,7 +52,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:FAQCategory/Attribute:name' => '名前',
'Class:FAQCategory/Attribute:name+' => '',
'Class:FAQCategory/Attribute:faq_list' => 'FAQ',
'Class:FAQCategory/Attribute:faq_list+' => '',
'Class:FAQCategory/Attribute:faq_list+' => 'All the frequently asked questions related to this category~~',
));
Dict::Add('JA JP', 'Japanese', '日本語', array(
'Menu:ProblemManagement' => '問題管理',

View File

@@ -3,7 +3,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-faq-light/3.0.2',
'itop-faq-light/3.0.3',
array(
// Identification
//

View File

@@ -24,7 +24,7 @@
/** @noinspection PhpUnhandledExceptionInspection */
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-files-information/3.0.2',
'itop-files-information/3.0.3',
array(
// Identification
//

View File

@@ -6,7 +6,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-full-itil/3.0.2',
'itop-full-itil/3.0.3',
array(
// Identification
//

View File

@@ -5,7 +5,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-hub-connector/3.0.2',
'itop-hub-connector/3.0.3',
array(
// Identification
//

View File

@@ -195,7 +195,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:Incident/Attribute:related_request_list' => 'Child requests~~',
'Class:Incident/Attribute:related_request_list+' => '~~',
'Class:Incident/Attribute:child_incidents_list' => 'Afledte Incidents',
'Class:Incident/Attribute:child_incidents_list+' => '',
'Class:Incident/Attribute:child_incidents_list+' => 'All the child incidents related to this incident~~',
'Class:Incident/Attribute:public_log' => 'Offentlig Log',
'Class:Incident/Attribute:public_log+' => '',
'Class:Incident/Attribute:user_satisfaction' => 'Bruger tilfredshed',

View File

@@ -197,7 +197,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:Incident/Attribute:related_request_list' => 'Kind-Requests',
'Class:Incident/Attribute:related_request_list+' => '',
'Class:Incident/Attribute:child_incidents_list' => 'Abgeleitete Incidents',
'Class:Incident/Attribute:child_incidents_list+' => '',
'Class:Incident/Attribute:child_incidents_list+' => 'All the child incidents related to this incident~~',
'Class:Incident/Attribute:public_log' => 'Öffentliches Log',
'Class:Incident/Attribute:public_log+' => '',
'Class:Incident/Attribute:user_satisfaction' => 'Benutzerzufriedenheit',

View File

@@ -197,7 +197,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:Incident/Attribute:related_request_list' => 'Requêtes filles',
'Class:Incident/Attribute:related_request_list+' => '',
'Class:Incident/Attribute:child_incidents_list' => 'Incidents fils',
'Class:Incident/Attribute:child_incidents_list+' => '',
'Class:Incident/Attribute:child_incidents_list+' => 'Tous les incidents fils lié à celui-ci',
'Class:Incident/Attribute:public_log' => 'Journal public',
'Class:Incident/Attribute:public_log+' => '',
'Class:Incident/Attribute:user_satisfaction' => 'Satisfaction client',

View File

@@ -194,7 +194,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:Incident/Attribute:related_request_list' => 'Child requests~~',
'Class:Incident/Attribute:related_request_list+' => '~~',
'Class:Incident/Attribute:child_incidents_list' => '子インシデント',
'Class:Incident/Attribute:child_incidents_list+' => '',
'Class:Incident/Attribute:child_incidents_list+' => 'All the child incidents related to this incident~~',
'Class:Incident/Attribute:public_log' => 'パブリックログ',
'Class:Incident/Attribute:public_log+' => '',
'Class:Incident/Attribute:user_satisfaction' => 'ユーザ満足度',

View File

@@ -3,7 +3,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-incident-mgmt-itil/3.0.2',
'itop-incident-mgmt-itil/3.0.3',
array(
// Identification
//

View File

@@ -60,9 +60,9 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:KnownError/Attribute:version' => 'Version',
'Class:KnownError/Attribute:version+' => '',
'Class:KnownError/Attribute:ci_list' => 'CIs',
'Class:KnownError/Attribute:ci_list+' => '',
'Class:KnownError/Attribute:ci_list+' => 'All the configuration items that are related to this known error~~',
'Class:KnownError/Attribute:document_list' => 'Dokumenter',
'Class:KnownError/Attribute:document_list+' => '',
'Class:KnownError/Attribute:document_list+' => 'All the documents linked to this known error~~',
));
//

View File

@@ -62,9 +62,9 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:KnownError/Attribute:version' => 'Version',
'Class:KnownError/Attribute:version+' => '',
'Class:KnownError/Attribute:ci_list' => 'CIs',
'Class:KnownError/Attribute:ci_list+' => '',
'Class:KnownError/Attribute:ci_list+' => 'All the configuration items that are related to this known error~~',
'Class:KnownError/Attribute:document_list' => 'Dokumente',
'Class:KnownError/Attribute:document_list+' => '',
'Class:KnownError/Attribute:document_list+' => 'All the documents linked to this known error~~',
));
//

View File

@@ -62,9 +62,9 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:KnownError/Attribute:version' => 'Version',
'Class:KnownError/Attribute:version+' => '',
'Class:KnownError/Attribute:ci_list' => 'CIs',
'Class:KnownError/Attribute:ci_list+' => '',
'Class:KnownError/Attribute:ci_list+' => 'Tous les éléments de configuration liés à cette erreur connue',
'Class:KnownError/Attribute:document_list' => 'Documents',
'Class:KnownError/Attribute:document_list+' => '',
'Class:KnownError/Attribute:document_list+' => 'Tous les documents liés à cette erreur connue',
));
//

View File

@@ -59,9 +59,9 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
'Class:KnownError/Attribute:version' => 'Verzió',
'Class:KnownError/Attribute:version+' => '',
'Class:KnownError/Attribute:ci_list' => 'CI-k',
'Class:KnownError/Attribute:ci_list+' => '',
'Class:KnownError/Attribute:ci_list+' => 'All the configuration items that are related to this known error~~',
'Class:KnownError/Attribute:document_list' => 'Dokumentumok',
'Class:KnownError/Attribute:document_list+' => '',
'Class:KnownError/Attribute:document_list+' => 'All the documents linked to this known error~~',
));
//

View File

@@ -86,9 +86,9 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array(
'Class:KnownError/Attribute:version' => 'Versione',
'Class:KnownError/Attribute:version+' => '',
'Class:KnownError/Attribute:ci_list' => 'CIs',
'Class:KnownError/Attribute:ci_list+' => '',
'Class:KnownError/Attribute:ci_list+' => 'All the configuration items that are related to this known error~~',
'Class:KnownError/Attribute:document_list' => 'Documenti',
'Class:KnownError/Attribute:document_list+' => '',
'Class:KnownError/Attribute:document_list+' => 'All the documents linked to this known error~~',
));
//

View File

@@ -59,9 +59,9 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:KnownError/Attribute:version' => 'バージョン',
'Class:KnownError/Attribute:version+' => '',
'Class:KnownError/Attribute:ci_list' => 'CI',
'Class:KnownError/Attribute:ci_list+' => '',
'Class:KnownError/Attribute:ci_list+' => 'All the configuration items that are related to this known error~~',
'Class:KnownError/Attribute:document_list' => '文書',
'Class:KnownError/Attribute:document_list+' => '',
'Class:KnownError/Attribute:document_list+' => 'All the documents linked to this known error~~',
));
//

View File

@@ -87,9 +87,9 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
'Class:KnownError/Attribute:version' => 'Versiyon',
'Class:KnownError/Attribute:version+' => '',
'Class:KnownError/Attribute:ci_list' => 'KKler',
'Class:KnownError/Attribute:ci_list+' => '',
'Class:KnownError/Attribute:ci_list+' => 'All the configuration items that are related to this known error~~',
'Class:KnownError/Attribute:document_list' => 'Dokümanlar',
'Class:KnownError/Attribute:document_list+' => '',
'Class:KnownError/Attribute:document_list+' => 'All the documents linked to this known error~~',
));
//

View File

@@ -3,7 +3,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-knownerror-mgmt/3.0.2',
'itop-knownerror-mgmt/3.0.3',
array(
// Identification
//

View File

@@ -5,7 +5,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-oauth-client/3.0.2',
'itop-oauth-client/3.0.3',
array(
// Identification
//

View File

@@ -20,7 +20,7 @@
/** @noinspection PhpUnhandledExceptionInspection */
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-portal-base/3.0.2', array(
'itop-portal-base/3.0.3', array(
// Identification
'label' => 'Portal Development Library',
'category' => 'Portal',

View File

@@ -31,6 +31,7 @@ use Combodo\iTop\Form\Field\LabelField;
use Combodo\iTop\Form\Form;
use Combodo\iTop\Form\FormManager;
use Combodo\iTop\Portal\Helper\ApplicationHelper;
use CoreCannotSaveObjectException;
use DBObject;
use DBObjectSearch;
use DBObjectSet;
@@ -1158,6 +1159,9 @@ class ObjectFormManager extends FormManager
{
$this->oObject->DBWrite();
}
catch (CoreCannotSaveObjectException $e) {
throw new Exception($e->getHtmlMessage());
}
catch (Exception $e) {
if ($bIsNew) {
throw new Exception(Dict::S('Portal:Error:ObjectCannotBeCreated'));

View File

@@ -20,7 +20,7 @@
/** @noinspection PhpUnhandledExceptionInspection */
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-portal/3.0.2', array(
'itop-portal/3.0.3', array(
// Identification
'label' => 'Enhanced Customer Portal',
'category' => 'Portal',

Some files were not shown because too many files have changed in this diff Show More