mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-17 17:34:12 +01:00
Compare commits
96 Commits
2.1.0-beta
...
support/2.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
89e98a4ad7 | ||
|
|
649a9833e9 | ||
|
|
b3c2396da8 | ||
|
|
5717ae1889 | ||
|
|
823b33b0f5 | ||
|
|
9561ae6292 | ||
|
|
e25a89dac1 | ||
|
|
cc7f3d46a6 | ||
|
|
95d6b640b1 | ||
|
|
4ee0c62701 | ||
|
|
15f521d470 | ||
|
|
86e6c8295f | ||
|
|
9f1338ee2a | ||
|
|
96c8ee5e4d | ||
|
|
8e863d4890 | ||
|
|
cd769d5e49 | ||
|
|
04677fc2c7 | ||
|
|
ed6a464d8b | ||
|
|
5794f7d1ca | ||
|
|
7d42aa48cd | ||
|
|
614dd21aa9 | ||
|
|
706e6c56ff | ||
|
|
f048c6cb1f | ||
|
|
1804903ee4 | ||
|
|
17a8a896dc | ||
|
|
ed85260bb3 | ||
|
|
3c7fac7504 | ||
|
|
93feb700e8 | ||
|
|
48456082a9 | ||
|
|
fbc0456496 | ||
|
|
0fc3ee12b1 | ||
|
|
ce5f8c93cd | ||
|
|
b38eb97323 | ||
|
|
e6eb32cd21 | ||
|
|
c2429f2d05 | ||
|
|
4e4f2b4db9 | ||
|
|
2d7f963316 | ||
|
|
546d181ea9 | ||
|
|
143cefe4e3 | ||
|
|
ece152173f | ||
|
|
b08de31b3c | ||
|
|
0f967a41df | ||
|
|
4c3bf70cc4 | ||
|
|
35dd3f9610 | ||
|
|
a7f7424e54 | ||
|
|
83e2974b10 | ||
|
|
715ba066d3 | ||
|
|
9502003ff4 | ||
|
|
57c827bb1a | ||
|
|
690ac9be75 | ||
|
|
4c3c31c44d | ||
|
|
3c9ace5b53 | ||
|
|
bd5268dc42 | ||
|
|
133b6d4d29 | ||
|
|
fba3990c61 | ||
|
|
53e997cfba | ||
|
|
e738ba35b7 | ||
|
|
0773455ebc | ||
|
|
cafc6a8baf | ||
|
|
48f222df0b | ||
|
|
88726a0634 | ||
|
|
0ac522fc4c | ||
|
|
aa97703b64 | ||
|
|
30af416394 | ||
|
|
1f2ad9ecdb | ||
|
|
d1f1889c42 | ||
|
|
ca7ee0f138 | ||
|
|
909729e9f1 | ||
|
|
a222ba998d | ||
|
|
aedddf9dcc | ||
|
|
74de0d33ab | ||
|
|
8d8510a412 | ||
|
|
4dd83a0eb6 | ||
|
|
671ee353e8 | ||
|
|
d714235d67 | ||
|
|
c4b039c9c6 | ||
|
|
29e751278e | ||
|
|
87ed5d4a05 | ||
|
|
c8a20d01da | ||
|
|
47add0eeea | ||
|
|
2a9f69d70e | ||
|
|
e90e570469 | ||
|
|
b0e56e5897 | ||
|
|
c96842d82c | ||
|
|
bc79aecd73 | ||
|
|
99755ad7e8 | ||
|
|
4867461f69 | ||
|
|
3d21eecbba | ||
|
|
b822cff269 | ||
|
|
3aa0b77751 | ||
|
|
f4b10d3e81 | ||
|
|
ca90f9b32a | ||
|
|
9ca051d9d0 | ||
|
|
291f05683c | ||
|
|
4889ed5ac2 | ||
|
|
3fa354d00d |
@@ -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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// Copyright (C) 2010-2012 Combodo SARL
|
||||
// Copyright (C) 2010-2015 Combodo SARL
|
||||
//
|
||||
// This file is part of iTop.
|
||||
//
|
||||
@@ -781,8 +781,12 @@ class RestUtils
|
||||
$oSearch = new DBObjectSearch($sClass);
|
||||
foreach ($oCriteria as $sAttCode => $value)
|
||||
{
|
||||
$realValue = self::MakeValue($sClass, $sAttCode, $value);
|
||||
$realValue = static::MakeValue($sClass, $sAttCode, $value);
|
||||
$oSearch->AddCondition($sAttCode, $realValue, '=');
|
||||
if (is_object($value) || is_array($value))
|
||||
{
|
||||
$value = json_encode($value);
|
||||
}
|
||||
$aCriteriaReport[] = "$sAttCode: $value ($realValue)";
|
||||
}
|
||||
$oSet = new DBObjectSet($oSearch);
|
||||
@@ -814,7 +818,7 @@ class RestUtils
|
||||
{
|
||||
if (is_object($key))
|
||||
{
|
||||
$res = self::FindObjectFromCriteria($sClass, $key);
|
||||
$res = static::FindObjectFromCriteria($sClass, $key);
|
||||
}
|
||||
elseif (is_numeric($key))
|
||||
{
|
||||
@@ -878,7 +882,7 @@ class RestUtils
|
||||
$oSearch = new DBObjectSearch($sClass);
|
||||
foreach ($key as $sAttCode => $value)
|
||||
{
|
||||
$realValue = self::MakeValue($sClass, $sAttCode, $value);
|
||||
$realValue = static::MakeValue($sClass, $sAttCode, $value);
|
||||
$oSearch->AddCondition($sAttCode, $realValue, '=');
|
||||
}
|
||||
}
|
||||
@@ -922,7 +926,7 @@ class RestUtils
|
||||
$oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode);
|
||||
if ($oAttDef instanceof AttributeExternalKey)
|
||||
{
|
||||
$oExtKeyObject = self::FindObjectFromKey($oAttDef->GetTargetClass(), $value, true /* allow null */);
|
||||
$oExtKeyObject = static::FindObjectFromKey($oAttDef->GetTargetClass(), $value, true /* allow null */);
|
||||
$value = ($oExtKeyObject != null) ? $oExtKeyObject->GetKey() : 0;
|
||||
}
|
||||
elseif ($oAttDef instanceof AttributeLinkedSet)
|
||||
@@ -935,7 +939,7 @@ class RestUtils
|
||||
$aLinks = array();
|
||||
foreach($value as $oValues)
|
||||
{
|
||||
$oLnk = self::MakeObjectFromFields($sLnkClass, $oValues);
|
||||
$oLnk = static::MakeObjectFromFields($sLnkClass, $oValues);
|
||||
$aLinks[] = $oLnk;
|
||||
}
|
||||
$value = DBObjectSet::FromArray($sLnkClass, $aLinks);
|
||||
@@ -966,7 +970,7 @@ class RestUtils
|
||||
$oObject = MetaModel::NewObject($sClass);
|
||||
foreach ($aFields as $sAttCode => $value)
|
||||
{
|
||||
$realValue = self::MakeValue($sClass, $sAttCode, $value);
|
||||
$realValue = static::MakeValue($sClass, $sAttCode, $value);
|
||||
try
|
||||
{
|
||||
$oObject->Set($sAttCode, $realValue);
|
||||
@@ -993,7 +997,7 @@ class RestUtils
|
||||
$sClass = get_class($oObject);
|
||||
foreach ($aFields as $sAttCode => $value)
|
||||
{
|
||||
$realValue = self::MakeValue($sClass, $sAttCode, $value);
|
||||
$realValue = static::MakeValue($sClass, $sAttCode, $value);
|
||||
try
|
||||
{
|
||||
$oObject->Set($sAttCode, $realValue);
|
||||
|
||||
@@ -1522,7 +1522,7 @@ abstract class cmdbAbstractObject extends CMDBObject implements iDisplay
|
||||
{
|
||||
if (is_scalar($sValue))
|
||||
{
|
||||
$sHtml .= "<input type=\"hidden\" name=\"$sName\" value=\"$sValue\" />\n";
|
||||
$sHtml .= "<input type=\"hidden\" name=\"$sName\" value=\"".htmlentities($sValue, ENT_QUOTES, 'UTF-8')."\" />\n";
|
||||
}
|
||||
}
|
||||
$sHtml .= "<input type=\"hidden\" name=\"class\" value=\"$sClassName\" />\n";
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
@@ -312,7 +312,7 @@ abstract class Dashboard
|
||||
|
||||
public function Render($oPage, $bEditMode = false, $aExtraParams = array())
|
||||
{
|
||||
$oPage->add('<h1>'.Dict::S($this->sTitle).'</h1>');
|
||||
$oPage->add('<h1>'.htmlentities(Dict::S($this->sTitle), ENT_QUOTES, 'UTF-8', false).'</h1>');
|
||||
$oLayout = new $this->sLayoutClass;
|
||||
$oLayout->Render($oPage, $this->aCells, $bEditMode, $aExtraParams);
|
||||
if (!$bEditMode)
|
||||
@@ -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
|
||||
|
||||
@@ -733,7 +733,8 @@ abstract class DashletGroupBy extends Dashlet
|
||||
if (is_subclass_of($sAttType, 'AttributeFriendlyName')) continue;
|
||||
if ($sAttType == 'AttributeExternalField') continue;
|
||||
if (is_subclass_of($sAttType, 'AttributeExternalField')) continue;
|
||||
|
||||
if ($sAttType == 'AttributeOneWayPassword') continue;
|
||||
|
||||
$sLabel = $this->oModelReflection->GetLabel($sClass, $sAttCode);
|
||||
$aGroupBy[$sAttCode] = $sLabel;
|
||||
|
||||
|
||||
@@ -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
|
||||
{
|
||||
@@ -393,7 +393,7 @@ class DisplayBlock
|
||||
{
|
||||
if (isset($aExtraParams['group_by_label']))
|
||||
{
|
||||
$oGroupByExp = Expression::FromOQL($aExtraParams['group_by']);
|
||||
$oGroupByExp = Expression::FromOQL($aExtraParams['group_by']);
|
||||
$sGroupByLabel = $aExtraParams['group_by_label'];
|
||||
}
|
||||
else
|
||||
@@ -404,6 +404,21 @@ class DisplayBlock
|
||||
$sGroupByLabel = MetaModel::GetLabel($this->m_oFilter->GetClass(), $aExtraParams['group_by']);
|
||||
}
|
||||
|
||||
// Security filtering
|
||||
$aFields = $oGroupByExp->ListRequiredFields();
|
||||
foreach($aFields as $sFieldAlias)
|
||||
{
|
||||
if (preg_match('/^([^.]+)\\.([^.]+)$/', $sFieldAlias, $aMatches))
|
||||
{
|
||||
$sFieldClass = $this->m_oFilter->GetClassName($aMatches[1]);
|
||||
$oAttDef = MetaModel::GetAttributeDef($sFieldClass, $aMatches[2]);
|
||||
if ($oAttDef instanceof AttributeOneWayPassword)
|
||||
{
|
||||
throw new Exception('Grouping on password fields is not supported.');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$aGroupBy = array();
|
||||
$aGroupBy['grouped_by_1'] = $oGroupByExp;
|
||||
$sSql = MetaModel::MakeGroupByQuery($this->m_oFilter, $aQueryParams, $aGroupBy, true);
|
||||
@@ -765,6 +780,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':
|
||||
|
||||
@@ -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 = ' <span class="prop_apply">'.$this->GetValidationArea($oField->GetCode()).'</span>';
|
||||
$sValidation = ' <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"> </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
|
||||
{
|
||||
|
||||
@@ -305,16 +305,20 @@ class LoginWebPage extends NiceWebPage
|
||||
{
|
||||
$this->add("<p>".Dict::Format('UI:ResetPwd-Error-WrongLogin', $sAuthUser)."</p>\n");
|
||||
}
|
||||
elseif ($oUser->Get('reset_pwd_token') != $sToken)
|
||||
{
|
||||
$this->add("<p>".Dict::S('UI:ResetPwd-Error-InvalidToken')."</p>\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->add("<p>".Dict::Format('UI:ResetPwd-Error-EnterPassword', $oUser->GetFriendlyName())."</p>\n");
|
||||
|
||||
$sInconsistenPwdMsg = Dict::S('UI:Login:RetypePwdDoesNotMatch');
|
||||
$this->add_script(
|
||||
$oEncryptedToken = $oUser->Get('reset_pwd_token');
|
||||
|
||||
if (!$oEncryptedToken->CheckPassword($sToken))
|
||||
{
|
||||
$this->add("<p>".Dict::S('UI:ResetPwd-Error-InvalidToken')."</p>\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->add("<p>".Dict::Format('UI:ResetPwd-Error-EnterPassword', $oUser->GetFriendlyName())."</p>\n");
|
||||
|
||||
$sInconsistenPwdMsg = Dict::S('UI:Login:RetypePwdDoesNotMatch');
|
||||
$this->add_script(
|
||||
<<<EOF
|
||||
function DoCheckPwd()
|
||||
{
|
||||
@@ -326,18 +330,19 @@ function DoCheckPwd()
|
||||
return true;
|
||||
}
|
||||
EOF
|
||||
);
|
||||
$this->add("<form method=\"post\">\n");
|
||||
$this->add("<table>\n");
|
||||
$this->add("<tr><td style=\"text-align:right\"><label for=\"new_pwd\">".Dict::S('UI:Login:NewPasswordPrompt').":</label></td><td style=\"text-align:left\"><input type=\"password\" id=\"new_pwd\" name=\"new_pwd\" value=\"\" /></td></tr>\n");
|
||||
$this->add("<tr><td style=\"text-align:right\"><label for=\"retype_new_pwd\">".Dict::S('UI:Login:RetypeNewPasswordPrompt').":</label></td><td style=\"text-align:left\"><input type=\"password\" id=\"retype_new_pwd\" name=\"retype_new_pwd\" value=\"\" /></td></tr>\n");
|
||||
$this->add("<tr><td colspan=\"2\" class=\"center v-spacer\"><span class=\"btn_border\"><input type=\"submit\" onClick=\"return DoCheckPwd();\" value=\"".Dict::S('UI:Button:ChangePassword')."\" /></span></td></tr>\n");
|
||||
$this->add("</table>\n");
|
||||
$this->add("<input type=\"hidden\" name=\"loginop\" value=\"do_reset_pwd\" />\n");
|
||||
$this->add("<input type=\"hidden\" name=\"auth_user\" value=\"".htmlentities($sAuthUser, ENT_QUOTES, 'UTF-8')."\" />\n");
|
||||
$this->add("<input type=\"hidden\" name=\"token\" value=\"".htmlentities($sToken, ENT_QUOTES, 'UTF-8')."\" />\n");
|
||||
$this->add("</form>\n");
|
||||
$this->add("</div\n");
|
||||
);
|
||||
$this->add("<form method=\"post\">\n");
|
||||
$this->add("<table>\n");
|
||||
$this->add("<tr><td style=\"text-align:right\"><label for=\"new_pwd\">".Dict::S('UI:Login:NewPasswordPrompt').":</label></td><td style=\"text-align:left\"><input type=\"password\" id=\"new_pwd\" name=\"new_pwd\" value=\"\" /></td></tr>\n");
|
||||
$this->add("<tr><td style=\"text-align:right\"><label for=\"retype_new_pwd\">".Dict::S('UI:Login:RetypeNewPasswordPrompt').":</label></td><td style=\"text-align:left\"><input type=\"password\" id=\"retype_new_pwd\" name=\"retype_new_pwd\" value=\"\" /></td></tr>\n");
|
||||
$this->add("<tr><td colspan=\"2\" class=\"center v-spacer\"><span class=\"btn_border\"><input type=\"submit\" onClick=\"return DoCheckPwd();\" value=\"".Dict::S('UI:Button:ChangePassword')."\" /></span></td></tr>\n");
|
||||
$this->add("</table>\n");
|
||||
$this->add("<input type=\"hidden\" name=\"loginop\" value=\"do_reset_pwd\" />\n");
|
||||
$this->add("<input type=\"hidden\" name=\"auth_user\" value=\"".htmlentities($sAuthUser, ENT_QUOTES, 'UTF-8')."\" />\n");
|
||||
$this->add("<input type=\"hidden\" name=\"token\" value=\"".htmlentities($sToken, ENT_QUOTES, 'UTF-8')."\" />\n");
|
||||
$this->add("</form>\n");
|
||||
$this->add("</div\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -357,21 +362,25 @@ EOF
|
||||
{
|
||||
$this->add("<p>".Dict::Format('UI:ResetPwd-Error-WrongLogin', $sAuthUser)."</p>\n");
|
||||
}
|
||||
elseif ($oUser->Get('reset_pwd_token') != $sToken)
|
||||
{
|
||||
$this->add("<p>".Dict::S('UI:ResetPwd-Error-InvalidToken')."</p>\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
// Trash the token and change the password
|
||||
$oUser->Set('reset_pwd_token', '');
|
||||
$oUser->SetPassword($sNewPwd); // Does record the change into the DB
|
||||
|
||||
$this->add("<p>".Dict::S('UI:ResetPwd-Ready')."</p>");
|
||||
$sUrl = utils::GetAbsoluteUrlAppRoot();
|
||||
$this->add("<p><a href=\"$sUrl\">".Dict::S('UI:ResetPwd-Login')."</a></p>");
|
||||
$oEncryptedPassword = $oUser->Get('reset_pwd_token');
|
||||
if (!$oEncryptedPassword->CheckPassword($sToken))
|
||||
{
|
||||
$this->add("<p>".Dict::S('UI:ResetPwd-Error-InvalidToken')."</p>\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
// Trash the token and change the password
|
||||
$oUser->Set('reset_pwd_token', '');
|
||||
$oUser->SetPassword($sNewPwd); // Does record the change into the DB
|
||||
|
||||
$this->add("<p>".Dict::S('UI:ResetPwd-Ready')."</p>");
|
||||
$sUrl = utils::GetAbsoluteUrlAppRoot();
|
||||
$this->add("<p><a href=\"$sUrl\">".Dict::S('UI:ResetPwd-Login')."</a></p>");
|
||||
}
|
||||
$this->add("</div\n");
|
||||
}
|
||||
$this->add("</div\n");
|
||||
}
|
||||
|
||||
public function DisplayChangePwdForm($bFailedLogin = false)
|
||||
|
||||
@@ -90,6 +90,8 @@ class PortalWebPage extends NiceWebPage
|
||||
$this->add_linked_script("../js/jquery.qtip-1.0.min.js");
|
||||
$this->add_linked_script('../js/jquery.multiselect.min.js');
|
||||
$this->add_linked_script("../js/ajaxfileupload.js");
|
||||
$this->add_linked_script("../js/ckeditor/ckeditor.js");
|
||||
$this->add_linked_script("../js/ckeditor/adapters/jquery.js");
|
||||
$this->add_ready_script(
|
||||
<<<EOF
|
||||
try
|
||||
@@ -231,6 +233,20 @@ EOF
|
||||
var next_step = $('input[id=next_step]');
|
||||
next_step.val(sStep);
|
||||
}
|
||||
|
||||
// For disabling the CKEditor at init time when the corresponding textarea is disabled !
|
||||
CKEDITOR.plugins.add( 'disabler',
|
||||
{
|
||||
init : function( editor )
|
||||
{
|
||||
editor.on( 'instanceReady', function(e)
|
||||
{
|
||||
e.removeListener();
|
||||
$('#'+ editor.name).trigger('update');
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
EOF
|
||||
);
|
||||
|
||||
@@ -826,7 +842,7 @@ EOF
|
||||
}
|
||||
|
||||
$sStepHistory = implode(',', $aPreviousSteps);
|
||||
$this->add("<input type=\"hidden\" id=\"step_history\" name=\"step_history\" value=\"$sStepHistory\">");
|
||||
$this->add("<input type=\"hidden\" id=\"step_history\" name=\"step_history\" value=\"".htmlentities($sStepHistory, ENT_QUOTES, 'UTF-8')."\">");
|
||||
|
||||
if (!is_null($sNextStep))
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -28,10 +28,11 @@ require_once(APPROOT.'/core/cmdbobject.class.inc.php');
|
||||
require_once(APPROOT.'/application/utils.inc.php');
|
||||
session_name('itop-'.md5(APPROOT));
|
||||
session_start();
|
||||
if (isset($_REQUEST['switch_env']))
|
||||
$sSwitchEnv = utils::ReadParam('switch_env', null);
|
||||
if (($sSwitchEnv != null) && (file_exists(APPCONF.$sSwitchEnv.'/'.ITOP_CONFIG_FILE)))
|
||||
{
|
||||
$sEnv = $_REQUEST['switch_env'];
|
||||
$_SESSION['itop_env'] = $sEnv;
|
||||
$_SESSION['itop_env'] = $sSwitchEnv;
|
||||
$sEnv = $sSwitchEnv;
|
||||
// TODO: reset the credentials as well ??
|
||||
}
|
||||
else if (isset($_SESSION['itop_env']))
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// Copyright (C) 2010-2012 Combodo SARL
|
||||
// Copyright (C) 2010-2015 Combodo SARL
|
||||
//
|
||||
// This file is part of iTop.
|
||||
//
|
||||
@@ -19,7 +19,8 @@
|
||||
/**
|
||||
* This class records the pending "transactions" corresponding to forms that have not been
|
||||
* submitted yet, in order to prevent double submissions. When created a transaction remains valid
|
||||
* until the user's session expires
|
||||
* until the user's session expires. This class is actually a wrapper to the underlying implementation
|
||||
* which choice is configured via the parameter 'transaction_storage'
|
||||
*
|
||||
* @package iTop
|
||||
* @copyright Copyright (C) 2010-2012 Combodo SARL
|
||||
@@ -28,6 +29,81 @@
|
||||
|
||||
|
||||
class privUITransaction
|
||||
{
|
||||
/**
|
||||
* Create a new transaction id, store it in the session and return its id
|
||||
* @param void
|
||||
* @return int The identifier of the new transaction
|
||||
*/
|
||||
public static function GetNewTransactionId()
|
||||
{
|
||||
$bTransactionsEnabled = MetaModel::GetConfig()->Get('transactions_enabled');
|
||||
if (!$bTransactionsEnabled)
|
||||
{
|
||||
return 'notransactions'; // Any value will do
|
||||
}
|
||||
$sClass = 'privUITransaction'.MetaModel::GetConfig()->Get('transaction_storage');
|
||||
if (!class_exists($sClass, false))
|
||||
{
|
||||
IssueLog::Error("Incorrect value '".MetaModel::GetConfig()->Get('transaction_storage')."' for 'transaction_storage', the class '$sClass' does not exists. Using privUITransactionSession instead for storing sessions.");
|
||||
$sClass = 'privUITransactionSession';
|
||||
}
|
||||
|
||||
return (string)$sClass::GetNewTransactionId();
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether a transaction is valid or not and (optionally) remove the valid transaction from
|
||||
* the session so that another call to IsTransactionValid for the same transaction id
|
||||
* will return false
|
||||
* @param int $id Identifier of the transaction, as returned by GetNewTransactionId
|
||||
* @param bool $bRemoveTransaction True if the transaction must be removed
|
||||
* @return bool True if the transaction is valid, false otherwise
|
||||
*/
|
||||
public static function IsTransactionValid($id, $bRemoveTransaction = true)
|
||||
{
|
||||
$bTransactionsEnabled = MetaModel::GetConfig()->Get('transactions_enabled');
|
||||
if (!$bTransactionsEnabled)
|
||||
{
|
||||
return true; // All values are valid
|
||||
}
|
||||
$sClass = 'privUITransaction'.MetaModel::GetConfig()->Get('transaction_storage');
|
||||
if (!class_exists($sClass, false))
|
||||
{
|
||||
$sClass = 'privUITransactionSession';
|
||||
}
|
||||
|
||||
return $sClass::IsTransactionValid($id, $bRemoveTransaction);
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes the transaction specified by its id
|
||||
* @param int $id The Identifier (as returned by GetNewTranscationId) of the transaction to be removed.
|
||||
* @return void
|
||||
*/
|
||||
public static function RemoveTransaction($id)
|
||||
{
|
||||
$bTransactionsEnabled = MetaModel::GetConfig()->Get('transactions_enabled');
|
||||
if (!$bTransactionsEnabled)
|
||||
{
|
||||
return; // Nothing to do
|
||||
}
|
||||
$sClass = 'privUITransaction'.MetaModel::GetConfig()->Get('transaction_storage');
|
||||
if (!class_exists($sClass, false))
|
||||
{
|
||||
$sClass = 'privUITransactionSession';
|
||||
}
|
||||
|
||||
$sClass::RemoveTransaction($id);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The original (and by default) mechanism for storing transaction information
|
||||
* as an array in the $_SESSION variable
|
||||
*
|
||||
*/
|
||||
class privUITransactionSession
|
||||
{
|
||||
/**
|
||||
* Create a new transaction id, store it in the session and return its id
|
||||
@@ -99,4 +175,178 @@ class privUITransaction
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
/**
|
||||
* An alternate implementation for storing the transactions as temporary files
|
||||
* Useful when using an in-memory storage for the session which do not
|
||||
* guarantee mutual exclusion for writing
|
||||
*/
|
||||
class privUITransactionFile
|
||||
{
|
||||
/**
|
||||
* Create a new transaction id, store it in the session and return its id
|
||||
* @param void
|
||||
* @return int The identifier of the new transaction
|
||||
*/
|
||||
public static function GetNewTransactionId()
|
||||
{
|
||||
if (!is_dir(APPROOT.'data/transactions'))
|
||||
{
|
||||
if (!is_writable(APPROOT.'data'))
|
||||
{
|
||||
throw new Exception('The directory "'.APPROOT.'data" must be writable to the application.');
|
||||
}
|
||||
if (!@mkdir(APPROOT.'data/transactions'))
|
||||
{
|
||||
throw new Exception('Failed to create the directory "'.APPROOT.'data/transactions". Ajust the rights on the parent directory or let an administrator create the transactions directory and give the web sever enough rights to write into it.');
|
||||
}
|
||||
}
|
||||
if (!is_writable(APPROOT.'data/transactions'))
|
||||
{
|
||||
throw new Exception('The directory "'.APPROOT.'data/transactions" must be writable to the application.');
|
||||
}
|
||||
self::CleanupOldTransactions();
|
||||
$id = basename(tempnam(APPROOT.'data/transactions', self::GetUserPrefix()));
|
||||
self::Info('GetNewTransactionId: Created transaction: '.$id);
|
||||
|
||||
return (string)$id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether a transaction is valid or not and (optionally) remove the valid transaction from
|
||||
* the session so that another call to IsTransactionValid for the same transaction id
|
||||
* will return false
|
||||
* @param int $id Identifier of the transaction, as returned by GetNewTransactionId
|
||||
* @param bool $bRemoveTransaction True if the transaction must be removed
|
||||
* @return bool True if the transaction is valid, false otherwise
|
||||
*/
|
||||
public static function IsTransactionValid($id, $bRemoveTransaction = true)
|
||||
{
|
||||
$sFilepath = APPROOT.'data/transactions/'.$id;
|
||||
clearstatcache(true, $sFilepath);
|
||||
$bResult = file_exists($sFilepath);
|
||||
if ($bResult)
|
||||
{
|
||||
if ($bRemoveTransaction)
|
||||
{
|
||||
$bResult = @unlink($sFilepath);
|
||||
if (!$bResult)
|
||||
{
|
||||
self::Error('IsTransactionValid: FAILED to remove transaction '.$id);
|
||||
}
|
||||
else
|
||||
{
|
||||
self::Info('IsTransactionValid: OK. Removed transaction: '.$id);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
self::Info("IsTransactionValid: Transaction '$id' not found. Pending transactions for this user:\n".implode("\n", self::GetPendingTransactions()));
|
||||
}
|
||||
return $bResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes the transaction specified by its id
|
||||
* @param int $id The Identifier (as returned by GetNewTransactionId) of the transaction to be removed.
|
||||
* @return void
|
||||
*/
|
||||
public static function RemoveTransaction($id)
|
||||
{
|
||||
$bSuccess = true;
|
||||
$sFilepath = APPROOT.'data/transactions/'.$id;
|
||||
clearstatcache(true, $sFilepath);
|
||||
if(!file_exists($sFilepath))
|
||||
{
|
||||
$bSuccess = false;
|
||||
self::Error("RemoveTransaction: Transaction '$id' not found. Pending transactions for this user:\n".implode("\n", self::GetPendingTransactions()));
|
||||
}
|
||||
$bSuccess = @unlink($sFilepath);
|
||||
if (!$bSuccess)
|
||||
{
|
||||
self::Error('RemoveTransaction: FAILED to remove transaction '.$id);
|
||||
}
|
||||
else
|
||||
{
|
||||
self::Info('RemoveTransaction: OK '.$id);
|
||||
}
|
||||
return $bSuccess;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cleanup old transactions which have been pending since more than 24 hours
|
||||
* Use filemtime instead of filectime since filectime may be affected by operations on the directory (like changing the access rights)
|
||||
*/
|
||||
protected static function CleanupOldTransactions()
|
||||
{
|
||||
$iLimit = time() - 24*3600;
|
||||
clearstatcache();
|
||||
$aTransactions = glob(APPROOT.'data/transactions/*-*');
|
||||
foreach($aTransactions as $sFileName)
|
||||
{
|
||||
if (filemtime($sFileName) < $iLimit)
|
||||
{
|
||||
@unlink($sFileName);
|
||||
self::Info('CleanupOldTransactions: Deleted transaction: '.$sFileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* For debugging purposes: gets the pending transactions of the current user
|
||||
* as an array, with the date of the creation of the transaction file
|
||||
*/
|
||||
protected static function GetPendingTransactions()
|
||||
{
|
||||
clearstatcache();
|
||||
$aResult = array();
|
||||
$aTransactions = glob(APPROOT.'data/transactions/'.self::GetUserPrefix().'*');
|
||||
foreach($aTransactions as $sFileName)
|
||||
{
|
||||
$aResult[] = date('Y-m-d H:i:s', filemtime($sFileName)).' - '.basename($sFileName);
|
||||
}
|
||||
sort($aResult);
|
||||
return $aResult;
|
||||
}
|
||||
|
||||
protected static function GetUserPrefix()
|
||||
{
|
||||
$sPrefix = substr(UserRights::GetUser(), 0, 10);
|
||||
$sPrefix = preg_replace('/[^a-zA-Z0-9-_]/', '_', $sPrefix);
|
||||
return $sPrefix.'-';
|
||||
}
|
||||
|
||||
protected static function Info($sText)
|
||||
{
|
||||
self::Write('Info | '.$sText);
|
||||
}
|
||||
|
||||
protected static function Warning($sText)
|
||||
{
|
||||
self::Write('Warning | '.$sText);
|
||||
}
|
||||
|
||||
protected static function Error($sText)
|
||||
{
|
||||
self::Write('Error | '.$sText);
|
||||
}
|
||||
|
||||
protected static function Write($sText)
|
||||
{
|
||||
$bLogEnabled = MetaModel::GetConfig()->Get('log_transactions');
|
||||
if ($bLogEnabled)
|
||||
{
|
||||
$hLogFile = @fopen(APPROOT.'log/transactions.log', 'a');
|
||||
if ($hLogFile !== false)
|
||||
{
|
||||
flock($hLogFile, LOCK_EX);
|
||||
$sDate = date('Y-m-d H:i:s');
|
||||
fwrite($hLogFile, "$sDate | $sText\n");
|
||||
fflush($hLogFile);
|
||||
flock($hLogFile, LOCK_UN);
|
||||
fclose($hLogFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -259,7 +259,7 @@ EOF
|
||||
$sHTMLValue .= "<img id=\"mini_search_{$this->iId}\" style=\"border:0;vertical-align:middle;cursor:pointer;\" src=\"../images/mini_search.gif\" onClick=\"oACWidget_{$this->iId}.Search();\"/> ";
|
||||
|
||||
// another hidden input to store & pass the object's Id
|
||||
$sHTMLValue .= "<input type=\"hidden\" id=\"$this->iId\" name=\"{$sAttrFieldPrefix}{$sFieldName}\" value=\"$value\" />\n";
|
||||
$sHTMLValue .= "<input type=\"hidden\" id=\"$this->iId\" name=\"{$sAttrFieldPrefix}{$sFieldName}\" value=\"".htmlentities($value, ENT_QUOTES, 'UTF-8')."\" />\n";
|
||||
|
||||
$JSSearchMode = $this->bSearchMode ? 'true' : 'false';
|
||||
// Scripts to start the autocomplete and bind some events to it
|
||||
|
||||
@@ -80,7 +80,7 @@ class UIHTMLEditorWidget
|
||||
|
||||
// Could also be bound to 'instanceReady.ckeditor'
|
||||
$oPage->add_ready_script("$('#$iId').bind('validate', function(evt, sFormId) { return ValidateCKEditField('$iId', '', {$this->m_sMandatory}, sFormId, '') } );\n");
|
||||
$oPage->add_ready_script("$('#$iId').bind('update', function() { BlockField('cke_$iId', $('#$iId').attr('disabled')); } );\n");
|
||||
$oPage->add_ready_script("$('#$iId').bind('update', function() { BlockField('cke_$iId', $('#$iId').attr('disabled')); $(this).data('ckeditorInstance').setReadOnly($(this).prop('disabled')); } );\n");
|
||||
|
||||
return $sHtmlValue;
|
||||
}
|
||||
|
||||
@@ -294,7 +294,7 @@ class UILinksWidgetDirect
|
||||
$valuesDef = $oLinksetDef->GetValuesDef();
|
||||
if ($valuesDef === null)
|
||||
{
|
||||
$oFilter = new DBObjectSearch($this->sLinkedClass);
|
||||
$oFilter = new DBObjectSearch($sRemoteClass);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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())
|
||||
{
|
||||
@@ -881,6 +892,106 @@ class AttributeLinkedSet extends AttributeDefinition
|
||||
return $oSet;
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper to get a value that will be JSON encoded
|
||||
* The operation is the opposite to FromJSONToValue
|
||||
*/
|
||||
public function GetForJSON($value)
|
||||
{
|
||||
$aRet = array();
|
||||
if (is_object($value) && ($value instanceof DBObjectSet))
|
||||
{
|
||||
$value->Rewind();
|
||||
while ($oObj = $value->Fetch())
|
||||
{
|
||||
$sObjClass = get_class($oObj);
|
||||
// Show only relevant information (hide the external key to the current object)
|
||||
$aAttributes = array();
|
||||
foreach(MetaModel::ListAttributeDefs($sObjClass) as $sAttCode => $oAttDef)
|
||||
{
|
||||
if ($sAttCode == 'finalclass')
|
||||
{
|
||||
if ($sObjClass == $this->GetLinkedClass())
|
||||
{
|
||||
// Simplify the output if the exact class could be determined implicitely
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if ($sAttCode == $this->GetExtKeyToMe()) continue;
|
||||
if ($oAttDef->IsExternalField()) continue;
|
||||
if (!$oAttDef->IsDirectField()) continue;
|
||||
if (!$oAttDef->IsScalar()) continue;
|
||||
$attValue = $oObj->Get($sAttCode);
|
||||
$aAttributes[$sAttCode] = $oAttDef->GetForJSON($attValue);
|
||||
}
|
||||
$aRet[] = $aAttributes;
|
||||
}
|
||||
}
|
||||
return $aRet;
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper to form a value, given JSON decoded data
|
||||
* The operation is the opposite to GetForJSON
|
||||
*/
|
||||
public function FromJSONToValue($json)
|
||||
{
|
||||
$sTargetClass = $this->Get('linked_class');
|
||||
|
||||
$aLinks = array();
|
||||
foreach($json as $aValues)
|
||||
{
|
||||
if (isset($aValues['finalclass']))
|
||||
{
|
||||
$sLinkClass = $aValues['finalclass'];
|
||||
if (!is_subclass_of($sLinkClass, $sTargetClass))
|
||||
{
|
||||
throw new CoreException('Wrong class for link attribute specification', array('requested_class' => $sLinkClass, 'expected_class' => $sTargetClass));
|
||||
}
|
||||
}
|
||||
elseif (MetaModel::IsAbstract($sTargetClass))
|
||||
{
|
||||
throw new CoreException('Missing finalclass for link attribute specification');
|
||||
}
|
||||
else
|
||||
{
|
||||
$sLinkClass = $sTargetClass;
|
||||
}
|
||||
|
||||
$oLink = MetaModel::NewObject($sLinkClass);
|
||||
foreach ($aValues as $sAttCode => $sValue)
|
||||
{
|
||||
$oLink->Set($sAttCode, $sValue);
|
||||
}
|
||||
|
||||
// Check (roughly) if such a link is valid
|
||||
$aErrors = array();
|
||||
foreach(MetaModel::ListAttributeDefs($sTargetClass) as $sAttCode => $oAttDef)
|
||||
{
|
||||
if ($oAttDef->IsExternalKey())
|
||||
{
|
||||
if (($oAttDef->GetTargetClass() == $this->GetHostClass()) || (is_subclass_of($this->GetHostClass(), $oAttDef->GetTargetClass())))
|
||||
{
|
||||
continue; // Don't check the key to self
|
||||
}
|
||||
}
|
||||
|
||||
if ($oAttDef->IsWritable() && $oAttDef->IsNull($oLink->Get($sAttCode)) && !$oAttDef->IsNullAllowed())
|
||||
{
|
||||
$aErrors[] = $sAttCode;
|
||||
}
|
||||
}
|
||||
if (count($aErrors) > 0)
|
||||
{
|
||||
throw new CoreException("Missing value for mandatory attribute(s): ".implode(', ', $aErrors));
|
||||
}
|
||||
|
||||
$aLinks[] = $oLink;
|
||||
}
|
||||
$oSet = DBObjectSet::FromArray($sTargetClass, $aLinks);
|
||||
return $oSet;
|
||||
}
|
||||
|
||||
public function Equals($val1, $val2)
|
||||
{
|
||||
if ($val1 === $val2) return true;
|
||||
@@ -1982,7 +2093,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 +4092,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 +4116,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 +4445,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 +4466,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 +5025,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 '';
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -792,7 +792,47 @@ 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,
|
||||
),
|
||||
'transaction_storage' => array(
|
||||
'type' => 'string',
|
||||
'description' => 'The type of mechanism to use for storing the unique identifiers for transactions (Session|File).',
|
||||
'default' => 'Session',
|
||||
'value' => '',
|
||||
'source_of_value' => '',
|
||||
'show_in_conf_sample' => false,
|
||||
),
|
||||
'transactions_enabled' => array(
|
||||
'type' => 'bool',
|
||||
'description' => 'Whether or not the whole mechanism to prevent multiple submissions of a page is enabled.',
|
||||
'default' => true,
|
||||
'value' => '',
|
||||
'source_of_value' => '',
|
||||
'show_in_conf_sample' => false,
|
||||
),
|
||||
'log_transactions' => array(
|
||||
'type' => 'bool',
|
||||
'description' => 'Whether or not to enable the debug log for the transactions.',
|
||||
'default' => false,
|
||||
'value' => '',
|
||||
'source_of_value' => '',
|
||||
'show_in_conf_sample' => false,
|
||||
),
|
||||
);
|
||||
|
||||
public function IsProperty($sPropCode)
|
||||
@@ -1446,6 +1486,8 @@ class Config
|
||||
$aSettings['log_notification'] = $this->m_bLogNotification;
|
||||
$aSettings['log_issue'] = $this->m_bLogIssue;
|
||||
$aSettings['log_web_service'] = $this->m_bLogWebService;
|
||||
$aSettings['log_queries'] = $this->m_bLogQueries;
|
||||
$aSettings['query_cache_enabled'] = $this->m_bQueryCacheEnabled;
|
||||
$aSettings['min_display_limit'] = $this->m_iMinDisplayLimit;
|
||||
$aSettings['max_display_limit'] = $this->m_iMaxDisplayLimit;
|
||||
$aSettings['standard_reload_interval'] = $this->m_iStandardReloadInterval;
|
||||
@@ -1453,6 +1495,7 @@ class Config
|
||||
$aSettings['secure_connection_required'] = $this->m_bSecureConnectionRequired;
|
||||
$aSettings['default_language'] = $this->m_sDefaultLanguage;
|
||||
$aSettings['allowed_login_types'] = $this->m_sAllowedLoginTypes;
|
||||
$aSettings['ext_auth_variable'] = $this->m_sExtAuthVariable;
|
||||
$aSettings['encryption_key'] = $this->m_sEncryptionKey;
|
||||
$aSettings['csv_import_charsets'] = $this->m_aCharsets;
|
||||
|
||||
@@ -1518,6 +1561,8 @@ class Config
|
||||
'log_notification' => $this->m_bLogNotification,
|
||||
'log_issue' => $this->m_bLogIssue,
|
||||
'log_web_service' => $this->m_bLogWebService,
|
||||
'log_queries' => $this->m_bLogQueries,
|
||||
'query_cache_enabled' => $this->m_bQueryCacheEnabled,
|
||||
'secure_connection_required' => $this->m_bSecureConnectionRequired,
|
||||
);
|
||||
foreach($aBoolValues as $sKey => $bValue)
|
||||
@@ -1556,6 +1601,7 @@ class Config
|
||||
'db_collation' => $this->m_sDBCollation,
|
||||
'default_language' => $this->m_sDefaultLanguage,
|
||||
'allowed_login_types' => $this->m_sAllowedLoginTypes,
|
||||
'ext_auth_variable' => $this->m_sExtAuthVariable,
|
||||
'encryption_key' => $this->m_sEncryptionKey,
|
||||
'csv_import_charsets' => $this->m_aCharsets,
|
||||
);
|
||||
|
||||
@@ -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,12 +2088,12 @@ abstract class DBObject implements iDisplay
|
||||
{
|
||||
if (is_string($actionHandler))
|
||||
{
|
||||
// Old (pre-2.0.4) action definition without any parameter
|
||||
$aActionCallSpec = array($this, $sActionHandler);
|
||||
// Old (pre-2.1.0 modules) action definition without any parameter
|
||||
$aActionCallSpec = array($this, $actionHandler);
|
||||
|
||||
if (!is_callable($aActionCallSpec))
|
||||
{
|
||||
throw new CoreException("Unable to call action: ".get_class($this)."::$sActionHandler");
|
||||
throw new CoreException("Unable to call action: ".get_class($this)."::$actionHandler");
|
||||
return;
|
||||
}
|
||||
$bRet = call_user_func($aActionCallSpec, $sStimulusCode);
|
||||
@@ -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
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -53,9 +53,8 @@ class DBObjectSearch
|
||||
public function __construct($sClass, $sClassAlias = null)
|
||||
{
|
||||
if (is_null($sClassAlias)) $sClassAlias = $sClass;
|
||||
assert('is_string($sClass)');
|
||||
assert('MetaModel::IsValidClass($sClass)'); // #@# could do better than an assert, or at least give the caller's reference
|
||||
// => idee d'un assert avec call stack (autre utilisation = echec sur query SQL)
|
||||
if(!is_string($sClass)) throw new Exception('DBObjectSearch::__construct called with a non-string parameter: $sClass = '.print_r($sClass, true));
|
||||
if(!MetaModel::IsValidClass($sClass)) throw new Exception('DBObjectSearch::__construct called for an invalid class: "'.$sClass.'"');
|
||||
|
||||
$this->m_aSelectedClasses = array($sClassAlias => $sClass);
|
||||
$this->m_aClasses = array($sClassAlias => $sClass);
|
||||
@@ -449,7 +448,7 @@ class DBObjectSearch
|
||||
|
||||
public function AddCondition($sFilterCode, $value, $sOpCode = null)
|
||||
{
|
||||
MyHelpers::CheckKeyInArray('filter code', $sFilterCode, MetaModel::GetClassFilterDefs($this->GetClass()));
|
||||
MyHelpers::CheckKeyInArray('filter code in class: '.$this->GetClass(), $sFilterCode, MetaModel::GetClassFilterDefs($this->GetClass()));
|
||||
$oFilterDef = MetaModel::GetClassFilterDef($this->GetClass(), $sFilterCode);
|
||||
|
||||
$oField = new FieldExpression($sFilterCode, $this->GetClassAlias());
|
||||
|
||||
@@ -59,8 +59,11 @@ class FileLog
|
||||
$hLogFile = @fopen($this->m_sFile, 'a');
|
||||
if ($hLogFile !== false)
|
||||
{
|
||||
flock($hLogFile, LOCK_EX);
|
||||
$sDate = date('Y-m-d H:i:s');
|
||||
fwrite($hLogFile, "$sDate | $sText\n");
|
||||
fflush($hLogFile);
|
||||
flock($hLogFile, LOCK_UN);
|
||||
fclose($hLogFile);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -836,6 +836,10 @@ abstract class MetaModel
|
||||
final static public function GetAttributeDef($sClass, $sAttCode)
|
||||
{
|
||||
self::_check_subclass($sClass);
|
||||
if (!isset(self::$m_aAttribDefs[$sClass][$sAttCode]))
|
||||
{
|
||||
throw new Exception("Unknown attribute $sAttCode from class $sClass");
|
||||
}
|
||||
return self::$m_aAttribDefs[$sClass][$sAttCode];
|
||||
}
|
||||
|
||||
@@ -3075,7 +3079,7 @@ abstract class MetaModel
|
||||
$sExtAttCode = $oAtt->GetExtAttCode();
|
||||
// Translate mainclass.extfield => remoteclassalias.remotefieldcode
|
||||
$oRemoteAttDef = self::GetAttributeDef($sKeyClass, $sExtAttCode);
|
||||
foreach ($oRemoteAttDef->GetSQLExpressions() as $sColID => $sRemoteAttExpr)
|
||||
foreach ($oRemoteAttDef->GetSQLExpressions() as $sColId => $sRemoteAttExpr)
|
||||
{
|
||||
$aTranslateNow[$sTargetAlias][$sAttCode.$sColId] = new FieldExpression($sExtAttCode, $sKeyClassAlias);
|
||||
//echo "<p><b>aTranslateNow[$sTargetAlias][$sAttCode.$sColId] = new FieldExpression($sExtAttCode, $sKeyClassAlias);</b></p>\n";
|
||||
@@ -3801,7 +3805,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 +3813,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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5422,9 +5432,11 @@ abstract class MetaModel
|
||||
{
|
||||
// Some environment parameters are objects, we just need scalars
|
||||
if (is_object($replace)) continue;
|
||||
|
||||
$aSearches[] = '$'.$sSearch.'$';
|
||||
$aReplacements[] = (string) $replace;
|
||||
else
|
||||
{
|
||||
$aSearches[] = '$'.$sSearch.'$';
|
||||
$aReplacements[] = (string) $replace;
|
||||
}
|
||||
}
|
||||
return str_replace($aSearches, $aReplacements, $aInput);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// Copyright (C) 2013 Combodo SARL
|
||||
// Copyright (C) 2013-2016 Combodo SARL
|
||||
//
|
||||
// This file is part of iTop.
|
||||
//
|
||||
@@ -24,7 +24,7 @@
|
||||
* Relies on MySQL locks because the API sem_get is not always present in the
|
||||
* installed PHP.
|
||||
*
|
||||
* @copyright Copyright (C) 2013 Combodo SARL
|
||||
* @copyright Copyright (C) 2013-2016 Combodo SARL
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
class iTopMutex
|
||||
@@ -37,8 +37,19 @@ class iTopMutex
|
||||
public function __construct($sName, $sDBHost = null, $sDBUser = null, $sDBPwd = null)
|
||||
{
|
||||
// Compute the name of a lock for mysql
|
||||
// Note: the name is server-wide!!!
|
||||
// Note: names are server-wide!!! So let's make the name specific to this iTop instance
|
||||
$oConfig = utils::GetConfig(); // Will return an empty config when called during the setup
|
||||
$sDBName = $oConfig->GetDBName();
|
||||
$sDBSubname = $oConfig->GetDBSubname();
|
||||
$this->sName = 'itop.'.$sName;
|
||||
if (substr($sName, -strlen($sDBName.$sDBSubname)) != $sDBName.$sDBSubname)
|
||||
{
|
||||
// If the name supplied already ends with the expected suffix
|
||||
// don't add it twice, since the setup may try to detect an already
|
||||
// running cron job by its mutex, without knowing if the config already exists or not
|
||||
$this->sName .= $sDBName.$sDBSubname;
|
||||
}
|
||||
|
||||
$this->bLocked = false; // Not yet locked
|
||||
|
||||
if (!array_key_exists($this->sName, self::$aAcquiredLocks))
|
||||
@@ -48,7 +59,6 @@ class iTopMutex
|
||||
|
||||
// It is a MUST to create a dedicated session each time a lock is required, because
|
||||
// using GET_LOCK anytime on the same session will RELEASE the current and unique session lock (known issue)
|
||||
$oConfig = utils::GetConfig();
|
||||
$sDBHost = is_null($sDBHost) ? $oConfig->GetDBHost() : $sDBHost;
|
||||
$sDBUser = is_null($sDBUser) ? $oConfig->GetDBUser() : $sDBUser;
|
||||
$sDBPwd = is_null($sDBPwd) ? $oConfig->GetDBPwd() : $sDBPwd;
|
||||
@@ -121,7 +131,43 @@ class iTopMutex
|
||||
$this->bLocked = true;
|
||||
self::$aAcquiredLocks[$this->sName]++;
|
||||
}
|
||||
return ($res === '1');
|
||||
if (($res !== '1') && ($res !== '0'))
|
||||
{
|
||||
$sMsg = 'GET_LOCK('.$this->sName.', 0) returned: '.var_export($res, true).'. Expected values are: 0, 1 or null';
|
||||
IssueLog::Error($sMsg);
|
||||
throw new Exception($sMsg);
|
||||
}
|
||||
return ($res !== '0');
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the mutex is locked WITHOUT TRYING TO ACQUIRE IT
|
||||
* @returns bool True if the mutex is in use, false otherwise
|
||||
*/
|
||||
public function IsLocked()
|
||||
{
|
||||
if ($this->bLocked)
|
||||
{
|
||||
return true; // Already acquired
|
||||
}
|
||||
if (self::$aAcquiredLocks[$this->sName] > 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
$res = $this->QueryToScalar("SELECT IS_FREE_LOCK('".$this->sName."')"); // IS_FREE_LOCK detects some error cases that IS_USED_LOCK do not detect
|
||||
if (is_null($res))
|
||||
{
|
||||
$sMsg = "MySQL Error, IS_FREE_LOCK('".$this->sName."') returned null. Error (".mysqli_errno($this->hDBLink).") = '".mysqli_error($this->hDBLink)."'";
|
||||
IssueLog::Error($sMsg);
|
||||
throw new Exception($sMsg);
|
||||
}
|
||||
else if ($res == '1')
|
||||
{
|
||||
// Lock is free
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// Copyright (C) 2010-2012 Combodo SARL
|
||||
// Copyright (C) 2010-2015 Combodo SARL
|
||||
//
|
||||
// This file is part of iTop.
|
||||
//
|
||||
@@ -23,7 +23,7 @@ define('CASELOG_SEPARATOR', "\n".'========== %1$s : %2$s (%3$d) ============'."\
|
||||
/**
|
||||
* Class to store a "case log" in a structured way, keeping track of its successive entries
|
||||
*
|
||||
* @copyright Copyright (C) 2010-2012 Combodo SARL
|
||||
* @copyright Copyright (C) 2010-2015 Combodo SARL
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
class ormCaseLog {
|
||||
@@ -384,7 +384,7 @@ class ormCaseLog {
|
||||
}
|
||||
|
||||
|
||||
public function AddLogEntryFromJSON($oJson)
|
||||
public function AddLogEntryFromJSON($oJson, $bCheckUserId = true)
|
||||
{
|
||||
$sText = isset($oJson->message) ? $oJson->message : '';
|
||||
|
||||
@@ -394,16 +394,24 @@ class ormCaseLog {
|
||||
{
|
||||
throw new Exception("Only administrators can set the user id", RestResult::UNAUTHORIZED);
|
||||
}
|
||||
try
|
||||
if ($bCheckUserId && ($oJson->user_id != 0))
|
||||
{
|
||||
$oUser = RestUtils::FindObjectFromKey('User', $oJson->user_id);
|
||||
try
|
||||
{
|
||||
$oUser = RestUtils::FindObjectFromKey('User', $oJson->user_id);
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
throw new Exception('user_id: '.$e->getMessage(), $e->getCode());
|
||||
}
|
||||
$iUserId = $oUser->GetKey();
|
||||
$sOnBehalfOf = $oUser->GetFriendlyName();
|
||||
}
|
||||
catch(Exception $e)
|
||||
else
|
||||
{
|
||||
throw new Exception('user_id: '.$e->getMessage(), $e->getCode());
|
||||
$iUserId = $oJson->user_id;
|
||||
$sOnBehalfOf = $oJson->user_login;
|
||||
}
|
||||
$iUserId = $oUser->GetKey();
|
||||
$sOnBehalfOf = $oUser->GetFriendlyName();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -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,26 @@ 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
|
||||
* @param oObject Hosting object (used for query parameters)
|
||||
*/
|
||||
public function GetElapsedTime($oAttDef, $oObject)
|
||||
{
|
||||
if (is_null($this->iLastStart))
|
||||
{
|
||||
return $this->GetTimeSpent();
|
||||
}
|
||||
else
|
||||
{
|
||||
$iElapsed = $this->ComputeDuration($oObject, $oAttDef, $this->iLastStart, time());
|
||||
return $this->iTimeSpent + $iElapsed;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function GetStartDate()
|
||||
{
|
||||
return $this->iStarted;
|
||||
@@ -311,7 +331,7 @@ class ormStopWatch
|
||||
* It is the responsibility of the caller to compute the deadlines
|
||||
* (to avoid computing twice for the same result)
|
||||
*/
|
||||
public function Start($oObject, $oAttDef)
|
||||
public function Start($oObject, $oAttDef, $iNow = null)
|
||||
{
|
||||
if (!is_null($this->iLastStart))
|
||||
{
|
||||
@@ -319,11 +339,16 @@ class ormStopWatch
|
||||
return false;
|
||||
}
|
||||
|
||||
if (is_null($iNow))
|
||||
{
|
||||
$iNow = time();
|
||||
}
|
||||
|
||||
if (is_null($this->iStarted))
|
||||
{
|
||||
$this->iStarted = time();
|
||||
$this->iStarted = $iNow;
|
||||
}
|
||||
$this->iLastStart = time();
|
||||
$this->iLastStart = $iNow;
|
||||
$this->iStopped = null;
|
||||
|
||||
return true;
|
||||
@@ -339,8 +364,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 +377,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 +420,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 +506,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))
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -377,7 +400,7 @@ abstract class UserInternal extends User
|
||||
MetaModel::Init_InheritAttributes();
|
||||
|
||||
// When set, this token allows for password reset
|
||||
MetaModel::Init_AddAttribute(new AttributeString("reset_pwd_token", array("allowed_values"=>null, "sql"=>"reset_pwd_token", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array())));
|
||||
MetaModel::Init_AddAttribute(new AttributeOneWayPassword("reset_pwd_token", array("allowed_values"=>null, "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array())));
|
||||
|
||||
// Display lists
|
||||
MetaModel::Init_SetZListItems('details', array('contactid', 'first_name', 'email', 'login', 'language', 'profile_list', 'allowed_org_list')); // Attributes to be displayed for the complete details
|
||||
@@ -1280,8 +1303,9 @@ class CAS_SelfRegister implements iSelfRegister
|
||||
}
|
||||
else
|
||||
{
|
||||
// No membership required, anybody will pass
|
||||
$bFound = true;
|
||||
// No membership: no way to create the user that should exist prior to authentication
|
||||
phpCAS::log("User ".phpCAS::getUser().": missing user account in iTop (or iTop badly configured, Cf setting cas_memberof)");
|
||||
$bFound = false;
|
||||
}
|
||||
|
||||
if (!$bFound)
|
||||
|
||||
@@ -206,6 +206,11 @@ legend.transparent {
|
||||
padding-left:14px;
|
||||
background: url(../images/mini-arrow-orange.gif) no-repeat left;
|
||||
}
|
||||
|
||||
.ui-widget-content td a.cke_toolbox_collapser {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
p a:hover, td a:hover {
|
||||
text-decoration:underline;
|
||||
color:#EB8F00;
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
30
datamodels/2.x/authent-external/da.dict.authent-external.php
Normal file
30
datamodels/2.x/authent-external/da.dict.authent-external.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?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 Erik Bøg <erik@boegmoeller.dk>
|
||||
|
||||
* @copyright Copyright (C) 2010-2012 Combodo SARL
|
||||
* @licence http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
Dict::Add('DA DA', 'Danish', 'Dansk', array(
|
||||
'Class:UserExternal' => 'Extern Bruger',
|
||||
'Class:UserExternal+' => 'Bruger udenfor iTop',
|
||||
));
|
||||
?>
|
||||
32
datamodels/2.x/authent-ldap/da.dict.authent-ldap.php
Normal file
32
datamodels/2.x/authent-ldap/da.dict.authent-ldap.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?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 Erik Bøg <erik@boegmoeller.dk>
|
||||
|
||||
* @copyright Copyright (C) 2010-2012 Combodo SARL
|
||||
* @licence http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
Dict::Add('DA DA', 'Danish', 'Dansk', array(
|
||||
'Class:UserLDAP' => 'LDAP-Bruger',
|
||||
'Class:UserLDAP+' => 'Bruger der godkendes via LDAP',
|
||||
'Class:UserLDAP/Attribute:password' => 'Password',
|
||||
'Class:UserLDAP/Attribute:password+' => 'Brugerens password',
|
||||
));
|
||||
?>
|
||||
32
datamodels/2.x/authent-local/da.dict.authent-local.php
Normal file
32
datamodels/2.x/authent-local/da.dict.authent-local.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?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 Erik Bøg <erik@boegmoeller.dk>
|
||||
|
||||
* @copyright Copyright (C) 2010-2012 Combodo SARL
|
||||
* @licence http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
Dict::Add('DA DA', 'Danish', 'Dansk', array(
|
||||
'Class:UserLocal' => 'iTop-Bruger',
|
||||
'Class:UserLocal+' => 'Bruger der godkendes af iTop',
|
||||
'Class:UserLocal/Attribute:password' => 'Password',
|
||||
'Class:UserLocal/Attribute:password+' => 'Brugerens password',
|
||||
));
|
||||
?>
|
||||
40
datamodels/2.x/itop-attachments/da.dict.itop-attachments.php
Normal file
40
datamodels/2.x/itop-attachments/da.dict.itop-attachments.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?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 Erik Bøg <erik@boegmoeller.dk>
|
||||
|
||||
* @copyright Copyright (C) 2010-2012 Combodo SARL
|
||||
* @licence http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
Dict::Add('DA DA', 'Danish', 'Dansk', array(
|
||||
'Attachments:TabTitle_Count' => 'Vedhæftninger (%1$d)',
|
||||
'Attachments:EmptyTabTitle' => 'Vedhæftninger',
|
||||
'Attachments:FieldsetTitle' => 'Vedhæftninger',
|
||||
'Attachments:DeleteBtn' => 'Slet',
|
||||
'Attachments:History_File_Added' => 'Vedhæftning %1$s tilføjet.',
|
||||
'Attachments:History_File_Removed' => 'Vedhæftning %1$s fjernet.',
|
||||
'Attachments:AddAttachment' => 'Vedhæft: ',
|
||||
'Attachments:UploadNotAllowedOnThisSystem' => 'Upload IKKE tilladt i dette system.',
|
||||
'Attachment:Max_Go' => '(Maksimal størrelse: %1$s GB)',
|
||||
'Attachment:Max_Mo' => '(Maksimal størrelse: %1$s MB)',
|
||||
'Attachment:Max_Ko' => '(Maksimal størrelse: %1$s KB)',
|
||||
'Attachments:NoAttachment' => 'Intet vedhæftet. ',
|
||||
));
|
||||
?>
|
||||
@@ -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"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// Copyright (C) 2010-2012 Combodo SARL
|
||||
// Copyright (C) 2010-2015 Combodo SARL
|
||||
//
|
||||
// This file is part of iTop.
|
||||
//
|
||||
@@ -250,6 +250,7 @@ EOF
|
||||
$('#attachment_plugin').trigger('remove_attachment', [att_id]);
|
||||
return false; // Do not submit the form !
|
||||
}
|
||||
|
||||
function ajaxFileUpload()
|
||||
{
|
||||
//starting setting some animation when the ajax starts and completes
|
||||
@@ -347,7 +348,7 @@ EOF
|
||||
$sIcon = utils::GetAbsoluteUrlAppRoot().AttachmentPlugIn::GetFileIcon($sFileName);
|
||||
$sDownloadLink = utils::GetAbsoluteUrlAppRoot().'pages/ajax.render.php?operation=download_document&class=Attachment&id='.$iAttId.'&field=contents';
|
||||
$sPreview = $oDoc->IsPreviewAvailable() ? 'true' : 'false';
|
||||
$oPage->add('<div class="attachment" id="display_attachment_'.$iAttId.'"><a data-preview="'.$sPreview.'" href="'.$sDownloadLink.'"><img src="'.$sIcon.'"><br/>'.$sFileName.'<input id="attachment_'+data.result.att_id+'" type="hidden" name="attachments[]" value="'.$iAttId.'"/></a><br/> <input id="btn_remove_'.$iAttId.'" type="button" class="btn_hidden" value="Delete" onClick="RemoveAttachment('.$iAttId.');"/> </div>');
|
||||
$oPage->add('<div class="attachment" id="display_attachment_'.$iAttId.'"><a data-preview="'.$sPreview.'" href="'.$sDownloadLink.'"><img src="'.$sIcon.'"><br/>'.$sFileName.'<input id="attachment_'.$iAttId.'" type="hidden" name="attachments[]" value="'.$iAttId.'"/></a><br/> <input id="btn_remove_'.$iAttId.'" type="button" class="btn_hidden" value="Delete" onClick="RemoveAttachment('.$iAttId.');"/> </div>');
|
||||
$oPage->add_ready_script("$('#attachment_plugin').trigger('add_attachment', [$iAttId, '".addslashes($sFileName)."']);");
|
||||
}
|
||||
}
|
||||
@@ -368,6 +369,7 @@ $oPage->add_ready_script(
|
||||
url: GetAbsoluteUrlModulesRoot()+'itop-attachments/ajax.attachment.php',
|
||||
formData: { operation: 'add', temp_id: '$sTempId', obj_class: '$sClass' },
|
||||
dataType: 'json',
|
||||
pasteZone: null, // Don't accept files via Chrome's copy/paste
|
||||
done: function (e, data) {
|
||||
if(typeof(data.result.error) != 'undefined')
|
||||
{
|
||||
@@ -383,7 +385,7 @@ $oPage->add_ready_script(
|
||||
{
|
||||
$('#display_attachment_'+data.result.att_id).hover( function() { $(this).children(':button').toggleClass('btn_hidden'); } );
|
||||
}
|
||||
$('#attachment_plugin').trigger('add_attachment', [data.result.att_id, data.msg]);
|
||||
$('#attachment_plugin').trigger('add_attachment', [data.result.att_id, data.result.msg]);
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -440,7 +442,6 @@ EOF
|
||||
);
|
||||
$oPage->p('<span style="display:none;" id="attachment_loading">Loading, please wait...</span>');
|
||||
$oPage->p('<input type="hidden" id="attachment_plugin" name="attachment_plugin"/>');
|
||||
$oPage->add('</fieldset>');
|
||||
if ($this->m_bDeleteEnabled)
|
||||
{
|
||||
$oPage->add_ready_script('$(".attachment").hover( function() {$(this).children(":button").toggleClass("btn_hidden"); } );');
|
||||
@@ -466,7 +467,9 @@ EOF
|
||||
$oPage->add('<div class="attachment" id="attachment_'.$iAttId.'"><a data-preview="'.$sPreview.'" href="'.$sDownloadLink.'"><img src="'.$sIcon.'"><br/>'.$sFileName.'</a><input type="hidden" name="attachments[]" value="'.$iAttId.'"/><br/> </div>');
|
||||
}
|
||||
}
|
||||
$oPage->add('</span>');
|
||||
}
|
||||
$oPage->add('</fieldset>');
|
||||
$sPreviewNotAvailable = addslashes(Dict::S('Attachments:PreviewNotAvailable'));
|
||||
$iMaxWidth = MetaModel::GetModuleSetting('itop-attachments', 'preview_max_width', 290);
|
||||
$oPage->add_ready_script("$(document).tooltip({ items: '.attachment a', position: { my: 'left top', at: 'right top', using: function( position, feedback ) { $( this ).css( position ); }}, content: function() { if ($(this).attr('data-preview') == 'true') { return('<img style=\"max-width:{$iMaxWidth}px\" src=\"'+$(this).attr('href')+'\"></img>');} else { return '$sPreviewNotAvailable'; }}});");
|
||||
|
||||
@@ -23,7 +23,7 @@ SetupWebPage::AddModule(
|
||||
array(
|
||||
// Identification
|
||||
//
|
||||
'label' => 'Tickets attachments',
|
||||
'label' => 'Tickets Attachments',
|
||||
'category' => 'business',
|
||||
|
||||
// Setup
|
||||
|
||||
48
datamodels/2.x/itop-attachments/nl.dict.itop-attachments.php
Normal file
48
datamodels/2.x/itop-attachments/nl.dict.itop-attachments.php
Normal 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+' => '',
|
||||
|
||||
));
|
||||
?>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// Copyright (C) 2014 Combodo SARL
|
||||
// Copyright (C) 2013-2016 Combodo SARL
|
||||
//
|
||||
// This file is part of iTop.
|
||||
//
|
||||
@@ -19,7 +19,7 @@
|
||||
/**
|
||||
* Backup from an interactive session
|
||||
*
|
||||
* @copyright Copyright (C) 2013 Combodo SARL
|
||||
* @copyright Copyright (C) 2013-2016 Combodo SARL
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
@@ -77,9 +77,8 @@ try
|
||||
|
||||
$sEnvironment = utils::ReadParam('environment', 'production', false, 'raw_data');
|
||||
$oRestoreMutex = new iTopMutex('restore.'.$sEnvironment);
|
||||
if ($oRestoreMutex->TryLock())
|
||||
if (!$oRestoreMutex->IsLocked())
|
||||
{
|
||||
$oRestoreMutex->Unlock();
|
||||
$sFile = utils::ReadParam('file', '', false, 'raw_data');
|
||||
$sToken = str_replace(' ', '', (string)microtime());
|
||||
$sTokenFile = APPROOT.'/data/restore.'.$sToken.'.tok';
|
||||
@@ -119,7 +118,9 @@ EOF
|
||||
{
|
||||
$sEnvironment = utils::ReadParam('environment', 'production', false, 'raw_data');
|
||||
$oRestoreMutex = new iTopMutex('restore.'.$sEnvironment);
|
||||
IssueLog::Info("Backup Restore - Acquiring the LOCK 'restore.$sEnvironment'");
|
||||
$oRestoreMutex->Lock();
|
||||
IssueLog::Info('Backup Restore - LOCK acquired, executing...');
|
||||
try
|
||||
{
|
||||
set_time_limit(0);
|
||||
@@ -144,6 +145,7 @@ EOF
|
||||
$sBackupFile = $sBackupDir.$sFile;
|
||||
$sRes = $oDBRS->RestoreFromZip($sBackupFile, $sEnvironment);
|
||||
|
||||
IssueLog::Info('Backup Restore - Done, releasing the LOCK');
|
||||
$oRestoreMutex->Unlock();
|
||||
}
|
||||
catch (Exception $e)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// Copyright (C) 2014 Combodo SARL
|
||||
// Copyright (C) 2014-2016 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
|
||||
@@ -26,35 +26,19 @@ class BackupHandler extends ModuleHandlerAPI
|
||||
{
|
||||
public static function OnMetaModelStarted()
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
$oBackupMutex = new iTopMutex('backup.'.utils::GetCurrentEnvironment());
|
||||
if ($oBackupMutex->TryLock())
|
||||
{
|
||||
$oBackupMutex->Unlock();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Not needed: the DB dump is done in a single transaction
|
||||
//MetaModel::GetConfig()->Set('access_mode', ACCESS_READONLY, 'itop-backup');
|
||||
//MetaModel::GetConfig()->Set('access_message', ' - '.dict::S('bkp-backup-running'), 'itop-backup');
|
||||
}
|
||||
|
||||
$oRestoreMutex = new iTopMutex('restore.'.utils::GetCurrentEnvironment());
|
||||
if ($oRestoreMutex->TryLock())
|
||||
{
|
||||
$oRestoreMutex->Unlock();
|
||||
}
|
||||
else
|
||||
if ($oRestoreMutex->IsLocked())
|
||||
{
|
||||
IssueLog::Info(__class__.'::'.__function__.' A user is trying to use iTop while a restore is running. The requested page is in read-only mode.');
|
||||
MetaModel::GetConfig()->Set('access_mode', ACCESS_READONLY, 'itop-backup');
|
||||
MetaModel::GetConfig()->Set('access_message', ' - '.dict::S('bkp-restore-running'), 'itop-backup');
|
||||
}
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
|
||||
IssueLog::Error(__class__.'::'.__function__.' Failed to check if a backup/restore is running: '.$e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// Copyright (C) 2014 Combodo SARL
|
||||
// Copyright (C) 2016 Combodo SARL
|
||||
//
|
||||
// This file is part of iTop.
|
||||
//
|
||||
@@ -20,7 +20,7 @@
|
||||
/**
|
||||
* Monitor the backup
|
||||
*
|
||||
* @copyright Copyright (C) 2013 Combodo SARL
|
||||
* @copyright Copyright (C) 2016 Combodo SARL
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
@@ -169,14 +169,13 @@ try
|
||||
}
|
||||
|
||||
$oRestoreMutex = new iTopMutex('restore.'.utils::GetCurrentEnvironment());
|
||||
if ($oRestoreMutex->TryLock())
|
||||
if ($oRestoreMutex->IsLocked())
|
||||
{
|
||||
$oRestoreMutex->Unlock();
|
||||
$sDisableRestore = '';
|
||||
$sDisableRestore = 'disabled="disabled"';
|
||||
}
|
||||
else
|
||||
{
|
||||
$sDisableRestore = 'disabled="disabled"';
|
||||
$sDisableRestore = '';
|
||||
}
|
||||
|
||||
// 1st table: list the backups made in the background
|
||||
@@ -271,20 +270,12 @@ try
|
||||
// Ongoing operation ?
|
||||
//
|
||||
$oBackupMutex = new iTopMutex('backup.'.utils::GetCurrentEnvironment());
|
||||
if ($oBackupMutex->TryLock())
|
||||
{
|
||||
$oBackupMutex->Unlock();
|
||||
}
|
||||
else
|
||||
if ($oBackupMutex->IsLocked())
|
||||
{
|
||||
$oP->p(Dict::S('bkp-backup-running'));
|
||||
}
|
||||
$oRestoreMutex = new iTopMutex('restore.'.utils::GetCurrentEnvironment());
|
||||
if ($oRestoreMutex->TryLock())
|
||||
{
|
||||
$oRestoreMutex->Unlock();
|
||||
}
|
||||
else
|
||||
if ($oRestoreMutex->IsLocked())
|
||||
{
|
||||
$oP->p(Dict::S('bkp-restore-running'));
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -0,0 +1,247 @@
|
||||
<?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 Erik Bøg <erik@boegmoeller.dk>
|
||||
|
||||
* @copyright Copyright (C) 2010-2012 Combodo SARL
|
||||
* @licence http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
Dict::Add('DA DA', 'Danish', 'Dansk', array(
|
||||
'Class:RoutineChange' => 'Rutine Ændring',
|
||||
'Class:RoutineChange+' => '',
|
||||
'Class:RoutineChange/Stimulus:ev_assign' => 'Tildel',
|
||||
'Class:RoutineChange/Stimulus:ev_assign+' => '',
|
||||
'Class:RoutineChange/Stimulus:ev_reopen' => 'Genåben',
|
||||
'Class:RoutineChange/Stimulus:ev_reopen+' => '',
|
||||
'Class:RoutineChange/Stimulus:ev_plan' => 'Planlæg',
|
||||
'Class:RoutineChange/Stimulus:ev_plan+' => '',
|
||||
'Class:RoutineChange/Stimulus:ev_approve' => 'Godkend',
|
||||
'Class:RoutineChange/Stimulus:ev_approve+' => '',
|
||||
'Class:RoutineChange/Stimulus:ev_replan' => 'Genplanlæg',
|
||||
'Class:RoutineChange/Stimulus:ev_replan+' => '',
|
||||
'Class:RoutineChange/Stimulus:ev_notapprove' => 'Godkend Ikke',
|
||||
'Class:RoutineChange/Stimulus:ev_notapprove+' => '',
|
||||
'Class:RoutineChange/Stimulus:ev_implement' => 'Implementer',
|
||||
'Class:RoutineChange/Stimulus:ev_implement+' => '',
|
||||
'Class:RoutineChange/Stimulus:ev_monitor' => 'Overvåg',
|
||||
'Class:RoutineChange/Stimulus:ev_monitor+' => '',
|
||||
'Class:RoutineChange/Stimulus:ev_finish' => 'Afslut',
|
||||
'Class:RoutineChange/Stimulus:ev_finish+' => '',
|
||||
'Class:NormalChange' => 'Normal Ændring',
|
||||
'Class:NormalChange+' => '',
|
||||
'Class:NormalChange/Attribute:acceptance_date' => 'Dato for accept',
|
||||
'Class:NormalChange/Attribute:acceptance_date+' => '',
|
||||
'Class:NormalChange/Attribute:acceptance_comment' => 'Kommentar til accept',
|
||||
'Class:NormalChange/Attribute:acceptance_comment+' => '',
|
||||
'Class:NormalChange/Stimulus:ev_validate' => 'Valider',
|
||||
'Class:NormalChange/Stimulus:ev_validate+' => '',
|
||||
'Class:NormalChange/Stimulus:ev_reject' => 'Afslå',
|
||||
'Class:NormalChange/Stimulus:ev_reject+' => '',
|
||||
'Class:NormalChange/Stimulus:ev_assign' => 'Tildel',
|
||||
'Class:NormalChange/Stimulus:ev_assign+' => '',
|
||||
'Class:NormalChange/Stimulus:ev_reopen' => 'Genåben',
|
||||
'Class:NormalChange/Stimulus:ev_reopen+' => '',
|
||||
'Class:NormalChange/Stimulus:ev_plan' => 'Planlæg',
|
||||
'Class:NormalChange/Stimulus:ev_plan+' => '',
|
||||
'Class:NormalChange/Stimulus:ev_approve' => 'Godkend',
|
||||
'Class:NormalChange/Stimulus:ev_approve+' => '',
|
||||
'Class:NormalChange/Stimulus:ev_replan' => 'Genplanlæg',
|
||||
'Class:NormalChange/Stimulus:ev_replan+' => '',
|
||||
'Class:NormalChange/Stimulus:ev_notapprove' => 'Godkent Ikke',
|
||||
'Class:NormalChange/Stimulus:ev_notapprove+' => '',
|
||||
'Class:NormalChange/Stimulus:ev_implement' => 'Implementer',
|
||||
'Class:NormalChange/Stimulus:ev_implement+' => '',
|
||||
'Class:NormalChange/Stimulus:ev_monitor' => 'Overvåg',
|
||||
'Class:NormalChange/Stimulus:ev_monitor+' => '',
|
||||
'Class:NormalChange/Stimulus:ev_finish' => 'Afslut',
|
||||
'Class:NormalChange/Stimulus:ev_finish+' => '',
|
||||
'Class:EmergencyChange' => 'Emergency Ændring',
|
||||
'Class:EmergencyChange+' => '',
|
||||
'Class:EmergencyChange/Stimulus:ev_assign' => 'Tildel',
|
||||
'Class:EmergencyChange/Stimulus:ev_assign+' => '',
|
||||
'Class:EmergencyChange/Stimulus:ev_reopen' => 'Genåben',
|
||||
'Class:EmergencyChange/Stimulus:ev_reopen+' => '',
|
||||
'Class:EmergencyChange/Stimulus:ev_plan' => 'Planlæg',
|
||||
'Class:EmergencyChange/Stimulus:ev_plan+' => '',
|
||||
'Class:EmergencyChange/Stimulus:ev_approve' => 'Godkend',
|
||||
'Class:EmergencyChange/Stimulus:ev_approve+' => '',
|
||||
'Class:EmergencyChange/Stimulus:ev_replan' => 'Genplanlæg',
|
||||
'Class:EmergencyChange/Stimulus:ev_replan+' => '',
|
||||
'Class:EmergencyChange/Stimulus:ev_notapprove' => 'Godkend Ikke',
|
||||
'Class:EmergencyChange/Stimulus:ev_notapprove+' => '',
|
||||
'Class:EmergencyChange/Stimulus:ev_implement' => 'Implementer',
|
||||
'Class:EmergencyChange/Stimulus:ev_implement+' => '',
|
||||
'Class:EmergencyChange/Stimulus:ev_monitor' => 'Overvåg',
|
||||
'Class:EmergencyChange/Stimulus:ev_monitor+' => '',
|
||||
'Class:EmergencyChange/Stimulus:ev_finish' => 'Afslut',
|
||||
'Class:EmergencyChange/Stimulus:ev_finish+' => '',
|
||||
'Menu:ChangeManagement' => 'Change Management',
|
||||
'Menu:Change:Overview' => 'Oversigt',
|
||||
'Menu:Change:Overview+' => '',
|
||||
'Menu:NewChange' => 'Ny Change',
|
||||
'Menu:NewChange+' => 'Opret en ny Change ticket',
|
||||
'Menu:SearchChanges' => 'Søg efter Changes',
|
||||
'Menu:SearchChanges+' => 'Søg efter Change Tickets',
|
||||
'Menu:Change:Shortcuts' => 'Genveje',
|
||||
'Menu:Change:Shortcuts+' => '',
|
||||
'Menu:WaitingAcceptance' => 'Changes, som afventer accept',
|
||||
'Menu:WaitingAcceptance+' => '',
|
||||
'Menu:WaitingApproval' => 'Changes, som afventer godkendelse',
|
||||
'Menu:WaitingApproval+' => '',
|
||||
'Menu:Changes' => 'Offene Changes',
|
||||
'Menu:Changes+' => 'Alle åbne Changes',
|
||||
'Menu:MyChanges' => 'Mine Changes',
|
||||
'Menu:MyChanges+' => 'Changes som er tildelt mig',
|
||||
'UI-ChangeManagementOverview-ChangeByCategory-last-7-days' => 'Changes de sidste 7 dage, efter kategori',
|
||||
'UI-ChangeManagementOverview-Last-7-days' => 'Antal Changes de sidste 7 dage',
|
||||
'UI-ChangeManagementOverview-ChangeByDomain-last-7-days' => 'Changes de sidste 7 dage efter type',
|
||||
'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Changes de sidste 7 dage efter status',
|
||||
'Class:Change' => 'Change',
|
||||
'Class:Change+' => '',
|
||||
'Class:Change/Attribute:status' => 'Status',
|
||||
'Class:Change/Attribute:status+' => '',
|
||||
'Class:Change/Attribute:status/Value:new' => 'Ny',
|
||||
'Class:Change/Attribute:status/Value:new+' => '',
|
||||
'Class:Change/Attribute:status/Value:validated' => 'Valideret',
|
||||
'Class:Change/Attribute:status/Value:validated+' => '',
|
||||
'Class:Change/Attribute:status/Value:rejected' => 'Afslået',
|
||||
'Class:Change/Attribute:status/Value:rejected+' => '',
|
||||
'Class:Change/Attribute:status/Value:assigned' => 'Tildelt',
|
||||
'Class:Change/Attribute:status/Value:assigned+' => '',
|
||||
'Class:Change/Attribute:status/Value:plannedscheduled' => 'Planlagt og tidssat',
|
||||
'Class:Change/Attribute:status/Value:plannedscheduled+' => '',
|
||||
'Class:Change/Attribute:status/Value:approved' => 'Godkendt',
|
||||
'Class:Change/Attribute:status/Value:approved+' => '',
|
||||
'Class:Change/Attribute:status/Value:notapproved' => 'Ikke Godkendt',
|
||||
'Class:Change/Attribute:status/Value:notapproved+' => '',
|
||||
'Class:Change/Attribute:status/Value:implemented' => 'Implementeret',
|
||||
'Class:Change/Attribute:status/Value:implemented+' => '',
|
||||
'Class:Change/Attribute:status/Value:monitored' => 'Overvåget',
|
||||
'Class:Change/Attribute:status/Value:monitored+' => '',
|
||||
'Class:Change/Attribute:status/Value:closed' => 'Lukket',
|
||||
'Class:Change/Attribute:status/Value:closed+' => '',
|
||||
'Class:Change/Attribute:reason' => 'Årsag',
|
||||
'Class:Change/Attribute:reason+' => '',
|
||||
'Class:Change/Attribute:requestor_id' => 'Rekvirent',
|
||||
'Class:Change/Attribute:requestor_id+' => '',
|
||||
'Class:Change/Attribute:requestor_email' => 'Rekvirent e-mail',
|
||||
'Class:Change/Attribute:requestor_email+' => '',
|
||||
'Class:Change/Attribute:creation_date' => 'Oprettet dato',
|
||||
'Class:Change/Attribute:creation_date+' => '',
|
||||
'Class:Change/Attribute:impact' => 'Indvirkning',
|
||||
'Class:Change/Attribute:impact+' => '',
|
||||
'Class:Change/Attribute:supervisor_group_id' => 'Supervisor-Team',
|
||||
'Class:Change/Attribute:supervisor_group_id+' => '',
|
||||
'Class:Change/Attribute:supervisor_group_name' => 'Supervisor-Teamnavn',
|
||||
'Class:Change/Attribute:supervisor_group_name+' => '',
|
||||
'Class:Change/Attribute:supervisor_id' => 'Supervisor',
|
||||
'Class:Change/Attribute:supervisor_id+' => '',
|
||||
'Class:Change/Attribute:supervisor_email' => 'Supervisor e-mail',
|
||||
'Class:Change/Attribute:supervisor_email+' => '',
|
||||
'Class:Change/Attribute:manager_group_id' => 'Manager-Team',
|
||||
'Class:Change/Attribute:manager_group_id+' => '',
|
||||
'Class:Change/Attribute:manager_group_name' => 'Manager-Team',
|
||||
'Class:Change/Attribute:manager_group_name+' => '',
|
||||
'Class:Change/Attribute:manager_id' => 'Manager',
|
||||
'Class:Change/Attribute:manager_id+' => '',
|
||||
'Class:Change/Attribute:manager_email' => 'Manager',
|
||||
'Class:Change/Attribute:manager_email+' => '',
|
||||
'Class:Change/Attribute:outage' => 'Nedetid',
|
||||
'Class:Change/Attribute:outage+' => '',
|
||||
'Class:Change/Attribute:outage/Value:no' => 'Nej',
|
||||
'Class:Change/Attribute:outage/Value:no+' => '',
|
||||
'Class:Change/Attribute:outage/Value:yes' => 'Ja',
|
||||
'Class:Change/Attribute:outage/Value:yes+' => '',
|
||||
'Class:Change/Attribute:fallback' => 'Fallback-Plan',
|
||||
'Class:Change/Attribute:fallback+' => '',
|
||||
'Class:Change/Attribute:parent_id' => 'Parent Change',
|
||||
'Class:Change/Attribute:parent_id+' => '',
|
||||
'Class:Change/Attribute:parent_name' => 'Parent Change Ref',
|
||||
'Class:Change/Attribute:parent_name+' => '',
|
||||
'Class:Change/Attribute:related_request_list' => 'Relaterede Requests',
|
||||
'Class:Change/Attribute:related_request_list+' => '',
|
||||
'Class:Change/Attribute:related_problems_list' => 'Relaterede Problemer',
|
||||
'Class:Change/Attribute:related_problems_list+' => '',
|
||||
'Class:Change/Attribute:child_changes_list' => 'Afledte Changes',
|
||||
'Class:Change/Attribute:child_changes_list+' => '',
|
||||
'Class:Change/Attribute:parent_id_friendlyname' => 'Parent Friendly Name',
|
||||
'Class:Change/Attribute:parent_id_friendlyname+' => '',
|
||||
'Class:Change/Attribute:parent_id_finalclass_recall' => 'Change-Type',
|
||||
'Class:Change/Attribute:parent_id_finalclass_recall+' => '',
|
||||
'Class:Change/Stimulus:ev_validate' => 'Valider',
|
||||
'Class:Change/Stimulus:ev_validate+' => '',
|
||||
'Class:Change/Stimulus:ev_reject' => 'Afslå',
|
||||
'Class:Change/Stimulus:ev_reject+' => '',
|
||||
'Class:Change/Stimulus:ev_assign' => 'Tildel',
|
||||
'Class:Change/Stimulus:ev_assign+' => '',
|
||||
'Class:Change/Stimulus:ev_reopen' => 'Genåben',
|
||||
'Class:Change/Stimulus:ev_reopen+' => '',
|
||||
'Class:Change/Stimulus:ev_plan' => 'Planlæg',
|
||||
'Class:Change/Stimulus:ev_plan+' => '',
|
||||
'Class:Change/Stimulus:ev_approve' => 'Godkend',
|
||||
'Class:Change/Stimulus:ev_approve+' => '',
|
||||
'Class:Change/Stimulus:ev_replan' => 'Genplanlæg',
|
||||
'Class:Change/Stimulus:ev_replan+' => '',
|
||||
'Class:Change/Stimulus:ev_notapprove' => 'Afslå',
|
||||
'Class:Change/Stimulus:ev_notapprove+' => '',
|
||||
'Class:Change/Stimulus:ev_implement' => 'Implementer',
|
||||
'Class:Change/Stimulus:ev_implement+' => '',
|
||||
'Class:Change/Stimulus:ev_monitor' => 'Overvåg',
|
||||
'Class:Change/Stimulus:ev_monitor+' => '',
|
||||
'Class:Change/Stimulus:ev_finish' => 'Afslut',
|
||||
'Class:Change/Stimulus:ev_finish+' => '',
|
||||
'Class:RoutineChange/Stimulus:ev_validate' => 'Valider',
|
||||
'Class:RoutineChange/Stimulus:ev_validate+' => '',
|
||||
'Class:RoutineChange/Stimulus:ev_reject' => 'Afslå',
|
||||
'Class:RoutineChange/Stimulus:ev_reject+' => '',
|
||||
'Class:ApprovedChange' => 'Godkendte Changes',
|
||||
'Class:ApprovedChange+' => '',
|
||||
'Class:ApprovedChange/Attribute:approval_date' => 'Dato for godkendelse',
|
||||
'Class:ApprovedChange/Attribute:approval_date+' => '',
|
||||
'Class:ApprovedChange/Attribute:approval_comment' => 'Kommentar til godkendelsen',
|
||||
'Class:ApprovedChange/Attribute:approval_comment+' => '',
|
||||
'Class:ApprovedChange/Stimulus:ev_validate' => 'Valider',
|
||||
'Class:ApprovedChange/Stimulus:ev_validate+' => '',
|
||||
'Class:ApprovedChange/Stimulus:ev_reject' => 'Afslå',
|
||||
'Class:ApprovedChange/Stimulus:ev_reject+' => '',
|
||||
'Class:ApprovedChange/Stimulus:ev_assign' => 'Tildel',
|
||||
'Class:ApprovedChange/Stimulus:ev_assign+' => '',
|
||||
'Class:ApprovedChange/Stimulus:ev_reopen' => 'Genåben',
|
||||
'Class:ApprovedChange/Stimulus:ev_reopen+' => '',
|
||||
'Class:ApprovedChange/Stimulus:ev_plan' => 'Planlæg',
|
||||
'Class:ApprovedChange/Stimulus:ev_plan+' => '',
|
||||
'Class:ApprovedChange/Stimulus:ev_approve' => 'Godkend',
|
||||
'Class:ApprovedChange/Stimulus:ev_approve+' => '',
|
||||
'Class:ApprovedChange/Stimulus:ev_replan' => 'Genplanlæg',
|
||||
'Class:ApprovedChange/Stimulus:ev_replan+' => '',
|
||||
'Class:ApprovedChange/Stimulus:ev_notapprove' => 'Tilbagekald godkendelse',
|
||||
'Class:ApprovedChange/Stimulus:ev_notapprove+' => '',
|
||||
'Class:ApprovedChange/Stimulus:ev_implement' => 'Implementer',
|
||||
'Class:ApprovedChange/Stimulus:ev_implement+' => '',
|
||||
'Class:ApprovedChange/Stimulus:ev_monitor' => 'Overvåg',
|
||||
'Class:ApprovedChange/Stimulus:ev_monitor+' => '',
|
||||
'Class:ApprovedChange/Stimulus:ev_finish' => 'Afslut',
|
||||
'Class:ApprovedChange/Stimulus:ev_finish+' => '',
|
||||
'Class:EmergencyChange/Stimulus:ev_validate' => 'Valider',
|
||||
'Class:EmergencyChange/Stimulus:ev_validate+' => '',
|
||||
'Class:EmergencyChange/Stimulus:ev_reject' => 'Afslå',
|
||||
'Class:EmergencyChange/Stimulus:ev_reject+' => '',
|
||||
));
|
||||
?>
|
||||
@@ -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>
|
||||
|
||||
115
datamodels/2.x/itop-change-mgmt/da.dict.itop-change-mgmt.php
Normal file
115
datamodels/2.x/itop-change-mgmt/da.dict.itop-change-mgmt.php
Normal file
@@ -0,0 +1,115 @@
|
||||
<?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 Erik Bøg <erik@boegmoeller.dk>
|
||||
|
||||
* @copyright Copyright (C) 2010-2012 Combodo SARL
|
||||
* @licence http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
Dict::Add('DA DA', 'Danish', 'Dansk', array(
|
||||
'Class:Change' => 'Change',
|
||||
'Class:Change+' => '',
|
||||
'Class:Change/Attribute:status' => 'Status',
|
||||
'Class:Change/Attribute:status+' => 'Status for emnet',
|
||||
'Class:Change/Attribute:status/Value:new' => 'Ny',
|
||||
'Class:Change/Attribute:status/Value:new+' => 'Opret ny',
|
||||
'Class:Change/Attribute:status/Value:assigned' => 'Tildelt',
|
||||
'Class:Change/Attribute:status/Value:assigned+' => '',
|
||||
'Class:Change/Attribute:status/Value:planned' => 'Planlagt',
|
||||
'Class:Change/Attribute:status/Value:planned+' => '',
|
||||
'Class:Change/Attribute:status/Value:rejected' => 'Afslået',
|
||||
'Class:Change/Attribute:status/Value:rejected+' => '',
|
||||
'Class:Change/Attribute:status/Value:approved' => 'Godkendt',
|
||||
'Class:Change/Attribute:status/Value:approved+' => '',
|
||||
'Class:Change/Attribute:status/Value:closed' => 'Lukket',
|
||||
'Class:Change/Attribute:status/Value:closed+' => '',
|
||||
'Class:Change/Attribute:category' => 'Kategori',
|
||||
'Class:Change/Attribute:category+' => '',
|
||||
'Class:Change/Attribute:category/Value:application' => 'Applikation',
|
||||
'Class:Change/Attribute:category/Value:application+' => '',
|
||||
'Class:Change/Attribute:category/Value:hardware' => 'Hardware',
|
||||
'Class:Change/Attribute:category/Value:hardware+' => '',
|
||||
'Class:Change/Attribute:category/Value:network' => 'Netværk',
|
||||
'Class:Change/Attribute:category/Value:network+' => '',
|
||||
'Class:Change/Attribute:category/Value:other' => 'Andet',
|
||||
'Class:Change/Attribute:category/Value:other+' => '',
|
||||
'Class:Change/Attribute:category/Value:software' => 'Software',
|
||||
'Class:Change/Attribute:category/Value:software+' => '',
|
||||
'Class:Change/Attribute:category/Value:system' => 'System',
|
||||
'Class:Change/Attribute:category/Value:system+' => '',
|
||||
'Class:Change/Attribute:reject_reason' => 'Årsag til afslag',
|
||||
'Class:Change/Attribute:reject_reason+' => '',
|
||||
'Class:Change/Attribute:changemanager_id' => 'Change Manager',
|
||||
'Class:Change/Attribute:changemanager_id+' => '',
|
||||
'Class:Change/Attribute:parent_id' => 'Parent Change',
|
||||
'Class:Change/Attribute:parent_id+' => '',
|
||||
'Class:Change/Attribute:creation_date' => 'Oprettelsesdato',
|
||||
'Class:Change/Attribute:creation_date+' => '',
|
||||
'Class:Change/Attribute:approval_date' => 'Godkendelsesdato',
|
||||
'Class:Change/Attribute:approval_date+' => '',
|
||||
'Class:Change/Attribute:fallback_plan' => 'Fallback-Plan',
|
||||
'Class:Change/Attribute:fallback_plan+' => '',
|
||||
'Class:Change/Attribute:related_request_list' => 'Relaterede Requests',
|
||||
'Class:Change/Attribute:related_request_list+' => '',
|
||||
'Class:Change/Attribute:child_changes_list' => 'Afledte Changes',
|
||||
'Class:Change/Attribute:child_changes_list+' => '',
|
||||
'Class:Change/Stimulus:ev_assign' => 'Tildel',
|
||||
'Class:Change/Stimulus:ev_assign+' => '',
|
||||
'Class:Change/Stimulus:ev_plan' => 'Planlæg',
|
||||
'Class:Change/Stimulus:ev_plan+' => '',
|
||||
'Class:Change/Stimulus:ev_reject' => 'Afslåp',
|
||||
'Class:Change/Stimulus:ev_reject+' => '',
|
||||
'Class:Change/Stimulus:ev_reopen' => 'Genåben',
|
||||
'Class:Change/Stimulus:ev_reopen+' => '',
|
||||
'Class:Change/Stimulus:ev_approve' => 'Godkend',
|
||||
'Class:Change/Stimulus:ev_approve+' => '',
|
||||
'Class:Change/Stimulus:ev_finish' => 'Luk',
|
||||
'Class:Change/Stimulus:ev_finish+' => '',
|
||||
'Menu:ChangeManagement' => 'Change Management',
|
||||
'Menu:Change:Overview' => 'Oversigt',
|
||||
'Menu:Change:Overview+' => '',
|
||||
'Menu:NewChange' => 'Ny Change',
|
||||
'Menu:NewChange+' => '',
|
||||
'Menu:SearchChanges' => 'Søg efter Changes',
|
||||
'Menu:SearchChanges+' => '',
|
||||
'Menu:Change:Shortcuts' => 'Genveje',
|
||||
'Menu:Change:Shortcuts+' => '',
|
||||
'Menu:WaitingAcceptance' => 'Changes der afventer accept',
|
||||
'Menu:WaitingAcceptance+' => '',
|
||||
'Menu:WaitingApproval' => 'Changes der afventer godkendelse',
|
||||
'Menu:WaitingApproval+' => '',
|
||||
'Menu:Changes' => 'Åbne Changes',
|
||||
'Menu:Changes+' => '',
|
||||
'Menu:MyChanges' => 'Changes tildelt til mig',
|
||||
'Menu:MyChanges+' => '',
|
||||
'UI-ChangeManagementOverview-ChangeByCategory-last-7-days' => 'Changes de sidste 7 dage efter kategori',
|
||||
'UI-ChangeManagementOverview-Last-7-days' => 'Antal Changes i de sidste 7 dage',
|
||||
'UI-ChangeManagementOverview-ChangeByDomain-last-7-days' => 'Changes de sidste 7 dage efter type',
|
||||
'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Changes de sidste 7 dage efter status',
|
||||
'Class:Change/Attribute:changemanager_email' => 'Change Manager Email',
|
||||
'Class:Change/Attribute:changemanager_email+' => '',
|
||||
'Class:Change/Attribute:parent_name' => 'Parent Change ref',
|
||||
'Class:Change/Attribute:parent_name+' => '',
|
||||
'Class:Change/Attribute:related_incident_list' => 'Relaterede Incidents',
|
||||
'Class:Change/Attribute:related_incident_list+' => '',
|
||||
'Class:Change/Attribute:parent_id_friendlyname' => 'Parent Change Friendly Name',
|
||||
'Class:Change/Attribute:parent_id_friendlyname+' => '',
|
||||
));
|
||||
?>
|
||||
@@ -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>
|
||||
|
||||
146
datamodels/2.x/itop-change-mgmt/nl.dict.itop-change-mgmt.php
Normal file
146
datamodels/2.x/itop-change-mgmt/nl.dict.itop-change-mgmt.php
Normal 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+' => '',
|
||||
));
|
||||
|
||||
?>
|
||||
1099
datamodels/2.x/itop-config-mgmt/da.dict.itop-config-mgmt.php
Normal file
1099
datamodels/2.x/itop-config-mgmt/da.dict.itop-config-mgmt.php
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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>
|
||||
@@ -7978,6 +7916,11 @@
|
||||
<enable_permission>UR_ALLOWED_YES</enable_permission>
|
||||
<enable_stimulus/>
|
||||
</menu>
|
||||
<menu id="CSVImport" xsi:type="WebPageMenuNode" _delta="define">
|
||||
<rank>10</rank>
|
||||
<parent>DataAdministration</parent>
|
||||
<url>$pages/csvimport.php</url>
|
||||
</menu>
|
||||
<menu id="Audit" xsi:type="WebPageMenuNode" _delta="define">
|
||||
<rank>33</rank>
|
||||
<parent>DataAdministration</parent>
|
||||
|
||||
@@ -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',
|
||||
@@ -1019,10 +1019,14 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
|
||||
'Class:lnkGroupToCI/Attribute:group_name+' => '',
|
||||
'Class:lnkGroupToCI/Attribute:ci_name' => 'Name',
|
||||
'Class:lnkGroupToCI/Attribute:ci_name+' => '',
|
||||
'Menu:DataAdministration' => 'Data Management',
|
||||
'Menu:DataAdministration+' => 'Data Management',
|
||||
'Menu:Catalogs' => 'Kataloge',
|
||||
'Menu:Catalogs+' => 'Datentypen',
|
||||
'Menu:Audit' => 'Audit',
|
||||
'Menu:Audit+' => 'Audit',
|
||||
'Menu:CSVImport' => 'CSV-Import',
|
||||
'Menu:CSVImport+' => 'Massenerstellung oder -aktualisierung',
|
||||
'Menu:Organization' => 'Organisationen',
|
||||
'Menu:Organization+' => 'Alle Organisationen',
|
||||
'Menu:Application' => 'Anwendungen',
|
||||
|
||||
@@ -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',
|
||||
));
|
||||
@@ -1770,10 +1770,14 @@ Dict::Add('EN US', 'English', 'English', array(
|
||||
//
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', array(
|
||||
'Menu:DataAdministration' => 'Data administration',
|
||||
'Menu:DataAdministration+' => 'Data administration',
|
||||
'Menu:Catalogs' => 'Catalogs',
|
||||
'Menu:Catalogs+' => 'Data types',
|
||||
'Menu:Audit' => 'Audit',
|
||||
'Menu:Audit+' => 'Audit',
|
||||
'Menu:CSVImport' => 'CSV import',
|
||||
'Menu:CSVImport+' => 'Bulk creation or update',
|
||||
'Menu:Organization' => 'Organizations',
|
||||
'Menu:Organization+' => 'All organizations',
|
||||
'Menu:Application' => 'Applications',
|
||||
|
||||
@@ -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',
|
||||
));
|
||||
@@ -1768,10 +1768,14 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array(
|
||||
//
|
||||
|
||||
Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array(
|
||||
'Menu:DataAdministration' => 'Administración de Datos',
|
||||
'Menu:DataAdministration+' => 'Administración de Datos',
|
||||
'Menu:Catalogs' => 'Catálogos',
|
||||
'Menu:Catalogs+' => 'Tipos de Datos',
|
||||
'Menu:Audit' => 'Auditoría',
|
||||
'Menu:Audit+' => 'Auditoría',
|
||||
'Menu:CSVImport' => 'Importar CSV',
|
||||
'Menu:CSVImport+' => 'Creación o Actualización Másiva',
|
||||
'Menu:Organization' => 'Organizaciones',
|
||||
'Menu:Organization+' => 'Organizaciones',
|
||||
'Menu:Application' => 'Aplicaciones',
|
||||
|
||||
@@ -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+' => '',
|
||||
));
|
||||
@@ -1717,10 +1717,14 @@ Dict::Add('FR FR', 'French', 'Français', array(
|
||||
|
||||
|
||||
Dict::Add('FR FR', 'French', 'Français', array(
|
||||
'Menu:DataAdministration' => 'Administration des données',
|
||||
'Menu:DataAdministration+' => 'Administration des données',
|
||||
'Menu:Catalogs' => 'Catalogues',
|
||||
'Menu:Catalogs+' => 'Types de données',
|
||||
'Menu:Audit' => 'Audit',
|
||||
'Menu:Audit+' => 'Audit',
|
||||
'Menu:CSVImport' => 'Import CSV',
|
||||
'Menu:CSVImport+' => 'Import ou mise à jour en masse',
|
||||
'Menu:Organization' => 'Organisations',
|
||||
'Menu:Organization+' => 'Toutes les organisations',
|
||||
'Menu:Application' => 'Logiciels',
|
||||
|
||||
@@ -641,10 +641,14 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
|
||||
'Class:Subnet/Tab:FreeIPs' => 'Szabad IP-k',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'Szabad IP-k: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => '10 szabad IP cím kivonata',
|
||||
'Menu:DataAdministration' => 'Adat adminisztráció',
|
||||
'Menu:DataAdministration+' => '',
|
||||
'Menu:Catalogs' => 'Katalógusok',
|
||||
'Menu:Catalogs+' => '',
|
||||
'Menu:Audit' => 'Audit',
|
||||
'Menu:Audit+' => '',
|
||||
'Menu:CSVImport' => 'CSV import',
|
||||
'Menu:CSVImport+' => '',
|
||||
'Menu:Organization' => 'Szervezet',
|
||||
'Menu:Organization+' => '',
|
||||
'Menu:Application' => 'Alkalmazások',
|
||||
|
||||
@@ -641,10 +641,14 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array(
|
||||
'Class:Subnet/Tab:FreeIPs' => 'IP liberi',
|
||||
'Class:Subnet/Tab:FreeIPs-count' => 'IP liberi: %1$s',
|
||||
'Class:Subnet/Tab:FreeIPs-explain' => 'Qui c\'è un estratto di 10 indirizzi IP liberi',
|
||||
'Menu:DataAdministration' => 'Dati di amministrazione',
|
||||
'Menu:DataAdministration+' => '',
|
||||
'Menu:Catalogs' => 'Cataloghi',
|
||||
'Menu:Catalogs+' => 'Tipi di dato',
|
||||
'Menu:Audit' => 'Audit',
|
||||
'Menu:Audit+' => 'Audit',
|
||||
'Menu:CSVImport' => 'Importazione CSV',
|
||||
'Menu:CSVImport+' => '',
|
||||
'Menu:Organization' => 'Organizzazioni',
|
||||
'Menu:Organization+' => 'Tutte le organizzazioni',
|
||||
'Menu:Application' => 'Applicazioni',
|
||||
|
||||
@@ -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' => 'ネットワークデバイスタイプ',
|
||||
@@ -1012,10 +1012,14 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Class:lnkGroupToCI/Attribute:group_name+' => '',
|
||||
'Class:lnkGroupToCI/Attribute:ci_name' => '名前',
|
||||
'Class:lnkGroupToCI/Attribute:ci_name+' => '',
|
||||
'Menu:DataAdministration' => 'データ管理',
|
||||
'Menu:DataAdministration+' => 'データ管理',
|
||||
'Menu:Catalogs' => 'カタログ',
|
||||
'Menu:Catalogs+' => 'データタイプ',
|
||||
'Menu:Audit' => '監査',
|
||||
'Menu:Audit+' => '監査',
|
||||
'Menu:CSVImport' => 'CSV インポート',
|
||||
'Menu:CSVImport+' => '一括作成/一括更新',
|
||||
'Menu:Organization' => '組織',
|
||||
'Menu:Organization+' => '全組織',
|
||||
'Menu:Application' => 'アプリケーション',
|
||||
@@ -1085,6 +1089,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' => '基本情報',
|
||||
|
||||
@@ -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');
|
||||
|
||||
1875
datamodels/2.x/itop-config-mgmt/nl.dict.itop-config-mgmt.php
Normal file
1875
datamodels/2.x/itop-config-mgmt/nl.dict.itop-config-mgmt.php
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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',
|
||||
));
|
||||
@@ -1764,17 +1764,20 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Menu:DataAdministration' => 'Administração Dados',
|
||||
'Menu:DataAdministration+' => 'Administração Dados',
|
||||
'Menu:Catalogs' => 'Catálogos',
|
||||
'Menu:Catalogs+' => 'Tipos dados',
|
||||
'Menu:Audit' => 'Auditoria',
|
||||
'Menu:Audit+' => 'Auditoria',
|
||||
'Menu:CSVImport' => 'Importar CSV',
|
||||
'Menu:CSVImport+' => 'Criação ou atualização em massa',
|
||||
'Menu:Organization' => 'Organizações',
|
||||
'Menu:Organization+' => 'Todas organizações',
|
||||
'Menu:Application' => 'Applicações',
|
||||
'Menu:Application+' => 'Todas aplicações',
|
||||
'Menu:DBServer' => 'Serviços Banco de Dados',
|
||||
'Menu:DBServer+' => 'Serviços Banco de Dados',
|
||||
'Menu:Audit' => 'Auditoria',
|
||||
'Menu:ConfigManagement' => 'Gerenciamento Configurações',
|
||||
'Menu:ConfigManagement+' => 'Gerenciamento Configurações',
|
||||
'Menu:ConfigManagementOverview' => 'Visão geral',
|
||||
|
||||
@@ -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+' => 'Устройства',
|
||||
));
|
||||
@@ -1765,10 +1765,14 @@ Dict::Add('RU RU', 'Russian', 'Русский', array(
|
||||
//
|
||||
|
||||
Dict::Add('RU RU', 'Russian', 'Русский', array(
|
||||
'Menu:DataAdministration' => 'Административные данные',
|
||||
'Menu:DataAdministration+' => 'Административные данные',
|
||||
'Menu:Catalogs' => 'Каталоги',
|
||||
'Menu:Catalogs+' => 'Каталоги',
|
||||
'Menu:Audit' => 'Аудит',
|
||||
'Menu:Audit+' => 'Аудит',
|
||||
'Menu:CSVImport' => 'Импорт CSV',
|
||||
'Menu:CSVImport+' => 'Пакетное создание или обновление',
|
||||
'Menu:Organization' => 'Организации',
|
||||
'Menu:Organization+' => 'Все организации',
|
||||
'Menu:Application' => 'Приложения',
|
||||
|
||||
@@ -990,10 +990,14 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
|
||||
//
|
||||
|
||||
Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
|
||||
'Menu:DataAdministration' => 'Veri Yönetimi',
|
||||
'Menu:DataAdministration+' => 'Veri Yönetimi',
|
||||
'Menu:Catalogs' => 'Kataloglar',
|
||||
'Menu:Catalogs+' => 'Veri tipleri',
|
||||
'Menu:Audit' => 'Denetleme',
|
||||
'Menu:Audit+' => 'Denetleme',
|
||||
'Menu:CSVImport' => 'CSV dışardan al',
|
||||
'Menu:CSVImport+' => 'Çoklu yaratım veya güncelleme',
|
||||
'Menu:Organization' => 'Kurumlar',
|
||||
'Menu:Organization+' => 'Tüm Kurumlar',
|
||||
'Menu:Application' => 'Uygulamalar',
|
||||
|
||||
@@ -992,10 +992,14 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
//
|
||||
|
||||
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Menu:DataAdministration' => '数据管理',
|
||||
'Menu:DataAdministration+' => '数据管理',
|
||||
'Menu:Catalogs' => '目录',
|
||||
'Menu:Catalogs+' => '数据类别',
|
||||
'Menu:Audit' => '审计',
|
||||
'Menu:Audit+' => '审计',
|
||||
'Menu:CSVImport' => 'CSV 导入',
|
||||
'Menu:CSVImport+' => '大批量创建或修改',
|
||||
'Menu:Organization' => '组织',
|
||||
'Menu:Organization+' => '所有组织',
|
||||
'Menu:Application' => '应用程序',
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// Copyright (C) 2014 Combodo SARL
|
||||
// Copyright (C) 2014-2016 Combodo SARL
|
||||
//
|
||||
// This file is part of iTop.
|
||||
//
|
||||
@@ -105,6 +105,10 @@ try
|
||||
{
|
||||
$oP->add("<div class=\"header_message message_info\">Sorry, iTop is in <b>demonstration mode</b>: the configuration file cannot be edited.</div>");
|
||||
}
|
||||
if (MetaModel::GetModuleSetting('itop-config', 'config_editor', '') == 'disabled')
|
||||
{
|
||||
$oP->add("<div class=\"header_message message_info\">iTop interactive edition of the configuration as been disabled. See <tt>'config_editor' => 'disabled'</tt> in the configuration file.</div>");
|
||||
}
|
||||
else
|
||||
{
|
||||
$oP->add_style(
|
||||
@@ -129,27 +133,50 @@ EOF
|
||||
if ($sOperation == 'save')
|
||||
{
|
||||
$sConfig = utils::ReadParam('new_config', '', false, 'raw_data');
|
||||
$sTransactionId = utils::ReadParam('transaction_id', '');
|
||||
$sOrginalConfig = utils::ReadParam('prev_config', '', false, 'raw_data');
|
||||
if ($sConfig == $sOrginalConfig)
|
||||
if (!utils::IsTransactionValid($sTransactionId, true))
|
||||
{
|
||||
$oP->add('<div id="save_result" class="header_message">'.Dict::S('config-no-change').'</div>');
|
||||
$oP->add("<div class=\"header_message message_info\">Error: invalid Transaction ID. The configuration was <b>NOT</b> modified.</div>");
|
||||
}
|
||||
else
|
||||
{
|
||||
try
|
||||
if ($sConfig == $sOrginalConfig)
|
||||
{
|
||||
TestConfig($sConfig, $oP); // throws exceptions
|
||||
|
||||
@chmod($sConfigFile, 0770); // Allow overwriting the file
|
||||
file_put_contents($sConfigFile, $sConfig);
|
||||
@chmod($sConfigFile, 0444); // Read-only
|
||||
|
||||
$oP->p('<div id="save_result" class="header_message message_ok">'.Dict::S('Successfully recorded.').'</div>');
|
||||
$sOrginalConfig = str_replace("\r\n", "\n", file_get_contents($sConfigFile));
|
||||
$oP->add('<div id="save_result" class="header_message">'.Dict::S('config-no-change').'</div>');
|
||||
}
|
||||
catch (Exception $e)
|
||||
else
|
||||
{
|
||||
$oP->p('<div id="save_result" class="header_message message_error">'.$e->getMessage().'</div>');
|
||||
try
|
||||
{
|
||||
TestConfig($sConfig, $oP); // throws exceptions
|
||||
|
||||
@chmod($sConfigFile, 0770); // Allow overwriting the file
|
||||
$sTmpFile = tempnam(SetupUtils::GetTmpDir(), 'itop-cfg-');
|
||||
// Don't write the file as-is since it would allow to inject any kind of PHP code.
|
||||
// Instead write the interpreted version of the file
|
||||
// Note:
|
||||
// The actual raw PHP code will anyhow be interpreted exactly twice: once in TestConfig() above
|
||||
// and a second time during the load of the Config object below.
|
||||
// If you are really concerned about an iTop administrator crafting some malicious
|
||||
// PHP code inside the config file, then turn off the interactive configuration
|
||||
// editor by adding the configuration parameter:
|
||||
// 'itop-config' => array(
|
||||
// 'config_editor' => 'disabled',
|
||||
// )
|
||||
file_put_contents($sTmpFile, $sConfig);
|
||||
$oTempConfig = new Config($sTmpFile, true);
|
||||
$oTempConfig->WriteToFile($sConfigFile);
|
||||
@unlink($sTmpFile);
|
||||
@chmod($sConfigFile, 0444); // Read-only
|
||||
|
||||
$oP->p('<div id="save_result" class="header_message message_ok">'.Dict::S('Successfully recorded.').'</div>');
|
||||
$sOrginalConfig = str_replace("\r\n", "\n", file_get_contents($sConfigFile));
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$oP->p('<div id="save_result" class="header_message message_error">'.$e->getMessage().'</div>');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -164,6 +191,7 @@ EOF
|
||||
$oP->p(Dict::S('config-edit-intro'));
|
||||
$oP->add("<form method=\"POST\">");
|
||||
$oP->add("<input type=\"hidden\" name=\"operation\" value=\"save\">");
|
||||
$oP->add("<input type=\"hidden\" name=\"transaction_id\" value=\"".utils::GetNewTransactionId()."\">");
|
||||
$oP->add("<input type=\"submit\" value=\"".Dict::S('config-apply')."\"><button onclick=\"ResetConfig(); return false;\">".Dict::S('config-cancel')."</button>");
|
||||
$oP->add("<span class=\"current_line\">".Dict::Format('config-current-line', "<span class=\"line_number\"></span>")."</span>");
|
||||
$oP->add("<input type=\"hidden\" id=\"prev_config\" name=\"prev_config\" value=\"$sOriginalConfigEscaped\">");
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -29,7 +29,7 @@ SetupWebPage::AddModule(
|
||||
array(
|
||||
// Identification
|
||||
//
|
||||
'label' => 'End User Devices management',
|
||||
'label' => 'End-user Devices Management',
|
||||
'category' => 'business',
|
||||
|
||||
// Setup
|
||||
|
||||
@@ -0,0 +1,217 @@
|
||||
<?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 Erik Bøg <erik@boegmoeller.dk>
|
||||
|
||||
* @copyright Copyright (C) 2010-2012 Combodo SARL
|
||||
* @licence http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
Dict::Add('DA DA', 'Danish', 'Dansk', array(
|
||||
'Class:Incident' => 'Incident',
|
||||
'Class:Incident+' => '',
|
||||
'Class:Incident/Attribute:status' => 'Status',
|
||||
'Class:Incident/Attribute:status+' => '',
|
||||
'Class:Incident/Attribute:status/Value:new' => 'Ny',
|
||||
'Class:Incident/Attribute:status/Value:new+' => '',
|
||||
'Class:Incident/Attribute:status/Value:escalated_tto' => 'Eskaleret TTO',
|
||||
'Class:Incident/Attribute:status/Value:escalated_tto+' => '',
|
||||
'Class:Incident/Attribute:status/Value:assigned' => 'Tildelt',
|
||||
'Class:Incident/Attribute:status/Value:assigned+' => '',
|
||||
'Class:Incident/Attribute:status/Value:escalated_ttr' => 'Eskaleret TTR',
|
||||
'Class:Incident/Attribute:status/Value:escalated_ttr+' => '',
|
||||
'Class:Incident/Attribute:status/Value:pending' => 'Afventer',
|
||||
'Class:Incident/Attribute:status/Value:pending+' => '',
|
||||
'Class:Incident/Attribute:status/Value:resolved' => 'Løst',
|
||||
'Class:Incident/Attribute:status/Value:resolved+' => '',
|
||||
'Class:Incident/Attribute:status/Value:closed' => 'Lukket',
|
||||
'Class:Incident/Attribute:status/Value:closed+' => '',
|
||||
'Class:Incident/Attribute:impact' => 'Påvirkning',
|
||||
'Class:Incident/Attribute:impact+' => '',
|
||||
'Class:Incident/Attribute:impact/Value:1' => 'Afdeling',
|
||||
'Class:Incident/Attribute:impact/Value:1+' => 'En afdeling er påvirket',
|
||||
'Class:Incident/Attribute:impact/Value:2' => 'Service',
|
||||
'Class:Incident/Attribute:impact/Value:2+' => 'En service er påvirket',
|
||||
'Class:Incident/Attribute:impact/Value:3' => 'Person',
|
||||
'Class:Incident/Attribute:impact/Value:3+' => 'En person er påvirket',
|
||||
'Class:Incident/Attribute:priority' => 'Prioritet',
|
||||
'Class:Incident/Attribute:priority+' => '',
|
||||
'Class:Incident/Attribute:priority/Value:1' => 'Kritisk',
|
||||
'Class:Incident/Attribute:priority/Value:1+' => '',
|
||||
'Class:Incident/Attribute:priority/Value:2' => 'Høj',
|
||||
'Class:Incident/Attribute:priority/Value:2+' => '',
|
||||
'Class:Incident/Attribute:priority/Value:3' => 'Middel',
|
||||
'Class:Incident/Attribute:priority/Value:3+' => '',
|
||||
'Class:Incident/Attribute:priority/Value:4' => 'Lav',
|
||||
'Class:Incident/Attribute:priority/Value:4+' => '',
|
||||
'Class:Incident/Attribute:urgency' => 'Vigtighed',
|
||||
'Class:Incident/Attribute:urgency+' => '',
|
||||
'Class:Incident/Attribute:urgency/Value:1' => 'Kritisk',
|
||||
'Class:Incident/Attribute:urgency/Value:1+' => '',
|
||||
'Class:Incident/Attribute:urgency/Value:2' => 'Høj',
|
||||
'Class:Incident/Attribute:urgency/Value:2+' => '',
|
||||
'Class:Incident/Attribute:urgency/Value:3' => 'Middel',
|
||||
'Class:Incident/Attribute:urgency/Value:3+' => '',
|
||||
'Class:Incident/Attribute:urgency/Value:4' => 'Lav',
|
||||
'Class:Incident/Attribute:urgency/Value:4+' => '',
|
||||
'Class:Incident/Attribute:origin' => 'Oprindelse',
|
||||
'Class:Incident/Attribute:origin+' => '',
|
||||
'Class:Incident/Attribute:origin/Value:mail' => 'Mail',
|
||||
'Class:Incident/Attribute:origin/Value:mail+' => '',
|
||||
'Class:Incident/Attribute:origin/Value:monitoring' => 'Monitoring',
|
||||
'Class:Incident/Attribute:origin/Value:monitoring+' => '',
|
||||
'Class:Incident/Attribute:origin/Value:phone' => 'Telefon',
|
||||
'Class:Incident/Attribute:origin/Value:phone+' => '',
|
||||
'Class:Incident/Attribute:origin/Value:portal' => 'Portal',
|
||||
'Class:Incident/Attribute:origin/Value:portal+' => '',
|
||||
'Class:Incident/Attribute:service_id' => 'Ydelse',
|
||||
'Class:Incident/Attribute:service_id+' => '',
|
||||
'Class:Incident/Attribute:servicesubcategory_id' => 'Ydelse underkategori',
|
||||
'Class:Incident/Attribute:servicesubcategory_id+' => '',
|
||||
'Class:Incident/Attribute:escalation_flag' => 'Eskalations Flag',
|
||||
'Class:Incident/Attribute:escalation_flag+' => '',
|
||||
'Class:Incident/Attribute:escalation_flag/Value:no' => 'Nej',
|
||||
'Class:Incident/Attribute:escalation_flag/Value:no+' => '',
|
||||
'Class:Incident/Attribute:escalation_flag/Value:yes' => 'Ja',
|
||||
'Class:Incident/Attribute:escalation_flag/Value:yes+' => '',
|
||||
'Class:Incident/Attribute:escalation_reason' => 'Eskalationsgrund',
|
||||
'Class:Incident/Attribute:escalation_reason+' => '',
|
||||
'Class:Incident/Attribute:assignment_date' => 'Tildelt dato',
|
||||
'Class:Incident/Attribute:assignment_date+' => '',
|
||||
'Class:Incident/Attribute:resolution_date' => 'Løsnings dato',
|
||||
'Class:Incident/Attribute:resolution_date+' => '',
|
||||
'Class:Incident/Attribute:last_pending_date' => 'Sidste udsættelse dato',
|
||||
'Class:Incident/Attribute:last_pending_date+' => '',
|
||||
'Class:Incident/Attribute:cumulatedpending' => 'Akkumuleret ventetid',
|
||||
'Class:Incident/Attribute:cumulatedpending+' => '',
|
||||
'Class:Incident/Attribute:tto' => 'TTO (Time To Own)',
|
||||
'Class:Incident/Attribute:tto+' => '',
|
||||
'Class:Incident/Attribute:ttr' => 'TTR (Time To Resolve)',
|
||||
'Class:Incident/Attribute:ttr+' => '',
|
||||
'Class:Incident/Attribute:tto_escalation_deadline' => 'TTO-Deadline',
|
||||
'Class:Incident/Attribute:tto_escalation_deadline+' => '',
|
||||
'Class:Incident/Attribute:sla_tto_passed' => 'SLA TTO overskredet',
|
||||
'Class:Incident/Attribute:sla_tto_passed+' => '',
|
||||
'Class:Incident/Attribute:sla_tto_over' => 'Overskridelse SLA TTO',
|
||||
'Class:Incident/Attribute:sla_tto_over+' => '',
|
||||
'Class:Incident/Attribute:ttr_escalation_deadline' => 'TTR-Deadline',
|
||||
'Class:Incident/Attribute:ttr_escalation_deadline+' => '',
|
||||
'Class:Incident/Attribute:sla_ttr_passed' => 'SLA TTR overskredet',
|
||||
'Class:Incident/Attribute:sla_ttr_passed+' => '',
|
||||
'Class:Incident/Attribute:sla_ttr_over' => 'Overskridelse SLA TTR',
|
||||
'Class:Incident/Attribute:sla_ttr_over+' => '',
|
||||
'Class:Incident/Attribute:time_spent' => 'Tid forbrugt til løsning',
|
||||
'Class:Incident/Attribute:time_spent+' => '',
|
||||
'Class:Incident/Attribute:resolution_code' => 'Løsningskode',
|
||||
'Class:Incident/Attribute:resolution_code+' => '',
|
||||
'Class:Incident/Attribute:resolution_code/Value:assistance' => 'Assistance',
|
||||
'Class:Incident/Attribute:resolution_code/Value:assistance+' => '',
|
||||
'Class:Incident/Attribute:resolution_code/Value:bug fixed' => 'Bugfix',
|
||||
'Class:Incident/Attribute:resolution_code/Value:bug fixed+' => '',
|
||||
'Class:Incident/Attribute:resolution_code/Value:hardware repair' => 'Hardware Reparation',
|
||||
'Class:Incident/Attribute:resolution_code/Value:hardware repair+' => '',
|
||||
'Class:Incident/Attribute:resolution_code/Value:other' => 'Andet',
|
||||
'Class:Incident/Attribute:resolution_code/Value:other+' => '',
|
||||
'Class:Incident/Attribute:resolution_code/Value:software patch' => 'Software Patch',
|
||||
'Class:Incident/Attribute:resolution_code/Value:software patch+' => '',
|
||||
'Class:Incident/Attribute:resolution_code/Value:system update' => 'System Update',
|
||||
'Class:Incident/Attribute:resolution_code/Value:system update+' => '',
|
||||
'Class:Incident/Attribute:resolution_code/Value:training' => 'Uddannelse',
|
||||
'Class:Incident/Attribute:resolution_code/Value:training+' => '',
|
||||
'Class:Incident/Attribute:solution' => 'Løsning',
|
||||
'Class:Incident/Attribute:solution+' => '',
|
||||
'Class:Incident/Attribute:pending_reason' => 'Årsag til afventer',
|
||||
'Class:Incident/Attribute:pending_reason+' => '',
|
||||
'Class:Incident/Attribute:parent_incident_id' => 'Parent Incident',
|
||||
'Class:Incident/Attribute:parent_incident_id+' => '',
|
||||
'Class:Incident/Attribute:parent_change_id' => 'Parent Change',
|
||||
'Class:Incident/Attribute:parent_change_id+' => '',
|
||||
'Class:Incident/Attribute:child_incidents_list' => 'Afledte Incidents',
|
||||
'Class:Incident/Attribute:child_incidents_list+' => '',
|
||||
'Class:Incident/Attribute:public_log' => 'Offentlig Log',
|
||||
'Class:Incident/Attribute:public_log+' => '',
|
||||
'Class:Incident/Attribute:user_satisfaction' => 'Bruger tilfredshed',
|
||||
'Class:Incident/Attribute:user_satisfaction+' => '',
|
||||
'Class:Incident/Attribute:user_satisfaction/Value:1' => 'Meget tilfreds',
|
||||
'Class:Incident/Attribute:user_satisfaction/Value:1+' => '',
|
||||
'Class:Incident/Attribute:user_satisfaction/Value:2' => 'Tilfreds',
|
||||
'Class:Incident/Attribute:user_satisfaction/Value:2+' => '',
|
||||
'Class:Incident/Attribute:user_satisfaction/Value:3' => 'Nogenlunde tilfreds',
|
||||
'Class:Incident/Attribute:user_satisfaction/Value:3+' => '',
|
||||
'Class:Incident/Attribute:user_satisfaction/Value:4' => 'Meget utilfreds',
|
||||
'Class:Incident/Attribute:user_satisfaction/Value:4+' => '',
|
||||
'Class:Incident/Attribute:user_comment' => 'Bruger kommentar',
|
||||
'Class:Incident/Attribute:user_comment+' => '',
|
||||
'Class:Incident/Stimulus:ev_assign' => 'Tildelt',
|
||||
'Class:Incident/Stimulus:ev_assign+' => '',
|
||||
'Class:Incident/Stimulus:ev_reassign' => 'Forny tildeling',
|
||||
'Class:Incident/Stimulus:ev_reassign+' => '',
|
||||
'Class:Incident/Stimulus:ev_pending' => 'Afventer',
|
||||
'Class:Incident/Stimulus:ev_pending+' => '',
|
||||
'Class:Incident/Stimulus:ev_timeout' => 'Timeout',
|
||||
'Class:Incident/Stimulus:ev_timeout+' => '',
|
||||
'Class:Incident/Stimulus:ev_autoresolve' => 'Automatisk løst',
|
||||
'Class:Incident/Stimulus:ev_autoresolve+' => '',
|
||||
'Class:Incident/Stimulus:ev_autoclose' => 'Automatisk lukket',
|
||||
'Class:Incident/Stimulus:ev_autoclose+' => '',
|
||||
'Class:Incident/Stimulus:ev_resolve' => 'Marker som løst',
|
||||
'Class:Incident/Stimulus:ev_resolve+' => '',
|
||||
'Class:Incident/Stimulus:ev_close' => 'Luk denne Request',
|
||||
'Class:Incident/Stimulus:ev_close+' => '',
|
||||
'Class:Incident/Stimulus:ev_reopen' => 'Genåben',
|
||||
'Class:Incident/Stimulus:ev_reopen+' => '',
|
||||
'Menu:IncidentManagement' => 'Incident Management',
|
||||
'Menu:IncidentManagement+' => '',
|
||||
'Menu:Incident:Overview' => 'Oversigt',
|
||||
'Menu:Incident:Overview+' => '',
|
||||
'Menu:NewIncident' => 'Ny Incident',
|
||||
'Menu:NewIncident+' => '',
|
||||
'Menu:SearchIncidents' => 'Søg efter Incidents',
|
||||
'Menu:SearchIncidents+' => '',
|
||||
'Menu:Incident:Shortcuts' => 'Genveje',
|
||||
'Menu:Incident:Shortcuts+' => '',
|
||||
'Menu:Incident:MyIncidents' => 'Mine Incidents',
|
||||
'Menu:Incident:MyIncidents+' => '',
|
||||
'Menu:Incident:EscalatedIncidents' => 'Eskalerede Incidents',
|
||||
'Menu:Incident:EscalatedIncidents+' => '',
|
||||
'Menu:Incident:OpenIncidents' => 'Alle åbne Incidents',
|
||||
'Menu:Incident:OpenIncidents+' => '',
|
||||
'Menu:Incident:UnassignedIncidents' => 'Ikke tildelte Incidents',
|
||||
'Menu:Incident:UnassignedIncidents+' => '',
|
||||
'Menu:Incident:HelpdeskIncidents' => 'Level2 tildelte Incidents',
|
||||
'Menu:Incident:HelpdeskIncidents+' => '',
|
||||
'UI-IncidentManagementOverview-IncidentByPriority-last-14-days' => 'Incidents de sidste 14 dage efter prioritet',
|
||||
'UI-IncidentManagementOverview-Last-14-days' => 'Antal Incidents de sidste 14 dage',
|
||||
'UI-IncidentManagementOverview-OpenIncidentByStatus' => 'Åbne Incidents efter status',
|
||||
'UI-IncidentManagementOverview-OpenIncidentByAgent' => 'Åbne Incidents efter tildelt til',
|
||||
'UI-IncidentManagementOverview-OpenIncidentByCustomer' => 'Åbne Incidents efter bruger',
|
||||
'Class:Incident/Attribute:status/Value:waiting_for_approval' => 'Afventer godkendelse',
|
||||
'Class:Incident/Attribute:status/Value:waiting_for_approval+' => '',
|
||||
'Class:Incident/Attribute:service_name' => 'Ydelsesnavn',
|
||||
'Class:Incident/Attribute:service_name+' => '',
|
||||
'Class:Incident/Attribute:servicesubcategory_name' => 'Ydelses underkategorinavn',
|
||||
'Class:Incident/Attribute:servicesubcategory_name+' => '',
|
||||
'Class:Incident/Attribute:parent_incident_ref' => 'Parent-Incident-Reference',
|
||||
'Class:Incident/Attribute:parent_incident_ref+' => '',
|
||||
'Class:Incident/Attribute:parent_change_ref' => 'Parent-Change-Reference',
|
||||
'Class:Incident/Attribute:parent_change_ref+' => '',
|
||||
'Class:Incident/Attribute:parent_incident_id_friendlyname' => 'Parent-Incident-Friendly Name',
|
||||
'Class:Incident/Attribute:parent_incident_id_friendlyname+' => '',
|
||||
));
|
||||
?>
|
||||
@@ -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>
|
||||
|
||||
@@ -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',
|
||||
));
|
||||
|
||||
|
||||
?>
|
||||
|
||||
@@ -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',
|
||||
));
|
||||
?>
|
||||
|
||||
@@ -7,7 +7,7 @@ SetupWebPage::AddModule(
|
||||
array(
|
||||
// Identification
|
||||
//
|
||||
'label' => 'Incident Management ITIL V3',
|
||||
'label' => 'Incident Management ITIL',
|
||||
'category' => 'business',
|
||||
|
||||
// Setup
|
||||
|
||||
@@ -0,0 +1,126 @@
|
||||
<?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 Erik Bøg <erik@boegmoeller.dk>
|
||||
|
||||
* @copyright Copyright (C) 2010-2012 Combodo SARL
|
||||
* @licence http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
Dict::Add('DA DA', 'Danish', 'Dansk', array(
|
||||
'Class:KnownError' => 'Known Error',
|
||||
'Class:KnownError+' => 'Dokumenterede fejl for et bestående Issue',
|
||||
'Class:KnownError/Attribute:name' => 'Navn',
|
||||
'Class:KnownError/Attribute:name+' => '',
|
||||
'Class:KnownError/Attribute:org_id' => 'Kunde',
|
||||
'Class:KnownError/Attribute:org_id+' => '',
|
||||
'Class:KnownError/Attribute:problem_id' => 'Tilhørende problem',
|
||||
'Class:KnownError/Attribute:problem_id+' => '',
|
||||
'Class:KnownError/Attribute:symptom' => 'Symptom',
|
||||
'Class:KnownError/Attribute:symptom+' => '',
|
||||
'Class:KnownError/Attribute:root_cause' => 'Grund årsag',
|
||||
'Class:KnownError/Attribute:root_cause+' => '',
|
||||
'Class:KnownError/Attribute:workaround' => 'Workaround',
|
||||
'Class:KnownError/Attribute:workaround+' => '',
|
||||
'Class:KnownError/Attribute:solution' => 'Løsning',
|
||||
'Class:KnownError/Attribute:solution+' => '',
|
||||
'Class:KnownError/Attribute:error_code' => 'Fejlkode',
|
||||
'Class:KnownError/Attribute:error_code+' => '',
|
||||
'Class:KnownError/Attribute:domain' => 'Område',
|
||||
'Class:KnownError/Attribute:domain+' => '',
|
||||
'Class:KnownError/Attribute:domain/Value:Application' => 'Anvendelse',
|
||||
'Class:KnownError/Attribute:domain/Value:Application+' => 'Anvendelse',
|
||||
'Class:KnownError/Attribute:domain/Value:Desktop' => 'Desktop',
|
||||
'Class:KnownError/Attribute:domain/Value:Desktop+' => 'Desktop',
|
||||
'Class:KnownError/Attribute:domain/Value:Network' => 'Netværk',
|
||||
'Class:KnownError/Attribute:domain/Value:Network+' => 'Netværk',
|
||||
'Class:KnownError/Attribute:domain/Value:Server' => 'Server',
|
||||
'Class:KnownError/Attribute:domain/Value:Server+' => 'Server',
|
||||
'Class:KnownError/Attribute:vendor' => 'Leverandør',
|
||||
'Class:KnownError/Attribute:vendor+' => '',
|
||||
'Class:KnownError/Attribute:model' => 'Model',
|
||||
'Class:KnownError/Attribute:model+' => '',
|
||||
'Class:KnownError/Attribute:version' => 'Version',
|
||||
'Class:KnownError/Attribute:version+' => '',
|
||||
'Class:KnownError/Attribute:ci_list' => 'CIs',
|
||||
'Class:KnownError/Attribute:ci_list+' => '',
|
||||
'Class:KnownError/Attribute:document_list' => 'Dokumenter',
|
||||
'Class:KnownError/Attribute:document_list+' => '',
|
||||
'Class:lnkErrorToFunctionalCI' => 'Sammenhæng Fejl/FunctionalCI',
|
||||
'Class:lnkErrorToFunctionalCI+' => '',
|
||||
'Class:lnkErrorToFunctionalCI/Attribute:functionalci_id' => 'CI',
|
||||
'Class:lnkErrorToFunctionalCI/Attribute:functionalci_id+' => '',
|
||||
'Class:lnkErrorToFunctionalCI/Attribute:error_id' => 'Fejl',
|
||||
'Class:lnkErrorToFunctionalCI/Attribute:error_id+' => '',
|
||||
'Class:lnkErrorToFunctionalCI/Attribute:reason' => 'Årsag',
|
||||
'Class:lnkErrorToFunctionalCI/Attribute:reason+' => '',
|
||||
'Class:lnkDocumentToError' => 'Sammenhæng Dokumenter/Fejl',
|
||||
'Class:lnkDocumentToError+' => '',
|
||||
'Class:lnkDocumentToError/Attribute:document_id' => 'Dokument',
|
||||
'Class:lnkDocumentToError/Attribute:document_id+' => '',
|
||||
'Class:lnkDocumentToError/Attribute:error_id' => 'Fejl',
|
||||
'Class:lnkDocumentToError/Attribute:error_id+' => '',
|
||||
'Class:lnkDocumentToError/Attribute:link_type' => 'Sammenhængstype',
|
||||
'Class:lnkDocumentToError/Attribute:link_type+' => '',
|
||||
'Class:FAQ' => 'FAQ',
|
||||
'Class:FAQ+' => '',
|
||||
'Class:FAQ/Attribute:title' => 'Titel',
|
||||
'Class:FAQ/Attribute:title+' => '',
|
||||
'Class:FAQ/Attribute:summary' => 'Sammenfatning',
|
||||
'Class:FAQ/Attribute:summary+' => '',
|
||||
'Class:FAQ/Attribute:description' => 'Beskrivelse',
|
||||
'Class:FAQ/Attribute:description+' => '',
|
||||
'Class:FAQ/Attribute:category_id' => 'Kategori',
|
||||
'Class:FAQ/Attribute:category_id+' => '',
|
||||
'Class:FAQ/Attribute:error_code' => 'Fejlkode',
|
||||
'Class:FAQ/Attribute:error_code+' => '',
|
||||
'Class:FAQ/Attribute:key_words' => 'Nøgleord',
|
||||
'Class:FAQ/Attribute:key_words+' => '',
|
||||
'Class:FAQCategory' => 'FAQ-Kategori',
|
||||
'Class:FAQCategory+' => '',
|
||||
'Class:FAQCategory/Attribute:name' => 'Navn',
|
||||
'Class:FAQCategory/Attribute:name+' => '',
|
||||
'Class:FAQCategory/Attribute:faq_list' => 'FAQs',
|
||||
'Class:FAQCategory/Attribute:faq_list+' => '',
|
||||
'Class:KnownError/Attribute:cust_name' => 'Kundennavn',
|
||||
'Class:KnownError/Attribute:cust_name+' => '',
|
||||
'Class:KnownError/Attribute:problem_ref' => 'Reference',
|
||||
'Class:KnownError/Attribute:problem_ref+' => '',
|
||||
'Class:lnkErrorToFunctionalCI/Attribute:functionalci_name' => 'CI-Navn',
|
||||
'Class:lnkErrorToFunctionalCI/Attribute:functionalci_name+' => '',
|
||||
'Class:lnkErrorToFunctionalCI/Attribute:error_name' => 'Fejlnavn',
|
||||
'Class:lnkErrorToFunctionalCI/Attribute:error_name+' => '',
|
||||
'Class:lnkDocumentToError/Attribute:document_name' => 'Dokumentnavn',
|
||||
'Class:lnkDocumentToError/Attribute:document_name+' => '',
|
||||
'Class:lnkDocumentToError/Attribute:error_name' => 'Fejlnavn',
|
||||
'Class:lnkDocumentToError/Attribute:error_name+' => '',
|
||||
'Class:FAQ/Attribute:category_name' => 'Kategorinavn',
|
||||
'Class:FAQ/Attribute:category_name+' => '',
|
||||
'Menu:NewError' => 'Ny kendt fejl',
|
||||
'Menu:NewError+' => '',
|
||||
'Menu:SearchError' => 'Søg efter kendte fejl',
|
||||
'Menu:SearchError+' => '',
|
||||
'Menu:Problem:KnownErrors' => 'Alle kendte Fejl',
|
||||
'Menu:Problem:KnownErrors+' => 'Alle kendte Fejl',
|
||||
'Menu:FAQCategory' => 'FAQ-Kategorier',
|
||||
'Menu:FAQCategory+' => '',
|
||||
'Menu:FAQ' => 'FAQs',
|
||||
'Menu:FAQ+' => '',
|
||||
));
|
||||
?>
|
||||
@@ -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>
|
||||
|
||||
@@ -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',
|
||||
|
||||
));
|
||||
?>
|
||||
119
datamodels/2.x/itop-problem-mgmt/da.dict.itop-problem-mgmt.php
Normal file
119
datamodels/2.x/itop-problem-mgmt/da.dict.itop-problem-mgmt.php
Normal file
@@ -0,0 +1,119 @@
|
||||
<?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 Erik Bøg <erik@boegmoeller.dk>
|
||||
|
||||
* @copyright Copyright (C) 2010-2012 Combodo SARL
|
||||
* @licence http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
Dict::Add('DA DA', 'Danish', 'Dansk', array(
|
||||
'Class:Problem' => 'Problem',
|
||||
'Class:Problem+' => '',
|
||||
'Class:Problem/Attribute:status' => 'Status',
|
||||
'Class:Problem/Attribute:status+' => '',
|
||||
'Class:Problem/Attribute:status/Value:new' => 'Ny',
|
||||
'Class:Problem/Attribute:status/Value:new+' => '',
|
||||
'Class:Problem/Attribute:status/Value:assigned' => 'Tildelt',
|
||||
'Class:Problem/Attribute:status/Value:assigned+' => '',
|
||||
'Class:Problem/Attribute:status/Value:resolved' => 'Løst',
|
||||
'Class:Problem/Attribute:status/Value:resolved+' => '',
|
||||
'Class:Problem/Attribute:status/Value:closed' => 'Lukket',
|
||||
'Class:Problem/Attribute:status/Value:closed+' => '',
|
||||
'Class:Problem/Attribute:service_id' => 'Service',
|
||||
'Class:Problem/Attribute:service_id+' => '',
|
||||
'Class:Problem/Attribute:servicesubcategory_id' => 'Service Kategori',
|
||||
'Class:Problem/Attribute:servicesubcategory_id+' => '',
|
||||
'Class:Problem/Attribute:product' => 'Produkt',
|
||||
'Class:Problem/Attribute:product+' => '',
|
||||
'Class:Problem/Attribute:impact' => 'Påvirkning',
|
||||
'Class:Problem/Attribute:impact+' => '',
|
||||
'Class:Problem/Attribute:impact/Value:1' => 'Afdeling',
|
||||
'Class:Problem/Attribute:impact/Value:1+' => 'En afdeling er påvirket',
|
||||
'Class:Problem/Attribute:impact/Value:2' => 'Service',
|
||||
'Class:Problem/Attribute:impact/Value:2+' => 'En service er påvirket',
|
||||
'Class:Problem/Attribute:impact/Value:3' => 'Person',
|
||||
'Class:Problem/Attribute:impact/Value:3+' => 'En person er påvirket',
|
||||
'Class:Problem/Attribute:urgency' => 'Vigtighed',
|
||||
'Class:Problem/Attribute:urgency+' => '',
|
||||
'Class:Problem/Attribute:urgency/Value:1' => 'Lav',
|
||||
'Class:Problem/Attribute:urgency/Value:1+' => 'Lav',
|
||||
'Class:Problem/Attribute:urgency/Value:2' => 'Middel',
|
||||
'Class:Problem/Attribute:urgency/Value:2+' => 'Middel',
|
||||
'Class:Problem/Attribute:urgency/Value:3' => 'Høj',
|
||||
'Class:Problem/Attribute:urgency/Value:3+' => 'Høj',
|
||||
'Class:Problem/Attribute:urgency/Value:4' => '',
|
||||
'Class:Problem/Attribute:urgency/Value:4+' => '',
|
||||
'Class:Problem/Attribute:priority' => 'Prioritet',
|
||||
'Class:Problem/Attribute:priority+' => '',
|
||||
'Class:Problem/Attribute:priority/Value:1' => 'Lav',
|
||||
'Class:Problem/Attribute:priority/Value:1+' => '',
|
||||
'Class:Problem/Attribute:priority/Value:2' => 'Middel',
|
||||
'Class:Problem/Attribute:priority/Value:2+' => '',
|
||||
'Class:Problem/Attribute:priority/Value:3' => 'Høj',
|
||||
'Class:Problem/Attribute:priority/Value:3+' => '',
|
||||
'Class:Problem/Attribute:priority/Value:4' => '',
|
||||
'Class:Problem/Attribute:priority/Value:4+' => '',
|
||||
'Class:Problem/Attribute:related_change_id' => 'Relateret Change',
|
||||
'Class:Problem/Attribute:related_change_id+' => '',
|
||||
'Class:Problem/Attribute:assignment_date' => 'Dato tildelt',
|
||||
'Class:Problem/Attribute:assignment_date+' => '',
|
||||
'Class:Problem/Attribute:resolution_date' => 'Dato løst',
|
||||
'Class:Problem/Attribute:resolution_date+' => '',
|
||||
'Class:Problem/Attribute:knownerrors_list' => 'Known Errors',
|
||||
'Class:Problem/Attribute:knownerrors_list+' => '',
|
||||
'Class:Problem/Attribute:related_request_list' => 'Relateret Requests',
|
||||
'Class:Problem/Attribute:related_request_list+' => '',
|
||||
'Class:Problem/Stimulus:ev_assign' => 'Tildel',
|
||||
'Class:Problem/Stimulus:ev_assign+' => '',
|
||||
'Class:Problem/Stimulus:ev_reassign' => 'Forny tildeling',
|
||||
'Class:Problem/Stimulus:ev_reassign+' => '',
|
||||
'Class:Problem/Stimulus:ev_resolve' => 'Løs',
|
||||
'Class:Problem/Stimulus:ev_resolve+' => '',
|
||||
'Class:Problem/Stimulus:ev_close' => 'Luk',
|
||||
'Class:Problem/Stimulus:ev_close+' => '',
|
||||
'Menu:ProblemManagement' => 'Problem Management',
|
||||
'Menu:ProblemManagement+' => 'Problem Management',
|
||||
'Menu:Problem:Overview' => 'Oversigt',
|
||||
'Menu:Problem:Overview+' => 'Oversigt',
|
||||
'Menu:NewProblem' => 'Nyt Problem',
|
||||
'Menu:NewProblem+' => 'Nyt Problem',
|
||||
'Menu:SearchProblems' => 'Søg efter problem',
|
||||
'Menu:SearchProblems+' => 'Søg efter problem',
|
||||
'Menu:Problem:Shortcuts' => 'Genvej',
|
||||
'Menu:Problem:MyProblems' => 'Mine Problemer',
|
||||
'Menu:Problem:MyProblems+' => 'Mine Problemer',
|
||||
'Menu:Problem:OpenProblems' => 'Alle uløste problemer',
|
||||
'Menu:Problem:OpenProblems+' => 'Alle uløste problemer',
|
||||
'UI-ProblemManagementOverview-ProblemByService' => 'Problemer efter ydelse',
|
||||
'UI-ProblemManagementOverview-ProblemByService+' => 'Problemer efter ydelse',
|
||||
'UI-ProblemManagementOverview-ProblemByPriority' => 'Problemer efter prioritet',
|
||||
'UI-ProblemManagementOverview-ProblemByPriority+' => 'Problemer efter prioritet',
|
||||
'UI-ProblemManagementOverview-ProblemUnassigned' => 'Ikke tildelte problemer',
|
||||
'UI-ProblemManagementOverview-ProblemUnassigned+' => 'Ikke tildelte problemer',
|
||||
'UI:ProblemMgmtMenuOverview:Title' => 'Dashboard for problem Management',
|
||||
'UI:ProblemMgmtMenuOverview:Title+' => 'Dashboard for problem Management',
|
||||
'Class:Problem/Attribute:service_name' => 'Navn',
|
||||
'Class:Problem/Attribute:service_name+' => '',
|
||||
'Class:Problem/Attribute:servicesubcategory_name' => 'Navn',
|
||||
'Class:Problem/Attribute:servicesubcategory_name+' => '',
|
||||
'Class:Problem/Attribute:related_change_ref' => 'Ref',
|
||||
'Class:Problem/Attribute:related_change_ref+' => '',
|
||||
));
|
||||
?>
|
||||
@@ -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>
|
||||
@@ -222,7 +228,10 @@
|
||||
<target>assigned</target>
|
||||
<actions>
|
||||
<action>
|
||||
<verb>SetAssignedDate</verb>
|
||||
<verb>SetCurrentDate</verb>
|
||||
<params>
|
||||
<param xsi:type="attcode">assignment_date</param>
|
||||
</params>
|
||||
</action>
|
||||
</actions>
|
||||
</transition>
|
||||
@@ -259,7 +268,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 +323,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 +360,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 +374,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 +388,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 +434,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 +490,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>
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
|
||||
168
datamodels/2.x/itop-problem-mgmt/nl.dict.itop-problem-mgmt.php
Normal file
168
datamodels/2.x/itop-problem-mgmt/nl.dict.itop-problem-mgmt.php
Normal 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+' => '',
|
||||
));
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,244 @@
|
||||
<?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 Erik Bøg <erik@boegmoeller.dk>
|
||||
|
||||
* @copyright Copyright (C) 2010-2012 Combodo SARL
|
||||
* @licence http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
Dict::Add('DA DA', 'Danish', 'Dansk', array(
|
||||
'Class:UserRequest' => 'Brugerhenvendelse',
|
||||
'Class:UserRequest+' => '',
|
||||
'Class:UserRequest/Attribute:status' => 'Status',
|
||||
'Class:UserRequest/Attribute:status+' => '',
|
||||
'Class:UserRequest/Attribute:status/Value:new' => 'Ny',
|
||||
'Class:UserRequest/Attribute:status/Value:new+' => '',
|
||||
'Class:UserRequest/Attribute:status/Value:escalated_tto' => 'Eskaleret TTO',
|
||||
'Class:UserRequest/Attribute:status/Value:escalated_tto+' => '',
|
||||
'Class:UserRequest/Attribute:status/Value:assigned' => 'Tildelt',
|
||||
'Class:UserRequest/Attribute:status/Value:assigned+' => '',
|
||||
'Class:UserRequest/Attribute:status/Value:escalated_ttr' => 'Eskaleret TTR',
|
||||
'Class:UserRequest/Attribute:status/Value:escalated_ttr+' => '',
|
||||
'Class:UserRequest/Attribute:status/Value:waiting_for_approval' => 'Afventer godkendelse',
|
||||
'Class:UserRequest/Attribute:status/Value:waiting_for_approval+' => '',
|
||||
'Class:UserRequest/Attribute:status/Value:approved' => 'Godkendt',
|
||||
'Class:UserRequest/Attribute:status/Value:approved+' => '',
|
||||
'Class:UserRequest/Attribute:status/Value:rejected' => 'Afslået',
|
||||
'Class:UserRequest/Attribute:status/Value:rejected+' => '',
|
||||
'Class:UserRequest/Attribute:status/Value:pending' => 'Nedetid',
|
||||
'Class:UserRequest/Attribute:status/Value:pending+' => '',
|
||||
'Class:UserRequest/Attribute:status/Value:resolved' => 'Løst',
|
||||
'Class:UserRequest/Attribute:status/Value:resolved+' => '',
|
||||
'Class:UserRequest/Attribute:status/Value:closed' => 'Lukket',
|
||||
'Class:UserRequest/Attribute:status/Value:closed+' => '',
|
||||
'Class:UserRequest/Attribute:request_type' => 'Brugerhenvendelse type',
|
||||
'Class:UserRequest/Attribute:request_type+' => '',
|
||||
'Class:UserRequest/Attribute:request_type/Value:service_request' => 'Service anmodning',
|
||||
'Class:UserRequest/Attribute:request_type/Value:service_request+' => '',
|
||||
'Class:UserRequest/Attribute:impact' => 'Påvirkning',
|
||||
'Class:UserRequest/Attribute:impact+' => '',
|
||||
'Class:UserRequest/Attribute:impact/Value:1' => 'Afdeling',
|
||||
'Class:UserRequest/Attribute:impact/Value:1+' => 'En afdeling er påvirket',
|
||||
'Class:UserRequest/Attribute:impact/Value:2' => 'Service',
|
||||
'Class:UserRequest/Attribute:impact/Value:2+' => 'En service er påvirket',
|
||||
'Class:UserRequest/Attribute:impact/Value:3' => 'Person',
|
||||
'Class:UserRequest/Attribute:impact/Value:3+' => 'En person er påvirket',
|
||||
'Class:UserRequest/Attribute:priority' => 'Prioritet',
|
||||
'Class:UserRequest/Attribute:priority+' => '',
|
||||
'Class:UserRequest/Attribute:priority/Value:1' => 'Kritisk',
|
||||
'Class:UserRequest/Attribute:priority/Value:1+' => '',
|
||||
'Class:UserRequest/Attribute:priority/Value:2' => 'Høj',
|
||||
'Class:UserRequest/Attribute:priority/Value:2+' => '',
|
||||
'Class:UserRequest/Attribute:priority/Value:3' => 'Middel',
|
||||
'Class:UserRequest/Attribute:priority/Value:3+' => '',
|
||||
'Class:UserRequest/Attribute:priority/Value:4' => 'Lav',
|
||||
'Class:UserRequest/Attribute:priority/Value:4+' => '',
|
||||
'Class:UserRequest/Attribute:urgency' => 'Vigtighed',
|
||||
'Class:UserRequest/Attribute:urgency+' => '',
|
||||
'Class:UserRequest/Attribute:urgency/Value:1' => 'Kritisk',
|
||||
'Class:UserRequest/Attribute:urgency/Value:1+' => '',
|
||||
'Class:UserRequest/Attribute:urgency/Value:2' => 'Høj',
|
||||
'Class:UserRequest/Attribute:urgency/Value:2+' => '',
|
||||
'Class:UserRequest/Attribute:urgency/Value:3' => 'Middel',
|
||||
'Class:UserRequest/Attribute:urgency/Value:3+' => '',
|
||||
'Class:UserRequest/Attribute:urgency/Value:4' => 'Lav',
|
||||
'Class:UserRequest/Attribute:urgency/Value:4+' => '',
|
||||
'Class:UserRequest/Attribute:origin' => 'Oprindelse',
|
||||
'Class:UserRequest/Attribute:origin+' => '',
|
||||
'Class:UserRequest/Attribute:origin/Value:mail' => 'Mail',
|
||||
'Class:UserRequest/Attribute:origin/Value:mail+' => '',
|
||||
'Class:UserRequest/Attribute:origin/Value:phone' => 'Telefon',
|
||||
'Class:UserRequest/Attribute:origin/Value:phone+' => '',
|
||||
'Class:UserRequest/Attribute:origin/Value:portal' => 'Portal',
|
||||
'Class:UserRequest/Attribute:origin/Value:portal+' => '',
|
||||
'Class:UserRequest/Attribute:approver_id' => 'Godkender',
|
||||
'Class:UserRequest/Attribute:approver_id+' => '',
|
||||
'Class:UserRequest/Attribute:service_id' => 'Ydelse',
|
||||
'Class:UserRequest/Attribute:service_id+' => '',
|
||||
'Class:UserRequest/Attribute:servicesubcategory_id' => 'Ydelse underkategori',
|
||||
'Class:UserRequest/Attribute:servicesubcategory_id+' => '',
|
||||
'Class:UserRequest/Attribute:escalation_flag' => 'Eskalations Flag',
|
||||
'Class:UserRequest/Attribute:escalation_flag+' => '',
|
||||
'Class:UserRequest/Attribute:escalation_flag/Value:no' => 'Nej',
|
||||
'Class:UserRequest/Attribute:escalation_flag/Value:no+' => '',
|
||||
'Class:UserRequest/Attribute:escalation_flag/Value:yes' => 'Ja',
|
||||
'Class:UserRequest/Attribute:escalation_flag/Value:yes+' => '',
|
||||
'Class:UserRequest/Attribute:escalation_reason' => 'Eskalationsgrund',
|
||||
'Class:UserRequest/Attribute:escalation_reason+' => '',
|
||||
'Class:UserRequest/Attribute:assignment_date' => 'Tildelings dato',
|
||||
'Class:UserRequest/Attribute:assignment_date+' => '',
|
||||
'Class:UserRequest/Attribute:resolution_date' => 'Løst dato',
|
||||
'Class:UserRequest/Attribute:resolution_date+' => '',
|
||||
'Class:UserRequest/Attribute:last_pending_date' => 'Sidste udsættelsesdato',
|
||||
'Class:UserRequest/Attribute:last_pending_date+' => '',
|
||||
'Class:UserRequest/Attribute:cumulatedpending' => 'Akkumuleret nedetid',
|
||||
'Class:UserRequest/Attribute:cumulatedpending+' => '',
|
||||
'Class:UserRequest/Attribute:tto' => 'TTO (Time To Own)',
|
||||
'Class:UserRequest/Attribute:tto+' => '',
|
||||
'Class:UserRequest/Attribute:ttr' => 'TTR (Time To Resolve)',
|
||||
'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 overskredet',
|
||||
'Class:UserRequest/Attribute:sla_tto_passed+' => '',
|
||||
'Class:UserRequest/Attribute:sla_tto_over' => 'Overskridelse SLA TTO',
|
||||
'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 overskredet',
|
||||
'Class:UserRequest/Attribute:sla_ttr_passed+' => '',
|
||||
'Class:UserRequest/Attribute:sla_ttr_over' => 'Overskridelse SLA TTR',
|
||||
'Class:UserRequest/Attribute:sla_ttr_over+' => '',
|
||||
'Class:UserRequest/Attribute:time_spent' => 'Tid forbrugt til løsning',
|
||||
'Class:UserRequest/Attribute:time_spent+' => '',
|
||||
'Class:UserRequest/Attribute:resolution_code' => 'Løsningskode',
|
||||
'Class:UserRequest/Attribute:resolution_code+' => '',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:assistance' => 'Assistance',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:assistance+' => '',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:bug fixed' => 'Bugfix',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:bug fixed+' => '',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:hardware repair' => 'Hardware reparation',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:hardware repair+' => '',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:other' => 'Andet',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:other+' => '',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:software patch' => 'Software Patch',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:software patch+' => '',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:system update' => 'System Update',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:system update+' => '',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:training' => 'Uddannelse',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:training+' => '',
|
||||
'Class:UserRequest/Attribute:solution' => 'Løsning',
|
||||
'Class:UserRequest/Attribute:solution+' => '',
|
||||
'Class:UserRequest/Attribute:pending_reason' => 'Årsag til afventer',
|
||||
'Class:UserRequest/Attribute:pending_reason+' => '',
|
||||
'Class:UserRequest/Attribute:parent_request_id' => 'Parent Anmodning',
|
||||
'Class:UserRequest/Attribute:parent_request_id+' => '',
|
||||
'Class:UserRequest/Attribute:parent_problem_id' => 'Parent Problem',
|
||||
'Class:UserRequest/Attribute:parent_problem_id+' => '',
|
||||
'Class:UserRequest/Attribute:parent_change_id' => 'Parent Change',
|
||||
'Class:UserRequest/Attribute:parent_change_id+' => '',
|
||||
'Class:UserRequest/Attribute:related_request_list' => 'Afledte Anmodninger',
|
||||
'Class:UserRequest/Attribute:related_request_list+' => '',
|
||||
'Class:UserRequest/Attribute:public_log' => 'Offentlig Log',
|
||||
'Class:UserRequest/Attribute:public_log+' => '',
|
||||
'Class:UserRequest/Attribute:user_satisfaction' => 'Brugertilfredshed',
|
||||
'Class:UserRequest/Attribute:user_satisfaction+' => '',
|
||||
'Class:UserRequest/Attribute:user_satisfaction/Value:1' => 'Meget tilfreds',
|
||||
'Class:UserRequest/Attribute:user_satisfaction/Value:1+' => '',
|
||||
'Class:UserRequest/Attribute:user_satisfaction/Value:2' => 'Tilfreds',
|
||||
'Class:UserRequest/Attribute:user_satisfaction/Value:2+' => '',
|
||||
'Class:UserRequest/Attribute:user_satisfaction/Value:3' => 'Nogenlunde tilfreds',
|
||||
'Class:UserRequest/Attribute:user_satisfaction/Value:3+' => '',
|
||||
'Class:UserRequest/Attribute:user_satisfaction/Value:4' => 'Meget utilfreds',
|
||||
'Class:UserRequest/Attribute:user_satisfaction/Value:4+' => '',
|
||||
'Class:UserRequest/Attribute:user_comment' => 'Bruger kommentar',
|
||||
'Class:UserRequest/Attribute:user_comment+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_assign' => 'Tildelt',
|
||||
'Class:UserRequest/Stimulus:ev_assign+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_reassign' => 'Forny tildeling',
|
||||
'Class:UserRequest/Stimulus:ev_reassign+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_approve' => 'Godkend',
|
||||
'Class:UserRequest/Stimulus:ev_approve+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_reject' => 'Afslå',
|
||||
'Class:UserRequest/Stimulus:ev_reject+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_pending' => 'Afventer',
|
||||
'Class:UserRequest/Stimulus:ev_pending+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_timeout' => 'Timeout',
|
||||
'Class:UserRequest/Stimulus:ev_timeout+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_autoresolve' => 'Automatisk løst',
|
||||
'Class:UserRequest/Stimulus:ev_autoresolve+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_autoclose' => 'Automatisk lukket',
|
||||
'Class:UserRequest/Stimulus:ev_autoclose+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_resolve' => 'Marker som løst',
|
||||
'Class:UserRequest/Stimulus:ev_resolve+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_close' => 'Luk denne Anmodning',
|
||||
'Class:UserRequest/Stimulus:ev_close+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_reopen' => 'Genåben',
|
||||
'Class:UserRequest/Stimulus:ev_reopen+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_wait_for_approval' => 'Afventer godkendelse',
|
||||
'Class:UserRequest/Stimulus:ev_wait_for_approval+' => '',
|
||||
'Menu:RequestManagement' => 'Helpdesk',
|
||||
'Menu:RequestManagement+' => '',
|
||||
'Menu:RequestManagementProvider' => 'Helpdesk Leverandør',
|
||||
'Menu:RequestManagementProvider+' => '',
|
||||
'Menu:UserRequest:Provider' => 'Åbne brugerhenvendelser ved leverandør',
|
||||
'Menu:UserRequest:Provider+' => '',
|
||||
'Menu:UserRequest:Overview' => 'Oversigt',
|
||||
'Menu:UserRequest:Overview+' => '',
|
||||
'Menu:NewUserRequest' => 'Ny Bruger henvendelse',
|
||||
'Menu:NewUserRequest+' => '',
|
||||
'Menu:SearchUserRequests' => 'Søg efter brugerhenvendelser',
|
||||
'Menu:SearchUserRequests+' => '',
|
||||
'Menu:UserRequest:Shortcuts' => 'Genveje',
|
||||
'Menu:UserRequest:Shortcuts+' => '',
|
||||
'Menu:UserRequest:MyRequests' => 'Mine henvendelser',
|
||||
'Menu:UserRequest:MyRequests+' => '',
|
||||
'Menu:UserRequest:MySupportRequests' => 'Mine Support henvendelser',
|
||||
'Menu:UserRequest:MySupportRequests+' => '',
|
||||
'Menu:UserRequest:EscalatedRequests' => 'Eskalerede Brugerhenvendelser',
|
||||
'Menu:UserRequest:EscalatedRequests+' => '',
|
||||
'Menu:UserRequest:OpenRequests' => 'Alle åbne brugerhenvendelser',
|
||||
'Menu:UserRequest:OpenRequests+' => '',
|
||||
'UI:WelcomeMenu:MyAssignedCalls' => 'Mine tildelte henvendelser',
|
||||
'UI-RequestManagementOverview-RequestByType-last-14-days' => 'Brugerhenvendelser de sidste 14 dage efter type',
|
||||
'UI-RequestManagementOverview-Last-14-days' => 'Antal Brugerhenvendelser de sidste 14 dage',
|
||||
'UI-RequestManagementOverview-OpenRequestByStatus' => 'Åbne brugerhenvendelser efter status',
|
||||
'UI-RequestManagementOverview-OpenRequestByAgent' => 'Åbne brugerhenvendelser efter tildelt til',
|
||||
'UI-RequestManagementOverview-OpenRequestByType' => 'Åbne brugerhenvendelser efter type',
|
||||
'UI-RequestManagementOverview-OpenRequestByCustomer' => 'Åbne brugerhenvendelser efter bruger',
|
||||
'Class:UserRequest:KnownErrorList' => 'Known Errors',
|
||||
'Class:UserRequest/Attribute:origin/Value:monitoring' => 'Monitoring',
|
||||
'Class:UserRequest/Attribute:origin/Value:monitoring+' => '',
|
||||
'Class:UserRequest/Attribute:approver_email' => 'Godkender Email',
|
||||
'Class:UserRequest/Attribute:approver_email+' => '',
|
||||
'Class:UserRequest/Attribute:service_name' => 'Ydelses navn',
|
||||
'Class:UserRequest/Attribute:service_name+' => '',
|
||||
'Class:UserRequest/Attribute:servicesubcategory_name' => 'Ydelse underkategori navn',
|
||||
'Class:UserRequest/Attribute:servicesubcategory_name+' => '',
|
||||
'Class:UserRequest/Attribute:parent_request_ref' => 'Parent Brugerhenvendelse Reference',
|
||||
'Class:UserRequest/Attribute:parent_request_ref+' => '',
|
||||
'Class:UserRequest/Attribute:parent_problem_ref' => 'Parent Incident Reference',
|
||||
'Class:UserRequest/Attribute:parent_problem_ref+' => '',
|
||||
'Class:UserRequest/Attribute:parent_change_ref' => 'Parent Change Reference',
|
||||
'Class:UserRequest/Attribute:parent_change_ref+' => '',
|
||||
'Class:UserRequest/Attribute:parent_request_id_friendlyname' => 'Parent Brugerhenvendelse Id Friendly Name',
|
||||
'Class:UserRequest/Attribute:parent_request_id_friendlyname+' => '',
|
||||
));
|
||||
?>
|
||||
@@ -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>
|
||||
|
||||
@@ -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',
|
||||
));
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
@@ -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',
|
||||
));
|
||||
?>
|
||||
|
||||
@@ -7,7 +7,7 @@ SetupWebPage::AddModule(
|
||||
array(
|
||||
// Identification
|
||||
//
|
||||
'label' => 'User request management ITIL V3',
|
||||
'label' => 'User request Management ITIL',
|
||||
'category' => 'business',
|
||||
|
||||
// Setup
|
||||
|
||||
272
datamodels/2.x/itop-request-mgmt/da.dict.itop-request-mgmt.php
Normal file
272
datamodels/2.x/itop-request-mgmt/da.dict.itop-request-mgmt.php
Normal file
@@ -0,0 +1,272 @@
|
||||
<?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 Erik Bøg <erik@boegmoeller.dk>
|
||||
|
||||
* @copyright Copyright (C) 2010-2012 Combodo SARL
|
||||
* @licence http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
Dict::Add('DA DA', 'Danish', 'Dansk', array(
|
||||
'Class:UserRequest' => 'Brugerhenvendelse',
|
||||
'Class:UserRequest+' => '',
|
||||
'Class:UserRequest/Attribute:status' => 'Status',
|
||||
'Class:UserRequest/Attribute:status+' => '',
|
||||
'Class:UserRequest/Attribute:status/Value:new' => 'Ny',
|
||||
'Class:UserRequest/Attribute:status/Value:new+' => '',
|
||||
'Class:UserRequest/Attribute:status/Value:escalated_tto' => 'Eskaleret TTO',
|
||||
'Class:UserRequest/Attribute:status/Value:escalated_tto+' => '',
|
||||
'Class:UserRequest/Attribute:status/Value:assigned' => 'Tildelt',
|
||||
'Class:UserRequest/Attribute:status/Value:assigned+' => '',
|
||||
'Class:UserRequest/Attribute:status/Value:escalated_ttr' => 'Eskaleret TTR',
|
||||
'Class:UserRequest/Attribute:status/Value:escalated_ttr+' => '',
|
||||
'Class:UserRequest/Attribute:status/Value:waiting_for_approval' => 'Afventer godkendelse',
|
||||
'Class:UserRequest/Attribute:status/Value:waiting_for_approval+' => '',
|
||||
'Class:UserRequest/Attribute:status/Value:approved' => 'Godkendt',
|
||||
'Class:UserRequest/Attribute:status/Value:approved+' => '',
|
||||
'Class:UserRequest/Attribute:status/Value:rejected' => 'Afslået',
|
||||
'Class:UserRequest/Attribute:status/Value:rejected+' => '',
|
||||
'Class:UserRequest/Attribute:status/Value:pending' => 'Nedetid',
|
||||
'Class:UserRequest/Attribute:status/Value:pending+' => '',
|
||||
'Class:UserRequest/Attribute:status/Value:resolved' => 'Løst',
|
||||
'Class:UserRequest/Attribute:status/Value:resolved+' => '',
|
||||
'Class:UserRequest/Attribute:status/Value:closed' => 'Lukket',
|
||||
'Class:UserRequest/Attribute:status/Value:closed+' => '',
|
||||
'Class:UserRequest/Attribute:request_type' => 'Request-Type',
|
||||
'Class:UserRequest/Attribute:request_type+' => '',
|
||||
'Class:UserRequest/Attribute:request_type/Value:incident' => 'Incident',
|
||||
'Class:UserRequest/Attribute:request_type/Value:incident+' => '',
|
||||
'Class:UserRequest/Attribute:request_type/Value:service_request' => 'Service Anmodning',
|
||||
'Class:UserRequest/Attribute:request_type/Value:service_request+' => '',
|
||||
'Class:UserRequest/Attribute:impact' => 'Påvirkning',
|
||||
'Class:UserRequest/Attribute:impact+' => '',
|
||||
'Class:UserRequest/Attribute:impact/Value:1' => 'Afdeling',
|
||||
'Class:UserRequest/Attribute:impact/Value:1+' => 'En afdeling er påvirket',
|
||||
'Class:UserRequest/Attribute:impact/Value:2' => 'Service',
|
||||
'Class:UserRequest/Attribute:impact/Value:2+' => 'En service er påvirket',
|
||||
'Class:UserRequest/Attribute:impact/Value:3' => 'Person',
|
||||
'Class:UserRequest/Attribute:impact/Value:3+' => 'En person er påvirket',
|
||||
'Class:UserRequest/Attribute:priority' => 'Prioritet',
|
||||
'Class:UserRequest/Attribute:priority+' => '',
|
||||
'Class:UserRequest/Attribute:priority/Value:1' => 'Kritisk',
|
||||
'Class:UserRequest/Attribute:priority/Value:1+' => '',
|
||||
'Class:UserRequest/Attribute:priority/Value:2' => 'Høj',
|
||||
'Class:UserRequest/Attribute:priority/Value:2+' => '',
|
||||
'Class:UserRequest/Attribute:priority/Value:3' => 'Middel',
|
||||
'Class:UserRequest/Attribute:priority/Value:3+' => '',
|
||||
'Class:UserRequest/Attribute:priority/Value:4' => 'Lav',
|
||||
'Class:UserRequest/Attribute:priority/Value:4+' => '',
|
||||
'Class:UserRequest/Attribute:urgency' => 'Vigtighed',
|
||||
'Class:UserRequest/Attribute:urgency+' => '',
|
||||
'Class:UserRequest/Attribute:urgency/Value:1' => 'Kritisk',
|
||||
'Class:UserRequest/Attribute:urgency/Value:1+' => '',
|
||||
'Class:UserRequest/Attribute:urgency/Value:2' => 'Høj',
|
||||
'Class:UserRequest/Attribute:urgency/Value:2+' => '',
|
||||
'Class:UserRequest/Attribute:urgency/Value:3' => 'Middel',
|
||||
'Class:UserRequest/Attribute:urgency/Value:3+' => '',
|
||||
'Class:UserRequest/Attribute:urgency/Value:4' => 'Lav',
|
||||
'Class:UserRequest/Attribute:urgency/Value:4+' => '',
|
||||
'Class:UserRequest/Attribute:origin' => 'Oprindelse',
|
||||
'Class:UserRequest/Attribute:origin+' => '',
|
||||
'Class:UserRequest/Attribute:origin/Value:mail' => 'Mail',
|
||||
'Class:UserRequest/Attribute:origin/Value:mail+' => '',
|
||||
'Class:UserRequest/Attribute:origin/Value:monitoring' => 'Monitoring',
|
||||
'Class:UserRequest/Attribute:origin/Value:monitoring+' => '',
|
||||
'Class:UserRequest/Attribute:origin/Value:phone' => 'Telefon',
|
||||
'Class:UserRequest/Attribute:origin/Value:phone+' => '',
|
||||
'Class:UserRequest/Attribute:origin/Value:portal' => 'Portal',
|
||||
'Class:UserRequest/Attribute:origin/Value:portal+' => '',
|
||||
'Class:UserRequest/Attribute:approver_id' => 'Godkender',
|
||||
'Class:UserRequest/Attribute:approver_id+' => '',
|
||||
'Class:UserRequest/Attribute:service_id' => 'Service',
|
||||
'Class:UserRequest/Attribute:service_id+' => '',
|
||||
'Class:UserRequest/Attribute:servicesubcategory_id' => 'Service Underkategori',
|
||||
'Class:UserRequest/Attribute:servicesubcategory_id+' => '',
|
||||
'Class:UserRequest/Attribute:escalation_flag' => 'Eskalations Flag',
|
||||
'Class:UserRequest/Attribute:escalation_flag+' => '',
|
||||
'Class:UserRequest/Attribute:escalation_flag/Value:no' => 'Nej',
|
||||
'Class:UserRequest/Attribute:escalation_flag/Value:no+' => '',
|
||||
'Class:UserRequest/Attribute:escalation_flag/Value:yes' => 'Ja',
|
||||
'Class:UserRequest/Attribute:escalation_flag/Value:yes+' => '',
|
||||
'Class:UserRequest/Attribute:escalation_reason' => 'Eskalationsgrund',
|
||||
'Class:UserRequest/Attribute:escalation_reason+' => '',
|
||||
'Class:UserRequest/Attribute:assignment_date' => 'Tildelt dato',
|
||||
'Class:UserRequest/Attribute:assignment_date+' => '',
|
||||
'Class:UserRequest/Attribute:resolution_date' => 'Løsningsdato',
|
||||
'Class:UserRequest/Attribute:resolution_date+' => '',
|
||||
'Class:UserRequest/Attribute:last_pending_date' => 'Sidste udsættelses dato',
|
||||
'Class:UserRequest/Attribute:last_pending_date+' => '',
|
||||
'Class:UserRequest/Attribute:cumulatedpending' => 'Akkumuleret nedetid',
|
||||
'Class:UserRequest/Attribute:cumulatedpending+' => '',
|
||||
'Class:UserRequest/Attribute:tto' => 'TTO (Time To Own)',
|
||||
'Class:UserRequest/Attribute:tto+' => '',
|
||||
'Class:UserRequest/Attribute:ttr' => 'TTR (Time To Resolve)',
|
||||
'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 passeret',
|
||||
'Class:UserRequest/Attribute:sla_tto_passed+' => '',
|
||||
'Class:UserRequest/Attribute:sla_tto_over' => 'SLA TTO overskredet',
|
||||
'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 passeret',
|
||||
'Class:UserRequest/Attribute:sla_ttr_passed+' => '',
|
||||
'Class:UserRequest/Attribute:sla_ttr_over' => 'SLA TTR overskredet',
|
||||
'Class:UserRequest/Attribute:sla_ttr_over+' => '',
|
||||
'Class:UserRequest/Attribute:time_spent' => 'Løsningstid forbrugt',
|
||||
'Class:UserRequest/Attribute:time_spent+' => '',
|
||||
'Class:UserRequest/Attribute:resolution_code' => 'Løsnings Kode',
|
||||
'Class:UserRequest/Attribute:resolution_code+' => '',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:assistance' => 'Assistance',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:assistance+' => '',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:bug fixed' => 'Bugfix',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:bug fixed+' => '',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:hardware repair' => 'Hardware Reparation',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:hardware repair+' => '',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:other' => 'Andet',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:other+' => '',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:software patch' => 'Software Patch',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:software patch+' => '',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:system update' => 'System Update',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:system update+' => '',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:training' => 'Uddannelse',
|
||||
'Class:UserRequest/Attribute:resolution_code/Value:training+' => '',
|
||||
'Class:UserRequest/Attribute:solution' => 'Løsning',
|
||||
'Class:UserRequest/Attribute:solution+' => '',
|
||||
'Class:UserRequest/Attribute:pending_reason' => 'Udsættelsesgrund',
|
||||
'Class:UserRequest/Attribute:pending_reason+' => '',
|
||||
'Class:UserRequest/Attribute:parent_request_id' => 'Parent Anmodning',
|
||||
'Class:UserRequest/Attribute:parent_request_id+' => '',
|
||||
'Class:UserRequest/Attribute:parent_change_id' => 'Parent-Change',
|
||||
'Class:UserRequest/Attribute:parent_change_id+' => '',
|
||||
'Class:UserRequest/Attribute:related_request_list' => 'Afledte Anmodninger',
|
||||
'Class:UserRequest/Attribute:related_request_list+' => '',
|
||||
'Class:UserRequest/Attribute:public_log' => 'Offentlig Log',
|
||||
'Class:UserRequest/Attribute:public_log+' => '',
|
||||
'Class:UserRequest/Attribute:user_satisfaction' => 'Brugertilfredshed',
|
||||
'Class:UserRequest/Attribute:user_satisfaction+' => '',
|
||||
'Class:UserRequest/Attribute:user_satisfaction/Value:1' => 'Meget tilfreds',
|
||||
'Class:UserRequest/Attribute:user_satisfaction/Value:1+' => '',
|
||||
'Class:UserRequest/Attribute:user_satisfaction/Value:2' => 'Tilfreds',
|
||||
'Class:UserRequest/Attribute:user_satisfaction/Value:2+' => '',
|
||||
'Class:UserRequest/Attribute:user_satisfaction/Value:3' => 'Nogenlunde tilfreds',
|
||||
'Class:UserRequest/Attribute:user_satisfaction/Value:3+' => '',
|
||||
'Class:UserRequest/Attribute:user_satisfaction/Value:4' => 'Meget utilfreds',
|
||||
'Class:UserRequest/Attribute:user_satisfaction/Value:4+' => '',
|
||||
'Class:UserRequest/Attribute:user_comment' => 'Brugerkommentar',
|
||||
'Class:UserRequest/Attribute:user_comment+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_assign' => 'Tildelt',
|
||||
'Class:UserRequest/Stimulus:ev_assign+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_reassign' => 'Forny tildeling',
|
||||
'Class:UserRequest/Stimulus:ev_reassign+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_approve' => 'Godkent',
|
||||
'Class:UserRequest/Stimulus:ev_approve+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_reject' => 'Afslå',
|
||||
'Class:UserRequest/Stimulus:ev_reject+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_pending' => 'Afventer',
|
||||
'Class:UserRequest/Stimulus:ev_pending+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_timeout' => 'Timeout',
|
||||
'Class:UserRequest/Stimulus:ev_timeout+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_autoresolve' => 'Automatisk løst',
|
||||
'Class:UserRequest/Stimulus:ev_autoresolve+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_autoclose' => 'Automatisk lukket',
|
||||
'Class:UserRequest/Stimulus:ev_autoclose+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_resolve' => 'Marker som løst',
|
||||
'Class:UserRequest/Stimulus:ev_resolve+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_close' => 'Luk denne Request',
|
||||
'Class:UserRequest/Stimulus:ev_close+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_reopen' => 'Genåben',
|
||||
'Class:UserRequest/Stimulus:ev_reopen+' => '',
|
||||
'Class:UserRequest/Stimulus:ev_wait_for_approval' => 'Afventer godkendelse',
|
||||
'Class:UserRequest/Stimulus:ev_wait_for_approval+' => '',
|
||||
'Menu:RequestManagement' => 'Helpdesk',
|
||||
'Menu:RequestManagement+' => '',
|
||||
'Menu:RequestManagementProvider' => 'Helpdesk Leverandør',
|
||||
'Menu:RequestManagementProvider+' => '',
|
||||
'Menu:UserRequest:Provider' => 'Åbne brugerhenvendelser ved leverandør',
|
||||
'Menu:UserRequest:Provider+' => '',
|
||||
'Menu:UserRequest:Overview' => 'Oversigt',
|
||||
'Menu:UserRequest:Overview+' => '',
|
||||
'Menu:NewUserRequest' => 'Ny Bruger henvendelse',
|
||||
'Menu:NewUserRequest+' => '',
|
||||
'Menu:SearchUserRequests' => 'Søg efter brugerhenvendelser',
|
||||
'Menu:SearchUserRequests+' => '',
|
||||
'Menu:UserRequest:Shortcuts' => 'Genveje',
|
||||
'Menu:UserRequest:Shortcuts+' => '',
|
||||
'Menu:UserRequest:MyRequests' => 'Mine henvendelser',
|
||||
'Menu:UserRequest:MyRequests+' => '',
|
||||
'Menu:UserRequest:MySupportRequests' => 'Mine Support-henvendelser',
|
||||
'Menu:UserRequest:MySupportRequests+' => '',
|
||||
'Menu:UserRequest:EscalatedRequests' => 'Eskalerede Brugerhenvendelser',
|
||||
'Menu:UserRequest:EscalatedRequests+' => '',
|
||||
'Menu:UserRequest:OpenRequests' => 'Alle åbne brugerhenvendelser',
|
||||
'Menu:UserRequest:OpenRequests+' => '',
|
||||
'UI:WelcomeMenu:MyAssignedCalls' => 'Mine tildelte henvendelser',
|
||||
'UI-RequestManagementOverview-RequestByType-last-14-days' => 'Brugerhenvendelser de sidste 14 dage efter type',
|
||||
'UI-RequestManagementOverview-Last-14-days' => 'Antal Brugerhenvendelser de sidste 14 dage',
|
||||
'UI-RequestManagementOverview-OpenRequestByStatus' => 'Åbne brugerhenvendelser efter status',
|
||||
'UI-RequestManagementOverview-OpenRequestByAgent' => 'Åbne brugerhenvendelser efter tildelt til',
|
||||
'UI-RequestManagementOverview-OpenRequestByType' => 'Åbne brugerhenvendelser efter type',
|
||||
'UI-RequestManagementOverview-OpenRequestByCustomer' => 'Åbne brugerhenvendelser efter bruger',
|
||||
'Class:UserRequest:KnownErrorList' => 'KEndte fejl (Known Errors)',
|
||||
'Menu:UserRequest:MyWorkOrders' => 'Mine tildelte arbejdsordre',
|
||||
'Menu:UserRequest:MyWorkOrders+' => '',
|
||||
'Class:Problem:KnownProblemList' => 'Kendte problemer',
|
||||
'Class:UserRequest/Attribute:approver_email' => 'Godkender Email',
|
||||
'Class:UserRequest/Attribute:approver_email+' => '',
|
||||
'Class:UserRequest/Attribute:service_name' => 'Service Name',
|
||||
'Class:UserRequest/Attribute:service_name+' => '',
|
||||
'Class:UserRequest/Attribute:servicesubcategory_name' => 'Service Underkategori navn',
|
||||
'Class:UserRequest/Attribute:servicesubcategory_name+' => '',
|
||||
'Class:UserRequest/Attribute:parent_request_ref' => 'Reference Brugerhenvendelse',
|
||||
'Class:UserRequest/Attribute:parent_request_ref+' => '',
|
||||
'Class:UserRequest/Attribute:parent_problem_id' => 'Parent-Problem',
|
||||
'Class:UserRequest/Attribute:parent_problem_id+' => '',
|
||||
'Class:UserRequest/Attribute:parent_problem_ref' => 'Reference Problem',
|
||||
'Class:UserRequest/Attribute:parent_problem_ref+' => '',
|
||||
'Class:UserRequest/Attribute:parent_change_ref' => 'Reference Change',
|
||||
'Class:UserRequest/Attribute:parent_change_ref+' => '',
|
||||
'Class:UserRequest/Attribute:parent_request_id_friendlyname' => 'Parent Request ID Friendly Name',
|
||||
'Class:UserRequest/Attribute:parent_request_id_friendlyname+' => '',
|
||||
'Portal:TitleDetailsFor_Request' => 'Dealjer for Brugerhenvendelser',
|
||||
'Portal:ButtonUpdate' => 'Opdater',
|
||||
'Portal:ButtonClose' => 'Luk',
|
||||
'Portal:ButtonReopen' => 'Genåben',
|
||||
'Portal:ShowServices' => 'Service-Katalog',
|
||||
'Portal:SelectRequestType' => 'Vælg henvendelses type',
|
||||
'Portal:SelectServiceElementFrom_Service' => 'Vælg et Service-Element for %1$s',
|
||||
'Portal:SelectRequestTemplate' => 'Vælg en skabelon for %1$s',
|
||||
'Portal:ListServices' => 'Liste over ydelser',
|
||||
'Portal:TitleDetailsFor_Service' => 'Detaljer for ydelser',
|
||||
'Portal:Button:CreateRequestFromService' => 'Opret henvendelse fra Service',
|
||||
'Portal:ListOpenRequests' => 'List åbne brugerhenvendelser',
|
||||
'Portal:UserRequest:MoreInfo' => 'Yderligere informationer',
|
||||
'Portal:Details-Service-Element' => 'Service Elementer',
|
||||
'Portal:NoClosedTicket' => 'Ingen lukkede brugerhenvendelser',
|
||||
'Portal:NoService' => 'Ingen ydelse',
|
||||
'Portal:ListOpenProblems' => 'Åbne problemer',
|
||||
'Portal:ShowProblem' => 'Problemer',
|
||||
'Portal:ShowFaqs' => 'FAQs',
|
||||
'Portal:NoOpenProblem' => 'Ingen åbne problemer',
|
||||
'Portal:SelectLanguage' => 'Skift sprogindstilling',
|
||||
'Portal:LanguageChangedTo_Lang' => 'Sprogindstilling ændres til: ',
|
||||
'Portal:ChooseYourFavoriteLanguage' => 'Vælg dit foretrukne sprog',
|
||||
));
|
||||
?>
|
||||
@@ -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>
|
||||
|
||||
@@ -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',
|
||||
));
|
||||
|
||||
@@ -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',
|
||||
));
|
||||
?>
|
||||
|
||||
298
datamodels/2.x/itop-request-mgmt/nl.dict.itop-request-mgmt.php
Normal file
298
datamodels/2.x/itop-request-mgmt/nl.dict.itop-request-mgmt.php
Normal 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',
|
||||
));
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,347 @@
|
||||
<?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 Erik Bøg <erik@boegmoeller.dk>
|
||||
|
||||
* @copyright Copyright (C) 2010-2012 Combodo SARL
|
||||
* @licence http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
Dict::Add('DA DA', 'Danish', 'Dansk', array(
|
||||
'Class:ContractType' => 'Kontrakt-Type',
|
||||
'Class:ContractType+' => '',
|
||||
'Class:CustomerContract' => 'Kundekontrakt',
|
||||
'Class:CustomerContract+' => '',
|
||||
'Class:CustomerContract/Attribute:services_list' => 'Ydelser',
|
||||
'Class:CustomerContract/Attribute:services_list+' => '',
|
||||
'Class:CustomerContract/Attribute:functionalcis_list' => 'CIs',
|
||||
'Class:CustomerContract/Attribute:functionalcis_list+' => '',
|
||||
'Class:CustomerContract/Attribute:providercontracts_list' => 'Leverandørkontrakter',
|
||||
'Class:CustomerContract/Attribute:providercontracts_list+' => '',
|
||||
'Class:ProviderContract' => 'Leverandørkontrakt',
|
||||
'Class:ProviderContract+' => '',
|
||||
'Class:ProviderContract/Attribute:functionalcis_list' => 'CIs',
|
||||
'Class:ProviderContract/Attribute:functionalcis_list+' => '',
|
||||
'Class:ProviderContract/Attribute:sla' => 'SLA',
|
||||
'Class:ProviderContract/Attribute:sla+' => '',
|
||||
'Class:ProviderContract/Attribute:coverage' => 'Servicetider',
|
||||
'Class:ProviderContract/Attribute:coverage+' => '',
|
||||
'Class:lnkContactToContract' => 'Sammenhæng Kontakt/Kontrakt',
|
||||
'Class:lnkContactToContract+' => '',
|
||||
'Class:lnkContactToContract/Attribute:contract_id' => 'Kontrakt',
|
||||
'Class:lnkContactToContract/Attribute:contract_id+' => '',
|
||||
'Class:lnkContactToContract/Attribute:contact_id' => 'Kontakt',
|
||||
'Class:lnkContactToContract/Attribute:contact_id+' => '',
|
||||
'Class:lnkContractToDocument' => 'Sammenhæng Kontrakt/Dokument',
|
||||
'Class:lnkContractToDocument+' => '',
|
||||
'Class:lnkContractToDocument/Attribute:contract_id' => 'Kontrakt',
|
||||
'Class:lnkContractToDocument/Attribute:contract_id+' => '',
|
||||
'Class:lnkContractToDocument/Attribute:document_id' => 'Dokument',
|
||||
'Class:lnkContractToDocument/Attribute:document_id+' => '',
|
||||
'Class:lnkFunctionalCIToProviderContract' => 'Sammenhæng FunctionalCI/Leverandørkontrakt',
|
||||
'Class:lnkFunctionalCIToProviderContract+' => '',
|
||||
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_id' => 'Leverandørkontrakt',
|
||||
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_id+' => '',
|
||||
'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id' => 'CI',
|
||||
'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '',
|
||||
'Class:ServiceFamily' => 'Ydelsesfamilie',
|
||||
'Class:ServiceFamily+' => '',
|
||||
'Class:ServiceFamily/Attribute:name' => 'Navn',
|
||||
'Class:ServiceFamily/Attribute:name+' => '',
|
||||
'Class:ServiceFamily/Attribute:services_list' => 'Ydelser',
|
||||
'Class:ServiceFamily/Attribute:services_list+' => '',
|
||||
'Class:Service' => 'Ydelse',
|
||||
'Class:Service+' => '',
|
||||
'Class:Service/Attribute:name' => 'Navn',
|
||||
'Class:Service/Attribute:name+' => '',
|
||||
'Class:Service/Attribute:org_id' => 'Organisation',
|
||||
'Class:Service/Attribute:org_id+' => '',
|
||||
'Class:Service/Attribute:description' => 'Beskrivelse',
|
||||
'Class:Service/Attribute:description+' => '',
|
||||
'Class:Service/Attribute:documents_list' => 'Dokument',
|
||||
'Class:Service/Attribute:documents_list+' => '',
|
||||
'Class:Service/Attribute:contacts_list' => 'Kontakt',
|
||||
'Class:Service/Attribute:contacts_list+' => '',
|
||||
'Class:Service/Attribute:status' => 'Status',
|
||||
'Class:Service/Attribute:status+' => '',
|
||||
'Class:Service/Attribute:status/Value:implementation' => 'Implementering',
|
||||
'Class:Service/Attribute:status/Value:implementation+' => '',
|
||||
'Class:Service/Attribute:status/Value:obsolete' => 'Forældet',
|
||||
'Class:Service/Attribute:status/Value:obsolete+' => '',
|
||||
'Class:Service/Attribute:status/Value:production' => 'Produktion',
|
||||
'Class:Service/Attribute:status/Value:production+' => '',
|
||||
'Class:Service/Attribute:customercontracts_list' => 'Kundekontrakt',
|
||||
'Class:Service/Attribute:customercontracts_list+' => '',
|
||||
'Class:Service/Attribute:servicesubcategories_list' => 'Ydelses underkategorier',
|
||||
'Class:Service/Attribute:servicesubcategories_list+' => '',
|
||||
'Class:lnkDocumentToService' => 'Sammenhæng Dokument/Ydelse',
|
||||
'Class:lnkDocumentToService+' => '',
|
||||
'Class:lnkDocumentToService/Attribute:service_id' => 'Ydelse',
|
||||
'Class:lnkDocumentToService/Attribute:service_id+' => '',
|
||||
'Class:lnkDocumentToService/Attribute:document_id' => 'Dokument',
|
||||
'Class:lnkDocumentToService/Attribute:document_id+' => '',
|
||||
'Class:lnkContactToService' => 'Sammenhæng Kontakt/Ydelse',
|
||||
'Class:lnkContactToService+' => '',
|
||||
'Class:lnkContactToService/Attribute:service_id' => 'Ydelse',
|
||||
'Class:lnkContactToService/Attribute:service_id+' => '',
|
||||
'Class:lnkContactToService/Attribute:contact_id' => 'Kontakt',
|
||||
'Class:lnkContactToService/Attribute:contact_id+' => '',
|
||||
'Class:ServiceSubcategory' => 'Ydelses underkategori',
|
||||
'Class:ServiceSubcategory+' => '',
|
||||
'Class:ServiceSubcategory/Attribute:name' => 'Navn',
|
||||
'Class:ServiceSubcategory/Attribute:name+' => '',
|
||||
'Class:ServiceSubcategory/Attribute:description' => 'Beskrivelse',
|
||||
'Class:ServiceSubcategory/Attribute:description+' => '',
|
||||
'Class:ServiceSubcategory/Attribute:service_id' => 'Ydelse',
|
||||
'Class:ServiceSubcategory/Attribute:service_id+' => '',
|
||||
'Class:ServiceSubcategory/Attribute:request_type' => 'Anmodnings type',
|
||||
'Class:ServiceSubcategory/Attribute:request_type+' => '',
|
||||
'Class:ServiceSubcategory/Attribute:request_type/Value:incident' => 'Incident',
|
||||
'Class:ServiceSubcategory/Attribute:request_type/Value:incident+' => '',
|
||||
'Class:ServiceSubcategory/Attribute:request_type/Value:service_request' => 'Service Anmodning',
|
||||
'Class:ServiceSubcategory/Attribute:request_type/Value:service_request+' => '',
|
||||
'Class:ServiceSubcategory/Attribute:status' => 'Status',
|
||||
'Class:ServiceSubcategory/Attribute:status+' => '',
|
||||
'Class:ServiceSubcategory/Attribute:status/Value:implementation' => 'Implementering',
|
||||
'Class:ServiceSubcategory/Attribute:status/Value:implementation+' => '',
|
||||
'Class:ServiceSubcategory/Attribute:status/Value:obsolete' => 'Forældet',
|
||||
'Class:ServiceSubcategory/Attribute:status/Value:obsolete+' => '',
|
||||
'Class:ServiceSubcategory/Attribute:status/Value:production' => 'Produktion',
|
||||
'Class:ServiceSubcategory/Attribute:status/Value:production+' => '',
|
||||
'Class:SLA' => 'SLA',
|
||||
'Class:SLA+' => '',
|
||||
'Class:SLA/Attribute:name' => 'Navn',
|
||||
'Class:SLA/Attribute:name+' => '',
|
||||
'Class:SLA/Attribute:description' => 'Beskrivelse',
|
||||
'Class:SLA/Attribute:description+' => '',
|
||||
'Class:SLA/Attribute:org_id' => 'Organisation',
|
||||
'Class:SLA/Attribute:org_id+' => '',
|
||||
'Class:SLA/Attribute:slts_list' => 'SLTs',
|
||||
'Class:SLA/Attribute:slts_list+' => '',
|
||||
'Class:SLA/Attribute:customercontracts_list' => 'Kundekontrakt',
|
||||
'Class:SLA/Attribute:customercontracts_list+' => '',
|
||||
'Class:SLT' => 'SLT',
|
||||
'Class:SLT+' => '',
|
||||
'Class:SLT/Attribute:name' => 'Navn',
|
||||
'Class:SLT/Attribute:name+' => '',
|
||||
'Class:SLT/Attribute:priority' => 'Prioritet',
|
||||
'Class:SLT/Attribute:priority+' => '',
|
||||
'Class:SLT/Attribute:priority/Value:1' => 'Kritisk',
|
||||
'Class:SLT/Attribute:priority/Value:1+' => '',
|
||||
'Class:SLT/Attribute:priority/Value:2' => 'Høj',
|
||||
'Class:SLT/Attribute:priority/Value:2+' => '',
|
||||
'Class:SLT/Attribute:priority/Value:3' => 'Middel',
|
||||
'Class:SLT/Attribute:priority/Value:3+' => '',
|
||||
'Class:SLT/Attribute:priority/Value:4' => 'Lav',
|
||||
'Class:SLT/Attribute:priority/Value:4+' => '',
|
||||
'Class:SLT/Attribute:request_type' => 'Anmodnings type',
|
||||
'Class:SLT/Attribute:request_type+' => '',
|
||||
'Class:SLT/Attribute:request_type/Value:incident' => 'Incident',
|
||||
'Class:SLT/Attribute:request_type/Value:incident+' => '',
|
||||
'Class:SLT/Attribute:request_type/Value:service_request' => 'Service Anmodning',
|
||||
'Class:SLT/Attribute:request_type/Value:service_request+' => '',
|
||||
'Class:SLT/Attribute:metric' => 'Metrisk',
|
||||
'Class:SLT/Attribute:metric+' => '',
|
||||
'Class:SLT/Attribute:metric/Value:tto' => 'TTO (Time To Own)',
|
||||
'Class:SLT/Attribute:metric/Value:tto+' => '',
|
||||
'Class:SLT/Attribute:metric/Value:ttr' => 'TTR (Time To Resolve)',
|
||||
'Class:SLT/Attribute:metric/Value:ttr+' => '',
|
||||
'Class:SLT/Attribute:value' => 'Værdi',
|
||||
'Class:SLT/Attribute:value+' => '',
|
||||
'Class:SLT/Attribute:unit' => 'Enhed',
|
||||
'Class:SLT/Attribute:unit+' => '',
|
||||
'Class:SLT/Attribute:unit/Value:hours' => 'Timer',
|
||||
'Class:SLT/Attribute:unit/Value:hours+' => '',
|
||||
'Class:SLT/Attribute:unit/Value:minutes' => 'Minutter',
|
||||
'Class:SLT/Attribute:unit/Value:minutes+' => '',
|
||||
'Class:lnkSLAToSLT' => 'Sammenhæng SLA/SLT',
|
||||
'Class:lnkSLAToSLT+' => '',
|
||||
'Class:lnkSLAToSLT/Attribute:sla_id' => 'SLA',
|
||||
'Class:lnkSLAToSLT/Attribute:sla_id+' => '',
|
||||
'Class:lnkSLAToSLT/Attribute:slt_id' => 'SLT',
|
||||
'Class:lnkSLAToSLT/Attribute:slt_id+' => '',
|
||||
'Class:lnkCustomerContractToService' => 'Sammenhæng Kundekontrakt/Ydelse',
|
||||
'Class:lnkCustomerContractToService+' => '',
|
||||
'Class:lnkCustomerContractToService/Attribute:customercontract_id' => 'Kundekontrakt',
|
||||
'Class:lnkCustomerContractToService/Attribute:customercontract_id+' => '',
|
||||
'Class:lnkCustomerContractToService/Attribute:service_id' => 'Ydelse',
|
||||
'Class:lnkCustomerContractToService/Attribute:service_id+' => '',
|
||||
'Class:lnkCustomerContractToService/Attribute:sla_id' => 'SLA',
|
||||
'Class:lnkCustomerContractToService/Attribute:sla_id+' => '',
|
||||
'Class:lnkCustomerContractToProviderContract' => 'Sammenhæng Kundekontrakt/Leverandørkontrakt',
|
||||
'Class:lnkCustomerContractToProviderContract+' => '',
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:customercontract_id' => 'Kundekontrakt',
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:customercontract_id+' => '',
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_id' => 'Leverandørkontrakt',
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_id+' => '',
|
||||
'Class:lnkCustomerContractToFunctionalCI' => 'Sammenhæng Kundekontrakt/FunctionalCI',
|
||||
'Class:lnkCustomerContractToFunctionalCI+' => '',
|
||||
'Class:lnkCustomerContractToFunctionalCI/Attribute:customercontract_id' => 'Kundekontrakt',
|
||||
'Class:lnkCustomerContractToFunctionalCI/Attribute:customercontract_id+' => '',
|
||||
'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_id' => 'CI',
|
||||
'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_id+' => '',
|
||||
'Class:DeliveryModel' => 'Leverings model',
|
||||
'Class:DeliveryModel+' => '',
|
||||
'Class:DeliveryModel/Attribute:name' => 'Navn',
|
||||
'Class:DeliveryModel/Attribute:name+' => '',
|
||||
'Class:DeliveryModel/Attribute:org_id' => 'Organisation',
|
||||
'Class:DeliveryModel/Attribute:org_id+' => '',
|
||||
'Class:DeliveryModel/Attribute:description' => 'Beskrivelse',
|
||||
'Class:DeliveryModel/Attribute:description+' => '',
|
||||
'Class:DeliveryModel/Attribute:contacts_list' => 'Kontakt',
|
||||
'Class:DeliveryModel/Attribute:contacts_list+' => '',
|
||||
'Class:DeliveryModel/Attribute:customers_list' => 'Kunde',
|
||||
'Class:DeliveryModel/Attribute:customers_list+' => '',
|
||||
'Class:lnkDeliveryModelToContact' => 'Sammenhæng Leveringsmodel/Kontakt',
|
||||
'Class:lnkDeliveryModelToContact+' => '',
|
||||
'Class:lnkDeliveryModelToContact/Attribute:deliverymodel_id' => 'Leverings model',
|
||||
'Class:lnkDeliveryModelToContact/Attribute:deliverymodel_id+' => '',
|
||||
'Class:lnkDeliveryModelToContact/Attribute:contact_id' => 'Kontakt',
|
||||
'Class:lnkDeliveryModelToContact/Attribute:contact_id+' => '',
|
||||
'Class:lnkDeliveryModelToContact/Attribute:role_id' => 'Rolle',
|
||||
'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '',
|
||||
'Menu:ServiceManagement' => 'Service-Management',
|
||||
'Menu:ServiceManagement+' => '',
|
||||
'Menu:Service:Overview' => 'Oversigt',
|
||||
'Menu:Service:Overview+' => '',
|
||||
'UI-ServiceManagementMenu-ContractsBySrvLevel' => 'Kontrakter efter Service Level',
|
||||
'UI-ServiceManagementMenu-ContractsByStatus' => 'Kontrakter efter Status',
|
||||
'UI-ServiceManagementMenu-ContractsEndingIn30Days' => 'Kontrakter som udløber om mindre end 30 dage',
|
||||
'Menu:ServiceType' => 'Ydelsestype',
|
||||
'Menu:ServiceType+' => '',
|
||||
'Menu:ProviderContract' => 'Leverandørkontrakter',
|
||||
'Menu:ProviderContract+' => '',
|
||||
'Menu:CustomerContract' => 'Kundekontrakter',
|
||||
'Menu:CustomerContract+' => '',
|
||||
'Menu:ServiceSubcategory' => 'Ydelses underkategori',
|
||||
'Menu:ServiceSubcategory+' => '',
|
||||
'Menu:Service' => 'Ydelser',
|
||||
'Menu:Service+' => '',
|
||||
'Menu:ServiceElement' => 'Ydelses elementer',
|
||||
'Menu:ServiceElement+' => '',
|
||||
'Menu:SLA' => 'SLAs',
|
||||
'Menu:SLA+' => '',
|
||||
'Menu:SLT' => 'SLTs',
|
||||
'Menu:SLT+' => '',
|
||||
'Menu:DeliveryModel' => 'Leveringsmodel',
|
||||
'Menu:DeliveryModel+' => '',
|
||||
'Class:Contract' => 'Kontrakt',
|
||||
'Class:Contract+' => '',
|
||||
'Class:Contract/Attribute:name' => 'Navn',
|
||||
'Class:Contract/Attribute:name+' => '',
|
||||
'Class:Contract/Attribute:org_id' => 'Organisation',
|
||||
'Class:Contract/Attribute:org_id+' => '',
|
||||
'Class:Contract/Attribute:organization_name' => 'Organisations navn',
|
||||
'Class:Contract/Attribute:organization_name+' => '',
|
||||
'Class:Contract/Attribute:contacts_list' => 'Kontakter',
|
||||
'Class:Contract/Attribute:contacts_list+' => '',
|
||||
'Class:Contract/Attribute:documents_list' => 'Dokumenter',
|
||||
'Class:Contract/Attribute:documents_list+' => '',
|
||||
'Class:Contract/Attribute:description' => 'Beskrivelse',
|
||||
'Class:Contract/Attribute:description+' => '',
|
||||
'Class:Contract/Attribute:start_date' => 'Startdato',
|
||||
'Class:Contract/Attribute:start_date+' => '',
|
||||
'Class:Contract/Attribute:end_date' => 'Slutdato',
|
||||
'Class:Contract/Attribute:end_date+' => '',
|
||||
'Class:Contract/Attribute:cost' => 'Omkostninger',
|
||||
'Class:Contract/Attribute:cost+' => '',
|
||||
'Class:Contract/Attribute:cost_currency' => 'Valuta',
|
||||
'Class:Contract/Attribute:cost_currency+' => '',
|
||||
'Class:Contract/Attribute:cost_currency/Value:dollars' => 'Dollar',
|
||||
'Class:Contract/Attribute:cost_currency/Value:dollars+' => '',
|
||||
'Class:Contract/Attribute:cost_currency/Value:euros' => 'Euro',
|
||||
'Class:Contract/Attribute:cost_currency/Value:euros+' => '',
|
||||
'Class:Contract/Attribute:cost_currency/Value:kroner' => 'Kroner',
|
||||
'Class:Contract/Attribute:cost_currency/Value:kroner+' => 'Danske kroner',
|
||||
'Class:Contract/Attribute:contracttype_id' => 'Kontrakttype',
|
||||
'Class:Contract/Attribute:contracttype_id+' => '',
|
||||
'Class:Contract/Attribute:contracttype_name' => 'Kontrakt type navn',
|
||||
'Class:Contract/Attribute:contracttype_name+' => '',
|
||||
'Class:Contract/Attribute:billing_frequency' => 'Afregnings frekvens',
|
||||
'Class:Contract/Attribute:billing_frequency+' => '',
|
||||
'Class:Contract/Attribute:cost_unit' => 'Enhedsomkostninger',
|
||||
'Class:Contract/Attribute:cost_unit+' => '',
|
||||
'Class:Contract/Attribute:provider_id' => 'Leverandør',
|
||||
'Class:Contract/Attribute:provider_id+' => '',
|
||||
'Class:Contract/Attribute:provider_name' => 'Leverandør navn',
|
||||
'Class:Contract/Attribute:provider_name+' => '',
|
||||
'Class:Contract/Attribute:status' => 'Status',
|
||||
'Class:Contract/Attribute:status+' => '',
|
||||
'Class:Contract/Attribute:status/Value:implementation' => 'Implementering',
|
||||
'Class:Contract/Attribute:status/Value:implementation+' => '',
|
||||
'Class:Contract/Attribute:status/Value:obsolete' => 'Forældet',
|
||||
'Class:Contract/Attribute:status/Value:obsolete+' => '',
|
||||
'Class:Contract/Attribute:status/Value:production' => 'Produktion',
|
||||
'Class:Contract/Attribute:status/Value:production+' => '',
|
||||
'Class:Contract/Attribute:finalclass' => 'Kontrakttype',
|
||||
'Class:Contract/Attribute:finalclass+' => '',
|
||||
'Class:lnkContactToContract/Attribute:contract_name' => 'Kontrakt navn',
|
||||
'Class:lnkContactToContract/Attribute:contract_name+' => '',
|
||||
'Class:lnkContactToContract/Attribute:contact_name' => 'Kontakt navn',
|
||||
'Class:lnkContactToContract/Attribute:contact_name+' => '',
|
||||
'Class:lnkContractToDocument/Attribute:contract_name' => 'Kontrakt navn',
|
||||
'Class:lnkContractToDocument/Attribute:contract_name+' => '',
|
||||
'Class:lnkContractToDocument/Attribute:document_name' => 'Dokument navn',
|
||||
'Class:lnkContractToDocument/Attribute:document_name+' => '',
|
||||
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_name' => 'Leverandørkontrakt navn',
|
||||
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_name+' => '',
|
||||
'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'CI navn',
|
||||
'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '',
|
||||
'Class:Service/Attribute:organization_name' => 'Navn',
|
||||
'Class:Service/Attribute:organization_name+' => '',
|
||||
'Class:lnkDocumentToService/Attribute:service_name' => 'Ydelses navn',
|
||||
'Class:lnkDocumentToService/Attribute:service_name+' => '',
|
||||
'Class:lnkDocumentToService/Attribute:document_name' => 'Dokument navn',
|
||||
'Class:lnkDocumentToService/Attribute:document_name+' => '',
|
||||
'Class:lnkContactToService/Attribute:service_name' => 'Ydelses navn',
|
||||
'Class:lnkContactToService/Attribute:service_name+' => '',
|
||||
'Class:lnkContactToService/Attribute:contact_name' => 'Kontakt navn',
|
||||
'Class:lnkContactToService/Attribute:contact_name+' => '',
|
||||
'Class:ServiceSubcategory/Attribute:service_name' => 'Ydelses navn',
|
||||
'Class:ServiceSubcategory/Attribute:service_name+' => '',
|
||||
'Class:SLA/Attribute:organization_name' => 'Organisations navn',
|
||||
'Class:SLA/Attribute:organization_name+' => '',
|
||||
'Class:lnkSLAToSLT/Attribute:sla_name' => 'SLA navn',
|
||||
'Class:lnkSLAToSLT/Attribute:sla_name+' => '',
|
||||
'Class:lnkSLAToSLT/Attribute:slt_name' => 'SLT navn',
|
||||
'Class:lnkSLAToSLT/Attribute:slt_name+' => '',
|
||||
'Class:lnkCustomerContractToService/Attribute:customercontract_name' => 'Kundekontrakt navn',
|
||||
'Class:lnkCustomerContractToService/Attribute:customercontract_name+' => '',
|
||||
'Class:lnkCustomerContractToService/Attribute:service_name' => 'Ydelses navn',
|
||||
'Class:lnkCustomerContractToService/Attribute:service_name+' => '',
|
||||
'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA-Navn',
|
||||
'Class:lnkCustomerContractToService/Attribute:sla_name+' => '',
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:customercontract_name' => 'Kundekontrakt navn',
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:customercontract_name+' => '',
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name' => 'Leverandørkontrakt navn',
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name+' => '',
|
||||
'Class:lnkCustomerContractToFunctionalCI/Attribute:customercontract_name' => 'Kundekontrakt navn',
|
||||
'Class:lnkCustomerContractToFunctionalCI/Attribute:customercontract_name+' => '',
|
||||
'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name' => 'CI navn',
|
||||
'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name+' => '',
|
||||
'Class:DeliveryModel/Attribute:organization_name' => 'Organisations navn',
|
||||
'Class:DeliveryModel/Attribute:organization_name+' => '',
|
||||
'Class:lnkDeliveryModelToContact/Attribute:deliverymodel_name' => 'Leveringsmodel navn',
|
||||
'Class:lnkDeliveryModelToContact/Attribute:deliverymodel_name+' => '',
|
||||
'Class:lnkDeliveryModelToContact/Attribute:contact_name' => 'Kontaktnavn',
|
||||
'Class:lnkDeliveryModelToContact/Attribute:contact_name+' => '',
|
||||
'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Rolle navn',
|
||||
'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '',
|
||||
));
|
||||
?>
|
||||
@@ -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"/>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user