Compare commits

...

54 Commits

Author SHA1 Message Date
Romain Quetiez
b7f9f1b93e Releasing iTop 2.1.0 Build 2121
SVN:2.1.0[3474]
2014-12-16 15:32:13 +00:00
Romain Quetiez
35dd3f9610 The very final version (removed a misleading header in the readme file)
SVN:trunk[3473]
2014-12-16 15:13:09 +00:00
Romain Quetiez
a7f7424e54 #1039 Continuation of the fix implemented in [3465] that introduced a stopper regression (Fatal Error)
SVN:trunk[3472]
2014-12-16 13:54:40 +00:00
Denis Flaven
83e2974b10 #1040 Graphical display of "impact/depends on" is not consistent with the "list" tab
SVN:trunk[3471]
2014-12-16 13:40:51 +00:00
Romain Quetiez
715ba066d3 Adjusted dictionary entries (meta information about the lifecycle actions)
SVN:trunk[3470]
2014-12-16 09:02:03 +00:00
Romain Quetiez
9502003ff4 Updated the readme file with the latest changes
SVN:trunk[3469]
2014-12-15 16:11:15 +00:00
Romain Quetiez
57c827bb1a Updated the readme file with the latest changes
SVN:trunk[3468]
2014-12-15 16:08:50 +00:00
Denis Flaven
690ac9be75 #1038: dictionary cleanup to avoid misleading/duplicate names when importing Service Subcategories.
SVN:trunk[3467]
2014-12-15 16:08:10 +00:00
Romain Quetiez
4c3c31c44d Injectable methods: labels/descriptions given in the dictionary
SVN:trunk[3466]
2014-12-15 15:49:44 +00:00
Denis Flaven
3c9ace5b53 #1039: prevent concurrent executions of either synchro_import.php or synchro_exec.php for a given data source, since it would lead to unpredictable results.
SVN:trunk[3465]
2014-12-15 15:04:43 +00:00
Denis Flaven
bd5268dc42 Addition of the Ducth translation, thanks to Remie Malik.
SVN:trunk[3464]
2014-12-15 14:34:34 +00:00
Denis Flaven
133b6d4d29 #1037: refresh "priority" when either "impact" or "urgency" changes.
SVN:trunk[3463]
2014-12-15 14:09:17 +00:00
Denis Flaven
fba3990c61 - Proper handling of the validation hierarchy in property sheets.
- Correct behavior for animated submits...

SVN:trunk[3462]
2014-12-12 16:38:17 +00:00
Romain Quetiez
53e997cfba Instrumented Model Factory with means to keep track of touched nodes
SVN:trunk[3461]
2014-12-12 12:17:43 +00:00
Denis Flaven
e738ba35b7 The FormSelectorField now has its own widget to properly cope with its "subfields" in "property sheet" mode (continued).
SVN:trunk[3460]
2014-12-10 17:11:45 +00:00
Romain Quetiez
0773455ebc Cosmetics on the module names (consistency)
SVN:trunk[3459]
2014-12-10 10:48:47 +00:00
Denis Flaven
cafc6a8baf The FormSelectorField now has its own widget to properly cope with its "subfields" in "property sheet" mode.
SVN:trunk[3458]
2014-12-10 10:44:26 +00:00
Romain Quetiez
48f222df0b When adding a case log, existing objects could not be displayed anymore!
SVN:trunk[3457]
2014-12-09 16:07:06 +00:00
Denis Flaven
88726a0634 Support for some (optional) feedback during submit.
SVN:trunk[3456]
2014-12-08 13:19:09 +00:00
Denis Flaven
0ac522fc4c Support for some (optional) feedback during uploads.
SVN:trunk[3455]
2014-12-08 13:18:06 +00:00
Denis Flaven
aa97703b64 Add the appropriate "type" to the parameters passed to the actions on transitions.
SVN:trunk[3454]
2014-12-05 11:02:32 +00:00
Romain Quetiez
30af416394 Rework of the dictionaries: moved menu related entries to the module itop-welcome-itil (which does create most of those menus), while preserving the original copy of the entries so as to be compatible with customizations made with a copy of an older version of itop-welcome-itil
SVN:trunk[3453]
2014-12-04 16:05:11 +00:00
Denis Flaven
1f2ad9ecdb Demo mode: prevent the deletion of Users...
SVN:trunk[3452]
2014-12-04 10:02:14 +00:00
Romain Quetiez
d1f1889c42 Updated the release note with the changes made since the beta release
SVN:trunk[3451]
2014-12-03 16:43:28 +00:00
Romain Quetiez
ca7ee0f138 #1020 Restrict dashboard/shortcut refresh interval
SVN:trunk[3448]
2014-12-03 11:38:19 +00:00
Denis Flaven
909729e9f1 #1028: drop the support of non-numeric primary keys for DBObjects. This makes the queries related to the history (and the indexes) much more efficient. Beware, conversion time at setup can be long if the priv_changeop table is big.
SVN:trunk[3447]
2014-12-03 11:01:29 +00:00
Denis Flaven
a222ba998d Enhanced reporting during the setup: all the queries (create table / alter table) are now logged into "setup.log" along with their execution time.
SVN:trunk[3446]
2014-12-03 10:58:39 +00:00
Romain Quetiez
aedddf9dcc #1026 CSV import of tickets with impact = '', issuing a Notice
SVN:trunk[3445]
2014-12-02 14:45:19 +00:00
Denis Flaven
74de0d33ab #1021: fix alignment of multiple header dashlets in the same cell.
SVN:trunk[3444]
2014-12-02 13:10:44 +00:00
Romain Quetiez
8d8510a412 #1030 Missing values in the history tab (TTO/TTR)
The regression has been introduced in iTop 2.0.2 with the fix for #703 (escape HTML entities). There is no data loss: changes were correctly made and all the changes already recorded will be correctly displayed with the current fix.
The current change consists in a little rework: GetAsHTMLForHistory has been renamed DescribeChange, and it now calls oAttDef->GetAsHTMLForHistory instead of calling oAttDef->GetAsHTML, thus allowing for the factorization of the code that format the change description. AttributeSubitem does not overload DescribeChange. Rather, it simply overloads GetAsHTMLForHistory (viewing the diff may be confusing here).

SVN:trunk[3443]
2014-12-02 10:53:59 +00:00
Denis Flaven
4dd83a0eb6 #985: preserve the displayed sort order when refreshing a table.
SVN:trunk[3442]
2014-12-02 10:26:26 +00:00
Romain Quetiez
671ee353e8 #1027 Regression introduced in [3148] thus in 2.0.3 (cache the reconciliation for external keys on the CSV import) a cache hit on an ambiguous external key was not correctly handled
SVN:trunk[3440]
2014-12-01 19:12:19 +00:00
Denis Flaven
d714235d67 #1016: record the displayed value of the database_table_name field in the database.
This happens:
- when creating a new Synchro Data Source
- when modifying an "old" Synchro Data Source for which the field was empty.

SVN:trunk[3439]
2014-12-01 17:33:38 +00:00
Romain Quetiez
c4b039c9c6 #975 Continuation of the fix implemented in [r3431] - Renaming an enum requires to call RenameEnumValueInDB
SVN:trunk[3438]
2014-12-01 15:19:48 +00:00
Romain Quetiez
29e751278e #1029 Got rid of tags <format> that were not used at all and that were really misleading extension developers
SVN:trunk[3437]
2014-12-01 11:43:12 +00:00
Denis Flaven
87ed5d4a05 Fix for a regression introduced by [r3394] while fixing #1000: handling of OPT_ATT_MUSTCHANGE. The fix was not working when the original value contained several lines.
SVN:trunk[3436]
2014-11-28 17:03:13 +00:00
Denis Flaven
c8a20d01da Bug fix: proper handling of the validation of subforms...
SVN:trunk[3435]
2014-11-28 14:03:21 +00:00
Erwan Taloc
47add0eeea Allow linkage of organization to a Delivery model, directly from the tab "Customers"
SVN:trunk[3434]
2014-11-28 10:28:36 +00:00
Denis Flaven
2a9f69d70e More meta information about the interfaces.
SVN:trunk[3433]
2014-11-27 16:22:05 +00:00
Romain Quetiez
e90e570469 Datamodel version is now 2.1.0
SVN:trunk[3432]
2014-11-27 15:23:51 +00:00
Erwan Taloc
b0e56e5897 modify enumerated list for model type in order to manage Phone CIs : tack #975
SVN:trunk[3431]
2014-11-26 18:56:51 +00:00
Erwan Taloc
c96842d82c replace provider_name by provider_id in the search form of service-subcategories
SVN:trunk[3430]
2014-11-26 18:34:51 +00:00
Erwan Taloc
bc79aecd73 Improve french translation
SVN:trunk[3429]
2014-11-26 18:33:40 +00:00
Erwan Taloc
99755ad7e8 update highlight scale for request-management modules
SVN:trunk[3428]
2014-11-26 18:32:38 +00:00
Erwan Taloc
4867461f69 Add tab to link a problem to incidents
SVN:trunk[3427]
2014-11-26 17:38:53 +00:00
Erwan Taloc
3d21eecbba Translate missing tabs translation related_requests_list
SVN:trunk[3426]
2014-11-26 17:35:32 +00:00
Romain Quetiez
b822cff269 Instrumented the code to ease the troubleshooting of the computing of working hours
SVN:trunk[3425]
2014-11-25 15:25:28 +00:00
Romain Quetiez
3aa0b77751 Cosmetic on the XML: identify lifecycle functions parameters
SVN:trunk[3424]
2014-11-19 14:15:10 +00:00
Romain Quetiez
f4b10d3e81 #1022 Do cascade the resolution of an incident to its child requests + rework of the lifecycle/actions to ease the extensibility (New handlers: Rest, Copy, SetCurrentDate, SetCurrentUser, SetElapsedTime)
SVN:trunk[3423]
2014-11-19 09:44:52 +00:00
Denis Flaven
ca90f9b32a Oops, typo in "Prevent the JS validation (on focus) to create multiple entries for the same field, since it breaks the validation."
SVN:trunk[3422]
2014-11-18 17:25:08 +00:00
Denis Flaven
9ca051d9d0 Prevent the JS validation (on focus) to create multiple entries for the same field, since it breaks the validation.
SVN:trunk[3421]
2014-11-18 15:31:51 +00:00
Romain Quetiez
291f05683c New function: ormStopWatch::GetElapsedTime to compute the cumulated elapsed time on a stop watch still running -not used yet (but tested!)
SVN:trunk[3420]
2014-11-18 14:54:10 +00:00
Denis Flaven
4889ed5ac2 Read-only mode for icon selector widget: display at least the icon.
SVN:trunk[3419]
2014-11-18 09:22:48 +00:00
Denis Flaven
3fa354d00d Predefined objects are now handled by RuntimeEnvironment
SVN:trunk[3418]
2014-11-14 10:43:24 +00:00
129 changed files with 9122 additions and 1080 deletions

View File

@@ -271,6 +271,19 @@ class URP_UserProfile extends UserRightsBaseClassGUI
{
return Dict::Format('UI:UserManagement:LinkBetween_User_And_Profile', $this->Get('userlogin'), $this->Get('profile'));
}
public function CheckToDelete(&$oDeletionPlan)
{
if (MetaModel::GetConfig()->Get('demo_mode'))
{
// Users deletion is NOT allowed in demo mode
$oDeletionPlan->AddToDelete($this, null);
$oDeletionPlan->SetDeletionIssues($this, array('deletion not allowed in demo mode.'), true);
$oDeletionPlan->ComputeResults();
return false;
}
return parent::CheckToDelete($oDeletionPlan);
}
}
class URP_UserOrg extends UserRightsBaseClassGUI

View File

@@ -1854,7 +1854,7 @@ abstract class cmdbAbstractObject extends CMDBObject implements iDisplay
{
$sNullValue = "'$sNullValue'"; // Add quotes to turn this into a JS string if it's not a number
}
$sOriginalValue = ($iFlags & OPT_ATT_MUSTCHANGE) ? "'".addslashes($value)."'" : 'undefined';
$sOriginalValue = ($iFlags & OPT_ATT_MUSTCHANGE) ? json_encode($value) : 'undefined';
$oPage->add_ready_script("$('#$iId').bind('".implode(' ', $aEventsList)."', function(evt, sFormId) { return ValidateField('$iId', '$sPattern', $bMandatory, sFormId, $sNullValue, $sOriginalValue) } );\n"); // Bind to a custom event: validate
}
$aDependencies = MetaModel::GetDependentAttributes($sClass, $sAttCode); // List of attributes that depend on the current one

View File

@@ -91,7 +91,7 @@ abstract class Dashboard
}
if ($oAutoReloadInterval = $oAutoReloadNode->getElementsByTagName('interval')->item(0))
{
$this->iAutoReloadSec = max(5, (int)$oAutoReloadInterval->textContent);
$this->iAutoReloadSec = max(MetaModel::GetConfig()->Get('min_reload_interval'), (int)$oAutoReloadInterval->textContent);
}
}
@@ -235,7 +235,7 @@ abstract class Dashboard
$this->sLayoutClass = $aParams['layout_class'];
$this->sTitle = $aParams['title'];
$this->bAutoReload = $aParams['auto_reload'] == 'true';
$this->iAutoReloadSec = max(5, (int) $aParams['auto_reload_sec']);
$this->iAutoReloadSec = max(MetaModel::GetConfig()->Get('min_reload_interval'), (int) $aParams['auto_reload_sec']);
foreach($aParams['cells'] as $aCell)
{
@@ -300,7 +300,7 @@ abstract class Dashboard
public function SetAutoReloadInterval($iAutoReloadSec)
{
$this->iAutoReloadSec = max(5, (int)$iAutoReloadSec);
$this->iAutoReloadSec = max(MetaModel::GetConfig()->Get('min_reload_interval'), (int)$iAutoReloadSec);
}
public function AddDashlet($oDashlet)
@@ -357,16 +357,17 @@ abstract class Dashboard
$oField = new DesignerBooleanField('auto_reload', Dict::S('UI:DashboardEdit:AutoReload'), $this->bAutoReload);
$oForm->AddField($oField);
$oField = new DesignerTextField('auto_reload_sec', Dict::S('UI:DashboardEdit:AutoReloadSec'), $this->iAutoReloadSec);
$oField->SetValidationPattern('^$|^0*([5-9]|[1-9][0-9]+)$'); // Can be empty, or a number > 4
$oField = new DesignerIntegerField('auto_reload_sec', Dict::S('UI:DashboardEdit:AutoReloadSec'), $this->iAutoReloadSec);
$oField->SetBoundaries(MetaModel::GetConfig()->Get('min_reload_interval'), null); // no upper limit
$oForm->AddField($oField);
$this->SetFormParams($oForm);
$oForm->RenderAsPropertySheet($oPage, false, '.itop-dashboard');
$oPage->add('</div>');
$sRateTitle = addslashes(Dict::S('UI:DashboardEdit:AutoReloadSec+'));
$sRateTitle = addslashes(Dict::Format('UI:DashboardEdit:AutoReloadSec+', MetaModel::GetConfig()->Get('min_reload_interval')));
$oPage->add_ready_script(
<<<EOF
// Note: the title gets deleted by the validation mechanism

View File

@@ -226,7 +226,7 @@ class DisplayBlock
if (is_numeric($aExtraParams['auto_reload']) && ($aExtraParams['auto_reload'] > 0))
{
$bAutoReload = true;
$iReloadInterval = max(5, $aExtraParams['auto_reload'])*1000;
$iReloadInterval = max(MetaModel::GetConfig()->Get('min_reload_interval'), $aExtraParams['auto_reload'])*1000;
}
else
{
@@ -765,6 +765,7 @@ class DisplayBlock
$sHyperlink = utils::GetAbsoluteUrlAppRoot().'pages/UI.php?operation=search&'.$oAppContext->GetForLink().'&filter='.urlencode($this->m_oFilter->serialize());
$sHtml .= '<h1>'.Dict::S(str_replace('_', ':', $sTitle)).'</h1>';
$sHtml .= '<a class="summary" href="'.$sHyperlink.'">'.Dict::Format(str_replace('_', ':', $sLabel), $iCount).'</a>';
$sHtml .= '<div style="clear:both;"></div>';
break;
case 'csv':

View File

@@ -84,15 +84,14 @@ class DesignerForm
public function Render($oP, $bReturnHTML = false)
{
$sFormId = $this->GetFormId();
if ($this->oParentForm == null)
{
$sFormId = $this->sFormId;
$sReturn = '<form id="'.$sFormId.'">';
}
else
{
$sReturn = '';
$sFormId = $this->oParentForm->sFormId;
}
$sHiddenFields = '';
foreach($this->aFieldSets as $sLabel => $aFields)
@@ -108,7 +107,7 @@ class DesignerForm
$aRow = $oField->Render($oP, $sFormId);
if ($oField->IsVisible())
{
$sValidation = '&nbsp;<span class="prop_apply">'.$this->GetValidationArea($oField->GetCode()).'</span>';
$sValidation = '&nbsp;<span class="prop_apply">'.$this->GetValidationArea($oField->GetFieldId()).'</span>';
$sField = $aRow['value'].$sValidation;
$aDetails[] = array('label' => $aRow['label'], 'value' => $sField);
}
@@ -207,17 +206,14 @@ class DesignerForm
$sReturn = '';
$sActionUrl = addslashes($this->sSubmitTo);
$sJSSubmitParams = json_encode($this->aSubmitParams);
$sFormId = $this->GetFormId();
if ($this->oParentForm == null)
{
$sFormId = $this->sFormId;
$sReturn = '<form id="'.$sFormId.'" onsubmit="return false;">';
$sReturn .= '<table class="prop_table">';
$sReturn .= '<thead><tr><th class="prop_header">'.Dict::S('UI:Form:Property').'</th><th class="prop_header">'.Dict::S('UI:Form:Value').'</th><th colspan="2" class="prop_header">&nbsp;</th></tr></thead><tbody>';
}
else
{
$sFormId = $this->oParentForm->sFormId;
}
$sHiddenFields = '';
foreach($this->aFieldSets as $sLabel => $aFields)
{
@@ -234,7 +230,7 @@ class DesignerForm
if ($oField->IsVisible())
{
$sFieldId = $this->GetFieldId($oField->GetCode());
$sValidation = $this->GetValidationArea($oField->GetCode(), '<span title="Apply" class="ui-icon ui-icon-circle-check"/>');
$sValidation = $this->GetValidationArea($sFieldId, '<span title="Apply" class="ui-icon ui-icon-circle-check"/>');
$sValidationFields = '</td><td class="prop_icon prop_apply">'.$sValidation.'</td><td class="prop_icon prop_cancel"><span title="Revert" class="ui-icon ui-icon-circle-close"/></td>'.$this->EndRow();
$sPath = $this->GetHierarchyPath().'/'.$oField->GetCode();
@@ -255,9 +251,21 @@ class DesignerForm
$sAutoApply = $oField->IsAutoApply() ? 'true' : 'false';
$sHandlerEquals = $oField->GetHandlerEquals();
$sHandlerGetValue = $oField->GetHandlerGetValue();
$sWidgetClass = $oField->GetWidgetClass();
$sJSExtraParams = '';
if (count($oField->GetWidgetExtraParams()) > 0)
{
$aExtraParams = array();
foreach($oField->GetWidgetExtraParams() as $key=> $value)
{
$aExtraParams[] = "'$key': ".json_encode($value);
}
$sJSExtraParams = ', '.implode(', ', $aExtraParams);
}
$this->AddReadyScript(
<<<EOF
$('#row_$sFieldId').property_field({parent_selector: $sNotifyParentSelectorJS, field_id: '$sFieldId', equals: $sHandlerEquals, get_field_value: $sHandlerGetValue, auto_apply: $sAutoApply, value: '', submit_to: '$sActionUrl', submit_parameters: $sJSSubmitParams });
$('#row_$sFieldId').$sWidgetClass({parent_selector: $sNotifyParentSelectorJS, field_id: '$sFieldId', equals: $sHandlerEquals, get_field_value: $sHandlerGetValue, auto_apply: $sAutoApply, value: '', submit_to: '$sActionUrl', submit_parameters: $sJSSubmitParams $sJSExtraParams });
EOF
);
}
@@ -358,6 +366,14 @@ $('#$sDialogId').dialog({
{ text: "$sOkButtonLabel", click: function() {
var oForm = $(this).closest('.ui-dialog').find('form');
oForm.submit();
if (AnimateDlgButtons)
{
sFormId = oForm.attr('id');
if (oFormValidation[sFormId].length == 0)
{
AnimateDlgButtons(this);
}
}
} },
{ text: "$sCancelButtonLabel", click: function() { KillAllMenus(); $(this).dialog( "close" ); $(this).remove(); } },
],
@@ -475,6 +491,15 @@ EOF
return $this->oParentForm;
}
public function GetFormId()
{
if ($this->oParentForm)
{
$this->oParentForm->GetFormId();
}
return $this->sFormId;
}
public function SetDisplayed($bDisplayed)
{
$this->bDisplayed = $bDisplayed;
@@ -517,9 +542,9 @@ EOF
return 'attr_'.$sCode.$this->GetSuffix();
}
public function GetValidationArea($sCode, $sContent = '')
public function GetValidationArea($sId, $sContent = '')
{
return "<span style=\"display:inline-block;width:20px;\" id=\"v_{$this->sFormPrefix}attr_$sCode\"><span class=\"ui-icon ui-icon-alert\"></span>$sContent</span>";
return "<span style=\"display:inline-block;width:20px;\" id=\"v_{$sId}\"><span class=\"ui-icon ui-icon-alert\"></span>$sContent</span>";
}
public function GetAsyncActionClass()
{
@@ -660,6 +685,7 @@ class DesignerFormField
protected $bAutoApply;
protected $aCSSClasses;
protected $bDisplayed;
protected $aWidgetExtraParams;
public function __construct($sCode, $sLabel, $defaultValue)
{
@@ -671,6 +697,7 @@ class DesignerFormField
$this->bAutoApply = false;
$this->aCSSClasses = array();
$this->bDisplayed = true;
$this->aWidgetExtraParams = array();
}
public function GetCode()
@@ -724,6 +751,16 @@ class DesignerFormField
return $this->oForm->GetFieldId($this->sCode);
}
public function GetWidgetClass()
{
return 'property_field';
}
public function GetWidgetExtraParams()
{
return $this->aWidgetExtraParams;
}
public function Render(WebPage $oP, $sFormId, $sRenderMode='dialog')
{
$sId = $this->oForm->GetFieldId($this->sCode);
@@ -884,7 +921,7 @@ class DesignerTextField extends DesignerFormField
$sMandatory = $this->bMandatory ? 'true' : 'false';
$oP->add_ready_script(
<<<EOF
$('#$sId').bind('change keyup validate', function() { ValidateWithPattern('$sId', $sMandatory, '$sPattern', '$sFormId', $sForbiddenValues, '$sExplainForbiddenValues'); } );
$('#$sId').bind('change keyup validate', function() { ValidateWithPattern('$sId', $sMandatory, '$sPattern', $(this).closest('form').attr('id'), $sForbiddenValues, '$sExplainForbiddenValues'); } );
{
var myTimer = null;
$('#$sId').bind('keyup', function() { clearTimeout(myTimer); myTimer = setTimeout(function() { $('#$sId').trigger('change', {} ); }, 100); });
@@ -938,7 +975,7 @@ class DesignerLongTextField extends DesignerTextField
$sReadOnly = $this->IsReadOnly() ? 'readonly' : '';
$oP->add_ready_script(
<<<EOF
$('#$sId').bind('change keyup validate', function() { ValidateWithPattern('$sId', $sMandatory, '$sPattern', '$sFormId', $sForbiddenValues, '$sExplainForbiddenValues'); } );
$('#$sId').bind('change keyup validate', function() { ValidateWithPattern('$sId', $sMandatory, '$sPattern', $(this).closest('form').attr('id'), $sForbiddenValues, '$sExplainForbiddenValues'); } );
{
var myTimer = null;
$('#$sId').bind('keyup', function() { clearTimeout(myTimer); myTimer = setTimeout(function() { $('#$sId').trigger('change', {} ); }, 100); });
@@ -954,6 +991,74 @@ EOF
}
}
class DesignerIntegerField extends DesignerFormField
{
protected $iMin; // Lower boundary, inclusive
protected $iMax; // Higher boundary, inclusive
public function __construct($sCode, $sLabel = '', $defaultValue = '')
{
parent::__construct($sCode, $sLabel, $defaultValue);
$this->iMin = 0; // Positive integer is the default
$this->iMax = null;
}
public function SetBoundaries($iMin = null, $iMax = null)
{
$this->iMin = $iMin;
$this->iMax = $iMax;
}
public function Render(WebPage $oP, $sFormId, $sRenderMode='dialog')
{
$sId = $this->oForm->GetFieldId($this->sCode);
$sName = $this->oForm->GetFieldName($this->sCode);
if ($this->IsReadOnly())
{
$sHtmlValue = "<span>".htmlentities($this->defaultValue, ENT_QUOTES, 'UTF-8')."<input type=\"hidden\" id=\"$sId\" name=\"$sName\" value=\"".htmlentities($this->defaultValue, ENT_QUOTES, 'UTF-8')."\"/></span>";
}
else
{
$sMin = json_encode($this->iMin);
$sMax = json_encode($this->iMax);
$sMandatory = $this->bMandatory ? 'true' : 'false';
$oP->add_ready_script(
<<<EOF
$('#$sId').bind('change keyup validate', function() { ValidateInteger('$sId', $sMandatory, $(this).closest('form').attr('id'), $sMin, $sMax); } );
{
var myTimer = null;
$('#$sId').bind('keyup', function() { clearTimeout(myTimer); myTimer = setTimeout(function() { $('#$sId').trigger('change', {} ); }, 100); });
}
EOF
);
$sCSSClasses = '';
if (count($this->aCSSClasses) > 0)
{
$sCSSClasses = 'class="'.implode(' ', $this->aCSSClasses).'"';
}
$sHtmlValue = "<input type=\"text\" $sCSSClasses id=\"$sId\" name=\"$sName\" value=\"".htmlentities($this->defaultValue, ENT_QUOTES, 'UTF-8')."\">";
}
return array('label' => $this->sLabel, 'value' => $sHtmlValue);
}
public function ReadParam(&$aValues)
{
parent::ReadParam($aValues);
if (!is_null($this->iMin) && ($aValues[$this->sCode] < $this->iMin))
{
// Reject the value...
$aValues[$this->sCode] = $this->defaultValue;
}
if (!is_null($this->iMax) && ($aValues[$this->sCode] > $this->iMax))
{
// Reject the value...
$aValues[$this->sCode] = $this->defaultValue;
}
}
}
class DesignerComboField extends DesignerFormField
{
protected $aAllowedValues;
@@ -1067,7 +1172,7 @@ class DesignerComboField extends DesignerFormField
}
$oP->add_ready_script(
<<<EOF
$('#$sId').bind('change validate', function() { ValidateWithPattern('$sId', $sMandatory, '', '$sFormId', null, null); } );
$('#$sId').bind('change validate', function() { ValidateWithPattern('$sId', $sMandatory, '', $(this).closest('form').attr('id'), null, null); } );
EOF
);
}
@@ -1205,14 +1310,19 @@ class DesignerIconSelectionField extends DesignerFormField
$sPostUploadTo = ($this->sUploadUrl == null) ? 'null' : "'{$this->sUploadUrl}'";
if (!$this->IsReadOnly())
{
$sValue = "<input type=\"hidden\" id=\"$sId\" name=\"$sName\" value=\"{$this->defaultValue}\"/>";
$oP->add_ready_script(
<<<EOF
$('#$sId').icon_select({current_idx: $idx, items: $sJSItems, post_upload_to: $sPostUploadTo});
EOF
);
}
else
{
$sValue = '<img src="'.$this->MakeFileUrl($this->defaultValue).'" />';
}
$sReadOnly = $this->IsReadOnly() ? 'disabled' : '';
return array('label' =>$this->sLabel, 'value' => "<input type=\"hidden\" id=\"$sId\" name=\"$sName\" value=\"{$this->defaultValue}\"/>");
return array('label' => $this->sLabel, 'value' => $sValue);
}
}
@@ -1325,6 +1435,11 @@ class DesignerFormSelectorField extends DesignerFormField
$this->aSubForms = array();
}
public function GetWidgetClass()
{
return 'selector_property_field';
}
public function AddSubForm($oSubForm, $sLabel, $sValue)
{
$idx = count($this->aSubForms);
@@ -1443,7 +1558,7 @@ class DesignerFormSelectorField extends DesignerFormField
if ($sRenderMode == 'property')
{
$sSelector = $this->oForm->GetHierarchyPath().'/'.$this->sCode.$this->oForm->GetSuffix();
$oP->add_ready_script("InitFormSelectorField('$sId', '$sSelector');");
$this->aWidgetExtraParams['data_selector'] = $sSelector;
}
else
{

View File

@@ -254,8 +254,8 @@ class ShortcutOQL extends Shortcut
$oField = new DesignerBooleanField('auto_reload', Dict::S('Class:ShortcutOQL/Attribute:auto_reload'), false);
$oForm->AddField($oField);
$oField = new DesignerTextField('auto_reload_sec', Dict::S('Class:ShortcutOQL/Attribute:auto_reload_sec'), MetaModel::GetConfig()->GetStandardReloadInterval());
$oField->SetValidationPattern('^$|^0*([5-9]|[1-9][0-9]+)$'); // Can be empty, or a number > 4
$oField = new DesignerIntegerField('auto_reload_sec', Dict::S('Class:ShortcutOQL/Attribute:auto_reload_sec'), MetaModel::GetConfig()->GetStandardReloadInterval());
$oField->SetBoundaries(MetaModel::GetConfig()->Get('min_reload_interval'), null); // no upper limit
$oField->SetMandatory(false);
$oForm->AddField($oField);
@@ -284,7 +284,7 @@ class ShortcutOQL extends Shortcut
$oAppContext = new ApplicationContext();
$sContext = $oAppContext->GetForLink();
$sRateTitle = addslashes(Dict::S('Class:ShortcutOQL/Attribute:auto_reload_sec+'));
$sRateTitle = addslashes(Dict::Format('Class:ShortcutOQL/Attribute:auto_reload_sec/tip', MetaModel::GetConfig()->Get('min_reload_interval')));
$oPage->add_ready_script(
<<<EOF

View File

@@ -130,7 +130,7 @@ class appUserPreferences extends DBObject
/**
* Call this function if the user has changed (like when doing a logoff...)
*/
static public function Reset()
static public function ResetPreferences()
{
self::$oUserPrefs = null;
}

View File

@@ -480,6 +480,14 @@ abstract class AttributeDefinition
return (string)$sValue;
}
/**
* Override to differentiate a value displayed in the UI or in the history
*/
public function GetAsHTMLForHistory($sValue, $oHostObject = null, $bLocalize = true)
{
return $this->GetAsHTML($sValue, $oHostObject, $bLocalize);
}
public function GetAllowedValues($aArgs = array(), $sContains = '')
{
$oValSetDef = $this->GetValuesDef();
@@ -487,15 +495,18 @@ abstract class AttributeDefinition
return $oValSetDef->GetValues($aArgs, $sContains);
}
public function GetAsHTMLForHistory($sOldValue, $sNewValue, $sLabel = null)
/**
* Explain the change of the attribute (history)
*/
public function DescribeChangeAsHTML($sOldValue, $sNewValue, $sLabel = null)
{
if (is_null($sLabel))
{
$sLabel = $this->GetLabel();
}
$sNewValueHtml = $this->GetAsHTML($sNewValue);
$sOldValueHtml = $this->GetAsHTML($sOldValue);
$sNewValueHtml = $this->GetAsHTMLForHistory($sNewValue);
$sOldValueHtml = $this->GetAsHTMLForHistory($sOldValue);
if($this->IsExternalKey())
{
@@ -1982,7 +1993,7 @@ class AttributeCaseLog extends AttributeLongText
public function FromSQLToValue($aCols, $sPrefix = '')
{
if (!isset($aCols[$sPrefix]))
if (!array_key_exists($sPrefix, $aCols))
{
$sAvailable = implode(', ', array_keys($aCols));
throw new MissingColumnException("Missing column '$sPrefix' from {$sAvailable}");
@@ -3981,19 +3992,17 @@ class AttributeStopWatch extends AttributeDefinition
return Dict::S('BooleanLabel:'.$sDictKey, 'def:'.$sDictKey);
}
public function GetSubItemAsHTMLForHistory($sItemCode, $sOldValue, $sNewValue, $sLabel)
public function GetSubItemAsHTMLForHistory($sItemCode, $sValue)
{
switch($sItemCode)
{
case 'timespent':
$sHtmlOld = (int)$sOldValue ? AttributeDuration::FormatDuration($sOldValue) : null;
$sHtmlNew = (int)$sNewValue ? AttributeDuration::FormatDuration($sNewValue) : null;
$sHtml = (int)$sValue ? Str::pure2html(AttributeDuration::FormatDuration($sValue)) : null;
break;
case 'started':
case 'laststart':
case 'stopped':
$sHtmlOld = (int)$sOldValue ? date(self::GetDateFormat(), (int)$sOldValue) : null;
$sHtmlNew = (int)$sNewValue ? date(self::GetDateFormat(), (int)$sNewValue) : null;
$sHtml = (int)$sValue ? date(self::GetDateFormat(), (int)$sValue) : null;
break;
default:
@@ -4007,26 +4016,21 @@ class AttributeStopWatch extends AttributeDefinition
switch($sThresholdCode)
{
case 'deadline':
$sHtmlOld = (int)$sOldValue ? date(self::GetDateFormat(true /*full*/), (int)$sOldValue) : null;
$sHtmlNew = (int)$sNewValue ? date(self::GetDateFormat(true /*full*/), (int)$sNewValue) : null;
$sHtml = (int)$sValue ? date(self::GetDateFormat(true /*full*/), (int)$sValue) : null;
break;
case 'passed':
$sHtmlOld = $this->GetBooleanLabel((int)$sOldValue);
$sHtmlNew = $this->GetBooleanLabel((int)$sNewValue);
$sHtml = $this->GetBooleanLabel((int)$sValue);
break;
case 'triggered':
$sHtmlOld = $this->GetBooleanLabel((int)$sOldValue);
$sHtmlNew = $this->GetBooleanLabel((int)$sNewValue);
$sHtml = $this->GetBooleanLabel((int)$sValue);
break;
case 'overrun':
$sHtmlOld = (int)$sOldValue > 0 ? AttributeDuration::FormatDuration((int)$sOldValue) : '';
$sHtmlNew = (int)$sNewValue > 0 ? AttributeDuration::FormatDuration((int)$sNewValue) : '';
$sHtml = (int)$sValue > 0 ? Str::pure2html(AttributeDuration::FormatDuration((int)$sValue)) : '';
}
}
}
}
$sRes = parent::GetAsHTMLForHistory($sHtmlOld, $sHtmlNew, $sLabel);
return $sRes;
return $sHtml;
}
static protected function GetDateFormat($bFull = false)
@@ -4341,6 +4345,13 @@ class AttributeSubItem extends AttributeDefinition
return $res;
}
public function GetAsHTMLForHistory($value, $oHostObject = null, $bLocalize = true)
{
$oParent = $this->GetTargetAttDef();
$res = $oParent->GetSubItemAsHTMLForHistory($this->Get('item_code'), $value);
return $res;
}
public function GetAsCSV($value, $sSeparator = ',', $sTextQualifier = '"', $oHostObject = null, $bLocalize = true)
{
$oParent = $this->GetTargetAttDef();
@@ -4355,15 +4366,6 @@ class AttributeSubItem extends AttributeDefinition
return $res;
}
public function GetAsHTMLForHistory($sOldValue, $sNewValue, $sLabel = null)
{
$sLabel = $this->GetLabel();
$oParent = $this->GetTargetAttDef();
$sValue = $oParent->GetSubItemAsHTMLForHistory($this->Get('item_code'), $sOldValue, $sNewValue, $sLabel);
return $sValue;
}
/**
* As of now, this function must be implemented to have the value in spreadsheet format
*/
@@ -4923,7 +4925,7 @@ class AttributeFriendlyName extends AttributeComputedFieldVoid
}
// Do not display friendly names in the history of change
public function GetAsHTMLForHistory($sOldValue, $sNewValue, $sLabel = null)
public function DescribeChangeAsHTML($sOldValue, $sNewValue, $sLabel = null)
{
return '';
}

View File

@@ -432,7 +432,7 @@ class BulkChange
break;
default:
$aErrors[$sAttCode] = Dict::Format('UI:CSVReport-Value-Issue-FoundMany', $oExtObjects->Count());
$aErrors[$sAttCode] = Dict::Format('UI:CSVReport-Value-Issue-FoundMany', $iCount);
$aResults[$sAttCode]= new CellStatus_Ambiguous($oTargetObj->Get($sAttCode), $iCount, $sOQL);
}
}

View File

@@ -55,7 +55,7 @@ class CMDBChangeOp extends DBObject
MetaModel::Init_AddAttribute(new AttributeExternalField("date", array("allowed_values"=>null, "extkey_attcode"=>"change", "target_attcode"=>"date")));
MetaModel::Init_AddAttribute(new AttributeExternalField("userinfo", array("allowed_values"=>null, "extkey_attcode"=>"change", "target_attcode"=>"userinfo")));
MetaModel::Init_AddAttribute(new AttributeString("objclass", array("allowed_values"=>null, "sql"=>"objclass", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeString("objkey", array("allowed_values"=>null, "sql"=>"objkey", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeInteger("objkey", array("allowed_values"=>null, "sql"=>"objkey", "default_value"=>0, "is_null_allowed"=>false, "depends_on"=>array())));
MetaModel::Init_SetZListItems('details', array('change', 'date', 'userinfo')); // Attributes to be displayed for the complete details
MetaModel::Init_SetZListItems('list', array('change', 'date', 'userinfo')); // Attributes to be displayed for the complete details
@@ -237,7 +237,7 @@ class CMDBChangeOpSetAttributeScalar extends CMDBChangeOpSetAttribute
$sAttName = $oAttDef->GetLabel();
$sNewValue = $this->Get('newvalue');
$sOldValue = $this->Get('oldvalue');
$sResult = $oAttDef->GetAsHTMLForHistory($sOldValue, $sNewValue);
$sResult = $oAttDef->DescribeChangeAsHTML($sOldValue, $sNewValue);
}
return $sResult;
}

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2012 Combodo SARL
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
@@ -96,11 +96,19 @@ class DefaultWorkingTimeComputer implements iWorkingTimeComputer
*/
public function GetDeadline($oObject, $iDuration, DateTime $oStartDate)
{
if (class_exists('WorkingTimeRecorder'))
{
WorkingTimeRecorder::Trace(WorkingTimeRecorder::TRACE_DEBUG, __class__.'::'.__function__);
}
//echo "GetDeadline - default: ".$oStartDate->format('Y-m-d H:i:s')." + $iDuration<br/>\n";
// Default implementation: 24x7, no holidays: to compute the deadline, just add
// the specified duration to the given date/time
$oResult = clone $oStartDate;
$oResult->modify('+'.$iDuration.' seconds');
if (class_exists('WorkingTimeRecorder'))
{
WorkingTimeRecorder::SetValues($oStartDate->format('U'), $oResult->format('U'), $iDuration, WorkingTimeRecorder::COMPUTED_END);
}
return $oResult;
}
@@ -113,8 +121,17 @@ class DefaultWorkingTimeComputer implements iWorkingTimeComputer
*/
public function GetOpenDuration($oObject, DateTime $oStartDate, DateTime $oEndDate)
{
if (class_exists('WorkingTimeRecorder'))
{
WorkingTimeRecorder::Trace(WorkingTimeRecorder::TRACE_DEBUG, __class__.'::'.__function__);
}
//echo "GetOpenDuration - default: ".$oStartDate->format('Y-m-d H:i:s')." to ".$oEndDate->format('Y-m-d H:i:s')."<br/>\n";
return abs($oEndDate->format('U') - $oStartDate->format('U'));
$iDuration = abs($oEndDate->format('U') - $oStartDate->format('U'));
if (class_exists('WorkingTimeRecorder'))
{
WorkingTimeRecorder::SetValues($oStartDate->format('U'), $oEndDate->format('U'), $iDuration, WorkingTimeRecorder::COMPUTED_DURATION);
}
return $iDuration;
}
}

View File

@@ -792,7 +792,23 @@ class Config
'value' => '',
'source_of_value' => '',
'show_in_conf_sample' => false,
),
),
'min_reload_interval' => array(
'type' => 'integer',
'description' => 'Minimum refresh interval (seconds) for dashboards, shortcuts, etc. Even if the interval is set programmatically, it is forced to that minimum',
'default' => 5, // In iTop 2.0.3, this was the hardcoded value
'value' => '',
'source_of_value' => '',
'show_in_conf_sample' => false,
),
'relations_max_depth' => array(
'type' => 'integer',
'description' => 'Maximum number of successive levels (depth) to explore when displaying the impact/depends on relations.',
'default' => 20, // In iTop 2.0.3, this was the hardcoded value
'value' => '',
'source_of_value' => '',
'show_in_conf_sample' => false,
),
);
public function IsProperty($sPropCode)

View File

@@ -96,6 +96,7 @@ abstract class DBObject implements iDisplay
protected $m_aModifiedAtt = array(); // list of (potentially) modified sAttCodes
protected $m_aSynchroData = null; // Set of Synch data related to this object
protected $m_sHighlightCode = null;
protected $m_aCallbacks = array();
// Use the MetaModel::NewObject to build an object (do we have to force it?)
public function __construct($aRow = null, $sClassAlias = '', $aAttToLoad = null, $aExtendedDataSpec = null)
@@ -338,7 +339,7 @@ abstract class DBObject implements iDisplay
if ($sAttCode == 'finalclass')
{
// Ignore it - this attribute is set upon object creation and that's it
return;
return false;
}
$oAttDef = MetaModel::GetAttributeDef(get_class($this), $sAttCode);
@@ -416,6 +417,9 @@ abstract class DBObject implements iDisplay
// Make sure we do not reload it anymore... before saving it
$this->RegisterAsDirty();
// This function is eligible as a lifecycle action: returning true upon success is a must
return true;
}
public function GetLabel($sAttCode)
@@ -1222,7 +1226,7 @@ abstract class DBObject implements iDisplay
}
}
final public function CheckToDelete(&$oDeletionPlan)
public function CheckToDelete(&$oDeletionPlan)
{
$this->MakeDeletionPlan($oDeletionPlan);
$oDeletionPlan->ComputeResults();
@@ -1581,6 +1585,15 @@ abstract class DBObject implements iDisplay
$oTrigger->DoActivate($this->ToArgs('this'));
}
// Callbacks registered with RegisterCallback
if (isset($this->m_aCallbacks[self::CALLBACK_AFTERINSERT]))
{
foreach ($this->m_aCallbacks[self::CALLBACK_AFTERINSERT] as $aCallBackData)
{
call_user_func_array($aCallBackData['callback'], $aCallBackData['params']);
}
}
$this->RecordObjCreation();
return $this->m_iKey;
@@ -2075,7 +2088,7 @@ abstract class DBObject implements iDisplay
{
if (is_string($actionHandler))
{
// Old (pre-2.0.4) action definition without any parameter
// Old (pre-2.1.0) action definition without any parameter
$aActionCallSpec = array($this, $sActionHandler);
if (!is_callable($aActionCallSpec))
@@ -2183,6 +2196,80 @@ abstract class DBObject implements iDisplay
$this->Set($sAttCode, $oSW);
}
/**
* Lifecycle action: Recover the default value (aka when an object is being created)
*/
public function Reset($sAttCode)
{
$oAttDef = MetaModel::GetAttributeDef(get_class($this), $sAttCode);
$this->Set($sAttCode, $oAttDef->GetDefaultValue());
return true;
}
/**
* Lifecycle action: Copy an attribute to another
*/
public function Copy($sDestAttCode, $sSourceAttCode)
{
$this->Set($sDestAttCode, $this->Get($sSourceAttCode));
return true;
}
/**
* Lifecycle action: Set the current date/time for the given attribute
*/
public function SetCurrentDate($sAttCode)
{
$this->Set($sAttCode, time());
return true;
}
/**
* Lifecycle action: Set the current logged in user for the given attribute
*/
public function SetCurrentUser($sAttCode)
{
$this->Set($sAttCode, UserRights::GetUserId());
return true;
}
/**
* Lifecycle action: Set the time elapsed since a reference point
*/
public function SetElapsedTime($sAttCode, $sRefAttCode, $sWorkingTimeComputer = null)
{
if (is_null($sWorkingTimeComputer))
{
$sWorkingTimeComputer = class_exists('SLAComputation') ? 'SLAComputation' : 'DefaultWorkingTimeComputer';
}
$oComputer = new $sWorkingTimeComputer();
$aCallSpec = array($oComputer, 'GetOpenDuration');
if (!is_callable($aCallSpec))
{
throw new CoreException("Unknown class/verb '$sWorkingTimeComputer/GetOpenDuration'");
}
$iStartTime = AttributeDateTime::GetAsUnixSeconds($this->Get($sRefAttCode));
$oStartDate = new DateTime('@'.$iStartTime); // setTimestamp not available in PHP 5.2
$oEndDate = new DateTime(); // now
if (class_exists('WorkingTimeRecorder'))
{
$sClass = get_class($this);
WorkingTimeRecorder::Start($this, time(), "DBObject-SetElapsedTime-$sAttCode-$sRefAttCode", 'Core:ExplainWTC:ElapsedTime', array("Class:$sClass/Attribute:$sAttCode"));
}
$iElapsed = call_user_func($aCallSpec, $this, $oStartDate, $oEndDate);
if (class_exists('WorkingTimeRecorder'))
{
WorkingTimeRecorder::End();
}
$this->Set($sAttCode, $iElapsed);
return true;
}
/*
* Create query parameters (SELECT ... WHERE service = :this->service_id)
* to be used with the APIs DBObjectSearch/DBObjectSet
@@ -2733,6 +2820,28 @@ abstract class DBObject implements iDisplay
}
$oPage->details($aValues);
}
const CALLBACK_AFTERINSERT = 0;
/**
* Register a call back that will be called when some internal event happens
*
* @param $iType string Any of the CALLBACK_x constants
* @param $callback callable Call specification like a function name, or array('<class>', '<method>') or array($object, '<method>')
* @param $aParameters Array Values that will be passed to the callback, after $this
*/
public function RegisterCallback($iType, $callback, $aParameters = array())
{
$sCallBackName = '';
if (!is_callable($callback, false, $sCallBackName))
{
throw new Exception('Registering an unknown/protected function or wrong syntax for the call spec: '.$sCallBackName);
}
$this->m_aCallbacks[$iType][] = array(
'callback' => $callback,
'params' => $aParameters
);
}
}

View File

@@ -3801,7 +3801,7 @@ abstract class MetaModel
}
public static function DBCreate()
public static function DBCreate($aCallback = null)
{
// Note: we have to check if the DB does exist, because we may share the DB
// with other applications (in which case the DB does exist, not the tables with the given prefix)
@@ -3809,18 +3809,24 @@ abstract class MetaModel
{
CMDBSource::CreateDB(self::$m_sDBName);
}
self::DBCreateTables();
self::DBCreateTables($aCallback);
self::DBCreateViews();
}
protected static function DBCreateTables()
protected static function DBCreateTables($aCallback = null)
{
list($aErrors, $aSugFix, $aCondensedQueries) = self::DBCheckFormat();
//$sSQL = implode('; ', $aCondensedQueries); Does not work - multiple queries not allowed
foreach($aCondensedQueries as $sQuery)
{
$fStart = microtime(true);
CMDBSource::CreateTable($sQuery);
$fDuration = microtime(true) - $fStart;
if ($aCallback != null)
{
call_user_func($aCallback, $sQuery, $fDuration);
}
}
}

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2013 Combodo SARL
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
@@ -82,6 +82,25 @@ class ormStopWatch
return $this->iTimeSpent;
}
/**
* Get the working elapsed time since the start of the stop watch
* even if it is currently running
* @param oAttDef AttributeDefinition Attribute hosting the stop watch
*/
public function GetElapsedTime($oAttDef)
{
if (is_null($this->iLastStart))
{
return $this->GetTimeSpent();
}
else
{
$iElapsed = $this->ComputeDuration($this, $oAttDef, $this->iLastStart, time());
return $this->iTimeSpent + $iElapsed;
}
}
public function GetStartDate()
{
return $this->iStarted;
@@ -339,8 +358,9 @@ class ormStopWatch
// Currently stopped - do nothing
return false;
}
$iDurationGoal = $this->ComputeGoal($oObject, $oAttDef);
$iComputationRefTime = time();
foreach ($this->aThresholds as $iPercent => &$aThresholdData)
{
if (is_null($iDurationGoal))
@@ -351,9 +371,20 @@ class ormStopWatch
else
{
$iThresholdDuration = round($iPercent * $iDurationGoal / 100);
if (class_exists('WorkingTimeRecorder'))
{
$sClass = get_class($oObject);
$sAttCode = $oAttDef->GetCode();
WorkingTimeRecorder::Start($oObject, $iComputationRefTime, "ormStopWatch-Deadline-$iPercent-$sAttCode", 'Core:ExplainWTC:StopWatch-Deadline', array("Class:$sClass/Attribute:$sAttCode", $iPercent));
}
$aThresholdData['deadline'] = $this->ComputeDeadline($oObject, $oAttDef, $this->iLastStart, $iThresholdDuration - $this->iTimeSpent);
// OR $aThresholdData['deadline'] = $this->ComputeDeadline($oObject, $oAttDef, $this->iStarted, $iThresholdDuration);
if (class_exists('WorkingTimeRecorder'))
{
WorkingTimeRecorder::End();
}
}
if (is_null($aThresholdData['deadline']) || ($aThresholdData['deadline'] > time()))
{
@@ -383,8 +414,18 @@ class ormStopWatch
return false;
}
if (class_exists('WorkingTimeRecorder'))
{
$sClass = get_class($oObject);
$sAttCode = $oAttDef->GetCode();
WorkingTimeRecorder::Start($oObject, time(), "ormStopWatch-TimeSpent-$sAttCode", 'Core:ExplainWTC:StopWatch-TimeSpent', array("Class:$sClass/Attribute:$sAttCode"), true /*cumulative*/);
}
$iElapsed = $this->ComputeDuration($oObject, $oAttDef, $this->iLastStart, time());
$this->iTimeSpent = $this->iTimeSpent + $iElapsed;
if (class_exists('WorkingTimeRecorder'))
{
WorkingTimeRecorder::End();
}
foreach ($this->aThresholds as $iPercent => &$aThresholdData)
{
@@ -459,7 +500,7 @@ class CheckStopWatchThresholds implements iBackgroundProcess
{
if (is_string($def))
{
// Old method (pre-2.0.4) non typed parameters
// Old method (pre-2.1.0) non typed parameters
$aValues[] = $def;
}
else // if(is_array($def))

View File

@@ -347,6 +347,29 @@ abstract class User extends cmdbAbstractObject
}
}
}
public function CheckToDelete(&$oDeletionPlan)
{
if (MetaModel::GetConfig()->Get('demo_mode'))
{
// Users deletion is NOT allowed in demo mode
$oDeletionPlan->AddToDelete($this, null);
$oDeletionPlan->SetDeletionIssues($this, array('deletion not allowed in demo mode.'), true);
$oDeletionPlan->ComputeResults();
return false;
}
return parent::CheckToDelete($oDeletionPlan);
}
protected function DBDeleteSingleObject()
{
if (MetaModel::GetConfig()->Get('demo_mode'))
{
// Users deletion is NOT allowed in demo mode
return;
}
parent::DBDeleteSingleObject();
}
}
/**

View File

@@ -22,7 +22,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="item_class"/>
<attribute id="temp_id"/>

View File

@@ -17,7 +17,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ref"/>
</attributes>
@@ -1205,7 +1204,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ref"/>
</attributes>
@@ -2166,7 +2164,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ref"/>
</attributes>
@@ -3124,7 +3121,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ref"/>
</attributes>
@@ -4246,7 +4242,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ref"/>
</attributes>

View File

@@ -17,7 +17,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -116,7 +115,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -289,7 +287,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field>finalclass</db_final_class_field>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -487,7 +484,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="first_name"/>
<attribute id="name"/>
@@ -626,7 +622,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -745,7 +740,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="team_id"/>
</attributes>
@@ -865,7 +859,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field>finalclass</db_final_class_field>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1031,7 +1024,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1140,7 +1132,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1248,7 +1239,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1371,7 +1361,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1540,7 +1529,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s / %2$s</format>
<attributes>
<attribute id="ip"/>
<attribute id="ip_mask"/>
@@ -1700,7 +1688,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1821,7 +1808,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field>finalclass</db_final_class_field>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1887,7 +1873,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1952,7 +1937,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -2018,7 +2002,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="patch_id"/>
</attributes>
@@ -2110,7 +2093,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field>finalclass</db_final_class_field>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -2297,7 +2279,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s - %2$s</format>
<attributes>
<attribute id="name"/>
<attribute id="device_id_friendlyname"/>
@@ -2496,7 +2477,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s - %2$s</format>
<attributes>
<attribute id="name"/>
<attribute id="device_id_friendlyname"/>
@@ -2645,7 +2625,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s - %2$s</format>
<attributes>
<attribute id="name"/>
<attribute id="device_id_friendlyname"/>
@@ -2785,7 +2764,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s - %2$s</format>
<attributes>
<attribute id="name"/>
<attribute id="db_server_instance_id_friendlyname"/>
@@ -2945,7 +2923,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -3092,7 +3069,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -3222,7 +3198,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -3373,7 +3348,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s - %2$s</format>
<attributes>
<attribute id="device_id_friendlyname"/>
<attribute id="name"/>
@@ -3737,7 +3711,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -3905,7 +3878,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -4097,7 +4069,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -4220,7 +4191,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -4374,7 +4344,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -4562,7 +4531,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -4772,7 +4740,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -4993,7 +4960,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -5201,7 +5167,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -5345,7 +5310,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="group_id"/>
</attributes>
@@ -5452,7 +5416,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ci_id"/>
</attributes>
@@ -5565,7 +5528,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ci_id"/>
</attributes>
@@ -5682,7 +5644,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="solution_id"/>
</attributes>
@@ -5789,7 +5750,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="solution_id"/>
</attributes>

View File

@@ -17,7 +17,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ref"/>
</attributes>
@@ -1042,7 +1041,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ticket_id"/>
</attributes>

View File

@@ -14,7 +14,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -224,7 +223,6 @@
<db_key_field>link_id</db_key_field>
<db_final_class_field/>
<naming>
<format>lnkInfraError</format>
<attributes/>
</naming>
<display_template/>
@@ -326,7 +324,6 @@
<db_key_field>link_id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="link_type"/>
</attributes>

View File

@@ -17,7 +17,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ref"/>
</attributes>
@@ -539,7 +538,11 @@
3 => 3,
),
);
$iPriority = $aPriorities[(int)$this->Get('impact')][(int)$this->Get('urgency')];
$iPriority = 1;
if (isset($aPriorities[(int)$this->Get('impact')][(int)$this->Get('urgency')]))
{
$iPriority = $aPriorities[(int)$this->Get('impact')][(int)$this->Get('urgency')];
}
return $iPriority;
}]]></code>
</method>

View File

@@ -37,7 +37,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ref"/>
</attributes>

View File

@@ -17,7 +17,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field>finalclass</db_final_class_field>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -201,7 +200,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -376,7 +374,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -567,7 +564,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="customer_contract_id"/>
</attributes>
@@ -670,7 +666,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="contract_id"/>
</attributes>
@@ -777,7 +772,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="contract_id"/>
</attributes>
@@ -886,7 +880,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="contract_id"/>
</attributes>
@@ -996,7 +989,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="contract_id"/>
</attributes>
@@ -1091,7 +1083,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1271,7 +1262,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1372,7 +1362,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1455,7 +1444,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1588,7 +1576,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="sla_id"/>
</attributes>
@@ -1723,7 +1710,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="service_id"/>
</attributes>
@@ -1832,7 +1818,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="service_id"/>
</attributes>
@@ -1941,7 +1926,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="service_id"/>
</attributes>

View File

@@ -17,7 +17,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field>finalclass</db_final_class_field>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ref"/>
</attributes>
@@ -162,7 +161,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ref"/>
</attributes>
@@ -1157,7 +1155,11 @@
3 => 3,
),
);
$iPriority = $aPriorities[(int)$this->Get('impact')][(int)$this->Get('urgency')];
$iPriority = 1;
if (isset($aPriorities[(int)$this->Get('impact')][(int)$this->Get('urgency')]))
{
$iPriority = $aPriorities[(int)$this->Get('impact')][(int)$this->Get('urgency')];
}
return $iPriority;
}]]></code>
</method>
@@ -1484,7 +1486,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ticket_id"/>
</attributes>
@@ -1567,7 +1568,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ticket_id"/>
</attributes>
@@ -1677,7 +1677,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ticket_id"/>
</attributes>

View File

@@ -22,7 +22,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="item_class"/>
<attribute id="temp_id"/>

View File

@@ -23,7 +23,7 @@ SetupWebPage::AddModule(
array(
// Identification
//
'label' => 'Tickets attachments',
'label' => 'Tickets Attachments',
'category' => 'business',
// Setup

View File

@@ -0,0 +1,48 @@
<?php
// Copyright (C) 2010-2012 Combodo SARL
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* @author LinProfs <info@linprofs.com>
*
* Linux & Open Source Professionals
* http://www.linprofs.com
*
* @copyright Copyright (C) 2010-2012 Combodo SARL
* @licence http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Attachments:TabTitle_Count' => 'Bijlagen (%1$d)',
'Attachments:EmptyTabTitle' => 'Bijlagen',
'Attachments:FieldsetTitle' => 'Bijlagen',
'Attachments:DeleteBtn' => 'Verwijder',
'Attachments:History_File_Added' => 'Bijlage %1$s toegevoegd.',
'Attachments:History_File_Removed' => 'Bijlage %1$s verwijderd.',
'Attachments:AddAttachment' => 'Voeg bijlage toe: ',
'Attachments:UploadNotAllowedOnThisSystem' => 'Bestand upload is NIET toegestaan op dit systeem.',
'Attachment:Max_Go' => '(Maximum bestandsgrootte: %1$s Go)',
'Attachment:Max_Mo' => '(Maximum bestandsgrootte: %1$s Mo)',
'Attachment:Max_Ko' => '(Maximum bestandsgrootte: %1$s Ko)',
'Attachments:NoAttachment' => 'Geen bijlage. ',
'Attachments:PreviewNotAvailable' => 'Een voorbeeld is niet beschikbaar voor dit type bijlage.',
'Class:Attachment' => 'Bijlage',
'Class:Attachment+' => '',
));
?>

View File

@@ -12,7 +12,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="volume_id"/>
</attributes>

View File

@@ -17,7 +17,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ref"/>
</attributes>
@@ -902,6 +901,10 @@
</lifecycle>
<methods>
<method id="SetClosureDate">
<comment><![CDATA[/**
* To be deprecated: use SetCurrentDate() instead
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>StimulusUserAction</type>
@@ -912,6 +915,10 @@
}]]></code>
</method>
<method id="ResetRejectReason">
<comment><![CDATA[/**
* To be deprecated: use SetCurrentDate() instead
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
@@ -1204,7 +1211,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ref"/>
</attributes>
@@ -1679,7 +1685,10 @@
<target>closed</target>
<actions>
<action>
<verb>SetClosureDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">close_date</param>
</params>
</action>
</actions>
</transition>
@@ -1713,7 +1722,10 @@
<target>closed</target>
<actions>
<action>
<verb>SetClosureDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">close_date</param>
</params>
</action>
</actions>
</transition>
@@ -1989,7 +2001,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ref"/>
</attributes>
@@ -2984,7 +2995,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ref"/>
</attributes>
@@ -3099,7 +3109,10 @@
<target>validated</target>
<actions>
<action>
<verb>ResetRejectReason</verb>
<verb>Reset</verb>
<params>
<param xsi:type="attcode">reason</param>
</params>
</action>
</actions>
</transition>
@@ -3236,7 +3249,10 @@
<target>approved</target>
<actions>
<action>
<verb>ResetRejectReason</verb>
<verb>Reset</verb>
<params>
<param xsi:type="attcode">reason</param>
</params>
</action>
</actions>
</transition>
@@ -3336,7 +3352,10 @@
<target>closed</target>
<actions>
<action>
<verb>SetClosureDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">close_date</param>
</params>
</action>
</actions>
</transition>
@@ -3369,7 +3388,10 @@
<target>closed</target>
<actions>
<action>
<verb>SetClosureDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">close_date</param>
</params>
</action>
</actions>
</transition>
@@ -3662,7 +3684,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ref"/>
</attributes>
@@ -3985,7 +4006,10 @@
<target>approved</target>
<actions>
<action>
<verb>ResetRejectReason</verb>
<verb>Reset</verb>
<params>
<param xsi:type="attcode">reason</param>
</params>
</action>
</actions>
</transition>
@@ -4085,7 +4109,10 @@
<target>closed</target>
<actions>
<action>
<verb>SetClosureDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">close_date</param>
</params>
</action>
</actions>
</transition>
@@ -4119,7 +4146,10 @@
<target>closed</target>
<actions>
<action>
<verb>SetClosureDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">close_date</param>
</params>
</action>
</actions>
</transition>

View File

@@ -17,7 +17,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ref"/>
</attributes>
@@ -280,10 +279,16 @@
<target>approved</target>
<actions>
<action>
<verb>SetApprovalDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">approval_date</param>
</params>
</action>
<action>
<verb>ResetRejectReason</verb>
<verb>Reset</verb>
<params>
<param xsi:type="attcode">reject_reason</param>
</params>
</action>
</actions>
</transition>
@@ -408,7 +413,10 @@
<target>closed</target>
<actions>
<action>
<verb>SetClosureDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">close_date</param>
</params>
</action>
</actions>
</transition>
@@ -445,6 +453,10 @@
</lifecycle>
<methods>
<method id="SetApprovalDate">
<comment><![CDATA[/**
* To be deprecated: use SetCurrentDate() instead
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
@@ -455,6 +467,10 @@
}]]></code>
</method>
<method id="ResetRejectReason">
<comment><![CDATA[/**
* To be deprecated: use SetCurrentDate() instead
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
@@ -465,6 +481,10 @@
}]]></code>
</method>
<method id="SetClosureDate">
<comment><![CDATA[/**
* To be deprecated: use SetCurrentDate() instead
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>

View File

@@ -0,0 +1,146 @@
<?php
// Copyright (C) 2010-2012 Combodo SARL
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* @author LinProfs <info@linprofs.com>
*
* Linux & Open Source Professionals
* http://www.linprofs.com
*
* @copyright Copyright (C) 2010-2012 Combodo SARL
* @licence http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Menu:ChangeManagement' => 'Change management',
'Menu:Change:Overview' => 'Overzicht',
'Menu:Change:Overview+' => '',
'Menu:NewChange' => 'Nieuwe change',
'Menu:NewChange+' => 'Maak een nieuwe change ticket aan',
'Menu:SearchChanges' => 'Zoek voor changes',
'Menu:SearchChanges+' => 'Zoek voor change tickets',
'Menu:Change:Shortcuts' => 'Snelkoppelingen',
'Menu:Change:Shortcuts+' => '',
'Menu:WaitingAcceptance' => 'Changes die nog acceptatie vereisen',
'Menu:WaitingAcceptance+' => '',
'Menu:WaitingApproval' => 'Changes die nog goedkeuring vereisen',
'Menu:WaitingApproval+' => '',
'Menu:Changes' => 'Open changes',
'Menu:Changes+' => 'Alle open changes',
'Menu:MyChanges' => 'Changes toegewezen aan mij',
'Menu:MyChanges+' => 'Changes toegewezen door mij (als Agent)',
'UI-ChangeManagementOverview-ChangeByCategory-last-7-days' => 'Changes per categorie van de afgelopen 7 dagen',
'UI-ChangeManagementOverview-Last-7-days' => 'Aantal changes van de afgelopen 7 dagen',
'UI-ChangeManagementOverview-ChangeByDomain-last-7-days' => 'Changes per domein van de afgelopen 7 dagen',
'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Changes per status van de afgelopen 7 dagen',
));
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//
// Class: Change
//
Dict::Add('NL NL', "Dutch", "Nederlands", array(
'Class:Change' => 'Change',
'Class:Change+' => '',
'Class:Change/Attribute:status' => 'Status',
'Class:Change/Attribute:status+' => '',
'Class:Change/Attribute:status/Value:new' => 'Nieuw',
'Class:Change/Attribute:status/Value:new+' => '',
'Class:Change/Attribute:status/Value:assigned' => 'Toegewezen',
'Class:Change/Attribute:status/Value:assigned+' => '',
'Class:Change/Attribute:status/Value:planned' => 'Gepland',
'Class:Change/Attribute:status/Value:planned+' => '',
'Class:Change/Attribute:status/Value:rejected' => 'Rejected',
'Class:Change/Attribute:status/Value:rejected+' => '',
'Class:Change/Attribute:status/Value:approved' => 'Goedgekeurd',
'Class:Change/Attribute:status/Value:approved+' => '',
'Class:Change/Attribute:status/Value:closed' => 'Gesloten',
'Class:Change/Attribute:status/Value:closed+' => '',
'Class:Change/Attribute:category' => 'Categorie',
'Class:Change/Attribute:category+' => '',
'Class:Change/Attribute:category/Value:application' => 'applicatie',
'Class:Change/Attribute:category/Value:application+' => 'applicatie',
'Class:Change/Attribute:category/Value:hardware' => 'hardware',
'Class:Change/Attribute:category/Value:hardware+' => 'hardware',
'Class:Change/Attribute:category/Value:network' => 'netwerk',
'Class:Change/Attribute:category/Value:network+' => 'netwerk',
'Class:Change/Attribute:category/Value:other' => 'anders',
'Class:Change/Attribute:category/Value:other+' => 'anders',
'Class:Change/Attribute:category/Value:software' => 'software',
'Class:Change/Attribute:category/Value:software+' => 'software',
'Class:Change/Attribute:category/Value:system' => 'systeem',
'Class:Change/Attribute:category/Value:system+' => 'systeem',
'Class:Change/Attribute:reject_reason' => 'Reden van afwijzing',
'Class:Change/Attribute:reject_reason+' => '',
'Class:Change/Attribute:changemanager_id' => 'Change manager',
'Class:Change/Attribute:changemanager_id+' => '',
'Class:Change/Attribute:changemanager_email' => 'Change manager email',
'Class:Change/Attribute:changemanager_email+' => '',
'Class:Change/Attribute:parent_id' => 'Hoofd change',
'Class:Change/Attribute:parent_id+' => '',
'Class:Change/Attribute:parent_name' => 'Hoofd change ref',
'Class:Change/Attribute:parent_name+' => '',
'Class:Change/Attribute:creation_date' => 'Creatie datum',
'Class:Change/Attribute:creation_date+' => '',
'Class:Change/Attribute:approval_date' => 'Goedkeuring datum',
'Class:Change/Attribute:approval_date+' => '',
'Class:Change/Attribute:fallback_plan' => 'Backup plan',
'Class:Change/Attribute:fallback_plan+' => '',
'Class:Change/Attribute:related_request_list' => 'Gerelateerde verzoeken',
'Class:Change/Attribute:related_request_list+' => 'Alle gebruikersverzoeken gelinkt aan deze change',
'Class:Change/Attribute:related_incident_list' => 'Gerelateerde incidenten',
'Class:Change/Attribute:related_incident_list+' => 'Alle incidenten die gelinkt zijn aan deze change',
'Class:Change/Attribute:related_problems_list' => 'Gerelateerde problemen',
'Class:Change/Attribute:related_problems_list+' => 'Alle problemen gelinkt aan deze change',
'Class:Change/Attribute:child_changes_list' => 'Sub changes',
'Class:Change/Attribute:child_changes_list+' => 'Alle sub changes gelinkt aan deze change',
'Class:Change/Attribute:parent_id_friendlyname' => 'Hoofd change friendly name',
'Class:Change/Attribute:parent_id_friendlyname+' => '',
'Class:Change/Stimulus:ev_assign' => 'Wijs toe',
'Class:Change/Stimulus:ev_assign+' => '',
'Class:Change/Stimulus:ev_plan' => 'Plan',
'Class:Change/Stimulus:ev_plan+' => '',
'Class:Change/Stimulus:ev_reject' => 'Wijs af',
'Class:Change/Stimulus:ev_reject+' => '',
'Class:Change/Stimulus:ev_reopen' => 'Heropen',
'Class:Change/Stimulus:ev_reopen+' => '',
'Class:Change/Stimulus:ev_approve' => 'Keur goed',
'Class:Change/Stimulus:ev_approve+' => '',
'Class:Change/Stimulus:ev_finish' => 'Sluit',
'Class:Change/Stimulus:ev_finish+' => '',
'Class:Change/Attribute:outage' => 'Storing',
'Class:Change/Attribute:outage+' => '',
'Class:Change/Attribute:outage/Value:no' => 'Nee',
'Class:Change/Attribute:outage/Value:no+' => '',
'Class:Change/Attribute:outage/Value:yes' => 'Yes',
'Class:Change/Attribute:outage/Value:yes+' => '',
));
?>

View File

@@ -17,7 +17,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -121,7 +120,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -283,7 +281,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field>finalclass</db_final_class_field>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -442,7 +439,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="first_name"/>
<attribute id="name"/>
@@ -664,7 +660,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -786,7 +781,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field>finalclass</db_final_class_field>
<naming>
<format>Document</format>
<attributes/>
</naming>
<display_template/>
@@ -949,7 +943,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1073,7 +1066,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1178,7 +1170,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1281,7 +1272,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field>finalclass</db_final_class_field>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1495,7 +1485,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1718,7 +1707,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1913,7 +1901,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -2212,7 +2199,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -2504,7 +2490,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -2843,7 +2828,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -3000,7 +2984,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -3133,7 +3116,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="name"/>
<attribute id="system_name"/>
@@ -3328,7 +3310,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="name"/>
<attribute id="system_name"/>
@@ -3484,7 +3465,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="name"/>
<attribute id="system_name"/>
@@ -3640,7 +3620,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="name"/>
<attribute id="system_name"/>
@@ -3796,7 +3775,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="name"/>
<attribute id="system_name"/>
@@ -3913,7 +3891,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="name"/>
<attribute id="system_name"/>
@@ -4030,7 +4007,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -4170,7 +4146,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -4308,7 +4283,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -4455,7 +4429,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
<attribute id="version"/>
@@ -4601,7 +4574,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field>finalclass</db_final_class_field>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -4678,7 +4650,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -4767,7 +4738,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -4856,7 +4826,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field>finalclass</db_final_class_field>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -5020,7 +4989,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -5159,7 +5127,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -5291,7 +5258,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="licence_id"/>
<attribute id="document_id"/>
@@ -5372,7 +5338,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field>finalclass</db_final_class_field>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -5427,7 +5392,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -5495,7 +5459,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -5544,7 +5507,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -5593,7 +5555,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -5642,7 +5603,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -5703,7 +5663,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -5740,7 +5699,7 @@
<value id="Enclosure">Enclosure</value>
<value id="PC">PC</value>
<value id="Tablet">Tablet</value>
<value id="Telephone">Telephone</value>
<value id="Phone">Phone</value>
<value id="MobilePhone">MobilePhone</value>
<value id="Printer">Printer</value>
<value id="DiskArray">DiskArray</value>
@@ -5818,7 +5777,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -5879,7 +5837,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="brand_name"/>
<attribute id="name"/>
@@ -5949,7 +5906,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="patch_id"/>
<attribute id="document_id"/>
@@ -6031,7 +5987,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="softwarepatch_id"/>
<attribute id="softwareinstance_id"/>
@@ -6113,7 +6068,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="ospatch_id"/>
<attribute id="functionalci_id"/>
@@ -6195,7 +6149,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="software_id"/>
<attribute id="document_id"/>
@@ -6277,7 +6230,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="functionalci_id"/>
<attribute id="contact_id"/>
@@ -6359,7 +6311,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="functionalci_id"/>
<attribute id="document_id"/>
@@ -6440,7 +6391,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="ip"/>
<attribute id="ip_mask"/>
@@ -6627,7 +6577,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="vlan_tag"/>
</attributes>
@@ -6735,7 +6684,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="subnet_id"/>
<attribute id="vlan_id"/>
@@ -6823,7 +6771,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field>finalclass</db_final_class_field>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -6878,7 +6825,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -7008,7 +6954,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="name"/>
<attribute id="connectableci_name"/>
@@ -7128,7 +7073,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="physicalinterface_id"/>
<attribute id="vlan_id"/>
@@ -7218,7 +7162,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="networkdevice_id"/>
<attribute id="connectableci_id"/>
@@ -7476,7 +7419,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="applicationsolution_id"/>
<attribute id="functionalci_id"/>
@@ -7558,7 +7500,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="businessprocess_id"/>
<attribute id="applicationsolution_id"/>
@@ -7640,7 +7581,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="team_id"/>
<attribute id="person_id"/>
@@ -7740,7 +7680,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -7885,7 +7824,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="group_id"/>
</attributes>

View File

@@ -289,8 +289,8 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:Model/Attribute:type/Value:Tablet+' => '',
'Class:Model/Attribute:type/Value:TapeLibrary' => 'Tape-Library',
'Class:Model/Attribute:type/Value:TapeLibrary+' => '',
'Class:Model/Attribute:type/Value:Telephone' => 'Telefon',
'Class:Model/Attribute:type/Value:Telephone+' => '',
'Class:Model/Attribute:type/Value:Phone' => 'Telefon',
'Class:Model/Attribute:type/Value:Phone+' => '',
'Class:Model/Attribute:physicaldevices_list' => 'Phyische Geräte',
'Class:Model/Attribute:physicaldevices_list+' => '',
'Class:NetworkDeviceType' => 'Netzerkgerätetyp',

View File

@@ -1327,8 +1327,8 @@ Dict::Add('EN US', 'English', 'English', array(
'Class:Model/Attribute:type/Value:Tablet+' => 'Tablet',
'Class:Model/Attribute:type/Value:TapeLibrary' => 'Tape Library',
'Class:Model/Attribute:type/Value:TapeLibrary+' => 'Tape Library',
'Class:Model/Attribute:type/Value:Telephone' => 'Telephone',
'Class:Model/Attribute:type/Value:Telephone+' => 'Telephone',
'Class:Model/Attribute:type/Value:Phone' => 'Telephone',
'Class:Model/Attribute:type/Value:Phone+' => 'Telephone',
'Class:Model/Attribute:physicaldevices_list' => 'Physical devices',
'Class:Model/Attribute:physicaldevices_list+' => 'All the physical devices corresponding to this model',
));

View File

@@ -1331,8 +1331,8 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array(
'Class:Model/Attribute:type/Value:Tablet+' => 'Tableta',
'Class:Model/Attribute:type/Value:TapeLibrary' => 'Librería de Cinta',
'Class:Model/Attribute:type/Value:TapeLibrary+' => 'Librería de Cinta',
'Class:Model/Attribute:type/Value:Telephone' => 'Teléfono',
'Class:Model/Attribute:type/Value:Telephone+' => 'Teléfono',
'Class:Model/Attribute:type/Value:Phone' => 'Teléfono',
'Class:Model/Attribute:type/Value:Phone+' => 'Teléfono',
'Class:Model/Attribute:physicaldevices_list' => 'Dispositivo Físico',
'Class:Model/Attribute:physicaldevices_list+' => 'Dispositivo Físico',
));

View File

@@ -1269,8 +1269,8 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:Model/Attribute:type/Value:Tablet+' => 'Tablette',
'Class:Model/Attribute:type/Value:TapeLibrary' => 'Bandothèque',
'Class:Model/Attribute:type/Value:TapeLibrary+' => 'Bandothèque',
'Class:Model/Attribute:type/Value:Telephone' => 'Téléphone',
'Class:Model/Attribute:type/Value:Telephone+' => 'Téléphone',
'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+' => '',
));

View File

@@ -294,8 +294,8 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:Model/Attribute:type/Value:Tablet+' => 'タブレット',
'Class:Model/Attribute:type/Value:TapeLibrary' => 'テープライブラリ',
'Class:Model/Attribute:type/Value:TapeLibrary+' => 'テープライブラリ',
'Class:Model/Attribute:type/Value:Telephone' => '電話',
'Class:Model/Attribute:type/Value:Telephone+' => '電話',
'Class:Model/Attribute:type/Value:Phone' => '電話',
'Class:Model/Attribute:type/Value:Phone+' => '電話',
'Class:Model/Attribute:physicaldevices_list' => '物理デバイス',
'Class:Model/Attribute:physicaldevices_list+' => '',
'Class:NetworkDeviceType' => 'ネットワークデバイスタイプ',
@@ -1085,6 +1085,8 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Menu:Typology+' => 'トポロジー構成',
'Menu:Software' => 'ソフトウエアカタログ',
'Menu:Software+' => 'ソフトウエアカタログ',
'Menu:OSVersion' => 'OS バージョン',
'Menu:OSVersion+' => '',
'UI_WelcomeMenu_AllConfigItems' => 'サマリー',
'Menu:ConfigManagement:Typology' => '分類構成',
'Server:baseinfo' => '基本情報',

View File

@@ -89,6 +89,7 @@ if (!class_exists('ConfigMgmtInstaller'))
self::RenameEnumValueInDB('Software', 'type', 'Webserver', 'WebServer');
self::RenameEnumValueInDB('Model', 'type', 'SANswitch', 'SANSwitch');
self::RenameEnumValueInDB('Model', 'type', 'IpPhone', 'IPPhone');
self::RenameEnumValueInDB('Model', 'type', 'Telephone', 'Phone');
self::RenameClassInDB('DBserver', 'DBServer');
self::RenameClassInDB('OSfamily', 'OSFamily');
self::RenameClassInDB('OSversion', 'OSVersion');

File diff suppressed because it is too large Load Diff

View File

@@ -1322,8 +1322,8 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
'Class:Model/Attribute:type/Value:Tablet+' => 'Tablet',
'Class:Model/Attribute:type/Value:TapeLibrary' => 'Tape Library',
'Class:Model/Attribute:type/Value:TapeLibrary+' => 'Tape Library',
'Class:Model/Attribute:type/Value:Telephone' => 'Telefone',
'Class:Model/Attribute:type/Value:Telephone+' => 'Telefone',
'Class:Model/Attribute:type/Value:Phone' => 'Telefone',
'Class:Model/Attribute:type/Value:Phone+' => 'Telefone',
'Class:Model/Attribute:physicaldevices_list' => 'Dispositivo físico',
'Class:Model/Attribute:physicaldevices_list+' => 'Todos os dispositivos físicos correspondentes a esse modelo',
));

View File

@@ -1322,8 +1322,8 @@ Dict::Add('RU RU', 'Russian', 'Русский', array(
'Class:Model/Attribute:type/Value:Tablet+' => 'Планшет',
'Class:Model/Attribute:type/Value:TapeLibrary' => 'Ленточная библиотека',
'Class:Model/Attribute:type/Value:TapeLibrary+' => 'Ленточная библиотека',
'Class:Model/Attribute:type/Value:Telephone' => 'Телефон',
'Class:Model/Attribute:type/Value:Telephone+' => 'Телефон',
'Class:Model/Attribute:type/Value:Phone' => 'Телефон',
'Class:Model/Attribute:type/Value:Phone+' => 'Телефон',
'Class:Model/Attribute:physicaldevices_list' => 'Устройства',
'Class:Model/Attribute:physicaldevices_list+' => 'Устройства',
));

View File

@@ -11,7 +11,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -194,7 +193,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -399,7 +397,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -580,7 +577,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -744,7 +740,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>

View File

@@ -11,7 +11,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -164,7 +163,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -320,7 +318,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -499,7 +496,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -655,7 +651,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -808,7 +803,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1063,7 +1057,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1252,7 +1245,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>

View File

@@ -29,7 +29,7 @@ SetupWebPage::AddModule(
array(
// Identification
//
'label' => 'End User Devices management',
'label' => 'End-user Devices Management',
'category' => 'business',
// Setup

View File

@@ -29,7 +29,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ref"/>
</attributes>
@@ -82,6 +81,10 @@
<value id="3">3</value>
<value id="4">4</value>
</values>
<dependencies>
<attribute id="impact"/>
<attribute id="urgency"/>
</dependencies>
<sql>priority</sql>
<default_value>4</default_value>
<is_null_allowed>false</is_null_allowed>
@@ -485,7 +488,10 @@
<target>assigned</target>
<actions>
<action>
<verb>SetAssignedDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">assignment_date</param>
</params>
</action>
</actions>
</transition>
@@ -497,10 +503,22 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
<action>
<verb>resolveChilds</verb>
<verb>SetElapsedTime</verb>
<params>
<param xsi:type="attcode">time_spent</param>
<param xsi:type="attcode">start_date</param>
<param xsi:type="string">DefaultWorkingTimeComputer</param>
</params>
</action>
<action>
<verb>ResolveChildTickets</verb>
<params/>
</action>
</actions>
</transition>
@@ -560,7 +578,10 @@
<target>pending</target>
<actions>
<action>
<verb>SetLastPendingDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">last_pending_date</param>
</params>
</action>
</actions>
</transition>
@@ -568,10 +589,22 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
<action>
<verb>resolveChilds</verb>
<verb>SetElapsedTime</verb>
<params>
<param xsi:type="attcode">time_spent</param>
<param xsi:type="attcode">start_date</param>
<param xsi:type="string">DefaultWorkingTimeComputer</param>
</params>
</action>
<action>
<verb>ResolveChildTickets</verb>
<params/>
</action>
</actions>
</transition>
@@ -587,10 +620,22 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
<action>
<verb>resolveChilds</verb>
<verb>SetElapsedTime</verb>
<params>
<param xsi:type="attcode">time_spent</param>
<param xsi:type="attcode">start_date</param>
<param xsi:type="string">DefaultWorkingTimeComputer</param>
</params>
</action>
<action>
<verb>ResolveChildTickets</verb>
<params/>
</action>
</actions>
</transition>
@@ -607,7 +652,10 @@
<target>pending</target>
<actions>
<action>
<verb>SetLastPendingDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">last_pending_date</param>
</params>
</action>
</actions>
</transition>
@@ -615,10 +663,22 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
<action>
<verb>resolveChilds</verb>
<verb>SetElapsedTime</verb>
<params>
<param xsi:type="attcode">time_spent</param>
<param xsi:type="attcode">start_date</param>
<param xsi:type="string">DefaultWorkingTimeComputer</param>
</params>
</action>
<action>
<verb>ResolveChildTickets</verb>
<params/>
</action>
</actions>
</transition>
@@ -630,10 +690,22 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
<action>
<verb>resolveChilds</verb>
<verb>SetElapsedTime</verb>
<params>
<param xsi:type="attcode">time_spent</param>
<param xsi:type="attcode">start_date</param>
<param xsi:type="string">DefaultWorkingTimeComputer</param>
</params>
</action>
<action>
<verb>ResolveChildTickets</verb>
<params/>
</action>
</actions>
</transition>
@@ -669,10 +741,22 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
<action>
<verb>resolveChilds</verb>
<verb>SetElapsedTime</verb>
<params>
<param xsi:type="attcode">time_spent</param>
<param xsi:type="attcode">start_date</param>
<param xsi:type="string">DefaultWorkingTimeComputer</param>
</params>
</action>
<action>
<verb>ResolveChildTickets</verb>
<params/>
</action>
</actions>
</transition>
@@ -766,7 +850,10 @@
<target>closed</target>
<actions>
<action>
<verb>SetClosureDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">close_date</param>
</params>
</action>
</actions>
</transition>
@@ -779,10 +866,22 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
<action>
<verb>resolveChilds</verb>
<verb>SetElapsedTime</verb>
<params>
<param xsi:type="attcode">time_spent</param>
<param xsi:type="attcode">start_date</param>
<param xsi:type="string">DefaultWorkingTimeComputer</param>
</params>
</action>
<action>
<verb>ResolveChildTickets</verb>
<params/>
</action>
</actions>
</transition>
@@ -838,6 +937,10 @@
</lifecycle>
<methods>
<method id="SetAssignedDate">
<comment><![CDATA[/**
* To be deprecated: use SetCurrentDate() instead
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
@@ -848,6 +951,10 @@
}]]></code>
</method>
<method id="SetLastPendingDate">
<comment><![CDATA[/**
* To be deprecated: use SetCurrentDate() instead
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
@@ -858,6 +965,10 @@
}]]></code>
</method>
<method id="SetResolveDate">
<comment><![CDATA[/**
* To be deprecated: use SetCurrentDate() and SetElapsedTime() instead
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
@@ -870,6 +981,10 @@
}]]></code>
</method>
<method id="SetClosureDate">
<comment><![CDATA[/**
* To be deprecated: use SetCurrentDate() instead
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
@@ -925,7 +1040,11 @@
4 => 4,
),
);
$iPriority = $aPriorities[(int)$this->Get('impact')][(int)$this->Get('urgency')];
$iPriority = 1;
if (isset($aPriorities[(int)$this->Get('impact')][(int)$this->Get('urgency')]))
{
$iPriority = $aPriorities[(int)$this->Get('impact')][(int)$this->Get('urgency')];
}
return $iPriority;
}]]></code>
</method>
@@ -973,20 +1092,17 @@
}]]></code>
</method>
<method id="resolveChilds">
<comment><![CDATA[/**
* To be deprecated: use ResolveChildTickets() instead
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
<code><![CDATA[ public function resolveChilds($sStimulusCode)
{
$oMyChange = MetaModel::NewObject("CMDBChange");
$oMyChange->Set("date", time());
$sUserString = CMDBChange::GetCurrentUserName();
$oMyChange->Set("userinfo", $sUserString."(automatic resolution)");
$iChangeId = $oMyChange->DBInsert();
if (MetaModel::IsValidClass('UserRequest'))
{
$sOQL = "SELECT UserRequest WHERE parent_request_id=:ticket";
$sOQL = "SELECT UserRequest WHERE parent_incident_id=:ticket";
$oChildRequestSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL),
array(),
array(
@@ -1005,7 +1121,7 @@
$oRequest->set('resolution_code',$this->Get('resolution_code'));
$oRequest->set('solution','Automatically resolved by incident:[[Incident:'.$this->Get('ref').']]');
$oRequest->ApplyStimulus('ev_autoresolve');
$oRequest->DBUpdateTracked($oMyChange);
$oRequest->DBUpdate();
}
}
}
@@ -1029,13 +1145,70 @@
$oIncident->set('resolution_code',$this->Get('resolution_code'));
$oIncident->set('solution','Automatically resolved by incident:[[Incident:'.$this->Get('ref').']]');
$oIncident->ApplyStimulus('ev_autoresolve');
$oIncident->DBUpdateTracked($oMyChange);
$oIncident->DBUpdate();
}
}
return true;
}]]></code>
</method>
<method id="ResolveChildTickets">
<comment><![CDATA[/**
* Cascade the resolution to child User Request and Incidents
* @return true (returning false would stop the ongoing transition)
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
<arguments>
</arguments>
<code><![CDATA[ public function ResolveChildTickets()
{
if (MetaModel::IsValidClass('UserRequest'))
{
// Automatically resolve child requests
$sOQL = "SELECT UserRequest WHERE parent_incident_id = :ticket AND status != 'resolved'";
$oChildRequestSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL), array(), array('ticket' => $this->GetKey()));
while($oRequest = $oChildRequestSet->Fetch())
{
$oRequest->ResolveFrom($this);
}
}
// Automatically resolve child incidents
$sOQL = "SELECT Incident WHERE parent_incident_id = :ticket AND status != 'resolved'";
$oChildIncidentSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL), array(), array('ticket' => $this->GetKey()));
while($oIncident = $oChildIncidentSet->Fetch())
{
$oIncident->ResolveFrom($this);
}
return true;
}]]></code>
</method>
<method id="ResolveFrom">
<comment><![CDATA[/**
* Resolve the ticket from another resolved ticket
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>Internal</type>
<code><![CDATA[ public function ResolveFrom($oParentTicket)
{
if ($this->Get('status') != 'resolved')
{
$this->Set('servicesubcategory_id', $oParentTicket->Get('servicesubcategory_id'));
$this->Set('service_id', $oParentTicket->Get('service_id'));
$this->Set('team_id', $oParentTicket->Get('team_id'));
$this->Set('agent_id', $oParentTicket->Get('agent_id'));
$this->Set('resolution_code', $oParentTicket->Get('resolution_code'));
$sParent = '[['.get_class($oParentTicket).':'.$oParentTicket->Get('ref').']]';
$this->Set('solution', Dict::Format('Tickets:ResolvedFrom', $sParent, MetaModel::GetName(get_class($oParentTicket))));
$this->ApplyStimulus('ev_autoresolve');
$this->DBUpdate();
}
}]]></code>
</method>
<method id="UpdateChildRequestLog">
<static>false</static>
<access>public</access>

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2012 Combodo SARL
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
@@ -198,6 +198,8 @@ Dict::Add('EN US', 'English', 'English', array(
'Class:Incident/Attribute:parent_change_id+' => '',
'Class:Incident/Attribute:parent_change_ref' => 'Parent change ref',
'Class:Incident/Attribute:parent_change_ref+' => '',
'Class:Incident/Attribute:related_request_list' => 'Child requests',
'Class:Incident/Attribute:related_request_list+' => '',
'Class:Incident/Attribute:child_incidents_list' => 'Child incidents',
'Class:Incident/Attribute:child_incidents_list+' => 'All the child incidents related to this incident',
'Class:Incident/Attribute:public_log' => 'Public log',
@@ -235,7 +237,7 @@ Dict::Add('EN US', 'English', 'English', array(
'Class:Incident/Stimulus:ev_reopen' => 'Re-open',
'Class:Incident/Stimulus:ev_reopen+' => '',
'Class:Incident/Error:CannotAssignParentIncidentIdToSelf' => 'Cannot assign the Parent incident to the incident itself',
'Class:Incident/Method:ResolveChildTickets' => 'ResolveChildTickets',
'Class:Incident/Method:ResolveChildTickets+' => 'Cascade the resolution to child ticket (ev_autoresolve), and align the following characteristics: service, team, agent, resolution info',
));
?>

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2012 Combodo SARL
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
@@ -218,5 +218,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'UI-IncidentManagementOverview-OpenIncidentByStatus' => 'Incidents ouverts par statut',
'UI-IncidentManagementOverview-OpenIncidentByAgent' => 'Incidents ouverts par agent',
'UI-IncidentManagementOverview-OpenIncidentByCustomer' => 'Incidents ouverts par client',
'Class:Incident/Method:ResolveChildTickets' => 'ResolveChildTickets (résoudre les tickets fils)',
'Class:Incident/Method:ResolveChildTickets+' => 'Cascader l\'action de résolution du ticket (ev_autoresolve) vers les requêtes et incidents fils, et aligner les caractéristiques suivantes : service, équipe, agent, information de résolution',
));
?>

View File

@@ -7,7 +7,7 @@ SetupWebPage::AddModule(
array(
// Identification
//
'label' => 'Incident Management ITIL V3',
'label' => 'Incident Management ITIL',
'category' => 'business',
// Setup

View File

@@ -14,7 +14,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -225,7 +224,6 @@
<db_key_field>link_id</db_key_field>
<db_final_class_field/>
<naming>
<format>lnkErrorToFunctionalCI</format>
<attributes/>
</naming>
<display_template/>
@@ -318,7 +316,6 @@
<db_key_field>link_id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="link_type"/>
</attributes>
@@ -399,7 +396,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="title"/>
</attributes>
@@ -517,7 +513,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>

View File

@@ -0,0 +1,193 @@
<?php
// Copyright (C) 2010-2012 Combodo SARL
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* @author LinProfs <info@linprofs.com>
*
* Linux & Open Source Professionals
* http://www.linprofs.com
*
* @copyright Copyright (C) 2010-2012 Combodo SARL
* @licence http://opensource.org/licenses/AGPL-3.0
*/
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//////////////////////////////////////////////////////////////////////
// Classes in 'bizmodel'
//////////////////////////////////////////////////////////////////////
//
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//
// Class: KnownError
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:KnownError' => 'Bekende Fout',
'Class:KnownError+' => 'Error documented for a known issue',
'Class:KnownError/Attribute:name' => 'Naam',
'Class:KnownError/Attribute:name+' => '',
'Class:KnownError/Attribute:org_id' => 'Klant',
'Class:KnownError/Attribute:org_id+' => '',
'Class:KnownError/Attribute:cust_name' => 'Klant Naam',
'Class:KnownError/Attribute:cust_name+' => '',
'Class:KnownError/Attribute:problem_id' => 'Gerelateerde Probleem',
'Class:KnownError/Attribute:problem_id+' => '',
'Class:KnownError/Attribute:problem_ref' => 'Gerelateerde Probleem Ref',
'Class:KnownError/Attribute:problem_ref+' => '',
'Class:KnownError/Attribute:symptom' => 'Symptoon',
'Class:KnownError/Attribute:symptom+' => '',
'Class:KnownError/Attribute:root_cause' => 'Hoofd Oorzaak',
'Class:KnownError/Attribute:root_cause+' => '',
'Class:KnownError/Attribute:workaround' => 'Work around',
'Class:KnownError/Attribute:workaround+' => '',
'Class:KnownError/Attribute:solution' => 'Oplossing',
'Class:KnownError/Attribute:solution+' => '',
'Class:KnownError/Attribute:error_code' => 'Fout Code',
'Class:KnownError/Attribute:error_code+' => '',
'Class:KnownError/Attribute:domain' => 'Domein',
'Class:KnownError/Attribute:domain+' => '',
'Class:KnownError/Attribute:domain/Value:Application' => 'Applicatie',
'Class:KnownError/Attribute:domain/Value:Application+' => 'Applicatie',
'Class:KnownError/Attribute:domain/Value:Desktop' => 'Desktop',
'Class:KnownError/Attribute:domain/Value:Desktop+' => 'Desktop',
'Class:KnownError/Attribute:domain/Value:Network' => 'Netwerk',
'Class:KnownError/Attribute:domain/Value:Network+' => 'Netwerk',
'Class:KnownError/Attribute:domain/Value:Server' => 'Server',
'Class:KnownError/Attribute:domain/Value:Server+' => 'Server',
'Class:KnownError/Attribute:vendor' => 'Verkoper',
'Class:KnownError/Attribute:vendor+' => '',
'Class:KnownError/Attribute:model' => 'Model',
'Class:KnownError/Attribute:model+' => '',
'Class:KnownError/Attribute:version' => 'Versie',
'Class:KnownError/Attribute:version+' => '',
'Class:KnownError/Attribute:ci_list' => 'CIs',
'Class:KnownError/Attribute:ci_list+' => 'Alle configuratie items die gerelateerd zijn aan deze bekende fout',
'Class:KnownError/Attribute:document_list' => 'Documenten',
'Class:KnownError/Attribute:document_list+' => 'Alle documenten die gelinkt zijn aan deze bekende fout',
));
//
// Class: lnkErrorToFunctionalCI
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkErrorToFunctionalCI' => 'Link Error / FunctionalCI',
'Class:lnkErrorToFunctionalCI+' => 'Infra gerelateerd aan een bekende fout',
'Class:lnkErrorToFunctionalCI/Attribute:functionalci_id' => 'CI',
'Class:lnkErrorToFunctionalCI/Attribute:functionalci_id+' => '',
'Class:lnkErrorToFunctionalCI/Attribute:functionalci_name' => 'CI naam',
'Class:lnkErrorToFunctionalCI/Attribute:functionalci_name+' => '',
'Class:lnkErrorToFunctionalCI/Attribute:error_id' => 'Fout',
'Class:lnkErrorToFunctionalCI/Attribute:error_id+' => '',
'Class:lnkErrorToFunctionalCI/Attribute:error_name' => 'Fout naam',
'Class:lnkErrorToFunctionalCI/Attribute:error_name+' => '',
'Class:lnkErrorToFunctionalCI/Attribute:reason' => 'Reden',
'Class:lnkErrorToFunctionalCI/Attribute:reason+' => '',
));
//
// Class: lnkDocumentToError
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkDocumentToError' => 'Link Documenten / Fouten',
'Class:lnkDocumentToError+' => 'Een link tussen een document en een bekende fout',
'Class:lnkDocumentToError/Attribute:document_id' => 'Document',
'Class:lnkDocumentToError/Attribute:document_id+' => '',
'Class:lnkDocumentToError/Attribute:document_name' => 'Document Naam',
'Class:lnkDocumentToError/Attribute:document_name+' => '',
'Class:lnkDocumentToError/Attribute:error_id' => 'Fout',
'Class:lnkDocumentToError/Attribute:error_id+' => '',
'Class:lnkDocumentToError/Attribute:error_name' => 'Fout naam',
'Class:lnkDocumentToError/Attribute:error_name+' => '',
'Class:lnkDocumentToError/Attribute:link_type' => 'link_type',
'Class:lnkDocumentToError/Attribute:link_type+' => '',
));
//
// Class: FAQ
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:FAQ' => 'FAQ',
'Class:FAQ+' => 'Frequently asked questions',
'Class:FAQ/Attribute:title' => 'Titel',
'Class:FAQ/Attribute:title+' => '',
'Class:FAQ/Attribute:summary' => 'Samenvatting',
'Class:FAQ/Attribute:summary+' => '',
'Class:FAQ/Attribute:description' => 'Omschrijving',
'Class:FAQ/Attribute:description+' => '',
'Class:FAQ/Attribute:category_id' => 'Categorie',
'Class:FAQ/Attribute:category_id+' => '',
'Class:FAQ/Attribute:category_name' => 'Categorie naam',
'Class:FAQ/Attribute:category_name+' => '',
'Class:FAQ/Attribute:error_code' => 'Fout code',
'Class:FAQ/Attribute:error_code+' => '',
'Class:FAQ/Attribute:key_words' => 'Zoek termen',
'Class:FAQ/Attribute:key_words+' => '',
));
//
// Class: FAQCategory
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:FAQCategory' => 'FAQ Categorie',
'Class:FAQCategory+' => 'Categoryie voor de FAQ',
'Class:FAQCategory/Attribute:name' => 'Naam',
'Class:FAQCategory/Attribute:name+' => '',
'Class:FAQCategory/Attribute:faq_list' => 'FAQs',
'Class:FAQCategory/Attribute:faq_list+' => 'Alle frequently asked questions gerelateerd aan deze categorie',
));
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Menu:ProblemManagement' => 'Probleem Management',
'Menu:ProblemManagement+' => 'Probleem Management',
'Menu:Problem:Shortcuts' => 'Snelkoppelingen',
'Menu:NewError' => 'Nieuwe bekende fout',
'Menu:NewError+' => 'Creatie van een nieuwe bekende fout',
'Menu:SearchError' => 'Zoek naar bekende fouten',
'Menu:SearchError+' => 'Zoek naar bekende fouten',
'Menu:Problem:KnownErrors' => 'Alle bekende fouten',
'Menu:Problem:KnownErrors+' => 'Alle bekende fouten',
'Menu:FAQCategory' => 'FAQ categorieen',
'Menu:FAQCategory+' => 'Alle FAQ categorieen',
'Menu:FAQ' => 'FAQs',
'Menu:FAQ+' => 'Alle FAQs',
));
?>

View File

@@ -17,7 +17,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ref"/>
</attributes>
@@ -153,6 +152,13 @@
<count_min>0</count_min>
<count_max>0</count_max>
</field>
<field id="related_incident_list" xsi:type="AttributeLinkedSet">
<linked_class>Incident</linked_class>
<ext_key_to_me>parent_problem_id</ext_key_to_me>
<edit_mode>add_remove</edit_mode>
<count_min>0</count_min>
<count_max>0</count_max>
</field>
</fields>
<lifecycle>
<attribute>status</attribute>
@@ -259,7 +265,10 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
</actions>
</transition>
@@ -311,7 +320,10 @@
<target>closed</target>
<actions>
<action>
<verb>SetClosureDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">close_date</param>
</params>
</action>
</actions>
</transition>
@@ -345,6 +357,10 @@
</lifecycle>
<methods>
<method id="SetAssignedDate">
<comment><![CDATA[/**
* To be deprecated: use SetCurrentDate() instead
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
@@ -355,6 +371,10 @@
}]]></code>
</method>
<method id="SetResolveDate">
<comment><![CDATA[/**
* To be deprecated: use SetCurrentDate() instead
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
@@ -365,6 +385,10 @@
}]]></code>
</method>
<method id="SetClosureDate">
<comment><![CDATA[/**
* To be deprecated: use SetCurrentDate() instead
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
@@ -407,7 +431,11 @@
4 => 4,
),
);
$iPriority = $aPriorities[(int)$this->Get('impact')][(int)$this->Get('urgency')];
$iPriority = 1;
if (isset($aPriorities[(int)$this->Get('impact')][(int)$this->Get('urgency')]))
{
$iPriority = $aPriorities[(int)$this->Get('impact')][(int)$this->Get('urgency')];
}
return $iPriority;
}]]></code>
</method>
@@ -459,6 +487,9 @@
<item id="related_request_list">
<rank>50</rank>
</item>
<item id="related_incident_list">
<rank>50</rank>
</item>
<item id="col:col1">
<rank>60</rank>
<items>

View File

@@ -143,6 +143,8 @@ Dict::Add('EN US', 'English', 'English', array(
'Class:Problem/Attribute:knownerrors_list+' => 'All the known errors that are linked to this problem',
'Class:Problem/Attribute:related_request_list' => 'Related requests',
'Class:Problem/Attribute:related_request_list+' => 'All the requests that are related to this problem',
'Class:Problem/Attribute:related_incident_list' => 'Related incidents',
'Class:Problem/Attribute:related_incident_list+' => 'All the incidents that are related to this problem',
'Class:Problem/Stimulus:ev_assign' => 'Assign',
'Class:Problem/Stimulus:ev_assign+' => '',
'Class:Problem/Stimulus:ev_reassign' => 'Reassign',

View File

@@ -88,6 +88,8 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:Problem/Attribute:knownerrors_list+' => '',
'Class:Problem/Attribute:related_request_list' => 'Requêtes liées',
'Class:Problem/Attribute:related_request_list+' => '',
'Class:Problem/Attribute:related_incident_list' => 'Incidents liés',
'Class:Problem/Attribute:related_incident_list+' => '',
'Class:Problem/Stimulus:ev_assign' => 'Assigner',
'Class:Problem/Stimulus:ev_assign+' => '',
'Class:Problem/Stimulus:ev_reassign' => 'Réaassigner',

View File

@@ -0,0 +1,168 @@
<?php
// Copyright (C) 2010-2012 Combodo SARL
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* @author LinProfs <info@linprofs.com>
*
* Linux & Open Source Professionals
* http://www.linprofs.com
*
* @copyright Copyright (C) 2010-2012 Combodo SARL
* @licence http://opensource.org/licenses/AGPL-3.0
*/
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//////////////////////////////////////////////////////////////////////
// Classes in 'bizmodel'
//////////////////////////////////////////////////////////////////////
//
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Menu:ProblemManagement' => 'Probleem Management',
'Menu:ProblemManagement+' => 'Probleem Management',
'Menu:Problem:Shortcuts' => 'Snelkoppelingen',
'Menu:NewError' => 'Nieuwe bekende fout',
'Menu:NewError+' => 'Creatie van een nieuwe bekende fout',
'Menu:SearchError' => 'Zoek naar bekende fouten',
'Menu:SearchError+' => 'Zoek naar bekende fouten',
'Menu:Problem:KnownErrors' => 'Alle bekende fouten',
'Menu:Problem:KnownErrors+' => 'Alle bekende fouten',
'Menu:FAQCategory' => 'FAQ categorieen',
'Menu:FAQCategory+' => 'Alle FAQ categorieen',
'Menu:FAQ' => 'FAQs',
'Menu:FAQ+' => 'Alle FAQs',
'Menu:Problem:Overview' => 'Overzicht',
'Menu:Problem:Overview+' => 'Overzicht',
'Menu:NewProblem' => 'Nieuw probleem',
'Menu:NewProblem+' => 'Nieuw probleem',
'Menu:SearchProblems' => 'Zoek naar problemen',
'Menu:SearchProblems+' => 'Zoek naar problemen',
'Menu:Problem:MyProblems' => 'Mijn problemen',
'Menu:Problem:MyProblems+' => 'Mijn problemen',
'Menu:Problem:OpenProblems' => 'Alle open problemen',
'Menu:Problem:OpenProblems+' => 'Alle open problemen',
'UI-ProblemManagementOverview-ProblemByService' => 'Problemen per dienst',
'UI-ProblemManagementOverview-ProblemByService+' => 'Problemen per dienst',
'UI-ProblemManagementOverview-ProblemByPriority' => 'Problemen per prioriteit',
'UI-ProblemManagementOverview-ProblemByPriority+' => 'Problemen per prioriteit',
'UI-ProblemManagementOverview-ProblemUnassigned' => 'Niet toegewezen problemen',
'UI-ProblemManagementOverview-ProblemUnassigned+' => 'Niet toegewezen problemen',
'UI:ProblemMgmtMenuOverview:Title' => 'Dashboard voor Probleem Management',
'UI:ProblemMgmtMenuOverview:Title+' => 'Dashboard voor Probleem Management',
));
//
// Class: Problem
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:Problem' => 'Probleem',
'Class:Problem+' => '',
'Class:Problem/Attribute:status' => 'Status',
'Class:Problem/Attribute:status+' => '',
'Class:Problem/Attribute:status/Value:new' => 'Nieuw',
'Class:Problem/Attribute:status/Value:new+' => '',
'Class:Problem/Attribute:status/Value:assigned' => 'Toegewezen',
'Class:Problem/Attribute:status/Value:assigned+' => '',
'Class:Problem/Attribute:status/Value:resolved' => 'Opgelost',
'Class:Problem/Attribute:status/Value:resolved+' => '',
'Class:Problem/Attribute:status/Value:closed' => 'Gesloten',
'Class:Problem/Attribute:status/Value:closed+' => '',
'Class:Problem/Attribute:service_id' => 'Dienst',
'Class:Problem/Attribute:service_id+' => '',
'Class:Problem/Attribute:service_name' => 'Dienst naam',
'Class:Problem/Attribute:service_name+' => '',
'Class:Problem/Attribute:servicesubcategory_id' => 'Dienst subcategorie',
'Class:Problem/Attribute:servicesubcategory_id+' => '',
'Class:Problem/Attribute:servicesubcategory_name' => 'Dienst subcategorie',
'Class:Problem/Attribute:servicesubcategory_name+' => '',
'Class:Problem/Attribute:product' => 'Product',
'Class:Problem/Attribute:product+' => '',
'Class:Problem/Attribute:impact' => 'Impact',
'Class:Problem/Attribute:impact+' => '',
'Class:Problem/Attribute:impact/Value:1' => 'Een afdeling',
'Class:Problem/Attribute:impact/Value:1+' => '',
'Class:Problem/Attribute:impact/Value:2' => 'Een dienst',
'Class:Problem/Attribute:impact/Value:2+' => '',
'Class:Problem/Attribute:impact/Value:3' => 'Een persoon',
'Class:Problem/Attribute:impact/Value:3+' => '',
'Class:Problem/Attribute:urgency' => 'Urgentie',
'Class:Problem/Attribute:urgency+' => '',
'Class:Problem/Attribute:urgency/Value:1' => 'kritiek',
'Class:Problem/Attribute:urgency/Value:1+' => 'kritiek',
'Class:Problem/Attribute:urgency/Value:2' => 'hoog',
'Class:Problem/Attribute:urgency/Value:2+' => 'hoog',
'Class:Problem/Attribute:urgency/Value:3' => 'normaal',
'Class:Problem/Attribute:urgency/Value:3+' => 'normaal',
'Class:Problem/Attribute:urgency/Value:4' => 'laag',
'Class:Problem/Attribute:urgency/Value:4+' => 'laag',
'Class:Problem/Attribute:priority' => 'Prioriteit',
'Class:Problem/Attribute:priority+' => '',
'Class:Problem/Attribute:priority/Value:1' => 'Kritisch',
'Class:Problem/Attribute:priority/Value:1+' => 'Kritisch',
'Class:Problem/Attribute:priority/Value:2' => 'Hoog',
'Class:Problem/Attribute:priority/Value:2+' => 'Hoog',
'Class:Problem/Attribute:priority/Value:3' => 'Normaal',
'Class:Problem/Attribute:priority/Value:3+' => 'Normaal',
'Class:Problem/Attribute:priority/Value:4' => 'Laag',
'Class:Problem/Attribute:priority/Value:4+' => 'Laag',
'Class:Problem/Attribute:related_change_id' => 'Gerelateerde Change',
'Class:Problem/Attribute:related_change_id+' => '',
'Class:Problem/Attribute:related_change_ref' => 'Gerelateerde Change ref',
'Class:Problem/Attribute:related_change_ref+' => '',
'Class:Problem/Attribute:assignment_date' => 'Toegewezen Datum',
'Class:Problem/Attribute:assignment_date+' => '',
'Class:Problem/Attribute:resolution_date' => 'Resolutie Datum',
'Class:Problem/Attribute:resolution_date+' => '',
'Class:Problem/Attribute:knownerrors_list' => 'Bekende fouten',
'Class:Problem/Attribute:knownerrors_list+' => 'Alle bekende fouten die gelinkt zijn aan dit probleem',
'Class:Problem/Attribute:related_request_list' => 'Gerelateerde verzoeken',
'Class:Problem/Attribute:related_request_list+' => 'Alle verzoeken die gerelateerd zijn aan dit probleem',
'Class:Problem/Stimulus:ev_assign' => 'Wijs toe',
'Class:Problem/Stimulus:ev_assign+' => '',
'Class:Problem/Stimulus:ev_reassign' => 'Wijs opnieuw toe',
'Class:Problem/Stimulus:ev_reassign+' => '',
'Class:Problem/Stimulus:ev_resolve' => 'Los het op',
'Class:Problem/Stimulus:ev_resolve+' => '',
'Class:Problem/Stimulus:ev_close' => 'Sluit',
'Class:Problem/Stimulus:ev_close+' => '',
));
?>

View File

@@ -29,7 +29,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ref"/>
</attributes>
@@ -93,6 +92,10 @@
<value id="3">3</value>
<value id="4">4</value>
</values>
<dependencies>
<attribute id="impact"/>
<attribute id="urgency"/>
</dependencies>
<sql>priority</sql>
<default_value>4</default_value>
<is_null_allowed>false</is_null_allowed>
@@ -213,10 +216,18 @@
<goal>ResponseTicketTTO</goal>
<thresholds>
<threshold id="75">
<highlight>
<code>warning</code>
<persistent>false</persistent>
</highlight>
<actions>
</actions>
</threshold>
<threshold id="100">
<highlight>
<code>critical</code>
<persistent>false</persistent>
</highlight>
<actions>
<action>
<verb>ApplyStimulus</verb>
@@ -241,10 +252,18 @@
<goal>ResponseTicketTTR</goal>
<thresholds>
<threshold id="75">
<highlight>
<code>warning</code>
<persistent>false</persistent>
</highlight>
<actions>
</actions>
</threshold>
<threshold id="100">
<highlight>
<code>critical</code>
<persistent>false</persistent>
</highlight>
<actions>
<action>
<verb>ApplyStimulus</verb>
@@ -509,7 +528,10 @@
<target>assigned</target>
<actions>
<action>
<verb>SetAssignedDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">assignment_date</param>
</params>
</action>
</actions>
</transition>
@@ -525,10 +547,22 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
<action>
<verb>resolveChilds</verb>
<verb>SetElapsedTime</verb>
<params>
<param xsi:type="attcode">time_spent</param>
<param xsi:type="attcode">start_date</param>
<param xsi:type="string">DefaultWorkingTimeComputer</param>
</params>
</action>
<action>
<verb>ResolveChildTickets</verb>
<params/>
</action>
</actions>
</transition>
@@ -547,7 +581,10 @@
<target>assigned</target>
<actions>
<action>
<verb>SetAssignedDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">assignment_date</param>
</params>
</action>
</actions>
</transition>
@@ -591,7 +628,10 @@
<target>pending</target>
<actions>
<action>
<verb>SetLastPendingDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">last_pending_date</param>
</params>
</action>
</actions>
</transition>
@@ -599,10 +639,22 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
<action>
<verb>resolveChilds</verb>
<verb>SetElapsedTime</verb>
<params>
<param xsi:type="attcode">time_spent</param>
<param xsi:type="attcode">start_date</param>
<param xsi:type="string">DefaultWorkingTimeComputer</param>
</params>
</action>
<action>
<verb>ResolveChildTickets</verb>
<params/>
</action>
</actions>
</transition>
@@ -618,10 +670,22 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
<action>
<verb>resolveChilds</verb>
<verb>SetElapsedTime</verb>
<params>
<param xsi:type="attcode">time_spent</param>
<param xsi:type="attcode">start_date</param>
<param xsi:type="string">DefaultWorkingTimeComputer</param>
</params>
</action>
<action>
<verb>ResolveChildTickets</verb>
<params/>
</action>
</actions>
</transition>
@@ -638,7 +702,10 @@
<target>pending</target>
<actions>
<action>
<verb>SetLastPendingDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">last_pending_date</param>
</params>
</action>
</actions>
</transition>
@@ -646,10 +713,22 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
<action>
<verb>resolveChilds</verb>
<verb>SetElapsedTime</verb>
<params>
<param xsi:type="attcode">time_spent</param>
<param xsi:type="attcode">start_date</param>
<param xsi:type="string">DefaultWorkingTimeComputer</param>
</params>
</action>
<action>
<verb>ResolveChildTickets</verb>
<params/>
</action>
</actions>
</transition>
@@ -661,10 +740,22 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
<action>
<verb>resolveChilds</verb>
<verb>SetElapsedTime</verb>
<params>
<param xsi:type="attcode">time_spent</param>
<param xsi:type="attcode">start_date</param>
<param xsi:type="string">DefaultWorkingTimeComputer</param>
</params>
</action>
<action>
<verb>ResolveChildTickets</verb>
<params/>
</action>
</actions>
</transition>
@@ -705,7 +796,10 @@
<target>assigned</target>
<actions>
<action>
<verb>SetAssignedDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">assignment_date</param>
</params>
</action>
</actions>
</transition>
@@ -713,10 +807,22 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
<action>
<verb>resolveChilds</verb>
<verb>SetElapsedTime</verb>
<params>
<param xsi:type="attcode">time_spent</param>
<param xsi:type="attcode">start_date</param>
<param xsi:type="string">DefaultWorkingTimeComputer</param>
</params>
</action>
<action>
<verb>ResolveChildTickets</verb>
<params/>
</action>
</actions>
</transition>
@@ -761,10 +867,22 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
<action>
<verb>resolveChilds</verb>
<verb>SetElapsedTime</verb>
<params>
<param xsi:type="attcode">time_spent</param>
<param xsi:type="attcode">start_date</param>
<param xsi:type="string">DefaultWorkingTimeComputer</param>
</params>
</action>
<action>
<verb>ResolveChildTickets</verb>
<params/>
</action>
</actions>
</transition>
@@ -857,7 +975,10 @@
<target>closed</target>
<actions>
<action>
<verb>SetClosureDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">close_date</param>
</params>
</action>
</actions>
</transition>
@@ -870,10 +991,22 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
<action>
<verb>resolveChilds</verb>
<verb>SetElapsedTime</verb>
<params>
<param xsi:type="attcode">time_spent</param>
<param xsi:type="attcode">start_date</param>
<param xsi:type="string">DefaultWorkingTimeComputer</param>
</params>
</action>
<action>
<verb>ResolveChildTickets</verb>
<params/>
</action>
</actions>
</transition>
@@ -929,6 +1062,10 @@
</lifecycle>
<methods>
<method id="SetAssignedDate">
<comment><![CDATA[/**
* To be deprecated: use SetCurrentDate() instead
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
@@ -939,6 +1076,10 @@
}]]></code>
</method>
<method id="SetLastPendingDate">
<comment><![CDATA[/**
* To be deprecated: use SetCurrentDate() instead
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
@@ -949,6 +1090,10 @@
}]]></code>
</method>
<method id="SetResolveDate">
<comment><![CDATA[/**
* To be deprecated: use SetCurrentDate() and SetElapsedTime() instead
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
@@ -961,6 +1106,10 @@
}]]></code>
</method>
<method id="SetClosureDate">
<comment><![CDATA[/**
* To be deprecated: use SetCurrentDate() instead
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
@@ -971,6 +1120,10 @@
}]]></code>
</method>
<method id="SetApprover">
<comment><![CDATA[/**
* To be deprecated: use SetCurrentUser() instead
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
@@ -1026,7 +1179,11 @@
4 => 4,
),
);
$iPriority = $aPriorities[(int)$this->Get('impact')][(int)$this->Get('urgency')];
$iPriority = 1;
if (isset($aPriorities[(int)$this->Get('impact')][(int)$this->Get('urgency')]))
{
$iPriority = $aPriorities[(int)$this->Get('impact')][(int)$this->Get('urgency')];
}
return $iPriority;
}]]></code>
</method>
@@ -1075,6 +1232,9 @@
}]]></code>
</method>
<method id="resolveChilds">
<comment><![CDATA[/**
* To be deprecated: use ResolveChildTickets() instead
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
@@ -1106,6 +1266,52 @@
}]]></code>
</method>
<method id="ResolveChildTickets">
<comment><![CDATA[/**
* Cascade the resolution to child User Request
* @return true (returning false would stop the ongoing transition)
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
<arguments>
</arguments>
<code><![CDATA[ public function ResolveChildTickets()
{
// Automatically resolve child requests
$sOQL = "SELECT UserRequest WHERE parent_request_id = :ticket AND status != 'resolved'";
$oChildRequestSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL), array(), array('ticket' => $this->GetKey()));
while($oRequest = $oChildRequestSet->Fetch())
{
$oRequest->ResolveFrom($this);
}
return true;
}]]></code>
</method>
<method id="ResolveFrom">
<comment><![CDATA[/**
* Resolve the ticket from another resolved ticket
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>Internal</type>
<code><![CDATA[ public function ResolveFrom($oParentTicket)
{
if ($this->Get('status') != 'resolved')
{
$this->Set('servicesubcategory_id', $oParentTicket->Get('servicesubcategory_id'));
$this->Set('service_id', $oParentTicket->Get('service_id'));
$this->Set('team_id', $oParentTicket->Get('team_id'));
$this->Set('agent_id', $oParentTicket->Get('agent_id'));
$this->Set('resolution_code', $oParentTicket->Get('resolution_code'));
$sParent = '[['.get_class($oParentTicket).':'.$oParentTicket->Get('ref').']]';
$this->Set('solution', Dict::Format('Tickets:ResolvedFrom', $sParent, MetaModel::GetName(get_class($oParentTicket))));
$this->ApplyStimulus('ev_autoresolve');
$this->DBUpdate();
}
}]]></code>
</method>
<method id="UpdateChildRequestLog">
<static>false</static>
<access>public</access>

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2012 Combodo SARL
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
@@ -261,8 +261,7 @@ Dict::Add('EN US', 'English', 'English', array(
'Class:UserRequest/Stimulus:ev_wait_for_approval' => 'Wait for approval',
'Class:UserRequest/Stimulus:ev_wait_for_approval+' => '',
'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Cannot assign the Parent request to the request itself',
'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets',
'Class:UserRequest/Method:ResolveChildTickets+' => 'Cascade the resolution to child requests (ev_autoresolve), and align the following characteristics of the request: service, team, agent, resolution info',
));
?>

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2012 Combodo SARL
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
@@ -36,7 +36,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:UserRequest/Attribute:status/Value:escalated_tto+' => '',
'Class:UserRequest/Attribute:status/Value:assigned' => 'Assignée',
'Class:UserRequest/Attribute:status/Value:assigned+' => '',
'Class:UserRequest/Attribute:status/Value:escalated_ttr' => 'Escalate ttr',
'Class:UserRequest/Attribute:status/Value:escalated_ttr' => 'Escalade ttr',
'Class:UserRequest/Attribute:status/Value:escalated_ttr+' => '',
'Class:UserRequest/Attribute:status/Value:waiting_for_approval' => 'En attente d`approbation',
'Class:UserRequest/Attribute:status/Value:waiting_for_approval+' => '',
@@ -267,6 +267,8 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Portal:UserRequest:MoreInfo' => 'Informations complémentaires',
'Portal:Details-Service-Element' => 'Eléments de service',
'Portal:NoClosedTicket' => 'Pas de requête fermée',
'Portal:NoService' => ''
'Portal:NoService' => '',
'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets (résoudre les tickets fils)',
'Class:UserRequest/Method:ResolveChildTickets+' => 'Cascader l\'action de résolution de la demande (ev_autoresolve), et aligner les caractéristiques suivantes : service, équipe, agent, information de résolution',
));
?>

View File

@@ -7,7 +7,7 @@ SetupWebPage::AddModule(
array(
// Identification
//
'label' => 'User request management ITIL V3',
'label' => 'User request Management ITIL',
'category' => 'business',
// Setup

View File

@@ -28,7 +28,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ref"/>
</attributes>
@@ -93,6 +92,10 @@
<value id="3">3</value>
<value id="4">4</value>
</values>
<dependencies>
<attribute id="impact"/>
<attribute id="urgency"/>
</dependencies>
<sql>priority</sql>
<default_value>4</default_value>
<is_null_allowed>false</is_null_allowed>
@@ -255,7 +258,7 @@
<thresholds>
<threshold id="75">
<highlight>
<code>critical</code>
<code>warning</code>
<persistent>false</persistent>
</highlight>
<actions>
@@ -522,7 +525,10 @@
<target>assigned</target>
<actions>
<action>
<verb>SetAssignedDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">assignment_date</param>
</params>
</action>
</actions>
</transition>
@@ -538,10 +544,22 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
<action>
<verb>resolveChilds</verb>
<verb>SetElapsedTime</verb>
<params>
<param xsi:type="attcode">time_spent</param>
<param xsi:type="attcode">start_date</param>
<param xsi:type="string">DefaultWorkingTimeComputer</param>
</params>
</action>
<action>
<verb>ResolveChildTickets</verb>
<params/>
</action>
</actions>
</transition>
@@ -560,7 +578,10 @@
<target>assigned</target>
<actions>
<action>
<verb>SetAssignedDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">assignment_date</param>
</params>
</action>
</actions>
</transition>
@@ -607,7 +628,10 @@
<target>pending</target>
<actions>
<action>
<verb>SetLastPendingDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">last_pending_date</param>
</params>
</action>
</actions>
</transition>
@@ -615,10 +639,22 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
<action>
<verb>resolveChilds</verb>
<verb>SetElapsedTime</verb>
<params>
<param xsi:type="attcode">time_spent</param>
<param xsi:type="attcode">start_date</param>
<param xsi:type="string">DefaultWorkingTimeComputer</param>
</params>
</action>
<action>
<verb>ResolveChildTickets</verb>
<params/>
</action>
</actions>
</transition>
@@ -634,10 +670,22 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
<action>
<verb>resolveChilds</verb>
<verb>SetElapsedTime</verb>
<params>
<param xsi:type="attcode">time_spent</param>
<param xsi:type="attcode">start_date</param>
<param xsi:type="string">DefaultWorkingTimeComputer</param>
</params>
</action>
<action>
<verb>ResolveChildTickets</verb>
<params/>
</action>
</actions>
</transition>
@@ -654,7 +702,10 @@
<target>pending</target>
<actions>
<action>
<verb>SetLastPendingDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">last_pending_date</param>
</params>
</action>
</actions>
</transition>
@@ -662,10 +713,22 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
<action>
<verb>resolveChilds</verb>
<verb>SetElapsedTime</verb>
<params>
<param xsi:type="attcode">time_spent</param>
<param xsi:type="attcode">start_date</param>
<param xsi:type="string">DefaultWorkingTimeComputer</param>
</params>
</action>
<action>
<verb>ResolveChildTickets</verb>
<params/>
</action>
</actions>
</transition>
@@ -677,10 +740,22 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
<action>
<verb>resolveChilds</verb>
<verb>SetElapsedTime</verb>
<params>
<param xsi:type="attcode">time_spent</param>
<param xsi:type="attcode">start_date</param>
<param xsi:type="string">DefaultWorkingTimeComputer</param>
</params>
</action>
<action>
<verb>ResolveChildTickets</verb>
<params/>
</action>
</actions>
</transition>
@@ -721,7 +796,10 @@
<target>assigned</target>
<actions>
<action>
<verb>SetAssignedDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">assignment_date</param>
</params>
</action>
</actions>
</transition>
@@ -729,10 +807,22 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
<action>
<verb>resolveChilds</verb>
<verb>SetElapsedTime</verb>
<params>
<param xsi:type="attcode">time_spent</param>
<param xsi:type="attcode">start_date</param>
<param xsi:type="string">DefaultWorkingTimeComputer</param>
</params>
</action>
<action>
<verb>ResolveChildTickets</verb>
<params/>
</action>
</actions>
</transition>
@@ -777,10 +867,22 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
<action>
<verb>resolveChilds</verb>
<verb>SetElapsedTime</verb>
<params>
<param xsi:type="attcode">time_spent</param>
<param xsi:type="attcode">start_date</param>
<param xsi:type="string">DefaultWorkingTimeComputer</param>
</params>
</action>
<action>
<verb>ResolveChildTickets</verb>
<params/>
</action>
</actions>
</transition>
@@ -876,7 +978,10 @@
<target>closed</target>
<actions>
<action>
<verb>SetClosureDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">close_date</param>
</params>
</action>
</actions>
</transition>
@@ -889,10 +994,22 @@
<target>resolved</target>
<actions>
<action>
<verb>SetResolveDate</verb>
<verb>SetCurrentDate</verb>
<params>
<param xsi:type="attcode">resolution_date</param>
</params>
</action>
<action>
<verb>resolveChilds</verb>
<verb>SetElapsedTime</verb>
<params>
<param xsi:type="attcode">time_spent</param>
<param xsi:type="attcode">start_date</param>
<param xsi:type="string">DefaultWorkingTimeComputer</param>
</params>
</action>
<action>
<verb>ResolveChildTickets</verb>
<params/>
</action>
</actions>
</transition>
@@ -948,6 +1065,10 @@
</lifecycle>
<methods>
<method id="SetAssignedDate">
<comment><![CDATA[/**
* To be deprecated: use SetCurrentDate() instead
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
@@ -958,6 +1079,10 @@
}]]></code>
</method>
<method id="SetLastPendingDate">
<comment><![CDATA[/**
* To be deprecated: use SetCurrentDate() instead
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
@@ -968,6 +1093,10 @@
}]]></code>
</method>
<method id="SetResolveDate">
<comment><![CDATA[/**
* To be deprecated: use SetCurrentDate() and SetElapsedTime() instead
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
@@ -980,6 +1109,10 @@
}]]></code>
</method>
<method id="SetClosureDate">
<comment><![CDATA[/**
* To be deprecated: use SetCurrentDate() instead
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
@@ -990,6 +1123,10 @@
}]]></code>
</method>
<method id="SetApprover">
<comment><![CDATA[/**
* To be deprecated: use SetCurrentUser() instead
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
@@ -1045,7 +1182,11 @@
4 => 4,
),
);
$iPriority = $aPriorities[(int)$this->Get('impact')][(int)$this->Get('urgency')];
$iPriority = 1;
if (isset($aPriorities[(int)$this->Get('impact')][(int)$this->Get('urgency')]))
{
$iPriority = $aPriorities[(int)$this->Get('impact')][(int)$this->Get('urgency')];
}
return $iPriority;
}]]></code>
</method>
@@ -1093,6 +1234,9 @@
}]]></code>
</method>
<method id="resolveChilds">
<comment><![CDATA[/**
* To be deprecated: use ResolveChildTickets() instead
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
@@ -1124,6 +1268,52 @@
}]]></code>
</method>
<method id="ResolveChildTickets">
<comment><![CDATA[/**
* Cascade the resolution to child User Request
* @return true (returning false would stop the ongoing transition)
*/]]></comment>
<static>false</static>
<access>public</access>
<type>LifecycleAction</type>
<arguments>
</arguments>
<code><![CDATA[ public function ResolveChildTickets()
{
// Automatically resolve child requests
$sOQL = "SELECT UserRequest WHERE parent_request_id = :ticket AND status != 'resolved'";
$oChildRequestSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL), array(), array('ticket' => $this->GetKey()));
while($oRequest = $oChildRequestSet->Fetch())
{
$oRequest->ResolveFrom($this);
}
return true;
}]]></code>
</method>
<method id="ResolveFrom">
<comment><![CDATA[/**
* Resolve the ticket from another resolved ticket
* @return void
*/]]></comment>
<static>false</static>
<access>public</access>
<type>Internal</type>
<code><![CDATA[ public function ResolveFrom($oParentTicket)
{
if ($this->Get('status') != 'resolved')
{
$this->Set('servicesubcategory_id', $oParentTicket->Get('servicesubcategory_id'));
$this->Set('service_id', $oParentTicket->Get('service_id'));
$this->Set('team_id', $oParentTicket->Get('team_id'));
$this->Set('agent_id', $oParentTicket->Get('agent_id'));
$this->Set('resolution_code', $oParentTicket->Get('resolution_code'));
$sParent = '[['.get_class($oParentTicket).':'.$oParentTicket->Get('ref').']]';
$this->Set('solution', Dict::Format('Tickets:ResolvedFrom', $sParent, MetaModel::GetName(get_class($oParentTicket))));
$this->ApplyStimulus('ev_autoresolve');
$this->DBUpdate();
}
}]]></code>
</method>
<method id="UpdateChildRequestLog">
<static>false</static>
<access>public</access>

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2012 Combodo SARL
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
@@ -290,6 +290,7 @@ Dict::Add('EN US', 'English', 'English', array(
'Portal:SelectLanguage' => "Change you language",
'Portal:LanguageChangedTo_Lang' => 'Language changed to',
'Portal:ChooseYourFavoriteLanguage' => 'Choose your favorite language',
));
?>
'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets',
'Class:UserRequest/Method:ResolveChildTickets+' => 'Cascade the resolution to child requests (ev_autoresolve), and align the following characteristics of the request: service, team, agent, resolution info',
));

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2012 Combodo SARL
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
@@ -280,5 +280,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Portal:SelectLanguage' => "Changer ma langue",
'Portal:LanguageChangedTo_Lang' => 'Langue changée en',
'Portal:ChooseYourFavoriteLanguage' => 'Choisissez votre langue',
'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets (résoudre les tickets fils)',
'Class:UserRequest/Method:ResolveChildTickets+' => 'Cascader l\'action de résolution de la demande (ev_autoresolve), et aligner les caractéristiques suivantes : service, équipe, agent, information de résolution',
));
?>

View File

@@ -0,0 +1,298 @@
<?php
// Copyright (C) 2010-2012 Combodo SARL
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* @author LinProfs <info@linprofs.com>
*
* Linux & Open Source Professionals
* http://www.linprofs.com
*
* @copyright Copyright (C) 2010-2012 Combodo SARL
* @licence http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Menu:RequestManagement' => 'Helpdesk',
'Menu:RequestManagement+' => 'Helpdesk',
'Menu:RequestManagementProvider' => 'Helpdesk leverancier',
'Menu:RequestManagementProvider+' => 'Helpdesk leverancier',
'Menu:UserRequest:Provider' => 'Open verzoeken Open requests overgebracht naar leverancier',
'Menu:UserRequest:Provider+' => 'Open verzoeken Open requests overgebracht naar leverancier',
'Menu:UserRequest:Overview' => 'Overzicht',
'Menu:UserRequest:Overview+' => 'Overzicht',
'Menu:NewUserRequest' => 'Nieuw gebruikersverzoek',
'Menu:NewUserRequest+' => 'Maak een nieuwe gebruikersverzoek ticket aan',
'Menu:SearchUserRequests' => 'Zoek naar gebruikersverzoeken',
'Menu:SearchUserRequests+' => 'Zoek naar gebruikersverzoeken',
'Menu:UserRequest:Shortcuts' => 'Snelkoppelingen',
'Menu:UserRequest:Shortcuts+' => '',
'Menu:UserRequest:MyRequests' => 'Verzoeken toegewezen aan mij',
'Menu:UserRequest:MyRequests+' => 'Verzoeken toegewezen aan mij (als Agent)',
'Menu:UserRequest:MySupportRequests' => 'Mijn support gesprekken',
'Menu:UserRequest:MySupportRequests+' => 'Mijn support gesprekken',
'Menu:UserRequest:EscalatedRequests' => 'Hot requests',
'Menu:UserRequest:EscalatedRequests+' => 'Hot requests',
'Menu:UserRequest:OpenRequests' => 'Alle open verzoeken',
'Menu:UserRequest:OpenRequests+' => 'Alle open verzoeken',
'UI:WelcomeMenu:MyAssignedCalls' => 'Verzoeken toegewezen aan mij',
'UI-RequestManagementOverview-RequestByType-last-14-days' => 'Verzoeken van de afgelopen 14 dagen (per type)',
'UI-RequestManagementOverview-Last-14-days' => 'Verzoeken van de afgelopen 14 dagen (per dag)',
'UI-RequestManagementOverview-OpenRequestByStatus' => 'Open verzoeken per status',
'UI-RequestManagementOverview-OpenRequestByAgent' => 'Open verzoeken per medewerker',
'UI-RequestManagementOverview-OpenRequestByType' => 'Open verzoeken per type',
'UI-RequestManagementOverview-OpenRequestByCustomer' => 'Open verzoeken per organisatie',
'Class:UserRequest:KnownErrorList' => 'Bekende fouten',
'Menu:UserRequest:MyWorkOrders' => 'Work orders toegewezen aan mij',
'Menu:UserRequest:MyWorkOrders+' => 'Alle work orders toegewezen aan mij',
'Class:Problem:KnownProblemList' => 'Bekende fouten',
));
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//
// Class: UserRequest
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:UserRequest' => 'Gebruikersverzoek',
'Class:UserRequest+' => '',
'Class:UserRequest/Attribute:status' => 'Status',
'Class:UserRequest/Attribute:status+' => '',
'Class:UserRequest/Attribute:status/Value:new' => 'Nieuw',
'Class:UserRequest/Attribute:status/Value:new+' => '',
'Class:UserRequest/Attribute:status/Value:escalated_tto' => 'Geëscaleerde TTO',
'Class:UserRequest/Attribute:status/Value:escalated_tto+' => '',
'Class:UserRequest/Attribute:status/Value:assigned' => 'Toegewezen',
'Class:UserRequest/Attribute:status/Value:assigned+' => '',
'Class:UserRequest/Attribute:status/Value:escalated_ttr' => 'Geëscaleerde TTR',
'Class:UserRequest/Attribute:status/Value:escalated_ttr+' => '',
'Class:UserRequest/Attribute:status/Value:waiting_for_approval' => 'Wacht voor goedkeuring',
'Class:UserRequest/Attribute:status/Value:waiting_for_approval+' => '',
'Class:UserRequest/Attribute:status/Value:approved' => 'Goedgekeurd',
'Class:UserRequest/Attribute:status/Value:approved+' => '',
'Class:UserRequest/Attribute:status/Value:rejected' => 'Afgewezen',
'Class:UserRequest/Attribute:status/Value:rejected+' => '',
'Class:UserRequest/Attribute:status/Value:pending' => 'In afwachting van',
'Class:UserRequest/Attribute:status/Value:pending+' => '',
'Class:UserRequest/Attribute:status/Value:resolved' => 'Opgelost',
'Class:UserRequest/Attribute:status/Value:resolved+' => '',
'Class:UserRequest/Attribute:status/Value:closed' => 'Gesloten',
'Class:UserRequest/Attribute:status/Value:closed+' => '',
'Class:UserRequest/Attribute:request_type' => 'Verzoek Type',
'Class:UserRequest/Attribute:request_type+' => '',
'Class:UserRequest/Attribute:request_type/Value:incident' => 'Incident',
'Class:UserRequest/Attribute:request_type/Value:incident+' => 'Incident',
'Class:UserRequest/Attribute:request_type/Value:service_request' => 'Service request',
'Class:UserRequest/Attribute:request_type/Value:service_request+' => 'Service request',
'Class:UserRequest/Attribute:impact' => 'Impact',
'Class:UserRequest/Attribute:impact+' => '',
'Class:UserRequest/Attribute:impact/Value:1' => 'Een afdeling',
'Class:UserRequest/Attribute:impact/Value:1+' => '',
'Class:UserRequest/Attribute:impact/Value:2' => 'Een dienst',
'Class:UserRequest/Attribute:impact/Value:2+' => '',
'Class:UserRequest/Attribute:impact/Value:3' => 'Een persoon',
'Class:UserRequest/Attribute:impact/Value:3+' => '',
'Class:UserRequest/Attribute:priority' => 'Prioriteit',
'Class:UserRequest/Attribute:priority+' => '',
'Class:UserRequest/Attribute:priority/Value:1' => 'kritisch',
'Class:UserRequest/Attribute:priority/Value:1+' => 'kritisch',
'Class:UserRequest/Attribute:priority/Value:2' => 'hoog',
'Class:UserRequest/Attribute:priority/Value:2+' => 'hoog',
'Class:UserRequest/Attribute:priority/Value:3' => 'normaal',
'Class:UserRequest/Attribute:priority/Value:3+' => 'normaal',
'Class:UserRequest/Attribute:priority/Value:4' => 'laag',
'Class:UserRequest/Attribute:priority/Value:4+' => 'laag',
'Class:UserRequest/Attribute:urgency' => 'Urgentie',
'Class:UserRequest/Attribute:urgency+' => '',
'Class:UserRequest/Attribute:urgency/Value:1' => 'kritisch',
'Class:UserRequest/Attribute:urgency/Value:1+' => 'kritisch',
'Class:UserRequest/Attribute:urgency/Value:2' => 'hoog',
'Class:UserRequest/Attribute:urgency/Value:2+' => 'hoog',
'Class:UserRequest/Attribute:urgency/Value:3' => 'normaal',
'Class:UserRequest/Attribute:urgency/Value:3+' => 'normaal',
'Class:UserRequest/Attribute:urgency/Value:4' => 'laag',
'Class:UserRequest/Attribute:urgency/Value:4+' => 'laag',
'Class:UserRequest/Attribute:origin' => 'Afkomst',
'Class:UserRequest/Attribute:origin+' => '',
'Class:UserRequest/Attribute:origin/Value:mail' => 'mail',
'Class:UserRequest/Attribute:origin/Value:mail+' => 'mail',
'Class:UserRequest/Attribute:origin/Value:monitoring' => 'monitoring',
'Class:UserRequest/Attribute:origin/Value:monitoring+' => 'monitoring',
'Class:UserRequest/Attribute:origin/Value:phone' => 'telefoon',
'Class:UserRequest/Attribute:origin/Value:phone+' => 'telefoon',
'Class:UserRequest/Attribute:origin/Value:portal' => 'portal',
'Class:UserRequest/Attribute:origin/Value:portal+' => 'portal',
'Class:UserRequest/Attribute:approver_id' => 'Goedkeurder',
'Class:UserRequest/Attribute:approver_id+' => '',
'Class:UserRequest/Attribute:approver_email' => 'Goedkeurder Email',
'Class:UserRequest/Attribute:approver_email+' => '',
'Class:UserRequest/Attribute:service_id' => 'Dienst',
'Class:UserRequest/Attribute:service_id+' => '',
'Class:UserRequest/Attribute:service_name' => 'Dienst naam',
'Class:UserRequest/Attribute:service_name+' => '',
'Class:UserRequest/Attribute:servicesubcategory_id' => 'Dienst subcategorie',
'Class:UserRequest/Attribute:servicesubcategory_id+' => '',
'Class:UserRequest/Attribute:servicesubcategory_name' => 'Dienst subcategorie naam',
'Class:UserRequest/Attribute:servicesubcategory_name+' => '',
'Class:UserRequest/Attribute:escalation_flag' => 'Hot Flag',
'Class:UserRequest/Attribute:escalation_flag+' => '',
'Class:UserRequest/Attribute:escalation_flag/Value:no' => 'Nee',
'Class:UserRequest/Attribute:escalation_flag/Value:no+' => 'Nee',
'Class:UserRequest/Attribute:escalation_flag/Value:yes' => 'Ja',
'Class:UserRequest/Attribute:escalation_flag/Value:yes+' => 'Ja',
'Class:UserRequest/Attribute:escalation_reason' => 'Hot reason',
'Class:UserRequest/Attribute:escalation_reason+' => '',
'Class:UserRequest/Attribute:assignment_date' => 'Toegewezen datum',
'Class:UserRequest/Attribute:assignment_date+' => '',
'Class:UserRequest/Attribute:resolution_date' => 'Resolutie datum',
'Class:UserRequest/Attribute:resolution_date+' => '',
'Class:UserRequest/Attribute:last_pending_date' => 'Laatste pending date',
'Class:UserRequest/Attribute:last_pending_date+' => '',
'Class:UserRequest/Attribute:cumulatedpending' => 'cumulatedpending',
'Class:UserRequest/Attribute:cumulatedpending+' => '',
'Class:UserRequest/Attribute:tto' => 'TTO',
'Class:UserRequest/Attribute:tto+' => '',
'Class:UserRequest/Attribute:ttr' => 'TTR',
'Class:UserRequest/Attribute:ttr+' => '',
'Class:UserRequest/Attribute:tto_escalation_deadline' => 'TTO Deadline',
'Class:UserRequest/Attribute:tto_escalation_deadline+' => '',
'Class:UserRequest/Attribute:sla_tto_passed' => 'SLA tto gepasseerd',
'Class:UserRequest/Attribute:sla_tto_passed+' => '',
'Class:UserRequest/Attribute:sla_tto_over' => 'SLA tto over',
'Class:UserRequest/Attribute:sla_tto_over+' => '',
'Class:UserRequest/Attribute:ttr_escalation_deadline' => 'TTR Deadline',
'Class:UserRequest/Attribute:ttr_escalation_deadline+' => '',
'Class:UserRequest/Attribute:sla_ttr_passed' => 'SLA ttr gepasseerd',
'Class:UserRequest/Attribute:sla_ttr_passed+' => '',
'Class:UserRequest/Attribute:sla_ttr_over' => 'SLA ttr over',
'Class:UserRequest/Attribute:sla_ttr_over+' => '',
'Class:UserRequest/Attribute:time_spent' => 'Resolutie vertraging',
'Class:UserRequest/Attribute:time_spent+' => '',
'Class:UserRequest/Attribute:resolution_code' => 'Resolutie code',
'Class:UserRequest/Attribute:resolution_code+' => '',
'Class:UserRequest/Attribute:resolution_code/Value:assistance' => 'assistentie',
'Class:UserRequest/Attribute:resolution_code/Value:assistance+' => 'assistentie',
'Class:UserRequest/Attribute:resolution_code/Value:bug fixed' => 'bug opgelost',
'Class:UserRequest/Attribute:resolution_code/Value:bug fixed+' => 'bug opgelost',
'Class:UserRequest/Attribute:resolution_code/Value:hardware repair' => 'hardware gerepareerd',
'Class:UserRequest/Attribute:resolution_code/Value:hardware repair+' => 'hardware gerepareerd',
'Class:UserRequest/Attribute:resolution_code/Value:other' => 'anders',
'Class:UserRequest/Attribute:resolution_code/Value:other+' => 'anders',
'Class:UserRequest/Attribute:resolution_code/Value:software patch' => 'software patch',
'Class:UserRequest/Attribute:resolution_code/Value:software patch+' => 'software patch',
'Class:UserRequest/Attribute:resolution_code/Value:system update' => 'systeem update',
'Class:UserRequest/Attribute:resolution_code/Value:system update+' => 'systeem update',
'Class:UserRequest/Attribute:resolution_code/Value:training' => 'training',
'Class:UserRequest/Attribute:resolution_code/Value:training+' => 'training',
'Class:UserRequest/Attribute:solution' => 'Oplossing',
'Class:UserRequest/Attribute:solution+' => '',
'Class:UserRequest/Attribute:pending_reason' => 'Reden waarvoor het in afwachting staat',
'Class:UserRequest/Attribute:pending_reason+' => '',
'Class:UserRequest/Attribute:parent_request_id' => 'Hoofd aanvraag',
'Class:UserRequest/Attribute:parent_request_id+' => '',
'Class:UserRequest/Attribute:parent_request_ref' => 'Ref request',
'Class:UserRequest/Attribute:parent_request_ref+' => '',
'Class:UserRequest/Attribute:parent_problem_id' => 'Hoofd probleem',
'Class:UserRequest/Attribute:parent_problem_id+' => '',
'Class:UserRequest/Attribute:parent_problem_ref' => 'Ref problem',
'Class:UserRequest/Attribute:parent_problem_ref+' => '',
'Class:UserRequest/Attribute:parent_change_id' => 'Hoofd change',
'Class:UserRequest/Attribute:parent_change_id+' => '',
'Class:UserRequest/Attribute:parent_change_ref' => 'Ref change',
'Class:UserRequest/Attribute:parent_change_ref+' => '',
'Class:UserRequest/Attribute:related_request_list' => 'Sub Verzoeken',
'Class:UserRequest/Attribute:related_request_list+' => 'Alle verzoeken die gelinkt zijn aan dit hoofdverzoek',
'Class:UserRequest/Attribute:public_log' => 'Publieke log',
'Class:UserRequest/Attribute:public_log+' => '',
'Class:UserRequest/Attribute:user_satisfaction' => 'Klant tevredenheid',
'Class:UserRequest/Attribute:user_satisfaction+' => '',
'Class:UserRequest/Attribute:user_satisfaction/Value:1' => 'Erg tevreden',
'Class:UserRequest/Attribute:user_satisfaction/Value:1+' => 'Erg tevreden',
'Class:UserRequest/Attribute:user_satisfaction/Value:2' => 'Tevreden',
'Class:UserRequest/Attribute:user_satisfaction/Value:2+' => 'Tevreden',
'Class:UserRequest/Attribute:user_satisfaction/Value:3' => 'Ontevreden',
'Class:UserRequest/Attribute:user_satisfaction/Value:3+' => 'Ontevreden',
'Class:UserRequest/Attribute:user_satisfaction/Value:4' => 'Erg ontevreden',
'Class:UserRequest/Attribute:user_satisfaction/Value:4+' => 'Erg ontevreden',
'Class:UserRequest/Attribute:user_comment' => 'Gebruikersreactie',
'Class:UserRequest/Attribute:user_comment+' => '',
'Class:UserRequest/Attribute:parent_request_id_friendlyname' => 'parent_request_id_friendlyname',
'Class:UserRequest/Attribute:parent_request_id_friendlyname+' => '',
'Class:UserRequest/Stimulus:ev_assign' => 'Wijs toe',
'Class:UserRequest/Stimulus:ev_assign+' => '',
'Class:UserRequest/Stimulus:ev_reassign' => 'Wijs opnieuw toe',
'Class:UserRequest/Stimulus:ev_reassign+' => '',
'Class:UserRequest/Stimulus:ev_approve' => 'Keur goed',
'Class:UserRequest/Stimulus:ev_approve+' => '',
'Class:UserRequest/Stimulus:ev_reject' => 'Keur af',
'Class:UserRequest/Stimulus:ev_reject+' => '',
'Class:UserRequest/Stimulus:ev_pending' => 'In afwachting',
'Class:UserRequest/Stimulus:ev_pending+' => '',
'Class:UserRequest/Stimulus:ev_timeout' => 'Timeout',
'Class:UserRequest/Stimulus:ev_timeout+' => '',
'Class:UserRequest/Stimulus:ev_autoresolve' => 'Automatisch oplossen',
'Class:UserRequest/Stimulus:ev_autoresolve+' => '',
'Class:UserRequest/Stimulus:ev_autoclose' => 'Automatisch sluiten',
'Class:UserRequest/Stimulus:ev_autoclose+' => '',
'Class:UserRequest/Stimulus:ev_resolve' => 'Markeren als opgelost',
'Class:UserRequest/Stimulus:ev_resolve+' => '',
'Class:UserRequest/Stimulus:ev_close' => 'Sluit dit verzoek',
'Class:UserRequest/Stimulus:ev_close+' => '',
'Class:UserRequest/Stimulus:ev_reopen' => 'Her-open',
'Class:UserRequest/Stimulus:ev_reopen+' => '',
'Class:UserRequest/Stimulus:ev_wait_for_approval' => 'Wacht op goedkeuring',
'Class:UserRequest/Stimulus:ev_wait_for_approval+' => '',
'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Kan niet toewijzen aan hoofdverzoek en aan het verzoek zelf',
));
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Portal:TitleDetailsFor_Request' => 'Details van het verzoek',
'Portal:ButtonUpdate' => 'Update',
'Portal:ButtonClose' => 'Sluit',
'Portal:ButtonReopen' => 'Heropen',
'Portal:ShowServices' => 'Dienst catalogus',
'Portal:SelectRequestType' => 'Selecteer een type verzoek',
'Portal:SelectServiceElementFrom_Service' => 'Selecteer een dienst voor %1$s',
'Portal:ListServices' => 'Lijst met diensten',
'Portal:TitleDetailsFor_Service' => 'Details van de Dienst',
'Portal:Button:CreateRequestFromService' => 'Maak een verzoek aan voor deze dienst',
'Portal:ListOpenRequests' => 'Lijst met open verzoeken',
'Portal:UserRequest:MoreInfo' => 'Meer informatie',
'Portal:Details-Service-Element' => 'Dienst elementen',
'Portal:NoClosedTicket' => 'Geen gesloten verzoeken',
'Portal:NoService' => '',
'Portal:ListOpenProblems' => 'Openstaande problemen',
'Portal:ShowProblem' => 'Problemen',
'Portal:ShowFaqs' => 'FAQs',
'Portal:NoOpenProblem' => 'Geen open probleem',
'Portal:SelectLanguage' => 'Verander je Taal',
'Portal:LanguageChangedTo_Lang' => 'Taal veranderd naar',
'Portal:ChooseYourFavoriteLanguage' => 'Kies je favoriete taal',
));
?>

View File

@@ -56,7 +56,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field>finalclass</db_final_class_field>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -298,7 +297,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -347,7 +345,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -517,7 +514,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -694,7 +690,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="contract_id"/>
<attribute id="contact_id"/>
@@ -776,7 +771,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="contract_id"/>
<attribute id="document_id"/>
@@ -858,7 +852,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="providercontract_id"/>
<attribute id="functionalci_id"/>
@@ -939,7 +932,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1005,7 +997,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1173,7 +1164,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="service_id"/>
<attribute id="document_id"/>
@@ -1255,7 +1245,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="service_id"/>
<attribute id="contact_id"/>
@@ -1336,7 +1325,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1444,7 +1432,7 @@
<item id="request_type">
<rank>50</rank>
</item>
<item id="service_provider">
<item id="service_org_id">
<rank>60</rank>
</item>
</items>
@@ -1477,7 +1465,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1586,7 +1573,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1734,7 +1720,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="sla_id"/>
<attribute id="slt_id"/>
@@ -1856,7 +1841,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="customercontract_id"/>
<attribute id="service_id"/>
@@ -1954,7 +1938,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="customercontract_id"/>
<attribute id="providercontract_id"/>
@@ -2036,7 +2019,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="customercontract_id"/>
<attribute id="functionalci_id"/>
@@ -2117,7 +2099,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -2164,7 +2145,7 @@
<field id="customers_list" xsi:type="AttributeLinkedSet">
<linked_class>Organization</linked_class>
<ext_key_to_me>deliverymodel_id</ext_key_to_me>
<edit_mode>none</edit_mode>
<edit_mode>add_remove</edit_mode>
<count_min>0</count_min>
<count_max>0</count_max>
<duplicates/>
@@ -2224,7 +2205,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="deliverymodel_id"/>
<attribute id="contact_id"/>

View File

@@ -71,8 +71,10 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:Service+' => '',
'Class:Service/Attribute:name' => 'Name',
'Class:Service/Attribute:name+' => '',
'Class:Service/Attribute:org_id' => 'Organisation',
'Class:Service/Attribute:org_id' => 'Provider',
'Class:Service/Attribute:org_id+' => '',
'Class:Service/Attribute:organization_name' => 'Provider Name',
'Class:Service/Attribute:organization_name+' => '',
'Class:Service/Attribute:description' => 'Beschreibung',
'Class:Service/Attribute:description+' => '',
'Class:Service/Attribute:documents_list' => 'Dokumente',
@@ -211,7 +213,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:DeliveryModel/Attribute:customers_list+' => '',
'Class:lnkDeliveryModelToContact' => 'Verknüpfung Delivery-Modell/Kontakt',
'Class:lnkDeliveryModelToContact+' => '',
'Class:lnkDeliveryModelToContact/Attribute:deliverymodel_id' => 'Dellivery-Modell',
'Class:lnkDeliveryModelToContact/Attribute:deliverymodel_id' => 'Delivery-Modell',
'Class:lnkDeliveryModelToContact/Attribute:deliverymodel_id+' => '',
'Class:lnkDeliveryModelToContact/Attribute:contact_id' => 'Kontakt',
'Class:lnkDeliveryModelToContact/Attribute:contact_id+' => '',

View File

@@ -256,10 +256,10 @@ Dict::Add('EN US', 'English', 'English', array(
'Class:Service+' => '',
'Class:Service/Attribute:name' => 'Name',
'Class:Service/Attribute:name+' => '',
'Class:Service/Attribute:org_id' => 'Organization',
'Class:Service/Attribute:org_id' => 'Provider',
'Class:Service/Attribute:org_id+' => '',
'Class:Service/Attribute:organization_name' => 'Name',
'Class:Service/Attribute:organization_name+' => 'Common name',
'Class:Service/Attribute:organization_name' => 'Provider Name',
'Class:Service/Attribute:organization_name+' => '',
'Class:Service/Attribute:description' => 'Description',
'Class:Service/Attribute:description+' => '',
'Class:Service/Attribute:documents_list' => 'Documents',
@@ -343,6 +343,8 @@ Dict::Add('EN US', 'English', 'English', array(
'Class:ServiceSubcategory/Attribute:request_type/Value:incident+' => 'incident',
'Class:ServiceSubcategory/Attribute:request_type/Value:service_request' => 'service request',
'Class:ServiceSubcategory/Attribute:request_type/Value:service_request+' => 'service request',
'Class:ServiceSubcategory/Attribute:service_provider' => 'Provider Name',
'Class:ServiceSubcategory/Attribute:service_org_id' => 'Provider',
));
//

View File

@@ -202,8 +202,8 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:Service/Attribute:name+' => '',
'Class:Service/Attribute:org_id' => 'Fournisseur',
'Class:Service/Attribute:org_id+' => '',
'Class:Service/Attribute:organization_name' => 'Nom fournisseur',
'Class:Service/Attribute:organization_name+' => 'Nom commun',
'Class:Service/Attribute:organization_name' => 'Nom du fournisseur',
'Class:Service/Attribute:organization_name+' => '',
'Class:Service/Attribute:description' => 'Description',
'Class:Service/Attribute:description+' => '',
'Class:Service/Attribute:documents_list' => 'Documents',
@@ -287,6 +287,8 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:ServiceSubcategory/Attribute:request_type/Value:incident+' => 'incident',
'Class:ServiceSubcategory/Attribute:request_type/Value:service_request' => 'demande de service',
'Class:ServiceSubcategory/Attribute:request_type/Value:service_request+' => 'demande de service',
'Class:ServiceSubcategory/Attribute:service_provider' => 'Nom du fournisseur',
'Class:ServiceSubcategory/Attribute:service_org_id' => 'Fournisseur',
));
//

View File

@@ -7,7 +7,7 @@ SetupWebPage::AddModule(
array(
// Identification
//
'label' => 'Service Management (services, SLAs, contracts) for Service providers',
'label' => 'Service Management for Service Providers',
'category' => 'business',
// Setup

View File

@@ -0,0 +1,534 @@
<?php
// Copyright (C) 2010-2012 Combodo SARL
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* @author LinProfs <info@linprofs.com>
*
* Linux & Open Source Professionals
* http://www.linprofs.com
*
* @copyright Copyright (C) 2010-2012 Combodo SARL
* @licence http://opensource.org/licenses/AGPL-3.0
*/
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Menu:ServiceManagement' => 'Service Management',
'Menu:ServiceManagement+' => 'Service Management Overzicht',
'Menu:Service:Overview' => 'Overzicht',
'Menu:Service:Overview+' => '',
'UI-ServiceManagementMenu-ContractsBySrvLevel' => 'Contracten per service level',
'UI-ServiceManagementMenu-ContractsByStatus' => 'Contracten met status',
'UI-ServiceManagementMenu-ContractsEndingIn30Days' => 'Contracten die in minder dan 30 dagen eindigen',
'Menu:ServiceType' => 'Dienst Types',
'Menu:ServiceType+' => 'Dienst Types',
'Menu:ProviderContract' => 'Leveranciers contracten',
'Menu:ProviderContract+' => 'Leveranciers contracten',
'Menu:CustomerContract' => 'Klant contracten',
'Menu:CustomerContract+' => 'Klant contracten',
'Menu:ServiceSubcategory' => 'Dienst subcategorieën',
'Menu:ServiceSubcategory+' => 'Dienst subcategorieën',
'Menu:Service' => 'Diensten',
'Menu:Service+' => 'Diensten',
'Menu:ServiceElement' => 'Dienst elementen',
'Menu:ServiceElement+' => 'Dienst elementen',
'Menu:SLA' => 'SLAs',
'Menu:SLA+' => 'Service Level Agreements',
'Menu:SLT' => 'SLTs',
'Menu:SLT+' => 'Service Level Targets',
'Menu:DeliveryModel' => 'Delivery models',
'Menu:DeliveryModel+' => 'Delivery models',
));
/*
'UI:ServiceManagementMenu' => 'Gestion des Services',
'UI:ServiceManagementMenu+' => 'Gestion des Services',
'UI:ServiceManagementMenu:Title' => 'Résumé des services & contrats',
'UI-ServiceManagementMenu-ContractsBySrvLevel' => 'Contrats par niveau de service',
'UI-ServiceManagementMenu-ContractsByStatus' => 'Contrats par état',
'UI-ServiceManagementMenu-ContractsEndingIn30Days' => 'Contrats se terminant dans moins de 30 jours',
*/
//
// Class: Organization
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:Organization/Attribute:deliverymodel_id' => 'Delivery model',
'Class:Organization/Attribute:deliverymodel_id+' => '',
'Class:Organization/Attribute:deliverymodel_name' => 'Delivery model name',
'Class:Organization/Attribute:deliverymodel_name+' => '',
));
//
// Class: ContractType
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:ContractType' => 'Contract Type',
'Class:ContractType+' => '',
));
//
// Class: Contract
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:Contract' => 'Contract',
'Class:Contract+' => '',
'Class:Contract/Attribute:name' => 'Naam',
'Class:Contract/Attribute:name+' => '',
'Class:Contract/Attribute:org_id' => 'Klant',
'Class:Contract/Attribute:org_id+' => '',
'Class:Contract/Attribute:organization_name' => 'Klant Naam',
'Class:Contract/Attribute:organization_name+' => 'Gemeenschappelijke naam',
'Class:Contract/Attribute:contacts_list' => 'Contacten',
'Class:Contract/Attribute:contacts_list+' => 'Alle contacten voor dit klant contract',
'Class:Contract/Attribute:documents_list' => 'Documenten',
'Class:Contract/Attribute:documents_list+' => 'Alle documenten voor dit klant contract',
'Class:Contract/Attribute:description' => 'Omschrijving',
'Class:Contract/Attribute:description+' => '',
'Class:Contract/Attribute:start_date' => 'Start datum',
'Class:Contract/Attribute:start_date+' => '',
'Class:Contract/Attribute:end_date' => 'Eind datum',
'Class:Contract/Attribute:end_date+' => '',
'Class:Contract/Attribute:cost' => 'Kosten',
'Class:Contract/Attribute:cost+' => '',
'Class:Contract/Attribute:cost_currency' => 'Valuta',
'Class:Contract/Attribute:cost_currency+' => '',
'Class:Contract/Attribute:cost_currency/Value:dollars' => 'Dollars',
'Class:Contract/Attribute:cost_currency/Value:dollars+' => '',
'Class:Contract/Attribute:cost_currency/Value:euros' => 'Euros',
'Class:Contract/Attribute:cost_currency/Value:euros+' => '',
'Class:Contract/Attribute:contracttype_id' => 'Contract type',
'Class:Contract/Attribute:contracttype_id+' => '',
'Class:Contract/Attribute:contracttype_name' => 'Contract type Name',
'Class:Contract/Attribute:contracttype_name+' => '',
'Class:Contract/Attribute:billing_frequency' => 'Facturering frequentie',
'Class:Contract/Attribute:billing_frequency+' => '',
'Class:Contract/Attribute:cost_unit' => 'Kost eenheid',
'Class:Contract/Attribute:cost_unit+' => '',
'Class:Contract/Attribute:provider_id' => 'Leverancier',
'Class:Contract/Attribute:provider_id+' => '',
'Class:Contract/Attribute:provider_name' => 'Leverancier Naam',
'Class:Contract/Attribute:provider_name+' => 'Gemeenschappelijke naam',
'Class:Contract/Attribute:status' => 'Status',
'Class:Contract/Attribute:status+' => '',
'Class:Contract/Attribute:status/Value:implementation' => 'implementatie',
'Class:Contract/Attribute:status/Value:implementation+' => 'implementatie',
'Class:Contract/Attribute:status/Value:obsolete' => 'overbodig',
'Class:Contract/Attribute:status/Value:obsolete+' => 'overbodig',
'Class:Contract/Attribute:status/Value:production' => 'productie',
'Class:Contract/Attribute:status/Value:production+' => 'productie',
'Class:Contract/Attribute:finalclass' => 'Type',
'Class:Contract/Attribute:finalclass+' => '',
));
//
// Class: CustomerContract
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:CustomerContract' => 'Klant Contract',
'Class:CustomerContract+' => '',
'Class:CustomerContract/Attribute:services_list' => 'Diensten',
'Class:CustomerContract/Attribute:services_list+' => 'Alle diensten die zijn aangeschaft voor dit contract',
'Class:ProviderContract' => 'Leveranciers Contract',
'Class:ProviderContract+' => '',
'Class:ProviderContract/Attribute:functionalcis_list' => 'CIs',
'Class:ProviderContract/Attribute:functionalcis_list+' => 'Alle configuratie items die gedekt zijn door dit leveranciers contract',
));
//
// Class: ProviderContract
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:ProviderContract' => 'Leveranciers Contract',
'Class:ProviderContract+' => '',
'Class:ProviderContract/Attribute:functionalcis_list' => 'CIs',
'Class:ProviderContract/Attribute:functionalcis_list+' => 'Alle configuratie items die gedekt zijn door dit leveranciers contract',
'Class:ProviderContract/Attribute:sla' => 'SLA',
'Class:ProviderContract/Attribute:sla+' => 'Service Level Agreement',
'Class:ProviderContract/Attribute:coverage' => 'Dienst uren',
'Class:ProviderContract/Attribute:coverage+' => '',
));
//
// Class: lnkContactToContract
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkContactToContract' => 'Link Contact / Contract',
'Class:lnkContactToContract+' => '',
'Class:lnkContactToContract/Attribute:contract_id' => 'Contract',
'Class:lnkContactToContract/Attribute:contract_id+' => '',
'Class:lnkContactToContract/Attribute:contract_name' => 'Contract Naam',
'Class:lnkContactToContract/Attribute:contract_name+' => '',
'Class:lnkContactToContract/Attribute:contact_id' => 'Contact',
'Class:lnkContactToContract/Attribute:contact_id+' => '',
'Class:lnkContactToContract/Attribute:contact_name' => 'Contact Naam',
'Class:lnkContactToContract/Attribute:contact_name+' => '',
));
//
// Class: lnkContractToDocument
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkContractToDocument' => 'Link Contract / Document',
'Class:lnkContractToDocument+' => '',
'Class:lnkContractToDocument/Attribute:contract_id' => 'Contract',
'Class:lnkContractToDocument/Attribute:contract_id+' => '',
'Class:lnkContractToDocument/Attribute:contract_name' => 'Contract Naam',
'Class:lnkContractToDocument/Attribute:contract_name+' => '',
'Class:lnkContractToDocument/Attribute:document_id' => 'Document',
'Class:lnkContractToDocument/Attribute:document_id+' => '',
'Class:lnkContractToDocument/Attribute:document_name' => 'Document Naam',
'Class:lnkContractToDocument/Attribute:document_name+' => '',
));
//
// Class: lnkFunctionalCIToProviderContract
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkFunctionalCIToProviderContract' => 'Link FunctionalCI / ProviderContract',
'Class:lnkFunctionalCIToProviderContract+' => '',
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_id' => 'Provider contract',
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_id+' => '',
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_name' => 'Provider contract Naam',
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_name+' => '',
'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id' => 'CI',
'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '',
'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'CI Naam',
'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '',
));
//
// Class: ServiceFamily
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:ServiceFamily' => 'Dienst Familie',
'Class:ServiceFamily+' => '',
'Class:ServiceFamily/Attribute:name' => 'Naam',
'Class:ServiceFamily/Attribute:name+' => '',
'Class:ServiceFamily/Attribute:services_list' => 'Diensten',
'Class:ServiceFamily/Attribute:services_list+' => 'Alle diensten in deze categorie',
));
//
// Class: Service
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:Service' => 'Dienst',
'Class:Service+' => '',
'Class:Service/Attribute:name' => 'Naam',
'Class:Service/Attribute:name+' => '',
'Class:Service/Attribute:org_id' => 'Leverancier',
'Class:Service/Attribute:org_id+' => '',
'Class:Service/Attribute:organization_name' => 'Leverancier Naam',
'Class:Service/Attribute:organization_name+' => '',
'Class:Service/Attribute:servicefamily_id' => 'Service Familie',
'Class:Service/Attribute:servicefamily_id+' => '',
'Class:Service/Attribute:servicefamily_name' => 'Service Familie Naam',
'Class:Service/Attribute:servicefamily_name+' => '',
'Class:Service/Attribute:description' => 'Omschrijving',
'Class:Service/Attribute:description+' => '',
'Class:Service/Attribute:documents_list' => 'Documenten',
'Class:Service/Attribute:documents_list+' => 'Alle documenten die gelinkt zijn aan deze dienst',
'Class:Service/Attribute:contacts_list' => 'Contacten',
'Class:Service/Attribute:contacts_list+' => 'Alle contacten voor deze dienst',
'Class:Service/Attribute:status' => 'Status',
'Class:Service/Attribute:status+' => '',
'Class:Service/Attribute:status/Value:implementation' => 'implementatie',
'Class:Service/Attribute:status/Value:implementation+' => 'implementatie',
'Class:Service/Attribute:status/Value:obsolete' => 'overbodig',
'Class:Service/Attribute:status/Value:obsolete+' => '',
'Class:Service/Attribute:status/Value:production' => 'productie',
'Class:Service/Attribute:status/Value:production+' => '',
'Class:Service/Attribute:customercontracts_list' => 'Klant contracten',
'Class:Service/Attribute:customercontracts_list+' => 'Alle klanten contracten die deze dienst hebben aangeschaft',
'Class:Service/Attribute:providercontracts_list' => 'Leveranciers contracten',
'Class:Service/Attribute:providercontracts_list+' => 'Alle leveranciers contracten die ondersteuning bieden voor deze dienst',
'Class:Service/Attribute:functionalcis_list' => 'Afhankelijk van CIs',
'Class:Service/Attribute:functionalcis_list+' => 'Alle configuratie items die gebruikt worden voor het beschikbaarheid van deze dienst',
'Class:Service/Attribute:servicesubcategories_list' => 'Dienst subcategorieën',
'Class:Service/Attribute:servicesubcategories_list+' => 'Alle subcategorieën van deze dienst',
));
//
// Class: lnkDocumentToService
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkDocumentToService' => 'Link Document / Dienst',
'Class:lnkDocumentToService+' => '',
'Class:lnkDocumentToService/Attribute:service_id' => 'Dienst',
'Class:lnkDocumentToService/Attribute:service_id+' => '',
'Class:lnkDocumentToService/Attribute:service_name' => 'Dienst Naam',
'Class:lnkDocumentToService/Attribute:service_name+' => '',
'Class:lnkDocumentToService/Attribute:document_id' => 'Document',
'Class:lnkDocumentToService/Attribute:document_id+' => '',
'Class:lnkDocumentToService/Attribute:document_name' => 'Document Naam',
'Class:lnkDocumentToService/Attribute:document_name+' => '',
));
//
// Class: lnkContactToService
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkContactToService' => 'Link Contact / Dienst',
'Class:lnkContactToService+' => '',
'Class:lnkContactToService/Attribute:service_id' => 'Dienst',
'Class:lnkContactToService/Attribute:service_id+' => '',
'Class:lnkContactToService/Attribute:service_name' => 'Dienst Naam',
'Class:lnkContactToService/Attribute:service_name+' => '',
'Class:lnkContactToService/Attribute:contact_id' => 'Contact',
'Class:lnkContactToService/Attribute:contact_id+' => '',
'Class:lnkContactToService/Attribute:contact_name' => 'Contact Naam',
'Class:lnkContactToService/Attribute:contact_name+' => '',
));
//
// Class: ServiceSubcategory
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:ServiceSubcategory' => 'Dienst Subcategorie',
'Class:ServiceSubcategory+' => '',
'Class:ServiceSubcategory/Attribute:name' => 'Naam',
'Class:ServiceSubcategory/Attribute:name+' => '',
'Class:ServiceSubcategory/Attribute:description' => 'Omschrijving',
'Class:ServiceSubcategory/Attribute:description+' => '',
'Class:ServiceSubcategory/Attribute:service_id' => 'Dienst',
'Class:ServiceSubcategory/Attribute:service_id+' => '',
'Class:ServiceSubcategory/Attribute:service_name' => 'Dienst naam',
'Class:ServiceSubcategory/Attribute:service_name+' => '',
'Class:ServiceSubcategory/Attribute:status' => 'Status',
'Class:ServiceSubcategory/Attribute:status+' => '',
'Class:ServiceSubcategory/Attribute:status/Value:implementation' => 'implementatie',
'Class:ServiceSubcategory/Attribute:status/Value:implementation+' => 'implementatie',
'Class:ServiceSubcategory/Attribute:status/Value:obsolete' => 'overbodig',
'Class:ServiceSubcategory/Attribute:status/Value:obsolete+' => 'overbodig',
'Class:ServiceSubcategory/Attribute:status/Value:production' => 'productie',
'Class:ServiceSubcategory/Attribute:status/Value:production+' => 'productie',
'Class:ServiceSubcategory/Attribute:request_type' => 'Verzoek type',
'Class:ServiceSubcategory/Attribute:request_type+' => '',
'Class:ServiceSubcategory/Attribute:request_type/Value:incident' => 'incident',
'Class:ServiceSubcategory/Attribute:request_type/Value:incident+' => 'incident',
'Class:ServiceSubcategory/Attribute:request_type/Value:service_request' => 'service request',
'Class:ServiceSubcategory/Attribute:request_type/Value:service_request+' => 'service request',
));
//
// Class: SLA
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:SLA' => 'SLA',
'Class:SLA+' => '',
'Class:SLA/Attribute:name' => 'Naam',
'Class:SLA/Attribute:name+' => '',
'Class:SLA/Attribute:description' => 'omschrijving',
'Class:SLA/Attribute:description+' => '',
'Class:SLA/Attribute:org_id' => 'Provider',
'Class:SLA/Attribute:org_id+' => '',
'Class:SLA/Attribute:organization_name' => 'Leveranciers Naam',
'Class:SLA/Attribute:organization_name+' => 'Gemeenschappelijke naam',
'Class:SLA/Attribute:slts_list' => 'SLTs',
'Class:SLA/Attribute:slts_list+' => 'Alle service level doelstellingen voor deze SLA',
'Class:SLA/Attribute:customercontracts_list' => 'Klant contracten',
'Class:SLA/Attribute:customercontracts_list+' => 'Alle klant contracten die gebruik maken van deze SLA',
));
//
// Class: SLT
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:SLT' => 'SLT',
'Class:SLT+' => '',
'Class:SLT/Attribute:name' => 'Naam',
'Class:SLT/Attribute:name+' => '',
'Class:SLT/Attribute:priority' => 'Prioriteit',
'Class:SLT/Attribute:priority+' => '',
'Class:SLT/Attribute:priority/Value:1' => 'kritisch',
'Class:SLT/Attribute:priority/Value:1+' => 'kritisch',
'Class:SLT/Attribute:priority/Value:2' => 'hoog',
'Class:SLT/Attribute:priority/Value:2+' => 'hoog',
'Class:SLT/Attribute:priority/Value:3' => 'normaal',
'Class:SLT/Attribute:priority/Value:3+' => 'normaal',
'Class:SLT/Attribute:priority/Value:4' => 'laag',
'Class:SLT/Attribute:priority/Value:4+' => 'laag',
'Class:SLT/Attribute:request_type' => 'Verzoek type',
'Class:SLT/Attribute:request_type+' => '',
'Class:SLT/Attribute:request_type/Value:incident' => 'incident',
'Class:SLT/Attribute:request_type/Value:incident+' => 'incident',
'Class:SLT/Attribute:request_type/Value:service_request' => 'service request',
'Class:SLT/Attribute:request_type/Value:service_request+' => 'service request',
'Class:SLT/Attribute:metric' => 'Metric',
'Class:SLT/Attribute:metric+' => '',
'Class:SLT/Attribute:metric/Value:tto' => 'TTO',
'Class:SLT/Attribute:metric/Value:tto+' => 'TTO',
'Class:SLT/Attribute:metric/Value:ttr' => 'TTR',
'Class:SLT/Attribute:metric/Value:ttr+' => 'TTR',
'Class:SLT/Attribute:value' => 'Waarde',
'Class:SLT/Attribute:value+' => '',
'Class:SLT/Attribute:unit' => 'Eenheid',
'Class:SLT/Attribute:unit+' => '',
'Class:SLT/Attribute:unit/Value:hours' => 'uren',
'Class:SLT/Attribute:unit/Value:hours+' => 'uren',
'Class:SLT/Attribute:unit/Value:minutes' => 'minuten',
'Class:SLT/Attribute:unit/Value:minutes+' => 'minuten',
));
//
// Class: lnkSLAToSLT
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkSLAToSLT' => 'Link SLA / SLT',
'Class:lnkSLAToSLT+' => '',
'Class:lnkSLAToSLT/Attribute:sla_id' => 'SLA',
'Class:lnkSLAToSLT/Attribute:sla_id+' => '',
'Class:lnkSLAToSLT/Attribute:sla_name' => 'SLA Naam',
'Class:lnkSLAToSLT/Attribute:sla_name+' => '',
'Class:lnkSLAToSLT/Attribute:slt_id' => 'SLT',
'Class:lnkSLAToSLT/Attribute:slt_id+' => '',
'Class:lnkSLAToSLT/Attribute:slt_name' => 'SLT Naam',
'Class:lnkSLAToSLT/Attribute:slt_name+' => '',
));
//
// Class: lnkCustomerContractToService
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkCustomerContractToService' => 'Link Customer Contract / Dienst',
'Class:lnkCustomerContractToService+' => '',
'Class:lnkCustomerContractToService/Attribute:customercontract_id' => 'Klant contract',
'Class:lnkCustomerContractToService/Attribute:customercontract_id+' => '',
'Class:lnkCustomerContractToService/Attribute:customercontract_name' => 'Klant contract Name',
'Class:lnkCustomerContractToService/Attribute:customercontract_name+' => '',
'Class:lnkCustomerContractToService/Attribute:service_id' => 'Dienst',
'Class:lnkCustomerContractToService/Attribute:service_id+' => '',
'Class:lnkCustomerContractToService/Attribute:service_name' => 'Dienst Naam',
'Class:lnkCustomerContractToService/Attribute:service_name+' => '',
'Class:lnkCustomerContractToService/Attribute:sla_id' => 'SLA',
'Class:lnkCustomerContractToService/Attribute:sla_id+' => '',
'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA Naam',
'Class:lnkCustomerContractToService/Attribute:sla_name+' => '',
));
//
// Class: lnkCustomerContractToProviderContract
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkCustomerContractToProviderContract' => 'Link Klant Contract / Leveranciers Contract',
'Class:lnkCustomerContractToProviderContract+' => '',
'Class:lnkCustomerContractToProviderContract/Attribute:customercontract_id' => 'Leveranciers contract',
'Class:lnkCustomerContractToProviderContract/Attribute:customercontract_id+' => '',
'Class:lnkCustomerContractToProviderContract/Attribute:customercontract_name' => 'Klant contract Naam',
'Class:lnkCustomerContractToProviderContract/Attribute:customercontract_name+' => '',
'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_id' => 'Leveranciers contract',
'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_id+' => '',
'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name' => 'Leveranciers contract Naam',
'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name+' => '',
));
//
// Class: lnkCustomerContractToFunctionalCI
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkCustomerContractToFunctionalCI' => 'Link Klant Contract / FunctioneleCI',
'Class:lnkCustomerContractToFunctionalCI+' => '',
'Class:lnkCustomerContractToFunctionalCI/Attribute:customercontract_id' => 'Klant contract',
'Class:lnkCustomerContractToFunctionalCI/Attribute:customercontract_id+' => '',
'Class:lnkCustomerContractToFunctionalCI/Attribute:customercontract_name' => 'Klant contract Naam',
'Class:lnkCustomerContractToFunctionalCI/Attribute:customercontract_name+' => '',
'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_id' => 'CI',
'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_id+' => '',
'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name' => 'CI Naam',
'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name+' => '',
));
//
// Class: DeliveryModel
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:DeliveryModel' => 'Delivery Model',
'Class:DeliveryModel+' => '',
'Class:DeliveryModel/Attribute:name' => 'Naam',
'Class:DeliveryModel/Attribute:name+' => '',
'Class:DeliveryModel/Attribute:org_id' => 'Organisatie',
'Class:DeliveryModel/Attribute:org_id+' => '',
'Class:DeliveryModel/Attribute:organization_name' => 'Organisatie Naam',
'Class:DeliveryModel/Attribute:organization_name+' => 'Gemeenschappelijke naam',
'Class:DeliveryModel/Attribute:description' => 'Omschrijving',
'Class:DeliveryModel/Attribute:description+' => '',
'Class:DeliveryModel/Attribute:contacts_list' => 'Contacten',
'Class:DeliveryModel/Attribute:contacts_list+' => 'Alle contacten (Teams en Personen) voor dit delivery model',
'Class:DeliveryModel/Attribute:customers_list' => 'Klanten',
'Class:DeliveryModel/Attribute:customers_list+' => 'Alle klanten die gebruik maken van dit delivering model',
));
//
// Class: lnkDeliveryModelToContact
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkDeliveryModelToContact' => 'Link Delivery Model / Contact',
'Class:lnkDeliveryModelToContact+' => '',
'Class:lnkDeliveryModelToContact/Attribute:deliverymodel_id' => 'Delivery model',
'Class:lnkDeliveryModelToContact/Attribute:deliverymodel_id+' => '',
'Class:lnkDeliveryModelToContact/Attribute:deliverymodel_name' => 'Delivery model naam',
'Class:lnkDeliveryModelToContact/Attribute:deliverymodel_name+' => '',
'Class:lnkDeliveryModelToContact/Attribute:contact_id' => 'Contact',
'Class:lnkDeliveryModelToContact/Attribute:contact_id+' => '',
'Class:lnkDeliveryModelToContact/Attribute:contact_name' => 'Contact naam',
'Class:lnkDeliveryModelToContact/Attribute:contact_name+' => '',
'Class:lnkDeliveryModelToContact/Attribute:role_id' => 'Rol',
'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '',
'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Rol naam',
'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '',
));
?>

View File

@@ -56,7 +56,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field>finalclass</db_final_class_field>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -299,7 +298,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -348,7 +346,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -493,7 +490,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -667,7 +663,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="contract_id"/>
<attribute id="contact_id"/>
@@ -749,7 +744,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="contract_id"/>
<attribute id="document_id"/>
@@ -831,7 +825,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="providercontract_id"/>
<attribute id="functionalci_id"/>
@@ -912,7 +905,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -978,7 +970,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1168,7 +1159,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="service_id"/>
<attribute id="document_id"/>
@@ -1250,7 +1240,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="service_id"/>
<attribute id="contact_id"/>
@@ -1331,7 +1320,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1439,7 +1427,7 @@
<item id="request_type">
<rank>50</rank>
</item>
<item id="service_provider">
<item id="service_org_id">
<rank>60</rank>
</item>
</items>
@@ -1472,7 +1460,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1581,7 +1568,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1729,7 +1715,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="sla_id"/>
<attribute id="slt_id"/>
@@ -1851,7 +1836,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="customercontract_id"/>
<attribute id="service_id"/>
@@ -1949,7 +1933,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="service_id"/>
<attribute id="providercontract_id"/>
@@ -2031,7 +2014,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="service_id"/>
<attribute id="functionalci_id"/>
@@ -2112,7 +2094,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -2159,7 +2140,7 @@
<field id="customers_list" xsi:type="AttributeLinkedSet">
<linked_class>Organization</linked_class>
<ext_key_to_me>deliverymodel_id</ext_key_to_me>
<edit_mode>none</edit_mode>
<edit_mode>add_remove</edit_mode>
<count_min>0</count_min>
<count_max>0</count_max>
</field>
@@ -2218,7 +2199,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="deliverymodel_id"/>
<attribute id="contact_id"/>

View File

@@ -7,7 +7,7 @@ SetupWebPage::AddModule(
array(
// Identification
//
'label' => 'Service Management (services, SLAs, contracts)',
'label' => 'Service Management',
'category' => 'business',
// Setup

View File

@@ -0,0 +1,528 @@
<?php
// Copyright (C) 2010-2012 Combodo SARL
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* @author LinProfs <info@linprofs.com>
*
* Linux & Open Source Professionals
* http://www.linprofs.com
*
* @copyright Copyright (C) 2010-2012 Combodo SARL
* @licence http://opensource.org/licenses/AGPL-3.0
*/
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Menu:ServiceManagement' => 'Service Management',
'Menu:ServiceManagement+' => 'Service Management Overzicht',
'Menu:Service:Overview' => 'Overzicht',
'Menu:Service:Overview+' => '',
'UI-ServiceManagementMenu-ContractsBySrvLevel' => 'Contracten per service level',
'UI-ServiceManagementMenu-ContractsByStatus' => 'Contracten met status',
'UI-ServiceManagementMenu-ContractsEndingIn30Days' => 'Contracten die in minder dan 30 dagen eindigen',
'Menu:ServiceType' => 'Dienst Types',
'Menu:ServiceType+' => 'Dienst Types',
'Menu:ProviderContract' => 'Leveranciers contracten',
'Menu:ProviderContract+' => 'Leveranciers contracten',
'Menu:CustomerContract' => 'Klant contracten',
'Menu:CustomerContract+' => 'Klant contracten',
'Menu:ServiceSubcategory' => 'Dienst subcategorieën',
'Menu:ServiceSubcategory+' => 'Dienst subcategorieën',
'Menu:Service' => 'Diensten',
'Menu:Service+' => 'Diensten',
'Menu:ServiceElement' => 'Dienst elementen',
'Menu:ServiceElement+' => 'Dienst elementen',
'Menu:SLA' => 'SLAs',
'Menu:SLA+' => 'Service Level Agreements',
'Menu:SLT' => 'SLTs',
'Menu:SLT+' => 'Service Level Targets',
'Menu:DeliveryModel' => 'Delivery models',
'Menu:DeliveryModel+' => 'Delivery models',
'Menu:ServiceFamily' => 'Dienst families',
'Menu:ServiceFamily+' => 'Dienst families',
'Menu:Procedure' => 'Proceduren catalog',
'Menu:Procedure+' => 'Alle proceduren catalog',
));
//
// Class: Organization
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:Organization/Attribute:deliverymodel_id' => 'Delivery model',
'Class:Organization/Attribute:deliverymodel_id+' => '',
'Class:Organization/Attribute:deliverymodel_name' => 'Delivery model name',
));
//
// Class: ContractType
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:ContractType' => 'Contract Type',
'Class:ContractType+' => '',
));
//
// Class: Contract
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:ContractType' => 'Contract Type',
'Class:ContractType+' => '',
'Class:Contract' => 'Contract',
'Class:Contract+' => '',
'Class:Contract/Attribute:name' => 'Naam',
'Class:Contract/Attribute:name+' => '',
'Class:Contract/Attribute:org_id' => 'Klant',
'Class:Contract/Attribute:org_id+' => '',
'Class:Contract/Attribute:organization_name' => 'Klant Naam',
'Class:Contract/Attribute:organization_name+' => 'Gemeenschappelijke naam',
'Class:Contract/Attribute:contacts_list' => 'Contacten',
'Class:Contract/Attribute:contacts_list+' => 'Alle contacten voor dit klant contract',
'Class:Contract/Attribute:documents_list' => 'Documenten',
'Class:Contract/Attribute:documents_list+' => 'Alle documenten voor dit klant contract',
'Class:Contract/Attribute:description' => 'Omschrijving',
'Class:Contract/Attribute:description+' => '',
'Class:Contract/Attribute:start_date' => 'Start datum',
'Class:Contract/Attribute:start_date+' => '',
'Class:Contract/Attribute:end_date' => 'Eind datum',
'Class:Contract/Attribute:end_date+' => '',
'Class:Contract/Attribute:cost' => 'Kosten',
'Class:Contract/Attribute:cost+' => '',
'Class:Contract/Attribute:cost_currency' => 'Valuta',
'Class:Contract/Attribute:cost_currency+' => '',
'Class:Contract/Attribute:cost_currency/Value:dollars' => 'Dollars',
'Class:Contract/Attribute:cost_currency/Value:dollars+' => '',
'Class:Contract/Attribute:cost_currency/Value:euros' => 'Euros',
'Class:Contract/Attribute:cost_currency/Value:euros+' => '',
'Class:Contract/Attribute:contracttype_id' => 'Contract type',
'Class:Contract/Attribute:contracttype_id+' => '',
'Class:Contract/Attribute:contracttype_name' => 'Contract type Name',
'Class:Contract/Attribute:contracttype_name+' => '',
'Class:Contract/Attribute:billing_frequency' => 'Facturering frequentie',
'Class:Contract/Attribute:billing_frequency+' => '',
'Class:Contract/Attribute:cost_unit' => 'Kost eenheid',
'Class:Contract/Attribute:cost_unit+' => '',
'Class:Contract/Attribute:provider_id' => 'Leverancier',
'Class:Contract/Attribute:provider_id+' => '',
'Class:Contract/Attribute:provider_name' => 'Leverancier Naam',
'Class:Contract/Attribute:provider_name+' => 'Gemeenschappelijke naam',
'Class:Contract/Attribute:status' => 'Status',
'Class:Contract/Attribute:status+' => '',
'Class:Contract/Attribute:status/Value:implementation' => 'implementatie',
'Class:Contract/Attribute:status/Value:implementation+' => 'implementatie',
'Class:Contract/Attribute:status/Value:obsolete' => 'overbodig',
'Class:Contract/Attribute:status/Value:obsolete+' => 'overbodig',
'Class:Contract/Attribute:status/Value:production' => 'productie',
'Class:Contract/Attribute:status/Value:production+' => 'productie',
'Class:Contract/Attribute:finalclass' => 'Type',
'Class:Contract/Attribute:finalclass+' => '',
));
//
// Class: CustomerContract
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:CustomerContract' => 'Klant Contract',
'Class:CustomerContract+' => '',
'Class:CustomerContract/Attribute:services_list' => 'Diensten',
'Class:CustomerContract/Attribute:services_list+' => 'Alle diensten die zijn aangeschaft voor dit contract',
));
//
// Class: ProviderContract
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:ProviderContract' => 'Leveranciers Contract',
'Class:ProviderContract+' => '',
'Class:ProviderContract/Attribute:functionalcis_list' => 'CIs',
'Class:ProviderContract/Attribute:functionalcis_list+' => 'Alle configuratie items die gedekt zijn door dit leveranciers contract',
'Class:ProviderContract/Attribute:sla' => 'SLA',
'Class:ProviderContract/Attribute:sla+' => 'Service Level Agreement',
'Class:ProviderContract/Attribute:coverage' => 'Dienst uren',
'Class:ProviderContract/Attribute:coverage+' => '',
'Class:ProviderContract/Attribute:contracttype_id' => 'Contract type',
'Class:ProviderContract/Attribute:contracttype_id+' => '',
'Class:ProviderContract/Attribute:contracttype_name' => 'Contract type name',
'Class:ProviderContract/Attribute:contracttype_name+' => '',
));
//
// Class: lnkContactToContract
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkContactToContract' => 'Link Contact / Contract',
'Class:lnkContactToContract+' => '',
'Class:lnkContactToContract/Attribute:contract_id' => 'Contract',
'Class:lnkContactToContract/Attribute:contract_id+' => '',
'Class:lnkContactToContract/Attribute:contract_name' => 'Contract Naam',
'Class:lnkContactToContract/Attribute:contract_name+' => '',
'Class:lnkContactToContract/Attribute:contact_id' => 'Contact',
'Class:lnkContactToContract/Attribute:contact_id+' => '',
'Class:lnkContactToContract/Attribute:contact_name' => 'Contact Naam',
'Class:lnkContactToContract/Attribute:contact_name+' => '',
));
//
// Class: lnkContractToDocument
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkContractToDocument' => 'Link Contract / Document',
'Class:lnkContractToDocument+' => '',
'Class:lnkContractToDocument/Attribute:contract_id' => 'Contract',
'Class:lnkContractToDocument/Attribute:contract_id+' => '',
'Class:lnkContractToDocument/Attribute:contract_name' => 'Contract Naam',
'Class:lnkContractToDocument/Attribute:contract_name+' => '',
'Class:lnkContractToDocument/Attribute:document_id' => 'Document',
'Class:lnkContractToDocument/Attribute:document_id+' => '',
'Class:lnkContractToDocument/Attribute:document_name' => 'Document Naam',
'Class:lnkContractToDocument/Attribute:document_name+' => '',
));
//
// Class: lnkFunctionalCIToProviderContract
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkFunctionalCIToProviderContract' => 'Link FunctionalCI / ProviderContract',
'Class:lnkFunctionalCIToProviderContract+' => '',
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_id' => 'Provider contract',
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_id+' => '',
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_name' => 'Provider contract Naam',
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_name+' => '',
'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id' => 'CI',
'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '',
'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'CI Naam',
'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '',
));
//
// Class: ServiceFamily
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:ServiceFamily' => 'Dienst Familie',
'Class:ServiceFamily+' => '',
'Class:ServiceFamily/Attribute:name' => 'Naam',
'Class:ServiceFamily/Attribute:name+' => '',
'Class:ServiceFamily/Attribute:services_list' => 'Diensten',
'Class:ServiceFamily/Attribute:services_list+' => 'Alle diensten in deze categorie',
));
//
// Class: Service
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:Service' => 'Dienst',
'Class:Service+' => '',
'Class:Service/Attribute:name' => 'Naam',
'Class:Service/Attribute:name+' => '',
'Class:Service/Attribute:org_id' => 'Leverancier',
'Class:Service/Attribute:org_id+' => '',
'Class:Service/Attribute:organization_name' => 'Leverancier Naam',
'Class:Service/Attribute:organization_name+' => '',
'Class:Service/Attribute:servicefamily_id' => 'Service Familie',
'Class:Service/Attribute:servicefamily_id+' => '',
'Class:Service/Attribute:servicefamily_name' => 'Service Familie Naam',
'Class:Service/Attribute:servicefamily_name+' => '',
'Class:Service/Attribute:description' => 'Omschrijving',
'Class:Service/Attribute:description+' => '',
'Class:Service/Attribute:documents_list' => 'Documenten',
'Class:Service/Attribute:documents_list+' => 'Alle documenten die gelinkt zijn aan deze dienst',
'Class:Service/Attribute:contacts_list' => 'Contacten',
'Class:Service/Attribute:contacts_list+' => 'Alle contacten voor deze dienst',
'Class:Service/Attribute:status' => 'Status',
'Class:Service/Attribute:status+' => '',
'Class:Service/Attribute:status/Value:implementation' => 'implementatie',
'Class:Service/Attribute:status/Value:implementation+' => 'implementatie',
'Class:Service/Attribute:status/Value:obsolete' => 'overbodig',
'Class:Service/Attribute:status/Value:obsolete+' => '',
'Class:Service/Attribute:status/Value:production' => 'productie',
'Class:Service/Attribute:status/Value:production+' => '',
'Class:Service/Attribute:customercontracts_list' => 'Klant contracten',
'Class:Service/Attribute:customercontracts_list+' => 'Alle klanten contracten die deze dienst hebben aangeschaft',
'Class:Service/Attribute:providercontracts_list' => 'Leveranciers contracten',
'Class:Service/Attribute:providercontracts_list+' => 'Alle leveranciers contracten die ondersteuning bieden voor deze dienst',
'Class:Service/Attribute:functionalcis_list' => 'Afhankelijk van CIs',
'Class:Service/Attribute:functionalcis_list+' => 'Alle configuratie items die gebruikt worden voor het beschikbaarheid van deze dienst',
'Class:Service/Attribute:servicesubcategories_list' => 'Dienst subcategorieën',
'Class:Service/Attribute:servicesubcategories_list+' => 'Alle subcategorieën van deze dienst',
));
//
// Class: lnkDocumentToService
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkDocumentToService' => 'Link Document / Dienst',
'Class:lnkDocumentToService+' => '',
'Class:lnkDocumentToService/Attribute:service_id' => 'Dienst',
'Class:lnkDocumentToService/Attribute:service_id+' => '',
'Class:lnkDocumentToService/Attribute:service_name' => 'Dienst Naam',
'Class:lnkDocumentToService/Attribute:service_name+' => '',
'Class:lnkDocumentToService/Attribute:document_id' => 'Document',
'Class:lnkDocumentToService/Attribute:document_id+' => '',
'Class:lnkDocumentToService/Attribute:document_name' => 'Document Naam',
'Class:lnkDocumentToService/Attribute:document_name+' => '',
));
//
// Class: lnkContactToService
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkContactToService' => 'Link Contact / Dienst',
'Class:lnkContactToService+' => '',
'Class:lnkContactToService/Attribute:service_id' => 'Dienst',
'Class:lnkContactToService/Attribute:service_id+' => '',
'Class:lnkContactToService/Attribute:service_name' => 'Dienst Naam',
'Class:lnkContactToService/Attribute:service_name+' => '',
'Class:lnkContactToService/Attribute:contact_id' => 'Contact',
'Class:lnkContactToService/Attribute:contact_id+' => '',
'Class:lnkContactToService/Attribute:contact_name' => 'Contact Naam',
'Class:lnkContactToService/Attribute:contact_name+' => '',
));
//
// Class: ServiceSubcategory
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:ServiceSubcategory' => 'Dienst Subcategorie',
'Class:ServiceSubcategory+' => '',
'Class:ServiceSubcategory/Attribute:name' => 'Naam',
'Class:ServiceSubcategory/Attribute:name+' => '',
'Class:ServiceSubcategory/Attribute:description' => 'Omschrijving',
'Class:ServiceSubcategory/Attribute:description+' => '',
'Class:ServiceSubcategory/Attribute:service_id' => 'Dienst',
'Class:ServiceSubcategory/Attribute:service_id+' => '',
'Class:ServiceSubcategory/Attribute:service_name' => 'Dienst naam',
'Class:ServiceSubcategory/Attribute:service_name+' => '',
'Class:ServiceSubcategory/Attribute:request_type' => 'Verzoek type',
'Class:ServiceSubcategory/Attribute:request_type+' => '',
'Class:ServiceSubcategory/Attribute:request_type/Value:incident' => 'incident',
'Class:ServiceSubcategory/Attribute:request_type/Value:incident+' => 'incident',
'Class:ServiceSubcategory/Attribute:request_type/Value:service_request' => 'service request',
'Class:ServiceSubcategory/Attribute:request_type/Value:service_request+' => 'service request',
'Class:ServiceSubcategory/Attribute:status' => 'Status',
'Class:ServiceSubcategory/Attribute:status+' => '',
'Class:ServiceSubcategory/Attribute:status/Value:implementation' => 'implementatie',
'Class:ServiceSubcategory/Attribute:status/Value:implementation+' => 'implementatie',
'Class:ServiceSubcategory/Attribute:status/Value:obsolete' => 'overbodig',
'Class:ServiceSubcategory/Attribute:status/Value:obsolete+' => 'overbodig',
'Class:ServiceSubcategory/Attribute:status/Value:production' => 'productie',
'Class:ServiceSubcategory/Attribute:status/Value:production+' => 'productie',
));
//
// Class: SLA
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:SLA' => 'SLA',
'Class:SLA+' => '',
'Class:SLA/Attribute:name' => 'Naam',
'Class:SLA/Attribute:name+' => '',
'Class:SLA/Attribute:description' => 'omschrijving',
'Class:SLA/Attribute:description+' => '',
'Class:SLA/Attribute:org_id' => 'Provider',
'Class:SLA/Attribute:org_id+' => '',
'Class:SLA/Attribute:organization_name' => 'Leveranciers Naam',
'Class:SLA/Attribute:organization_name+' => 'Gemeenschappelijke naam',
'Class:SLA/Attribute:slts_list' => 'SLTs',
'Class:SLA/Attribute:slts_list+' => 'Alle service level doelstellingen voor deze SLA',
'Class:SLA/Attribute:customercontracts_list' => 'Klant contracten',
'Class:SLA/Attribute:customercontracts_list+' => 'Alle klant contracten die gebruik maken van deze SLA',
));
//
// Class: SLT
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:SLT' => 'SLT',
'Class:SLT+' => '',
'Class:SLT/Attribute:name' => 'Naam',
'Class:SLT/Attribute:name+' => '',
'Class:SLT/Attribute:priority' => 'Prioriteit',
'Class:SLT/Attribute:priority+' => '',
'Class:SLT/Attribute:priority/Value:1' => 'kritisch',
'Class:SLT/Attribute:priority/Value:1+' => 'kritisch',
'Class:SLT/Attribute:priority/Value:2' => 'hoog',
'Class:SLT/Attribute:priority/Value:2+' => 'hoog',
'Class:SLT/Attribute:priority/Value:3' => 'normaal',
'Class:SLT/Attribute:priority/Value:3+' => 'normaal',
'Class:SLT/Attribute:priority/Value:4' => 'laag',
'Class:SLT/Attribute:priority/Value:4+' => 'laag',
'Class:SLT/Attribute:request_type' => 'Verzoek type',
'Class:SLT/Attribute:request_type+' => '',
'Class:SLT/Attribute:request_type/Value:incident' => 'incident',
'Class:SLT/Attribute:request_type/Value:incident+' => 'incident',
'Class:SLT/Attribute:request_type/Value:service_request' => 'service request',
'Class:SLT/Attribute:request_type/Value:service_request+' => 'service request',
'Class:SLT/Attribute:metric' => 'Metric',
'Class:SLT/Attribute:metric+' => '',
'Class:SLT/Attribute:metric/Value:tto' => 'TTO',
'Class:SLT/Attribute:metric/Value:tto+' => 'TTO',
'Class:SLT/Attribute:metric/Value:ttr' => 'TTR',
'Class:SLT/Attribute:metric/Value:ttr+' => 'TTR',
'Class:SLT/Attribute:value' => 'Waarde',
'Class:SLT/Attribute:value+' => '',
'Class:SLT/Attribute:unit' => 'Eenheid',
'Class:SLT/Attribute:unit+' => '',
'Class:SLT/Attribute:unit/Value:hours' => 'uren',
'Class:SLT/Attribute:unit/Value:hours+' => 'uren',
'Class:SLT/Attribute:unit/Value:minutes' => 'minuten',
'Class:SLT/Attribute:unit/Value:minutes+' => 'minuten',
));
//
// Class: lnkSLAToSLT
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkSLAToSLT' => 'Link SLA / SLT',
'Class:lnkSLAToSLT+' => '',
'Class:lnkSLAToSLT/Attribute:sla_id' => 'SLA',
'Class:lnkSLAToSLT/Attribute:sla_id+' => '',
'Class:lnkSLAToSLT/Attribute:sla_name' => 'SLA Naam',
'Class:lnkSLAToSLT/Attribute:sla_name+' => '',
'Class:lnkSLAToSLT/Attribute:slt_id' => 'SLT',
'Class:lnkSLAToSLT/Attribute:slt_id+' => '',
'Class:lnkSLAToSLT/Attribute:slt_name' => 'SLT Naam',
'Class:lnkSLAToSLT/Attribute:slt_name+' => '',
));
//
// Class: lnkCustomerContractToService
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkCustomerContractToService' => 'Link Customer Contract / Dienst',
'Class:lnkCustomerContractToService+' => '',
'Class:lnkCustomerContractToService/Attribute:customercontract_id' => 'Klant contract',
'Class:lnkCustomerContractToService/Attribute:customercontract_id+' => '',
'Class:lnkCustomerContractToService/Attribute:customercontract_name' => 'Klant contract Naam',
'Class:lnkCustomerContractToService/Attribute:customercontract_name+' => '',
'Class:lnkCustomerContractToService/Attribute:service_id' => 'Dienst',
'Class:lnkCustomerContractToService/Attribute:service_id+' => '',
'Class:lnkCustomerContractToService/Attribute:service_name' => 'Dienst Naam',
'Class:lnkCustomerContractToService/Attribute:service_name+' => '',
'Class:lnkCustomerContractToService/Attribute:sla_id' => 'SLA',
'Class:lnkCustomerContractToService/Attribute:sla_id+' => '',
'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA Naam',
'Class:lnkCustomerContractToService/Attribute:sla_name+' => '',
));
//
// Class: lnkProviderContractToService
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkProviderContractToService' => 'Link Provider Contract / Dienst',
'Class:lnkProviderContractToService+' => '',
'Class:lnkProviderContractToService/Attribute:service_id' => 'Dienst',
'Class:lnkProviderContractToService/Attribute:service_id+' => '',
'Class:lnkProviderContractToService/Attribute:service_name' => 'Dienst Name',
'Class:lnkProviderContractToService/Attribute:service_name+' => '',
'Class:lnkProviderContractToService/Attribute:providercontract_id' => 'Leveranciers contract',
'Class:lnkProviderContractToService/Attribute:providercontract_id+' => '',
'Class:lnkProviderContractToService/Attribute:providercontract_name' => 'Leveranciers contract Naam',
'Class:lnkProviderContractToService/Attribute:providercontract_name+' => '',
));
//
// Class: lnkFunctionalCIToService
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkFunctionalCIToService' => 'Link FunctionalCI / Dienst',
'Class:lnkFunctionalCIToService+' => '',
'Class:lnkFunctionalCIToService/Attribute:service_id' => 'Dienst',
'Class:lnkFunctionalCIToService/Attribute:service_id+' => '',
'Class:lnkFunctionalCIToService/Attribute:service_name' => 'Dienst Naam',
'Class:lnkFunctionalCIToService/Attribute:service_name+' => '',
'Class:lnkFunctionalCIToService/Attribute:functionalci_id' => 'CI',
'Class:lnkFunctionalCIToService/Attribute:functionalci_id+' => '',
'Class:lnkFunctionalCIToService/Attribute:functionalci_name' => 'CI Naam',
'Class:lnkFunctionalCIToService/Attribute:functionalci_name+' => '',
));
//
// Class: DeliveryModel
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:DeliveryModel' => 'Delivery Model',
'Class:DeliveryModel+' => '',
'Class:DeliveryModel/Attribute:name' => 'Naam',
'Class:DeliveryModel/Attribute:name+' => '',
'Class:DeliveryModel/Attribute:org_id' => 'Organisatie',
'Class:DeliveryModel/Attribute:org_id+' => '',
'Class:DeliveryModel/Attribute:organization_name' => 'Organisatie Naam',
'Class:DeliveryModel/Attribute:organization_name+' => 'Gemeenschappelijke naam',
'Class:DeliveryModel/Attribute:description' => 'Omschrijving',
'Class:DeliveryModel/Attribute:description+' => '',
'Class:DeliveryModel/Attribute:contacts_list' => 'Contacten',
'Class:DeliveryModel/Attribute:contacts_list+' => 'Alle contacten (Teams en Personen) voor dit delivery model',
'Class:DeliveryModel/Attribute:customers_list' => 'Klanten',
'Class:DeliveryModel/Attribute:customers_list+' => 'Alle klanten die gebruik maken van dit delivering model',
));
//
// Class: lnkDeliveryModelToContact
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkDeliveryModelToContact' => 'Link Delivery Model / Contact',
'Class:lnkDeliveryModelToContact+' => '',
'Class:lnkDeliveryModelToContact/Attribute:deliverymodel_id' => 'Delivery model',
'Class:lnkDeliveryModelToContact/Attribute:deliverymodel_id+' => '',
'Class:lnkDeliveryModelToContact/Attribute:deliverymodel_name' => 'Delivery model naam',
'Class:lnkDeliveryModelToContact/Attribute:deliverymodel_name+' => '',
'Class:lnkDeliveryModelToContact/Attribute:contact_id' => 'Contact',
'Class:lnkDeliveryModelToContact/Attribute:contact_id+' => '',
'Class:lnkDeliveryModelToContact/Attribute:contact_name' => 'Contact naam',
'Class:lnkDeliveryModelToContact/Attribute:contact_name+' => '',
'Class:lnkDeliveryModelToContact/Attribute:role_id' => 'Rol',
'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '',
'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Rol naam',
'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '',
));
?>

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2012 Combodo SARL
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
@@ -77,7 +77,16 @@ class SLAComputation implements iWorkingTimeComputer
*/
public function GetDeadline($oObject, $iDuration, DateTime $oStartDate)
{
return self::$m_oAddOn->GetDeadline($oObject, $iDuration, $oStartDate);
if (class_exists('WorkingTimeRecorder'))
{
WorkingTimeRecorder::Trace(WorkingTimeRecorder::TRACE_DEBUG, __class__.'::'.__function__);
}
$oEndDate = self::$m_oAddOn->GetDeadline($oObject, $iDuration, $oStartDate);
if (class_exists('WorkingTimeRecorder'))
{
WorkingTimeRecorder::SetValues($oStartDate->format('U'), $oEndDate->format('U'), $iDuration, WorkingTimeRecorder::COMPUTED_END);
}
return $oEndDate;
}
/**
@@ -89,7 +98,16 @@ class SLAComputation implements iWorkingTimeComputer
*/
public function GetOpenDuration($oObject, DateTime $oStartDate, DateTime $oEndDate)
{
return self::$m_oAddOn->GetOpenDuration($oObject, $oStartDate, $oEndDate);
if (class_exists('WorkingTimeRecorder'))
{
WorkingTimeRecorder::Trace(WorkingTimeRecorder::TRACE_DEBUG, __class__.'::'.__function__);
}
$iDuration = self::$m_oAddOn->GetOpenDuration($oObject, $oStartDate, $oEndDate);
if (class_exists('WorkingTimeRecorder'))
{
WorkingTimeRecorder::SetValues($oStartDate->format('U'), $oEndDate->format('U'), $iDuration, WorkingTimeRecorder::COMPUTED_DURATION);
}
return $iDuration;
}
}
@@ -119,6 +137,10 @@ class SLAComputationAddOnAPI
*/
public static function GetDeadline($oTicket, $iDuration, DateTime $oStartDate)
{
if (class_exists('WorkingTimeRecorder'))
{
WorkingTimeRecorder::Trace(WorkingTimeRecorder::TRACE_DEBUG, __class__.'::'.__function__);
}
// Default implementation: 24x7, no holidays: to compute the deadline, just add
// the specified duration to the given date/time
$oResult = clone $oStartDate;
@@ -135,6 +157,10 @@ class SLAComputationAddOnAPI
*/
public static function GetOpenDuration($oTicket, DateTime $oStartDate, DateTime $oEndDate)
{
if (class_exists('WorkingTimeRecorder'))
{
WorkingTimeRecorder::Trace(WorkingTimeRecorder::TRACE_DEBUG, __class__.'::'.__function__);
}
return abs($oEndDate->format('U') - $oStartDate->format('U'));
}
}

View File

@@ -11,7 +11,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -267,7 +266,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -522,7 +520,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -776,7 +773,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1030,7 +1026,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1149,7 +1144,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -1282,7 +1276,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="name"/>
<attribute id="datacenterdevice_name"/>
@@ -1389,7 +1382,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="storagesystem_name"/>
<attribute id="name"/>
@@ -1567,7 +1559,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="volume_id"/>
</attributes>
@@ -1659,7 +1650,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="san_id"/>
</attributes>

View File

@@ -31,7 +31,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field>finalclass</db_final_class_field>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="ref"/>
</attributes>
@@ -213,7 +212,7 @@
}
]]></code>
</method>
</methods>
</methods>
<presentation>
<details>
<items>
@@ -327,7 +326,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="ticket_id"/>
<attribute id="contact_id"/>
@@ -423,7 +421,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="ticket_id"/>
<attribute id="functionalci_id"/>
@@ -522,7 +519,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -747,61 +743,80 @@
<methods>
<method id="Set">
<arguments>
<argument>
<label>Field Code</label>
<argument id="1">
<type>attcode</type>
<mandatory>true</mandatory>
<description>The field to set, in the current object</description>
</argument>
<argument>
<label>Value</label>
<argument id="2">
<type>string</type>
<mandatory>true</mandatory>
<description>The value to set</description>
</argument>
</arguments>
</method>
<method id="SetCurrentDate">
<arguments>
<argument>
<label>Field Code</label>
<argument id="1">
<type>attcode</type>
<mandatory>true</mandatory>
<description>The field, in the current object, to set to
the current date</description>
</argument>
</arguments>
</method>
<method id="SetCurrentUser">
<arguments>
<argument id="1">
<type>attcode</type>
<mandatory>true</mandatory>
</argument>
</arguments>
</method>
<method id="SetElapsedTime">
<arguments>
<argument id="1">
<type>attcode</type>
<mandatory>true</mandatory>
</argument>
<argument id="2">
<type>attcode</type>
<mandatory>true</mandatory>
</argument>
<argument id="3">
<type>string</type>
<mandatory>false</mandatory>
</argument>
</arguments>
</method>
<method id="Reset">
<arguments>
<argument>
<label>Field Code</label>
<argument id="1">
<type>attcode</type>
<mandatory>true</mandatory>
<description>The field, in the current object, to reset
to its default value</description>
</argument>
</arguments>
</method>
<method id="Copy">
<arguments>
<argument>
<label>Destination</label>
<argument id="1">
<type>attcode</type>
<mandatory>true</mandatory>
<description>The field, in the current object, to set</description>
</argument>
<argument>
<label>Source</label>
<argument id="2">
<type>attcode</type>
<mandatory>true</mandatory>
<description>The field, in the current object, to get
the value from</description>
</argument>
</arguments>
</method>
</methods>
</class>
<class id="ResponseTicketTTO" _delta="define">
<interfaces>
<interface id="iMetricComputer"/>
</interfaces>
</class>
<class id="ResponseTicketTTR" _delta="define">
<interfaces>
<interface id="iMetricComputer"/>
</interfaces>
</class>
</classes>
</meta>
</itop_design>
</itop_design>

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2012 Combodo SARL
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
@@ -179,13 +179,42 @@ Dict::Add('EN US', 'English', 'English', array(
'Ticket:SLA' => 'SLA report',
'WorkOrder:Details' => 'Details',
'WorkOrder:Moreinfo' => 'More information',
'Tickets:ResolvedFrom' => 'Automatically resolved from %1$s',
'Class:cmdbAbstractObject/Method:Set' => 'Set',
'Class:cmdbAbstractObject/Method:Set+' => 'Set a field with a static value',
'Class:cmdbAbstractObject/Method:Set/Param:1' => 'Target Field',
'Class:cmdbAbstractObject/Method:Set/Param:1+' => 'The field to set, in the current object',
'Class:cmdbAbstractObject/Method:Set/Param:2' => 'Value',
'Class:cmdbAbstractObject/Method:Set/Param:2+' => 'The value to set',
'Class:cmdbAbstractObject/Method:SetCurrentDate' => 'SetCurrentDate',
'Class:cmdbAbstractObject/Method:SetCurrentDate+' => 'Set a field with the current date and time',
'Class:cmdbAbstractObject/Method:SetCurrentDate/Param:1' => 'Target Field',
'Class:cmdbAbstractObject/Method:SetCurrentDate/Param:1+' => 'The field to set, in the current object',
'Class:cmdbAbstractObject/Method:SetCurrentUser' => 'SetCurrentUser',
'Class:cmdbAbstractObject/Method:SetCurrentUser+' => 'Set a field with the currently logged in user',
'Class:cmdbAbstractObject/Method:SetCurrentUser/Param:1' => 'Target Field',
'Class:cmdbAbstractObject/Method:SetCurrentUser/Param:1+' => 'The field to set, in the current object',
'Class:cmdbAbstractObject/Method:SetElapsedTime' => 'SetElapsedTime',
'Class:cmdbAbstractObject/Method:SetElapsedTime+' => 'Set a field with the time (seconds) elapsed since a date given by another field',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:1' => 'Target Field',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:1+' => 'The field to set, in the current object',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:2' => 'Reference Field',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:2+' => 'The field from which to get the reference date',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:3' => 'Working Hours',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:3+' => 'Leave empty to rely on the standard working hours scheme, or set to "DefaultWorkingTimeComputer" to force a 24x7 scheme',
'Class:cmdbAbstractObject/Method:Reset' => 'Reset',
'Class:cmdbAbstractObject/Method:Reset+' => 'Reset a field to its default value',
'Class:cmdbAbstractObject/Method:Reset/Param:1' => 'Target Field',
'Class:cmdbAbstractObject/Method:Reset/Param:1+' => 'The field to reset, in the current object',
'Class:cmdbAbstractObject/Method:Copy' => 'Copy',
'Class:cmdbAbstractObject/Method:Copy+' => 'Copy the value of a field to another field',
'Class:cmdbAbstractObject/Method:Copy/Param:1' => 'Target Field',
'Class:cmdbAbstractObject/Method:Copy/Param:1+' => 'The field to set, in the current object',
'Class:cmdbAbstractObject/Method:Copy/Param:2' => 'Source Field',
'Class:cmdbAbstractObject/Method:Copy/Param:2+' => 'The field to get the value from, in the current object',
'Class:ResponseTicketTTO/Interface:iMetricComputer' => 'Time To Own',
'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTO',
'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Time To Resolve',
'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTR',
));
?>

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2012 Combodo SARL
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
@@ -164,6 +164,42 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Ticket:SLA' => 'Rapport SLA',
'WorkOrder:Details' => 'Détails',
'WorkOrder:Moreinfo' => 'Informations complémentaires',
'Tickets:ResolvedFrom' => 'Résolu via %1$s',
'Class:cmdbAbstractObject/Method:Set' => 'Set (initialiser)',
'Class:cmdbAbstractObject/Method:Set+' => 'Initialiser un champ avec une valeur statique',
'Class:cmdbAbstractObject/Method:Set/Param:1' => 'Champ Cible',
'Class:cmdbAbstractObject/Method:Set/Param:1+' => 'Le champ à initialiser, dans l\'objet courant',
'Class:cmdbAbstractObject/Method:Set/Param:2' => 'Valeur',
'Class:cmdbAbstractObject/Method:Set/Param:2+' => 'La valeur statique',
'Class:cmdbAbstractObject/Method:SetCurrentDate' => 'SetCurrentDate (initialiser à la date courante)',
'Class:cmdbAbstractObject/Method:SetCurrentDate+' => 'Initialiser un champ avec la date et l\'heure courants',
'Class:cmdbAbstractObject/Method:SetCurrentDate/Param:1' => 'Champ Cible',
'Class:cmdbAbstractObject/Method:SetCurrentDate/Param:1+' => 'Le champ à initialiser, dans l\'objet courant',
'Class:cmdbAbstractObject/Method:SetCurrentUser' => 'SetCurrentUser (initialiser à l\'utilisateur courant)',
'Class:cmdbAbstractObject/Method:SetCurrentUser+' => 'Initialiser un champ avec l\'utilisateur qui est en train d\'effectuer une action sur l\'objet',
'Class:cmdbAbstractObject/Method:SetCurrentUser/Param:1' => 'Champ Cible',
'Class:cmdbAbstractObject/Method:SetCurrentUser/Param:1+' => 'Le champ à initialiser, dans l\'objet courant',
'Class:cmdbAbstractObject/Method:SetElapsedTime' => 'SetElapsedTime (initialiser avec le temps passé)',
'Class:cmdbAbstractObject/Method:SetElapsedTime+' => 'Initialiser un champ avec la durée écoulée depuis une date donnée par un autre champ (champ de référence)',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:1' => 'Champ Cible',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:1+' => 'Le champ à initialiser, dans l\'objet courant',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:2' => 'Champ de Référence',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:2+' => 'Le champ contenant la date de début',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:3' => 'Jours et Heures Ouvrés',
'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:3+' => 'Laisser ce champ vide pour bénéficier de la gestion des fenêtres de couverture, ou saisir "DefaultWorkingTimeComputer" pour passer en mode 24h/24 7j/7',
'Class:cmdbAbstractObject/Method:Reset' => 'Reset (réinitialiser)',
'Class:cmdbAbstractObject/Method:Reset+' => 'Réinitialiser un champ à sa valeur par défaut',
'Class:cmdbAbstractObject/Method:Reset/Param:1' => 'Champ Cible',
'Class:cmdbAbstractObject/Method:Reset/Param:1+' => 'Le champ à réinitialiser, dans l\'objet courant',
'Class:cmdbAbstractObject/Method:Copy' => 'Copy (copier)',
'Class:cmdbAbstractObject/Method:Copy+' => 'Copier la valeur d\'un champ dans un autre',
'Class:cmdbAbstractObject/Method:Copy/Param:1' => 'Champ Cible',
'Class:cmdbAbstractObject/Method:Copy/Param:1+' => 'Le champ à initialiser, dans l\'objet courant',
'Class:cmdbAbstractObject/Method:Copy/Param:2' => 'Champ Source',
'Class:cmdbAbstractObject/Method:Copy/Param:2+' => 'Le champ dans lequel on va lire la valeur, dans l\'objet courant',
'Class:ResponseTicketTTO/Interface:iMetricComputer' => 'Temps d\'Assignation (TTO)',
'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Objectif calculé à partir d\'un SLT de type TTO',
'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Temps de Résolution (TTR)',
'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Objectif calculé à partir d\'un SLT de type TTR',
));
?>

View File

@@ -0,0 +1,193 @@
<?php
// Copyright (C) 2010-2012 Combodo SARL
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* @author LinProfs <info@linprofs.com>
*
* Linux & Open Source Professionals
* http://www.linprofs.com
*
* @copyright Copyright (C) 2010-2012 Combodo SARL
* @licence http://opensource.org/licenses/AGPL-3.0
*/
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//
// Class: Ticket
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:Ticket' => 'Ticket',
'Class:Ticket+' => '',
'Class:Ticket/Attribute:ref' => 'Nummer',
'Class:Ticket/Attribute:ref+' => '',
'Class:Ticket/Attribute:org_id' => 'Organisatie',
'Class:Ticket/Attribute:org_id+' => '',
'Class:Ticket/Attribute:org_name' => 'Organisatie Naam',
'Class:Ticket/Attribute:org_name+' => '',
'Class:Ticket/Attribute:caller_id' => 'Aanvrager',
'Class:Ticket/Attribute:caller_id+' => '',
'Class:Ticket/Attribute:caller_name' => 'Aanvrager Naam',
'Class:Ticket/Attribute:caller_name+' => '',
'Class:Ticket/Attribute:team_id' => 'Team',
'Class:Ticket/Attribute:team_id+' => '',
'Class:Ticket/Attribute:team_name' => 'Team Naam',
'Class:Ticket/Attribute:team_name+' => '',
'Class:Ticket/Attribute:agent_id' => 'Agent',
'Class:Ticket/Attribute:agent_id+' => '',
'Class:Ticket/Attribute:agent_name' => 'Agent Naam',
'Class:Ticket/Attribute:agent_name+' => '',
'Class:Ticket/Attribute:title' => 'Titel',
'Class:Ticket/Attribute:title+' => '',
'Class:Ticket/Attribute:description' => 'Omschrijving',
'Class:Ticket/Attribute:description+' => '',
'Class:Ticket/Attribute:start_date' => 'Start datum',
'Class:Ticket/Attribute:start_date+' => '',
'Class:Ticket/Attribute:end_date' => 'Eind datum',
'Class:Ticket/Attribute:end_date+' => '',
'Class:Ticket/Attribute:last_update' => 'Laatste update',
'Class:Ticket/Attribute:last_update+' => '',
'Class:Ticket/Attribute:close_date' => 'Sluitings datum',
'Class:Ticket/Attribute:close_date+' => '',
'Class:Ticket/Attribute:private_log' => 'Prive log',
'Class:Ticket/Attribute:private_log+' => '',
'Class:Ticket/Attribute:contacts_list' => 'Contacten',
'Class:Ticket/Attribute:contacts_list+' => 'Alle contacten die gelinkt zijn aan dit ticket',
'Class:Ticket/Attribute:functionalcis_list' => 'CIs',
'Class:Ticket/Attribute:functionalcis_list+' => 'Alle configuratie items die impact hebben op dit ticket',
'Class:Ticket/Attribute:workorders_list' => 'Werk orders',
'Class:Ticket/Attribute:workorders_list+' => 'Alle werk orders voor dit ticket',
'Class:Ticket/Attribute:finalclass' => 'Type',
'Class:Ticket/Attribute:finalclass+' => '',
));
//
// Class: lnkContactToTicket
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkContactToTicket' => 'Link Contact / Ticket',
'Class:lnkContactToTicket+' => '',
'Class:lnkContactToTicket/Attribute:ticket_id' => 'Ticket',
'Class:lnkContactToTicket/Attribute:ticket_id+' => '',
'Class:lnkContactToTicket/Attribute:ticket_ref' => 'Ref',
'Class:lnkContactToTicket/Attribute:ticket_ref+' => '',
'Class:lnkContactToTicket/Attribute:contact_id' => 'Contact',
'Class:lnkContactToTicket/Attribute:contact_id+' => '',
'Class:lnkContactToTicket/Attribute:contact_email' => 'Contact Email',
'Class:lnkContactToTicket/Attribute:contact_email+' => '',
'Class:lnkContactToTicket/Attribute:role' => 'Rol',
'Class:lnkContactToTicket/Attribute:role+' => '',
));
//
// Class: lnkFunctionalCIToTicket
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkFunctionalCIToTicket' => 'Link FunctionalCI / Ticket',
'Class:lnkFunctionalCIToTicket+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id' => 'Ticket',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref' => 'Ref',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id' => 'CI',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name' => 'CI Naam',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact' => 'Impact',
'Class:lnkFunctionalCIToTicket/Attribute:impact+' => '',
));
//
// Class: WorkOrder
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:WorkOrder' => 'Werk Order',
'Class:WorkOrder+' => '',
'Class:WorkOrder/Attribute:name' => 'Naam',
'Class:WorkOrder/Attribute:name+' => '',
'Class:WorkOrder/Attribute:status' => 'Status',
'Class:WorkOrder/Attribute:status+' => '',
'Class:WorkOrder/Attribute:status/Value:open' => 'open',
'Class:WorkOrder/Attribute:status/Value:open+' => '',
'Class:WorkOrder/Attribute:status/Value:closed' => 'gesloten',
'Class:WorkOrder/Attribute:status/Value:closed+' => '',
'Class:WorkOrder/Attribute:description' => 'Omschrijving',
'Class:WorkOrder/Attribute:description+' => '',
'Class:WorkOrder/Attribute:ticket_id' => 'Ticket',
'Class:WorkOrder/Attribute:ticket_id+' => '',
'Class:WorkOrder/Attribute:ticket_ref' => 'Ticket ref',
'Class:WorkOrder/Attribute:ticket_ref+' => '',
'Class:WorkOrder/Attribute:team_id' => 'Team',
'Class:WorkOrder/Attribute:team_id+' => '',
'Class:WorkOrder/Attribute:team_name' => 'Team Naam',
'Class:WorkOrder/Attribute:team_name+' => '',
'Class:WorkOrder/Attribute:agent_id' => 'Agent',
'Class:WorkOrder/Attribute:agent_id+' => '',
'Class:WorkOrder/Attribute:agent_email' => 'Agent email',
'Class:WorkOrder/Attribute:agent_email+' => '',
'Class:WorkOrder/Attribute:start_date' => 'Start datum',
'Class:WorkOrder/Attribute:start_date+' => '',
'Class:WorkOrder/Attribute:end_date' => 'End datum',
'Class:WorkOrder/Attribute:end_date+' => '',
'Class:WorkOrder/Attribute:log' => 'Log',
'Class:WorkOrder/Attribute:log+' => '',
'Class:WorkOrder/Stimulus:ev_close' => 'Sluiten',
'Class:WorkOrder/Stimulus:ev_close+' => '',
));
// Fieldset translation
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Ticket:baseinfo' => 'Globale Informatie',
'Ticket:date' => 'Data',
'Ticket:contact' => 'Contacten',
'Ticket:moreinfo' => 'Meer Informatie',
'Ticket:relation' => 'Relaties',
'Ticket:log' => 'Communicaties',
'Ticket:Type' => 'Kwalificaties',
'Ticket:support' => 'Support',
'Ticket:resolution' => 'Resolutie',
'Ticket:SLA' => 'SLA rapportage',
'WorkOrder:Details' => 'Details',
'WorkOrder:Moreinfo' => 'Meer informatie',
));
?>

View File

@@ -11,7 +11,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -159,7 +158,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -290,7 +288,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -458,7 +455,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -606,7 +602,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s</format>
<attributes>
<attribute id="name"/>
</attributes>
@@ -866,7 +861,6 @@
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<format>%1$s %2$s</format>
<attributes>
<attribute id="name"/>
<attribute id="virtualmachine_name"/>

View File

@@ -0,0 +1,29 @@
<?php
// Copyright (C) 2010 Combodo SARL
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; version 3 of the License.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
/**
* Localized data
*
* @author Erwan Taloc <erwan.taloc@combodo.com>
* @author Romain Quetiez <romain.quetiez@combodo.com>
* @author Denis Flaven <denis.flaven@combodo.com>
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
// Dictionary entries go here
));

View File

@@ -0,0 +1,61 @@
<?php
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* @copyright Copyright (C) 2010-2014 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('DE DE', 'German', 'Deutsch', array(
'Menu:DataSources' => 'Datenquellen für die Synchronisation',
'Menu:DataSources+' => 'Alle Datenquellen für die Synchronisation',
'Menu:WelcomeMenu' => 'Willkommen',
'Menu:WelcomeMenu+' => 'Willkommen bei iTop',
'Menu:WelcomeMenuPage' => 'Willkommen',
'Menu:WelcomeMenuPage+' => 'Willkommen bei iTop',
'Menu:AdminTools' => 'Admin-Tools',
'Menu:AdminTools+' => 'Administrationswerkzeuge',
'Menu:AdminTools?' => 'Werkzeuge, die nur für Benutzer mit Adminstratorprofil zugänglich sind',
'Menu:CSVImportMenu' => 'CSV-Import',
'Menu:CSVImportMenu+' => 'Massenerstellung oder -aktualisierung',
'Menu:DataModelMenu' => 'Datenmodell',
'Menu:DataModelMenu+' => 'Übersicht des Datenmodells',
'Menu:ExportMenu' => 'Export',
'Menu:ExportMenu+' => 'Export einer beliebigen Abfrage in HTML, CSV oder XML',
'Menu:NotificationsMenu' => 'Benachrichtigungen',
'Menu:NotificationsMenu+' => 'Einstellungen der Benachrichtigungen',
'Menu:AuditCategories' => 'Audit-Kategorien',
'Menu:AuditCategories+' => 'Audit-Kategorien',
'Menu:Notifications:Title' => 'Audit-Kategorien',
'Menu:RunQueriesMenu' => 'Abfrage ausführen',
'Menu:RunQueriesMenu+' => 'Eine beliebige Abfrage ausführen',
'Menu:QueryMenu' => 'Query-Bibliothek',
'Menu:QueryMenu+' => '',
'Menu:DataAdministration' => 'Data Management',
'Menu:DataAdministration+' => 'Data Management',
'Menu:UniversalSearchMenu' => 'Universelle Suche',
'Menu:UniversalSearchMenu+' => 'Suchen Sie nach beliebigen Inhalt...',
'Menu:UserManagementMenu' => 'User-Management',
'Menu:UserManagementMenu+' => 'User-Management',
'Menu:ProfilesMenu' => 'Profile',
'Menu:ProfilesMenu+' => 'Profile',
'Menu:ProfilesMenu:Title' => 'Profile',
'Menu:UserAccountsMenu' => 'Benutzerkonten',
'Menu:UserAccountsMenu+' => 'Benutzerkonten',
'Menu:UserAccountsMenu:Title' => 'Benutzerkonten',
));

View File

@@ -0,0 +1,62 @@
<?php
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* @copyright Copyright (C) 2010-2014 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('EN US', 'English', 'English', array(
'Menu:DataSources' => 'Synchronization Data Sources',
'Menu:DataSources+' => 'All Synchronization Data Sources',
'Menu:WelcomeMenu' => 'Welcome',
'Menu:WelcomeMenu+' => 'Welcome to iTop',
'Menu:WelcomeMenuPage' => 'Welcome',
'Menu:WelcomeMenuPage+' => 'Welcome to iTop',
'Menu:AdminTools' => 'Admin tools',
'Menu:AdminTools+' => 'Administration tools',
'Menu:AdminTools?' => 'Tools accessible only to users having the administrator profile',
'Menu:CSVImportMenu' => 'CSV import',
'Menu:CSVImportMenu+' => 'Bulk creation or update',
'Menu:DataModelMenu' => 'Data Model',
'Menu:DataModelMenu+' => 'Overview of the Data Model',
'Menu:ExportMenu' => 'Export',
'Menu:ExportMenu+' => 'Export the results of any query in HTML, CSV or XML',
'Menu:NotificationsMenu' => 'Notifications',
'Menu:NotificationsMenu+' => 'Configuration of the Notifications',
'Menu:AuditCategories' => 'Audit Categories',
'Menu:AuditCategories+' => 'Audit Categories',
'Menu:Notifications:Title' => 'Audit Categories',
'Menu:RunQueriesMenu' => 'Run Queries',
'Menu:RunQueriesMenu+' => 'Run any query',
'Menu:QueryMenu' => 'Query phrasebook',
'Menu:QueryMenu+' => 'Query phrasebook',
'Menu:DataAdministration' => 'Data administration',
'Menu:DataAdministration+' => 'Data administration',
'Menu:UniversalSearchMenu' => 'Universal Search',
'Menu:UniversalSearchMenu+' => 'Search for anything...',
'Menu:UserManagementMenu' => 'User Management',
'Menu:UserManagementMenu+' => 'User management',
'Menu:ProfilesMenu' => 'Profiles',
'Menu:ProfilesMenu+' => 'Profiles',
'Menu:ProfilesMenu:Title' => 'Profiles',
'Menu:UserAccountsMenu' => 'User Accounts',
'Menu:UserAccountsMenu+' => 'User Accounts',
'Menu:UserAccountsMenu:Title' => 'User Accounts',
'Menu:MyShortcuts' => 'My Shortcuts',
));

View File

@@ -0,0 +1,62 @@
<?php
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* @copyright Copyright (C) 2010-2014 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array(
'Menu:DataSources' => 'Fuentes de Datos Sincronizables',
'Menu:DataSources+' => 'Fuentes de Datos Sincronizables',
'Menu:WelcomeMenu' => 'Bienvenido',
'Menu:WelcomeMenu+' => 'Bienvenido a iTop',
'Menu:WelcomeMenuPage' => 'Bienvenido',
'Menu:WelcomeMenuPage+' => 'Bienvenido a iTop',
'Menu:AdminTools' => 'Herramientas Administrativas',
'Menu:AdminTools+' => 'Herramientas Administrativas',
'Menu:AdminTools?' => 'Herramientas accesibles sólo a usuarios con Perfil de administrador',
'Menu:CSVImportMenu' => 'Importar CSV',
'Menu:CSVImportMenu+' => 'Creación o Actualización Másiva',
'Menu:DataModelMenu' => 'Modelo de Datos',
'Menu:DataModelMenu+' => 'Resumen del Modelo de Datos',
'Menu:ExportMenu' => 'Exportar',
'Menu:ExportMenu+' => 'Exportar los Resultados de Cualquier Consulta en HTML, CSV o XML',
'Menu:NotificationsMenu' => 'Notificaciones',
'Menu:NotificationsMenu+' => 'Configuración de las Notificaciones',
'Menu:AuditCategories' => 'Auditar Categorías',
'Menu:AuditCategories+' => 'Auditar Categorías',
'Menu:Notifications:Title' => 'Auditar Categorías',
'Menu:RunQueriesMenu' => 'Ejecutar Consultas',
'Menu:RunQueriesMenu+' => 'Ejecutar Cualquier Consulta',
'Menu:QueryMenu' => 'Libreta de Consultas',
'Menu:QueryMenu+' => 'Libreta de Consultas',
'Menu:DataAdministration' => 'Administración de Datos',
'Menu:DataAdministration+' => 'Administración de Datos',
'Menu:UniversalSearchMenu' => 'Búsqueda Universal',
'Menu:UniversalSearchMenu+' => 'Buscar cualquier cosa',
'Menu:UserManagementMenu' => 'Administración de Usuarios',
'Menu:UserManagementMenu+' => 'Administración de Usuarios',
'Menu:ProfilesMenu' => 'Perfiles',
'Menu:ProfilesMenu+' => 'Perfiles',
'Menu:ProfilesMenu:Title' => 'Perfiles',
'Menu:UserAccountsMenu' => 'Cuentas de Usuario',
'Menu:UserAccountsMenu+' => 'Cuentas de Usuario',
'Menu:UserAccountsMenu:Title' => 'Cuentas de Usuario',
'Menu:MyShortcuts' => 'Mis Accesos Rápidos',
));

View File

@@ -0,0 +1,62 @@
<?php
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* @copyright Copyright (C) 2010-2014 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('FR FR', 'French', 'Français', array(
'Menu:DataSources' => 'Synchronisation',
'Menu:DataSources+' => '',
'Menu:WelcomeMenu' => 'Bienvenue',
'Menu:WelcomeMenu+' => 'Bienvenue dans iTop',
'Menu:WelcomeMenuPage' => 'Bienvenue',
'Menu:WelcomeMenuPage+' => 'Bienvenue dans iTop',
'Menu:AdminTools' => 'Outils d\'admin',
'Menu:AdminTools+' => 'Outils d\'administration',
'Menu:AdminTools?' => 'Ces outils sont accessibles uniquement aux utilisateurs possédant le profil Administrateur.',
'Menu:CSVImportMenu' => 'Import CSV',
'Menu:CSVImportMenu+' => 'Import ou mise à jour en masse',
'Menu:DataModelMenu' => 'Modèle de Données',
'Menu:DataModelMenu+' => 'Résumé du Modèle de Données',
'Menu:ExportMenu' => 'Exportation',
'Menu:ExportMenu+' => 'Exportation des résultats d\'une requête en HTML, CSV ou XML',
'Menu:NotificationsMenu' => 'Notifications',
'Menu:NotificationsMenu+' => 'Configuration des Notifications',
'Menu:AuditCategories' => 'Catégories d\'audit',
'Menu:AuditCategories+' => 'Catégories d\'audit',
'Menu:Notifications:Title' => 'Catégories d\'audit',
'Menu:RunQueriesMenu' => 'Requêtes OQL',
'Menu:RunQueriesMenu+' => 'Executer une requête OQL',
'Menu:QueryMenu' => 'Livre des requêtes',
'Menu:QueryMenu+' => 'Livre des requêtes',
'Menu:DataAdministration' => 'Administration des données',
'Menu:DataAdministration+' => 'Administration des données',
'Menu:UniversalSearchMenu' => 'Recherche Universelle',
'Menu:UniversalSearchMenu+' => 'Rechercher n\'importe quel objet...',
'Menu:UserManagementMenu' => 'Gestion des Utilisateurs',
'Menu:UserManagementMenu+' => 'Gestion des Utilisateurs',
'Menu:ProfilesMenu' => 'Profils',
'Menu:ProfilesMenu+' => 'Profils',
'Menu:ProfilesMenu:Title' => 'Profils',
'Menu:UserAccountsMenu' => 'Comptes Utilisateurs',
'Menu:UserAccountsMenu+' => 'Comptes Utilisateurs',
'Menu:UserAccountsMenu:Title' => 'Comptes Utilisateurs',
'Menu:MyShortcuts' => 'Mes raccourcis',
));

View File

@@ -0,0 +1,59 @@
<?php
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* @copyright Copyright (C) 2010-2014 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
'Menu:DataSources' => 'Szinkronizált adatforrások',
'Menu:DataSources+' => '',
'Menu:WelcomeMenu' => 'Üdvözlöm',
'Menu:WelcomeMenu+' => '',
'Menu:WelcomeMenuPage' => 'Üdvözlöm',
'Menu:WelcomeMenuPage+' => '',
'Menu:AdminTools' => 'Adminisztrációs eszközök',
'Menu:AdminTools+' => '',
'Menu:AdminTools?' => 'Eszközök csak az adminisztrátori profilhoz rendlet felhasználók számára elérhetők.',
'Menu:CSVImportMenu' => 'CSV import',
'Menu:CSVImportMenu+' => '',
'Menu:DataModelMenu' => 'Adatmodell',
'Menu:DataModelMenu+' => '',
'Menu:ExportMenu' => 'Export',
'Menu:ExportMenu+' => '',
'Menu:NotificationsMenu' => 'Értesítések',
'Menu:NotificationsMenu+' => '',
'Menu:AuditCategories' => 'Audit kategóriák',
'Menu:AuditCategories+' => '',
'Menu:Notifications:Title' => 'Audit kategóriák',
'Menu:RunQueriesMenu' => 'Lekérdezés futtatás',
'Menu:RunQueriesMenu+' => '',
'Menu:DataAdministration' => 'Adat adminisztráció',
'Menu:DataAdministration+' => '',
'Menu:UniversalSearchMenu' => 'Univerzális keresés',
'Menu:UniversalSearchMenu+' => '',
'Menu:UserManagementMenu' => 'Felhasználó menedzsment',
'Menu:UserManagementMenu+' => '',
'Menu:ProfilesMenu' => 'Profilok',
'Menu:ProfilesMenu+' => '',
'Menu:ProfilesMenu:Title' => 'Profilok',
'Menu:UserAccountsMenu' => 'Felhasználói fiókok',
'Menu:UserAccountsMenu+' => '',
'Menu:UserAccountsMenu:Title' => 'Felhasználói fiókok',
));

View File

@@ -0,0 +1,59 @@
<?php
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* @copyright Copyright (C) 2010-2014 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('IT IT', 'Italian', 'Italiano', array(
'Menu:DataSources' => 'Sorgente di sincronizzazione dei dati',
'Menu:DataSources+' => '',
'Menu:WelcomeMenu' => 'Benveuto',
'Menu:WelcomeMenu+' => '',
'Menu:WelcomeMenuPage' => 'Benvenuto',
'Menu:WelcomeMenuPage+' => '',
'Menu:AdminTools' => 'Strumenti di amministrazione',
'Menu:AdminTools+' => '',
'Menu:AdminTools?' => 'Strumenti accessibile solo agli utenti con il profilo di amministratore',
'Menu:CSVImportMenu' => 'Importazione CSV',
'Menu:CSVImportMenu+' => '',
'Menu:DataModelMenu' => 'Modello Dati',
'Menu:DataModelMenu+' => '',
'Menu:ExportMenu' => 'Esporta',
'Menu:ExportMenu+' => '',
'Menu:NotificationsMenu' => 'Notifiche',
'Menu:NotificationsMenu+' => '',
'Menu:AuditCategories' => 'Categorie di Audit',
'Menu:AuditCategories+' => '',
'Menu:Notifications:Title' => 'Categorie di Audit',
'Menu:RunQueriesMenu' => 'Esegui query',
'Menu:RunQueriesMenu+' => '',
'Menu:DataAdministration' => 'Dati di amministrazione',
'Menu:DataAdministration+' => '',
'Menu:UniversalSearchMenu' => 'Ricerca universale',
'Menu:UniversalSearchMenu+' => '',
'Menu:UserManagementMenu' => 'Gestione degli utenti',
'Menu:UserManagementMenu+' => '',
'Menu:ProfilesMenu' => 'Profili',
'Menu:ProfilesMenu+' => '',
'Menu:ProfilesMenu:Title' => 'Profili',
'Menu:UserAccountsMenu' => 'Account utente',
'Menu:UserAccountsMenu+' => '',
'Menu:UserAccountsMenu:Title' => 'Account utente',
));

View File

@@ -0,0 +1,62 @@
<?php
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* @copyright Copyright (C) 2010-2014 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('JA JP', 'Japanese', '日本語', array(
'Menu:DataSources' => '同期データソース',
'Menu:DataSources+' => '全ての同期データソース',
'Menu:WelcomeMenu' => 'ようこそ',
'Menu:WelcomeMenu+' => 'ようこそ、iTopへ',
'Menu:WelcomeMenuPage' => 'ようこそ',
'Menu:WelcomeMenuPage+' => 'ようこそ、iTopへ',
'Menu:AdminTools' => '管理ツール',
'Menu:AdminTools+' => '管理ツール',
'Menu:AdminTools?' => 'このツールは管理者プロフィールを持つユーザのみアクセスが可能です。',
'Menu:CSVImportMenu' => 'CSV インポート',
'Menu:CSVImportMenu+' => '一括作成/一括更新',
'Menu:DataModelMenu' => 'データモデル',
'Menu:DataModelMenu+' => 'データモデル概要',
'Menu:ExportMenu' => 'エクスポート',
'Menu:ExportMenu+' => '任意のクエリ結果をHTML、CSV、XMLでエクスポートする',
'Menu:NotificationsMenu' => '通知',
'Menu:NotificationsMenu+' => '通知の設定',
'Menu:AuditCategories' => '監査カテゴリ',
'Menu:AuditCategories+' => '監査カテゴリ',
'Menu:Notifications:Title' => '監査カテゴリ',
'Menu:RunQueriesMenu' => 'クエリ実行',
'Menu:RunQueriesMenu+' => '任意のクエリを実行',
'Menu:QueryMenu' => 'クエリのフレーズブック',
'Menu:QueryMenu+' => 'クエリのフレーズブック',
'Menu:DataAdministration' => 'データ管理',
'Menu:DataAdministration+' => 'データ管理',
'Menu:UniversalSearchMenu' => '全検索',
'Menu:UniversalSearchMenu+' => '何か...検索',
'Menu:UserManagementMenu' => 'ユーザ管理',
'Menu:UserManagementMenu+' => 'ユーザ管理',
'Menu:ProfilesMenu' => 'プロフィール',
'Menu:ProfilesMenu+' => 'プロフィール',
'Menu:ProfilesMenu:Title' => 'プロフィール',
'Menu:UserAccountsMenu' => 'ユーザアカウント',
'Menu:UserAccountsMenu+' => 'ユーザアカウント',
'Menu:UserAccountsMenu:Title' => 'ユーザアカウント',
'Menu:MyShortcuts' => '私のショートカット',
));

View File

@@ -0,0 +1,62 @@
<?php
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* @copyright Copyright (C) 2010-2014 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
'Menu:DataSources' => 'Fontes de dados de sincronização',
'Menu:DataSources+' => 'Todas fontes de dados de sincronização',
'Menu:WelcomeMenu' => 'Bem-vindo ao iTop',
'Menu:WelcomeMenu+' => 'Bem-vindo ao iTop',
'Menu:WelcomeMenuPage' => 'Bem-vindo ao iTop',
'Menu:WelcomeMenuPage+' => 'Bem-vindo ao iTop',
'Menu:AdminTools' => 'Ferramentas Administrativas',
'Menu:AdminTools+' => 'Ferramentas Administrativas',
'Menu:AdminTools?' => 'Ferramentas acessíveis apenas para usuários com o perfil do administrador',
'Menu:CSVImportMenu' => 'Importar CSV',
'Menu:CSVImportMenu+' => 'Criação ou atualização em massa',
'Menu:DataModelMenu' => 'Modelo Dados',
'Menu:DataModelMenu+' => 'Visão geral do Modelo Dados',
'Menu:ExportMenu' => 'Exportar',
'Menu:ExportMenu+' => 'Exportar o resultado de qualquer consulta em HTML, CSV ou XML',
'Menu:NotificationsMenu' => 'Notificações',
'Menu:NotificationsMenu+' => 'Configuração de Notificações',
'Menu:AuditCategories' => 'Categoria Auditorias',
'Menu:AuditCategories+' => 'Categoria Auditorias',
'Menu:Notifications:Title' => 'Categoria Auditorias',
'Menu:RunQueriesMenu' => 'Executar consultas',
'Menu:RunQueriesMenu+' => 'Executar qualquer consulta',
'Menu:QueryMenu' => 'Consulta definida',
'Menu:QueryMenu+' => 'Consulta definida',
'Menu:DataAdministration' => 'Administração Dados',
'Menu:DataAdministration+' => 'Administração Dados',
'Menu:UniversalSearchMenu' => 'Pesquisa Universal',
'Menu:UniversalSearchMenu+' => 'Pesquisar por nada...',
'Menu:UserManagementMenu' => 'Gerenciamento Usuários',
'Menu:UserManagementMenu+' => 'Gerenciamento Usuários',
'Menu:ProfilesMenu' => 'Perfis',
'Menu:ProfilesMenu+' => 'Perfis',
'Menu:ProfilesMenu:Title' => 'Perfis',
'Menu:UserAccountsMenu' => 'Contas usuários',
'Menu:UserAccountsMenu+' => 'Contas usuários',
'Menu:UserAccountsMenu:Title' => 'Contas usuários',
'Menu:MyShortcuts' => 'Meus atalhos',
));

View File

@@ -0,0 +1,62 @@
<?php
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* @copyright Copyright (C) 2010-2014 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('RU RU', 'Russian', 'Русский', array(
'Menu:DataSources' => 'Синхронизация данных',
'Menu:DataSources+' => 'Синхронизация данных',
'Menu:WelcomeMenu' => 'Добро пожаловать',
'Menu:WelcomeMenu+' => 'Добро пожаловать в iTop',
'Menu:WelcomeMenuPage' => 'Добро пожаловать',
'Menu:WelcomeMenuPage+' => 'Добро пожаловать в iTop',
'Menu:AdminTools' => 'Инструменты админа',
'Menu:AdminTools+' => 'Административные инструменты',
'Menu:AdminTools?' => 'Инструменты доступны только для пользователей, имеющих профиль администратора',
'Menu:CSVImportMenu' => 'Импорт CSV',
'Menu:CSVImportMenu+' => 'Пакетное создание или обновление',
'Menu:DataModelMenu' => 'Модель данных',
'Menu:DataModelMenu+' => 'Обзор модели данных',
'Menu:ExportMenu' => 'Экспорт',
'Menu:ExportMenu+' => 'Экспорт результатов любого запроса в HTML, CSV или XML',
'Menu:NotificationsMenu' => 'Уведомления',
'Menu:NotificationsMenu+' => 'Конфигурация уведомлений',
'Menu:AuditCategories' => 'Категории аудита',
'Menu:AuditCategories+' => 'Категории аудита',
'Menu:Notifications:Title' => 'Категории аудита',
'Menu:RunQueriesMenu' => 'Выполнение запросов',
'Menu:RunQueriesMenu+' => 'Выполнение любых запросов',
'Menu:QueryMenu' => 'Книга запросов',
'Menu:QueryMenu+' => 'Query phrasebook',
'Menu:DataAdministration' => 'Административные данные',
'Menu:DataAdministration+' => 'Административные данные',
'Menu:UniversalSearchMenu' => 'Универсальный поиск',
'Menu:UniversalSearchMenu+' => 'Поиск чего угодно...',
'Menu:UserManagementMenu' => 'Управление пользователями',
'Menu:UserManagementMenu+' => 'Управление пользователями',
'Menu:ProfilesMenu' => 'Профили',
'Menu:ProfilesMenu+' => 'Профили',
'Menu:ProfilesMenu:Title' => 'Профили',
'Menu:UserAccountsMenu' => 'Учетные записи пользователей',
'Menu:UserAccountsMenu+' => 'Учетные записи пользователей',
'Menu:UserAccountsMenu:Title' => 'Учетные записи пользователей',
'Menu:MyShortcuts' => 'Избранное',
));

View File

@@ -0,0 +1,57 @@
<?php
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* @copyright Copyright (C) 2010-2014 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
'Menu:WelcomeMenu' => 'Hoşgeldiniz',
'Menu:WelcomeMenu+' => 'iTop\'a Hoşgeldiniz',
'Menu:WelcomeMenuPage' => 'Hoşgeldiniz',
'Menu:WelcomeMenuPage+' => 'iTop\'a Hoşgeldiniz',
'Menu:AdminTools' => 'Yönetim Araçları',
'Menu:AdminTools+' => 'Yönetim Araçları',
'Menu:AdminTools?' => 'Yönetici profiline izin verilen araçlar',
'Menu:CSVImportMenu' => 'CSV dışardan al',
'Menu:CSVImportMenu+' => 'Çoklu yaratım veya güncelleme',
'Menu:DataModelMenu' => 'Veri Modeli',
'Menu:DataModelMenu+' => 'Veri Modeli Özeti',
'Menu:ExportMenu' => 'Dışarı ver',
'Menu:ExportMenu+' => 'Sorgu sonucunu HTML, CSV veya XML olarak dışarı aktar',
'Menu:NotificationsMenu' => 'Uyarılar',
'Menu:NotificationsMenu+' => 'Uyarıların yapılandırılması',
'Menu:AuditCategories' => 'Denetleme Kategorileri',
'Menu:AuditCategories+' => 'Denetleme Kategorileri',
'Menu:Notifications:Title' => 'Denetleme Kategorileri',
'Menu:RunQueriesMenu' => 'Sorgu çalıştır',
'Menu:RunQueriesMenu+' => 'Sorgu çalıştır',
'Menu:DataAdministration' => 'Veri Yönetimi',
'Menu:DataAdministration+' => 'Veri Yönetimi',
'Menu:UniversalSearchMenu' => 'Genel sorgu',
'Menu:UniversalSearchMenu+' => 'Herhangi bir arama...',
'Menu:UserManagementMenu' => 'Kullanıcı Yönetimi',
'Menu:UserManagementMenu+' => 'Kullanıcı Yönetimi',
'Menu:ProfilesMenu' => 'Profiller',
'Menu:ProfilesMenu+' => 'Profiller',
'Menu:ProfilesMenu:Title' => 'Profiller',
'Menu:UserAccountsMenu' => 'Kullanıcı Hesapları',
'Menu:UserAccountsMenu+' => 'Kullanıcı Hesapları',
'Menu:UserAccountsMenu:Title' => 'Kullanıcı Hesapları',
));

View File

@@ -0,0 +1,57 @@
<?php
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// iTop is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* @copyright Copyright (C) 2010-2014 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Menu:WelcomeMenu' => '欢迎',
'Menu:WelcomeMenu+' => '欢迎来到iTop',
'Menu:WelcomeMenuPage' => '欢迎',
'Menu:WelcomeMenuPage+' => '欢迎来到iTop',
'Menu:AdminTools' => '管理工具',
'Menu:AdminTools+' => '管理工具',
'Menu:AdminTools?' => '具有系统管理员简档的用户才能获得的工具',
'Menu:CSVImportMenu' => 'CSV 导入',
'Menu:CSVImportMenu+' => '大批量创建或修改',
'Menu:DataModelMenu' => '数据模型',
'Menu:DataModelMenu+' => '数据模型概览',
'Menu:ExportMenu' => '导出',
'Menu:ExportMenu+' => '以HTML, CSV or XML格式导出任何查询的结果',
'Menu:NotificationsMenu' => '通知',
'Menu:NotificationsMenu+' => '通知的配置',
'Menu:AuditCategories' => '审计类目',
'Menu:AuditCategories+' => '审计类目',
'Menu:Notifications:Title' => '审计类目',
'Menu:RunQueriesMenu' => '运行查询',
'Menu:RunQueriesMenu+' => '运行任何查询',
'Menu:DataAdministration' => '数据管理',
'Menu:DataAdministration+' => '数据管理',
'Menu:UniversalSearchMenu' => '通用搜索',
'Menu:UniversalSearchMenu+' => '搜索所有...',
'Menu:UserManagementMenu' => '用户管理',
'Menu:UserManagementMenu+' => '用户管理',
'Menu:ProfilesMenu' => '简档',
'Menu:ProfilesMenu+' => '简档',
'Menu:ProfilesMenu:Title' => '简档',
'Menu:UserAccountsMenu' => '用户帐户',
'Menu:UserAccountsMenu+' => '用户帐户',
'Menu:UserAccountsMenu:Title' => '用户帐户',
));

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<information>
<version>2.0.3</version>
<version>2.1.0</version>
</information>

View File

@@ -477,8 +477,8 @@ Operatoren:<br/>
'Core:Synchro:NeverRun' => 'Synchronisation noch nicht erfolgt. Kein Protokoll verfügbar.',
'Core:Synchro:SynchroEndedOn_Date' => 'Die letzte Synchronisation endete um %1$s.',
'Core:Synchro:SynchroRunningStartedOn_Date' => 'Die Synchronisation, die um %1$s gestartet wurde, läuft noch ...',
'Menu:DataSources' => 'Datenquellen für die Synchronisation',
'Menu:DataSources+' => 'Alle Datenquellen für die Synchronisation',
'Menu:DataSources' => 'Datenquellen für die Synchronisation', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:DataSources+' => 'Alle Datenquellen für die Synchronisation', // Duplicated into itop-welcome-itil (will be removed from here...)
'Core:Synchro:label_repl_ignored' => 'Ignoriert (%1$s)',
'Core:Synchro:label_repl_disappeared' => 'Verschwunden (%1$s)',
'Core:Synchro:label_repl_existing' => 'Vorhanden (%1$s)',

View File

@@ -196,10 +196,10 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:URP_AttributeGrant/Attribute:attcode+' => 'Attribut-Code',
'BooleanLabel:yes' => 'Ja',
'BooleanLabel:no' => 'Nein',
'Menu:WelcomeMenu' => 'Willkommen',
'Menu:WelcomeMenu+' => 'Willkommen bei iTop',
'Menu:WelcomeMenuPage' => 'Willkommen',
'Menu:WelcomeMenuPage+' => 'Willkommen bei iTop',
'Menu:WelcomeMenu' => 'Willkommen', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:WelcomeMenu+' => 'Willkommen bei iTop', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:WelcomeMenuPage' => 'Willkommen', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:WelcomeMenuPage+' => 'Willkommen bei iTop', // Duplicated into itop-welcome-itil (will be removed from here...)
'UI:WelcomeMenu:Title' => 'Willkommen bei iTop',
'UI:WelcomeMenu:LeftBlock' => '<p>iTop ist ein ein vollständiges, ITIL- und webbasiertes IT-Service-Management-Tool (ITSM)</p>
<ul>Es umfasst...
@@ -667,9 +667,9 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'UI:UserManagement:GrantMatrix' => 'Zugriffsmatrix',
'UI:UserManagement:LinkBetween_User_And_Profile' => 'Verbindung zwischen %1$s und %2$s',
'UI:UserManagement:LinkBetween_User_And_Org' => 'Verbindung zwischen %1$s und %2$s',
'Menu:AdminTools' => 'Admin-Tools',
'Menu:AdminTools+' => 'Administrationswerkzeuge',
'Menu:AdminTools?' => 'Werkzeuge, die nur für Benutzer mit Adminstratorprofil zugänglich sind',
'Menu:AdminTools' => 'Admin-Tools', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:AdminTools+' => 'Administrationswerkzeuge', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:AdminTools?' => 'Werkzeuge, die nur für Benutzer mit Adminstratorprofil zugänglich sind', // Duplicated into itop-welcome-itil (will be removed from here...)
'UI:ChangeManagementMenu' => 'Change Management',
'UI:ChangeManagementMenu+' => 'Change Management',
'UI:ChangeManagementMenu:Title' => 'Übersicht an Changes',
@@ -706,14 +706,14 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'UI-ContactsMenu-ContactsByLocation' => 'Kontakte nach Standort',
'UI-ContactsMenu-ContactsByType' => 'Kontakte nach Typ',
'UI-ContactsMenu-ContactsByStatus' => 'Kontakte nach Status',
'Menu:CSVImportMenu' => 'CSV-Import',
'Menu:CSVImportMenu+' => 'Massenerstellung oder -aktualisierung',
'Menu:DataModelMenu' => 'Datenmodell',
'Menu:DataModelMenu+' => 'Übersicht des Datenmodells',
'Menu:ExportMenu' => 'Export',
'Menu:ExportMenu+' => 'Export einer beliebigen Abfrage in HTML, CSV oder XML',
'Menu:NotificationsMenu' => 'Benachrichtigungen',
'Menu:NotificationsMenu+' => 'Einstellungen der Benachrichtigungen',
'Menu:CSVImportMenu' => 'CSV-Import', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:CSVImportMenu+' => 'Massenerstellung oder -aktualisierung', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:DataModelMenu' => 'Datenmodell', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:DataModelMenu+' => 'Übersicht des Datenmodells', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:ExportMenu' => 'Export', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:ExportMenu+' => 'Export einer beliebigen Abfrage in HTML, CSV oder XML', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:NotificationsMenu' => 'Benachrichtigungen', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:NotificationsMenu+' => 'Einstellungen der Benachrichtigungen', // Duplicated into itop-welcome-itil (will be removed from here...)
'UI:NotificationsMenu:Title' => 'Einstellungen der <span class="hilite">Benachrichtigungen</span>',
'UI:NotificationsMenu:Help' => 'Hilfe',
'UI:NotificationsMenu:HelpContent' => '<p>In iTop sind Benachrichtigungen vollständig anpassbar. Sie basieren auf zwei Gruppen an Objekten: <i>Trigger und Aktionen</i>.</p>
@@ -737,28 +737,25 @@ Wenn Aktionen mit Trigger verknüpft sind, bekommt jede Aktion eine Auftragsnumm
'UI:NotificationsMenu:OnStateLeave' => 'Wenn ein Objekt einen gegebenen Status verlässt',
'UI:NotificationsMenu:Actions' => 'Aktionen',
'UI:NotificationsMenu:AvailableActions' => 'Verfügbare Aktionen',
'Menu:AuditCategories' => 'Audit-Kategorien',
'Menu:AuditCategories+' => 'Audit-Kategorien',
'Menu:Notifications:Title' => 'Audit-Kategorien',
'Menu:RunQueriesMenu' => 'Abfrage ausführen',
'Menu:RunQueriesMenu+' => 'Eine beliebige Abfrage ausführen',
'Menu:QueryMenu' => 'Query-Bibliothek',
'Menu:QueryMenu+' => '',
'Menu:DataAdministration' => 'Data Management',
'Menu:DataAdministration+' => 'Data Management',
'Menu:UniversalSearchMenu' => 'Universelle Suche',
'Menu:UniversalSearchMenu+' => 'Suchen Sie nach beliebigen Inhalt...',
'Menu:ApplicationLogMenu' => 'Protokoll der Anwendung',
'Menu:ApplicationLogMenu+' => 'Protokoll der Anwendung',
'Menu:ApplicationLogMenu:Title' => 'Protokoll der Anwendung',
'Menu:UserManagementMenu' => 'User-Management',
'Menu:UserManagementMenu+' => 'User-Management',
'Menu:ProfilesMenu' => 'Profile',
'Menu:ProfilesMenu+' => 'Profile',
'Menu:ProfilesMenu:Title' => 'Profile',
'Menu:UserAccountsMenu' => 'Benutzerkonten',
'Menu:UserAccountsMenu+' => 'Benutzerkonten',
'Menu:UserAccountsMenu:Title' => 'Benutzerkonten',
'Menu:AuditCategories' => 'Audit-Kategorien', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:AuditCategories+' => 'Audit-Kategorien', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:Notifications:Title' => 'Audit-Kategorien', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:RunQueriesMenu' => 'Abfrage ausführen', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:RunQueriesMenu+' => 'Eine beliebige Abfrage ausführen', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:QueryMenu' => 'Query-Bibliothek', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:QueryMenu+' => '', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:DataAdministration' => 'Data Management', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:DataAdministration+' => 'Data Management', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UniversalSearchMenu' => 'Universelle Suche', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UniversalSearchMenu+' => 'Suchen Sie nach beliebigen Inhalt...', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UserManagementMenu' => 'User-Management', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UserManagementMenu+' => 'User-Management', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:ProfilesMenu' => 'Profile', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:ProfilesMenu+' => 'Profile', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:ProfilesMenu:Title' => 'Profile', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UserAccountsMenu' => 'Benutzerkonten', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UserAccountsMenu+' => 'Benutzerkonten', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UserAccountsMenu:Title' => 'Benutzerkonten', // Duplicated into itop-welcome-itil (will be removed from here...)
'UI:iTopVersion:Short' => 'iTop Version %1$s',
'UI:iTopVersion:Long' => 'iTop Version %1$s-%2$s compiliert am %3$s',
'UI:PropertiesTab' => 'Eigenschaften',

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2012 Combodo SARL
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
@@ -628,8 +628,8 @@ Dict::Add('EN US', 'English', 'English', array(
'Core:Synchro:NeverRun' => 'This synchro was never run. No log yet.',
'Core:Synchro:SynchroEndedOn_Date' => 'The latest synchronization ended on %1$s.',
'Core:Synchro:SynchroRunningStartedOn_Date' => 'The synchronization started on %1$s is still running...',
'Menu:DataSources' => 'Synchronization Data Sources',
'Menu:DataSources+' => 'All Synchronization Data Sources',
'Menu:DataSources' => 'Synchronization Data Sources', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:DataSources+' => 'All Synchronization Data Sources', // Duplicated into itop-welcome-itil (will be removed from here...)
'Core:Synchro:label_repl_ignored' => 'Ignored (%1$s)',
'Core:Synchro:label_repl_disappeared' => 'Disappeared (%1$s)',
'Core:Synchro:label_repl_existing' => 'Existing (%1$s)',
@@ -777,16 +777,15 @@ Dict::Add('EN US', 'English', 'English', array(
'Class:appUserPreferences/Attribute:preferences' => 'Prefs',
'Core:ExecProcess:Code1' => 'Wrong command or command finished with errors (e.g. wrong script name)',
'Core:ExecProcess:Code255' => 'PHP Error (parsing, or runtime)',
));
//
// Attribute Duration
//
Dict::Add('EN US', 'English', 'English', array(
// Attribute Duration
'Core:Duration_Seconds' => '%1$ds',
'Core:Duration_Minutes_Seconds' =>'%1$dmin %2$ds',
'Core:Duration_Hours_Minutes_Seconds' => '%1$dh %2$dmin %3$ds',
'Core:Duration_Days_Hours_Minutes_Seconds' => '%1$sd %2$dh %3$dmin %4$ds',
));
?>
// Explain working time computing
'Core:ExplainWTC:ElapsedTime' => 'Time elapsed (stored as "%1$s")',
'Core:ExplainWTC:StopWatch-TimeSpent' => 'Time spent for "%1$s"',
'Core:ExplainWTC:StopWatch-Deadline' => 'Deadline for "%1$s" at %2$d%%'
));

View File

@@ -314,10 +314,10 @@ Dict::Add('EN US', 'English', 'English', array(
Dict::Add('EN US', 'English', 'English', array(
'BooleanLabel:yes' => 'yes',
'BooleanLabel:no' => 'no',
'Menu:WelcomeMenu' => 'Welcome',
'Menu:WelcomeMenu+' => 'Welcome to iTop',
'Menu:WelcomeMenuPage' => 'Welcome',
'Menu:WelcomeMenuPage+' => 'Welcome to iTop',
'Menu:WelcomeMenu' => 'Welcome', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:WelcomeMenu+' => 'Welcome to iTop', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:WelcomeMenuPage' => 'Welcome', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:WelcomeMenuPage+' => 'Welcome to iTop', // Duplicated into itop-welcome-itil (will be removed from here...)
'UI:WelcomeMenu:Title' => 'Welcome to iTop',
'UI:WelcomeMenu:LeftBlock' => '<p>iTop is a complete, OpenSource, IT Operational Portal.</p>
@@ -832,9 +832,9 @@ Dict::Add('EN US', 'English', 'English', array(
'UI:UserManagement:LinkBetween_User_And_Profile' => 'Link between %1$s and %2$s',
'UI:UserManagement:LinkBetween_User_And_Org' => 'Link between %1$s and %2$s',
'Menu:AdminTools' => 'Admin tools',
'Menu:AdminTools+' => 'Administration tools',
'Menu:AdminTools?' => 'Tools accessible only to users having the administrator profile',
'Menu:AdminTools' => 'Admin tools', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:AdminTools+' => 'Administration tools', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:AdminTools?' => 'Tools accessible only to users having the administrator profile', // Duplicated into itop-welcome-itil (will be removed from here...)
'UI:ChangeManagementMenu' => 'Change Management',
'UI:ChangeManagementMenu+' => 'Change Management',
@@ -880,17 +880,17 @@ Dict::Add('EN US', 'English', 'English', array(
'UI-ContactsMenu-ContactsByType' => 'Contacts by type',
'UI-ContactsMenu-ContactsByStatus' => 'Contacts by status',
'Menu:CSVImportMenu' => 'CSV import',
'Menu:CSVImportMenu+' => 'Bulk creation or update',
'Menu:CSVImportMenu' => 'CSV import', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:CSVImportMenu+' => 'Bulk creation or update', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:DataModelMenu' => 'Data Model',
'Menu:DataModelMenu+' => 'Overview of the Data Model',
'Menu:DataModelMenu' => 'Data Model', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:DataModelMenu+' => 'Overview of the Data Model', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:ExportMenu' => 'Export',
'Menu:ExportMenu+' => 'Export the results of any query in HTML, CSV or XML',
'Menu:ExportMenu' => 'Export', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:ExportMenu+' => 'Export the results of any query in HTML, CSV or XML', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:NotificationsMenu' => 'Notifications',
'Menu:NotificationsMenu+' => 'Configuration of the Notifications',
'Menu:NotificationsMenu' => 'Notifications', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:NotificationsMenu+' => 'Configuration of the Notifications', // Duplicated into itop-welcome-itil (will be removed from here...)
'UI:NotificationsMenu:Title' => 'Configuration of the <span class="hilite">Notifications</span>',
'UI:NotificationsMenu:Help' => 'Help',
'UI:NotificationsMenu:HelpContent' => '<p>In iTop the notifications are fully customizable. They are based on two sets of objects: <i>triggers and actions</i>.</p>
@@ -918,36 +918,32 @@ When associated with a trigger, each action is given an "order" number, specifyi
'UI:NotificationsMenu:Actions' => 'Actions',
'UI:NotificationsMenu:AvailableActions' => 'Available actions',
'Menu:AuditCategories' => 'Audit Categories',
'Menu:AuditCategories+' => 'Audit Categories',
'Menu:Notifications:Title' => 'Audit Categories',
'Menu:AuditCategories' => 'Audit Categories', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:AuditCategories+' => 'Audit Categories', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:Notifications:Title' => 'Audit Categories', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:RunQueriesMenu' => 'Run Queries',
'Menu:RunQueriesMenu+' => 'Run any query',
'Menu:RunQueriesMenu' => 'Run Queries', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:RunQueriesMenu+' => 'Run any query', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:QueryMenu' => 'Query phrasebook',
'Menu:QueryMenu+' => 'Query phrasebook',
'Menu:QueryMenu' => 'Query phrasebook', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:QueryMenu+' => 'Query phrasebook', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:DataAdministration' => 'Data administration',
'Menu:DataAdministration+' => 'Data administration',
'Menu:DataAdministration' => 'Data administration', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:DataAdministration+' => 'Data administration', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UniversalSearchMenu' => 'Universal Search',
'Menu:UniversalSearchMenu+' => 'Search for anything...',
'Menu:UniversalSearchMenu' => 'Universal Search', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UniversalSearchMenu+' => 'Search for anything...', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:ApplicationLogMenu' => 'Log de l\'application',
'Menu:ApplicationLogMenu+' => 'Log de l\'application',
'Menu:ApplicationLogMenu:Title' => 'Log de l\'application',
'Menu:UserManagementMenu' => 'User Management', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UserManagementMenu+' => 'User management', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UserManagementMenu' => 'User Management',
'Menu:UserManagementMenu+' => 'User management',
'Menu:ProfilesMenu' => 'Profiles', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:ProfilesMenu+' => 'Profiles', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:ProfilesMenu:Title' => 'Profiles', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:ProfilesMenu' => 'Profiles',
'Menu:ProfilesMenu+' => 'Profiles',
'Menu:ProfilesMenu:Title' => 'Profiles',
'Menu:UserAccountsMenu' => 'User Accounts',
'Menu:UserAccountsMenu+' => 'User Accounts',
'Menu:UserAccountsMenu:Title' => 'User Accounts',
'Menu:UserAccountsMenu' => 'User Accounts', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UserAccountsMenu+' => 'User Accounts', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UserAccountsMenu:Title' => 'User Accounts', // Duplicated into itop-welcome-itil (will be removed from here...)
'UI:iTopVersion:Short' => 'iTop version %1$s',
'UI:iTopVersion:Long' => 'iTop version %1$s-%2$s built on %3$s',
@@ -1093,7 +1089,7 @@ When associated with a trigger, each action is given an "order" number, specifyi
'UI:DashboardEdit:DashboardTitle' => 'Title',
'UI:DashboardEdit:AutoReload' => 'Automatic refresh',
'UI:DashboardEdit:AutoReloadSec' => 'Automatic refresh interval (seconds)',
'UI:DashboardEdit:AutoReloadSec+' => 'The minimum allowed is 5 seconds',
'UI:DashboardEdit:AutoReloadSec+' => 'The minimum allowed is %1$d seconds',
'UI:DashboardEdit:Layout' => 'Layout',
'UI:DashboardEdit:Properties' => 'Dashboard Properties',
@@ -1180,7 +1176,7 @@ When associated with a trigger, each action is given an "order" number, specifyi
'UI:ShortcutRenameDlg:Title' => 'Rename the shortcut',
'UI:ShortcutListDlg:Title' => 'Create a shortcut for the list',
'UI:ShortcutDelete:Confirm' => 'Please confirm that wou wish to delete the shortcut(s).',
'Menu:MyShortcuts' => 'My Shortcuts',
'Menu:MyShortcuts' => 'My Shortcuts', // Duplicated into itop-welcome-itil (will be removed from here...)
'Class:Shortcut' => 'Shortcut',
'Class:Shortcut+' => '',
'Class:Shortcut/Attribute:name' => 'Name',
@@ -1193,7 +1189,7 @@ When associated with a trigger, each action is given an "order" number, specifyi
'Class:ShortcutOQL/Attribute:auto_reload/Value:none' => 'Disabled',
'Class:ShortcutOQL/Attribute:auto_reload/Value:custom' => 'Custom rate',
'Class:ShortcutOQL/Attribute:auto_reload_sec' => 'Automatic refresh interval (seconds)',
'Class:ShortcutOQL/Attribute:auto_reload_sec+' => 'The minimum allowed is 5 seconds',
'Class:ShortcutOQL/Attribute:auto_reload_sec/tip' => 'The minimum allowed is %1$d seconds',
'UI:FillAllMandatoryFields' => 'Please fill all mandatory fields.',
'UI:ValueMustBeSet' => 'Please specify a value',

View File

@@ -622,8 +622,8 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array(
'Core:Synchro:NeverRun' => 'Esta Sincronización no ha sido ejecutada. No hay bitácora todavía.',
'Core:Synchro:SynchroEndedOn_Date' => 'La última Sincronización terminó en %1$s.',
'Core:Synchro:SynchroRunningStartedOn_Date' => 'La Sincronización iniciada en %1$s está todavía en ejecución.',
'Menu:DataSources' => 'Fuentes de Datos Sincronizables',
'Menu:DataSources+' => 'Fuentes de Datos Sincronizables',
'Menu:DataSources' => 'Fuentes de Datos Sincronizables', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:DataSources+' => 'Fuentes de Datos Sincronizables', // Duplicated into itop-welcome-itil (will be removed from here...)
'Core:Synchro:label_repl_ignored' => 'Ignorados (%1$s)',
'Core:Synchro:label_repl_disappeared' => 'Desaparecieron (%1$s)',
'Core:Synchro:label_repl_existing' => 'Existen (%1$s)',

View File

@@ -311,10 +311,10 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array(
Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array(
'BooleanLabel:yes' => 'si',
'BooleanLabel:no' => 'no',
'Menu:WelcomeMenu' => 'Bienvenido',
'Menu:WelcomeMenu+' => 'Bienvenido a iTop',
'Menu:WelcomeMenuPage' => 'Bienvenido',
'Menu:WelcomeMenuPage+' => 'Bienvenido a iTop',
'Menu:WelcomeMenu' => 'Bienvenido', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:WelcomeMenu+' => 'Bienvenido a iTop', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:WelcomeMenuPage' => 'Bienvenido', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:WelcomeMenuPage+' => 'Bienvenido a iTop', // Duplicated into itop-welcome-itil (will be removed from here...)
'UI:WelcomeMenu:Title' => 'Bienvenido a iTop',
'UI:WelcomeMenu:LeftBlock' => '<p>iTop es un completo portal de administración de servicios de TI basado en código abierto.</p>
@@ -824,9 +824,9 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array(
'UI:UserManagement:LinkBetween_User_And_Profile' => 'Vinculo entre %1$s y %2$s',
'UI:UserManagement:LinkBetween_User_And_Org' => 'Vínculo entre %1$s y %2$s',
'Menu:AdminTools' => 'Herramientas Administrativas',
'Menu:AdminTools+' => 'Herramientas Administrativas',
'Menu:AdminTools?' => 'Herramientas accesibles sólo a usuarios con Perfil de administrador',
'Menu:AdminTools' => 'Herramientas Administrativas', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:AdminTools+' => 'Herramientas Administrativas', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:AdminTools?' => 'Herramientas accesibles sólo a usuarios con Perfil de administrador', // Duplicated into itop-welcome-itil (will be removed from here...)
'UI:ChangeManagementMenu' => 'Control de Cambios',
'UI:ChangeManagementMenu+' => 'Control de Cambios',
@@ -872,17 +872,17 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array(
'UI-ContactsMenu-ContactsByType' => 'Contactos por Tipo',
'UI-ContactsMenu-ContactsByStatus' => 'Contactos por Estatus',
'Menu:CSVImportMenu' => 'Importar CSV',
'Menu:CSVImportMenu+' => 'Creación o Actualización Másiva',
'Menu:CSVImportMenu' => 'Importar CSV', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:CSVImportMenu+' => 'Creación o Actualización Másiva', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:DataModelMenu' => 'Modelo de Datos',
'Menu:DataModelMenu+' => 'Resumen del Modelo de Datos',
'Menu:DataModelMenu' => 'Modelo de Datos', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:DataModelMenu+' => 'Resumen del Modelo de Datos', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:ExportMenu' => 'Exportar',
'Menu:ExportMenu+' => 'Exportar los Resultados de Cualquier Consulta en HTML, CSV o XML',
'Menu:ExportMenu' => 'Exportar', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:ExportMenu+' => 'Exportar los Resultados de Cualquier Consulta en HTML, CSV o XML', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:NotificationsMenu' => 'Notificaciones',
'Menu:NotificationsMenu+' => 'Configuración de las Notificaciones',
'Menu:NotificationsMenu' => 'Notificaciones', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:NotificationsMenu+' => 'Configuración de las Notificaciones', // Duplicated into itop-welcome-itil (will be removed from here...)
'UI:NotificationsMenu:Title' => 'Configuración de las <span class="hilite">Notificaciones</span>',
'UI:NotificationsMenu:Help' => 'Ayuda',
'UI:NotificationsMenu:HelpContent' => '<p>En iTop las notificaciones son completamente personalizables. Están basadas en dos conjuntos de objetos: <i>Disparadores y Acciones</i>.</p>
@@ -910,36 +910,32 @@ Cuando se asocien con un disparador, cada acción recibe un número de "orden",
'UI:NotificationsMenu:Actions' => 'Acciones',
'UI:NotificationsMenu:AvailableActions' => 'Acciones Disponibles',
'Menu:AuditCategories' => 'Auditar Categorías',
'Menu:AuditCategories+' => 'Auditar Categorías',
'Menu:Notifications:Title' => 'Auditar Categorías',
'Menu:AuditCategories' => 'Auditar Categorías', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:AuditCategories+' => 'Auditar Categorías', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:Notifications:Title' => 'Auditar Categorías', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:RunQueriesMenu' => 'Ejecutar Consultas',
'Menu:RunQueriesMenu+' => 'Ejecutar Cualquier Consulta',
'Menu:RunQueriesMenu' => 'Ejecutar Consultas', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:RunQueriesMenu+' => 'Ejecutar Cualquier Consulta', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:QueryMenu' => 'Libreta de Consultas',
'Menu:QueryMenu+' => 'Libreta de Consultas',
'Menu:QueryMenu' => 'Libreta de Consultas', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:QueryMenu+' => 'Libreta de Consultas', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:DataAdministration' => 'Administración de Datos',
'Menu:DataAdministration+' => 'Administración de Datos',
'Menu:DataAdministration' => 'Administración de Datos', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:DataAdministration+' => 'Administración de Datos', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UniversalSearchMenu' => 'Búsqueda Universal',
'Menu:UniversalSearchMenu+' => 'Buscar cualquier cosa',
'Menu:UniversalSearchMenu' => 'Búsqueda Universal', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UniversalSearchMenu+' => 'Buscar cualquier cosa', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:ApplicationLogMenu' => 'Bitácoras de la Aplicación',
'Menu:ApplicationLogMenu+' => 'Bitácoras de la Aplicación',
'Menu:ApplicationLogMenu:Title' => 'Bitácoras de la Aplicación',
'Menu:UserManagementMenu' => 'Administración de Usuarios', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UserManagementMenu+' => 'Administración de Usuarios', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UserManagementMenu' => 'Administración de Usuarios',
'Menu:UserManagementMenu+' => 'Administración de Usuarios',
'Menu:ProfilesMenu' => 'Perfiles', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:ProfilesMenu+' => 'Perfiles', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:ProfilesMenu:Title' => 'Perfiles', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:ProfilesMenu' => 'Perfiles',
'Menu:ProfilesMenu+' => 'Perfiles',
'Menu:ProfilesMenu:Title' => 'Perfiles',
'Menu:UserAccountsMenu' => 'Cuentas de Usuario',
'Menu:UserAccountsMenu+' => 'Cuentas de Usuario',
'Menu:UserAccountsMenu:Title' => 'Cuentas de Usuario',
'Menu:UserAccountsMenu' => 'Cuentas de Usuario', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UserAccountsMenu+' => 'Cuentas de Usuario', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UserAccountsMenu:Title' => 'Cuentas de Usuario', // Duplicated into itop-welcome-itil (will be removed from here...)
'UI:iTopVersion:Short' => 'iTop versión %1$s',
'UI:iTopVersion:Long' => 'iTop versión %1$s-%2$s compilada en %3$s',
@@ -1085,7 +1081,7 @@ Cuando se asocien con un disparador, cada acción recibe un número de "orden",
'UI:DashboardEdit:DashboardTitle' => 'Título',
'UI:DashboardEdit:AutoReload' => 'Actualización Automática',
'UI:DashboardEdit:AutoReloadSec' => 'Interválo de Actualización Automática (segundos)',
'UI:DashboardEdit:AutoReloadSec+' => 'El interválo mínimo es de 5 segundos',
'UI:DashboardEdit:AutoReloadSec+' => 'El interválo mínimo es de %1$d segundos',
'UI:DashboardEdit:Layout' => 'Distribución',
'UI:DashboardEdit:Properties' => 'Propiedades',
'UI:DashboardEdit:Dashlets' => 'Dashlets disponibles',
@@ -1171,7 +1167,7 @@ Cuando se asocien con un disparador, cada acción recibe un número de "orden",
'UI:ShortcutRenameDlg:Title' => 'Renombrar Acceso Rápido',
'UI:ShortcutListDlg:Title' => 'Crear Acceso Rápido para la Lista',
'UI:ShortcutDelete:Confirm' => 'Por favor conforme que desea Eliminar el/los Acceso(s) Rápido(s)',
'Menu:MyShortcuts' => 'Mis Accesos Rápidos',
'Menu:MyShortcuts' => 'Mis Accesos Rápidos', // Duplicated into itop-welcome-itil (will be removed from here...)
'Class:Shortcut' => 'Acceso Rápido',
'Class:Shortcut+' => 'Acceso Rápido',
'Class:Shortcut/Attribute:name' => 'Nombre',
@@ -1184,7 +1180,7 @@ Cuando se asocien con un disparador, cada acción recibe un número de "orden",
'Class:ShortcutOQL/Attribute:auto_reload/Value:none' => 'Deshabilitado',
'Class:ShortcutOQL/Attribute:auto_reload/Value:custom' => 'Frecuencia configurable',
'Class:ShortcutOQL/Attribute:auto_reload_sec' => 'Interválo de Actualización Automática (segundos)',
'Class:ShortcutOQL/Attribute:auto_reload_sec+' => 'El interválo mínimo es de 5 segundos',
'Class:ShortcutOQL/Attribute:auto_reload_sec/tip' => 'El interválo mínimo es de %1$d segundos',
'UI:FillAllMandatoryFields' => 'Por favor llenar los campos obligatorios.',
'UI:CSVImportConfirmTitle' => 'Por favor confirme la operación',
'UI:CSVImportConfirmMessage' => '¿Está seguro?',

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2012 Combodo SARL
// Copyright (C) 2010-2014 Combodo SARL
//
// This file is part of iTop.
//
@@ -589,8 +589,8 @@ Opérateurs :<br/>
'Core:Synchro:NeverRun' => 'Aucun historique, la synchronisation n\'a pas encore fonctionné',
'Core:Synchro:SynchroEndedOn_Date' => 'La dernière synchronisation s\'est terminée à: %1$s.',
'Core:Synchro:SynchroRunningStartedOn_Date' => 'Synchronisation en cours (début à %1$s)',
'Menu:DataSources' => 'Synchronisation',
'Menu:DataSources+' => '',
'Menu:DataSources' => 'Synchronisation', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:DataSources+' => '', // Duplicated into itop-welcome-itil (will be removed from here...)
'Core:Synchro:label_repl_ignored' => 'Ignorés (%1$s)',
'Core:Synchro:label_repl_disappeared' => 'Disparus (%1$s)',
'Core:Synchro:label_repl_existing' => 'Existants (%1$s)',
@@ -646,5 +646,7 @@ Opérateurs :<br/>
'Core:Duration_Minutes_Seconds' => '%1$dmin %2$ds',
'Core:Duration_Hours_Minutes_Seconds' => '%1$dh %2$dmin %3$ds',
'Core:Duration_Days_Hours_Minutes_Seconds' => '%1$sj %2$dh %3$dmin %4$ds',
'Core:ExplainWTC:ElapsedTime' => 'Temps écoulé (enregistré dans "%1$s")',
'Core:ExplainWTC:StopWatch-TimeSpent' => 'Temps écoulé pour "%1$s"',
'Core:ExplainWTC:StopWatch-Deadline' => 'Date/heure de butée pour "%1$s" à %2$d%%'
));
?>

View File

@@ -196,10 +196,10 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:URP_ClassProjection/Attribute:attribute+' => 'Target attribute code (optional)',
'BooleanLabel:yes' => 'oui',
'BooleanLabel:no' => 'non',
'Menu:WelcomeMenu' => 'Bienvenue',
'Menu:WelcomeMenu+' => 'Bienvenue dans iTop',
'Menu:WelcomeMenuPage' => 'Bienvenue',
'Menu:WelcomeMenuPage+' => 'Bienvenue dans iTop',
'Menu:WelcomeMenu' => 'Bienvenue', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:WelcomeMenu+' => 'Bienvenue dans iTop', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:WelcomeMenuPage' => 'Bienvenue', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:WelcomeMenuPage+' => 'Bienvenue dans iTop', // Duplicated into itop-welcome-itil (will be removed from here...)
'UI:WelcomeMenu:Title' => 'Bienvenue dans iTop',
'UI:WelcomeMenu:LeftBlock' => '<p>iTop est un portail opérationnel complet et libre pour gérer votre SI.</p>
<ul>il contient:
@@ -700,9 +700,9 @@ Dict::Add('FR FR', 'French', 'Français', array(
'UI:UserManagement:GrantMatrix' => 'Matrice des droits',
'UI:UserManagement:LinkBetween_User_And_Profile' => 'Lien entre %1$s et %2$s',
'UI:UserManagement:LinkBetween_User_And_Org' => 'Lien entre %1$s et %2$s',
'Menu:AdminTools' => 'Outils d\'admin',
'Menu:AdminTools+' => 'Outils d\'administration',
'Menu:AdminTools?' => 'Ces outils sont accessibles uniquement aux utilisateurs possédant le profil Administrateur.',
'Menu:AdminTools' => 'Outils d\'admin', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:AdminTools+' => 'Outils d\'administration', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:AdminTools?' => 'Ces outils sont accessibles uniquement aux utilisateurs possédant le profil Administrateur.', // Duplicated into itop-welcome-itil (will be removed from here...)
'UI:ChangeManagementMenu' => 'Gestion du Changement',
'UI:ChangeManagementMenu+' => 'Gestion du Changement',
'UI:ChangeManagementMenu:Title' => 'Résumé des changements',
@@ -739,14 +739,14 @@ Dict::Add('FR FR', 'French', 'Français', array(
'UI-ContactsMenu-ContactsByLocation' => 'Contacts par emplacement',
'UI-ContactsMenu-ContactsByType' => 'Contacts par type',
'UI-ContactsMenu-ContactsByStatus' => 'Contacts par état',
'Menu:CSVImportMenu' => 'Import CSV',
'Menu:CSVImportMenu+' => 'Import ou mise à jour en masse',
'Menu:DataModelMenu' => 'Modèle de Données',
'Menu:DataModelMenu+' => 'Résumé du Modèle de Données',
'Menu:ExportMenu' => 'Exportation',
'Menu:ExportMenu+' => 'Exportation des résultats d\'une requête en HTML, CSV ou XML',
'Menu:NotificationsMenu' => 'Notifications',
'Menu:NotificationsMenu+' => 'Configuration des Notifications',
'Menu:CSVImportMenu' => 'Import CSV', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:CSVImportMenu+' => 'Import ou mise à jour en masse', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:DataModelMenu' => 'Modèle de Données', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:DataModelMenu+' => 'Résumé du Modèle de Données', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:ExportMenu' => 'Exportation', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:ExportMenu+' => 'Exportation des résultats d\'une requête en HTML, CSV ou XML', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:NotificationsMenu' => 'Notifications', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:NotificationsMenu+' => 'Configuration des Notifications', // Duplicated into itop-welcome-itil (will be removed from here...)
'UI:NotificationsMenu:Title' => 'Configuration des <span class="hilite">Notifications</span>',
'UI:NotificationsMenu:Help' => 'Aide',
'UI:NotificationsMenu:HelpContent' => '<p>Dans iTop les notifications sont totalement configurables. Elles sont basées sur deux types d\'objets: <i>déclencheurs et actions</i>.</p>
@@ -772,28 +772,25 @@ Lors de l\'association à un déclencheur, on attribue à chaque action un numé
'UI:NotificationsMenu:OnStateLeave' => 'Quand un objet quitte un état donné',
'UI:NotificationsMenu:Actions' => 'Actions',
'UI:NotificationsMenu:AvailableActions' => 'Actions existantes',
'Menu:AuditCategories' => 'Catégories d\'audit',
'Menu:AuditCategories+' => 'Catégories d\'audit',
'Menu:Notifications:Title' => 'Catégories d\'audit',
'Menu:RunQueriesMenu' => 'Requêtes OQL',
'Menu:RunQueriesMenu+' => 'Executer une requête OQL',
'Menu:QueryMenu' => 'Livre des requêtes',
'Menu:QueryMenu+' => 'Livre des requêtes',
'Menu:DataAdministration' => 'Administration des données',
'Menu:DataAdministration+' => 'Administration des données',
'Menu:UniversalSearchMenu' => 'Recherche Universelle',
'Menu:UniversalSearchMenu+' => 'Rechercher n\'importe quel objet...',
'Menu:ApplicationLogMenu' => 'Application Log',
'Menu:ApplicationLogMenu+' => 'Application Log',
'Menu:ApplicationLogMenu:Title' => 'Application Log',
'Menu:UserManagementMenu' => 'Gestion des Utilisateurs',
'Menu:UserManagementMenu+' => 'Gestion des Utilisateurs',
'Menu:ProfilesMenu' => 'Profils',
'Menu:ProfilesMenu+' => 'Profils',
'Menu:ProfilesMenu:Title' => 'Profils',
'Menu:UserAccountsMenu' => 'Comptes Utilisateurs',
'Menu:UserAccountsMenu+' => 'Comptes Utilisateurs',
'Menu:UserAccountsMenu:Title' => 'Comptes Utilisateusr',
'Menu:AuditCategories' => 'Catégories d\'audit', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:AuditCategories+' => 'Catégories d\'audit', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:Notifications:Title' => 'Catégories d\'audit', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:RunQueriesMenu' => 'Requêtes OQL', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:RunQueriesMenu+' => 'Executer une requête OQL', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:QueryMenu' => 'Livre des requêtes', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:QueryMenu+' => 'Livre des requêtes', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:DataAdministration' => 'Administration des données', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:DataAdministration+' => 'Administration des données', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UniversalSearchMenu' => 'Recherche Universelle', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UniversalSearchMenu+' => 'Rechercher n\'importe quel objet...', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UserManagementMenu' => 'Gestion des Utilisateurs', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UserManagementMenu+' => 'Gestion des Utilisateurs', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:ProfilesMenu' => 'Profils', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:ProfilesMenu+' => 'Profils', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:ProfilesMenu:Title' => 'Profils', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UserAccountsMenu' => 'Comptes Utilisateurs', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UserAccountsMenu+' => 'Comptes Utilisateurs', // Duplicated into itop-welcome-itil (will be removed from here...)
'Menu:UserAccountsMenu:Title' => 'Comptes Utilisateurs', // Duplicated into itop-welcome-itil (will be removed from here...)
'UI:iTopVersion:Short' => 'iTop version %1$s',
'UI:iTopVersion:Long' => 'iTop version %1$s-%2$s du %3$s',
'UI:PropertiesTab' => 'Propriétés',
@@ -934,7 +931,7 @@ Lors de l\'association à un déclencheur, on attribue à chaque action un numé
'UI:DashboardEdit:DashboardTitle' => 'Titre',
'UI:DashboardEdit:AutoReload' => 'Réactualisation automatique',
'UI:DashboardEdit:AutoReloadSec' => 'Réactualisation toutes les (secondes)',
'UI:DashboardEdit:AutoReloadSec+' => 'Le minimum permis est de 5 secondes',
'UI:DashboardEdit:AutoReloadSec+' => 'Le minimum permis est de %1$d secondes',
'UI:DashboardEdit:Layout' => 'Mise en page',
'UI:DashboardEdit:Properties' => 'Propriétés du tableau de bord',
'UI:DashboardEdit:Dashlets' => 'Indicateurs',
@@ -1020,7 +1017,7 @@ Lors de l\'association à un déclencheur, on attribue à chaque action un numé
'UI:ShortcutListDlg:Title' => 'Créer un raccourci pour la liste',
'UI:ShortcutRenameDlg:Title' => 'Renommer le raccourci',
'UI:ShortcutDelete:Confirm' => 'Veuillez confirmer la suppression du ou des raccourci(s)',
'Menu:MyShortcuts' => 'Mes raccourcis',
'Menu:MyShortcuts' => 'Mes raccourcis', // Duplicated into itop-welcome-itil (will be removed from here...)
'Class:Shortcut' => 'Raccourci',
'Class:Shortcut+' => '',
'Class:Shortcut/Attribute:name' => 'Nom',
@@ -1033,7 +1030,7 @@ Lors de l\'association à un déclencheur, on attribue à chaque action un numé
'Class:ShortcutOQL/Attribute:auto_reload/Value:none' => 'Désactivée',
'Class:ShortcutOQL/Attribute:auto_reload/Value:custom' => 'Personnalisée',
'Class:ShortcutOQL/Attribute:auto_reload_sec' => 'Réactualisation toutes les (secondes)',
'Class:ShortcutOQL/Attribute:auto_reload_sec+' => 'Le minimum permis est de 5 secondes',
'Class:ShortcutOQL/Attribute:auto_reload_sec/tip' => 'Le minimum permis est de %1$d secondes',
'UI:FillAllMandatoryFields' => 'Veuillez remplir tous les champs obligatoires.',
'UI:ValueMustBeSet' => 'Veuillez spécifier une valeur pour ce champ',

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