Merge most recent (few) bug fixes from trunk

SVN:1.2[1611]
This commit is contained in:
Romain Quetiez
2011-09-28 14:38:37 +00:00
16 changed files with 901 additions and 752 deletions

View File

@@ -88,6 +88,11 @@ class ajax_page extends WebPage
return $sPreviousTab;
}
public function GetCurrentTab()
{
return $this->m_sCurrentTab;
}
/**
* Echoes the content of the whole page
* @return void
@@ -230,6 +235,50 @@ EOF
}
}
/**
* Records the current state of the 'html' part of the page output
* @return mixed The current state of the 'html' output
*/
public function start_capture()
{
if (!empty($this->m_sCurrentTabContainer) && !empty($this->m_sCurrentTab))
{
$iOffset = isset($this->m_aTabs[$this->m_sCurrentTabContainer]['content'][$this->m_sCurrentTab]) ? strlen($this->m_aTabs[$this->m_sCurrentTabContainer]['content'][$this->m_sCurrentTab]): 0;
return array('tc' => $this->m_sCurrentTabContainer, 'tab' => $this->m_sCurrentTab, 'offset' => $iOffset);
}
else
{
return parent::start_capture();
}
}
/**
* Returns the part of the html output that occurred since the call to start_capture
* and removes this part from the current html output
* @param $offset mixed The value returned by start_capture
* @return string The part of the html output that was added since the call to start_capture
*/
public function end_capture($offset)
{
if (is_array($offset))
{
if (isset($this->m_aTabs[$offset['tc']]['content'][$offset['tab']]))
{
$sCaptured = substr($this->m_aTabs[$offset['tc']]['content'][$offset['tab']], $offset['offset']);
$this->m_aTabs[$offset['tc']]['content'][$offset['tab']] = substr($this->m_aTabs[$offset['tc']]['content'][$offset['tab']], 0, $offset['offset']);
}
else
{
$sCaptured = '';
}
}
else
{
$sCaptured = parent::end_capture($offset);
}
return $sCaptured;
}
/**
* Add any text or HTML fragment (identified by an ID) at the end of the body of the page
* This is useful to add hidden content, DIVs or FORMs that should not

View File

@@ -834,6 +834,11 @@ EOF
return $sPreviousTab;
}
public function GetCurrentTab()
{
return $this->m_sCurrentTab;
}
/**
* Make the given tab the active one, as if it were clicked
* DOES NOT WORK: apparently in the *old* version of jquery
@@ -932,8 +937,15 @@ EOF
{
if (is_array($offset))
{
$sCaptured = substr($this->m_aTabs[$offset['tc']][$offset['tab']], $offset['offset']);
$this->m_aTabs[$offset['tc']][$offset['tab']] = substr($this->m_aTabs[$offset['tc']][$offset['tab']], 0, $offset['offset']);
if (isset($this->m_aTabs[$offset['tc']][$offset['tab']]))
{
$sCaptured = substr($this->m_aTabs[$offset['tc']][$offset['tab']], $offset['offset']);
$this->m_aTabs[$offset['tc']][$offset['tab']] = substr($this->m_aTabs[$offset['tc']][$offset['tab']], 0, $offset['offset']);
}
else
{
$sCaptured = '';
}
}
else
{

View File

@@ -147,9 +147,18 @@ EOF
$this->add_script(
<<<EOF
function CheckSelection(sMessage)
function CheckSelection(sMessage, sInputId)
{
var bResult = ($('input:checked').length > 0);
var bResult;
if (sInputId.length > 0)
{
bResult = ($('input[name='+sInputId+']:checked').length > 0);
}
else
{
// First select found...
bResult = ($('input:checked').length > 0);
}
if (!bResult)
{
alert(sMessage);
@@ -804,12 +813,12 @@ EOF
}
}
public function WizardCheckSelectionOnSubmit($sMessageIfNoSelection)
public function WizardCheckSelectionOnSubmit($sMessageIfNoSelection, $sInputName = '')
{
$this->add_ready_script(
<<<EOF
$('#{$this->m_sWizardId}').submit(function() {
return CheckSelection('$sMessageIfNoSelection');
return CheckSelection('$sMessageIfNoSelection', '$sInputName');
});
EOF
);

View File

@@ -35,7 +35,15 @@ class DisplayTemplate
public function __construct($sTemplate)
{
$this->m_aTags = array('itopblock', 'itopcheck', 'itoptabs', 'itoptab', 'itoptoggle', 'itopstring', 'sqlblock');
$this->m_aTags = array (
'itopblock',
'itopcheck',
'itoptabs',
'itoptab',
'itoptoggle',
'itopstring',
'sqlblock'
);
$this->m_sTemplate = $sTemplate;
}
@@ -208,7 +216,6 @@ class DisplayTemplate
$oBlock->RenderContent($oPage);
break;
case 'itopblock': // No longer used, handled by DisplayBlock::FromTemplate see above
$oPage->add("<!-- Application Error: should be handled by DisplayBlock::FromTemplate -->");
break;
@@ -272,6 +279,7 @@ class ObjectDetailsTemplate extends DisplayTemplate
public function Render(WebPage $oPage, $aParams = array(), $bEditMode = false)
{
$sStateAttCode = MetaModel :: GetStateAttributeCode(get_class($this->m_oObj));
$aTemplateFields = array();
preg_match_all('/\\$this->([a-z0-9_]+)\\$/', $this->m_sTemplate, $aMatches);
$aTemplateFields = $aMatches[1];
@@ -302,6 +310,11 @@ class ObjectDetailsTemplate extends DisplayTemplate
$iFlags = $iFlags & ~OPT_ATT_READONLY; // Mandatory fields cannot be read-only when creating an object
}
if ((!$oAttDef->IsWritable()) || ($sStateAttCode == $sAttCode))
{
$iFlags = $iFlags | OPT_ATT_READONLY;
}
if ($iFlags & OPT_ATT_HIDDEN)
{
$aParams['this->label('.$sAttCode.')'] = '';
@@ -313,7 +326,6 @@ class ObjectDetailsTemplate extends DisplayTemplate
{
if ($bEditMode && ($iFlags & (OPT_ATT_READONLY|OPT_ATT_SLAVE)))
{
// Check if the attribute is not read-only because of a synchro...
$aReasons = array();
$sSynchroIcon = '';
@@ -336,7 +348,6 @@ class ObjectDetailsTemplate extends DisplayTemplate
$aParams['this->comments('.$sAttCode.')'] = $sSynchroIcon;
}
if ($bEditMode && !($iFlags & OPT_ATT_READONLY)) //TODO: check the data synchro status...
{
$aParams['this->field('.$sAttCode.')'] = "<span id=\"field_{$iInputId}\">".$this->m_oObj->GetFormElementForField($oPage, $sClass, $sAttCode, $oAttDef,
@@ -388,5 +399,4 @@ class ObjectDetailsTemplate extends DisplayTemplate
}
//DisplayTemplate::UnitTest();
?>

View File

@@ -889,10 +889,14 @@ Wenn Aktionen mit Trigger verknüpft sind, bekommt jede Aktion eine Auftragsnumm
'Portal:Title' => 'iTop-Benutzerportal',
'Portal:Refresh' => 'Neu laden',
'Portal:Back' => 'Zurück',
'Portal:WelcomeUserOrg' => 'Welcome %1$s, from %2$s',
'Portal:ShowOngoing' => 'Show open requests',
'Portal:ShowClosed' => 'Show closed requests',
'Portal:CreateNewRequest' => 'Einen neuen Request erstellen',
'Portal:ChangeMyPassword' => 'Mein Passwort ändern',
'Portal:Disconnect' => 'Disconnect',
'Portal:OpenRequests' => 'Meine offenen Requests',
'Portal:ClosedRequests' => 'My closed requests',
'Portal:ResolvedRequests' => 'Meine gelösten Requests',
'Portal:SelectService' => 'Wählen Sie einen Service aus dem Katalog:',
'Portal:PleaseSelectOneService' => 'Bitte wählen Sie einen Service',
@@ -901,7 +905,10 @@ Wenn Aktionen mit Trigger verknüpft sind, bekommt jede Aktion eine Auftragsnumm
'Portal:DescriptionOfTheRequest' => 'Geben Sie die Beschreibung Ihres Requests ein:',
'Portal:TitleRequestDetailsFor_Request' => 'Details für Request %1$s:',
'Portal:NoOpenRequest' => 'Keinen Request in dieser Kategorie',
'Portal:NoClosedRequest' => 'Keinen Request in dieser Kategorie',
'Portal:Button:ReopenTicket' => 'Reopen this ticket',
'Portal:Button:CloseTicket' => 'Dieses Ticket schließen',
'Portal:Button:UpdateRequest' => 'Update the request',
'Portal:EnterYourCommentsOnTicket' => 'Geben Sie einen Kommentar zur Lösung dieses Tickets ein:',
'Portal:ErrorNoContactForThisUser' => 'Fehler: der derzeitige Benutzer wurde nicht einem Kontakt oder einer Person zugewiesen. Bitte kontaktieren Sie Ihren Administrator.',

View File

@@ -866,10 +866,14 @@ When associated with a trigger, each action is given an "order" number, specifyi
'Portal:Title' => 'iTop user portal',
'Portal:Refresh' => 'Refresh',
'Portal:Back' => 'Back',
'Portal:WelcomeUserOrg' => 'Welcome %1$s, from %2$s',
'Portal:ShowOngoing' => 'Show open requests',
'Portal:ShowClosed' => 'Show closed requests',
'Portal:CreateNewRequest' => 'Create a new request',
'Portal:ChangeMyPassword' => 'Change my password',
'Portal:Disconnect' => 'Disconnect',
'Portal:OpenRequests' => 'My open requests',
'Portal:ClosedRequests' => 'My closed requests',
'Portal:ResolvedRequests' => 'My resolved requests',
'Portal:SelectService' => 'Select a service from the catalog:',
'Portal:PleaseSelectOneService' => 'Please select one service',
@@ -877,8 +881,11 @@ When associated with a trigger, each action is given an "order" number, specifyi
'Portal:PleaseSelectAServiceSubCategory' => 'Please select one sub-category',
'Portal:DescriptionOfTheRequest' => 'Enter the description of your request:',
'Portal:TitleRequestDetailsFor_Request' => 'Details for request %1$s:',
'Portal:NoOpenRequest' => 'No request in this category.',
'Portal:NoOpenRequest' => 'No request in this category',
'Portal:NoClosedRequest' => 'No request in this category',
'Portal:Button:ReopenTicket' => 'Reopen this ticket',
'Portal:Button:CloseTicket' => 'Close this ticket',
'Portal:Button:UpdateRequest' => 'Update the request',
'Portal:EnterYourCommentsOnTicket' => 'Enter your comments about the resolution of this ticket:',
'Portal:ErrorNoContactForThisUser' => 'Error: the current user is not associated with a Contact/Person. Please contact your administrator.',
'Portal:Attachments' => 'Attachments',

View File

@@ -716,10 +716,14 @@ Lors de l\'association à un déclencheur, on attribue à chaque action un numé
'Portal:Title' => 'Portail utilisateur iTop',
'Portal:Refresh' => 'Rafraîchir',
'Portal:Back' => 'Retour',
'Portal:WelcomeUserOrg' => 'Bienvenue %1$s (%2$s)',
'Portal:ShowOngoing' => 'Requêtes en cours',
'Portal:ShowClosed' => 'Requêtes fermées',
'Portal:CreateNewRequest' => 'Créer une nouvelle requête',
'Portal:ChangeMyPassword' => 'Changer mon mot de passe',
'Portal:Disconnect' => 'Déconnexion',
'Portal:OpenRequests' => 'Mes requêtes en cours',
'Portal:ClosedRequests' => 'Mes requêtes fermées',
'Portal:ResolvedRequests' => 'Mes requêtes résolues',
'Portal:SelectService' => 'Choisissez un service dans le catalogue:',
'Portal:PleaseSelectOneService' => 'Veuillez choisir un service',
@@ -728,7 +732,10 @@ Lors de l\'association à un déclencheur, on attribue à chaque action un numé
'Portal:DescriptionOfTheRequest' => 'Entrez la description de votre requête:',
'Portal:TitleRequestDetailsFor_Request' => 'Détails de votre requête %1$s:',
'Portal:NoOpenRequest' => 'Aucune requête.',
'Portal:NoClosedRequest' => 'Aucune requête.',
'Portal:Button:ReopenTicket' => 'Réouvrir cette requête',
'Portal:Button:CloseTicket' => 'Clôre cette requête',
'Portal:Button:UpdateRequest' => 'Mettre à jour la requête',
'Portal:EnterYourCommentsOnTicket' => 'Vos commentaires à propos du traitement de cette requête:',
'Portal:ErrorNoContactForThisUser' => 'Erreur: l\'utilisateur courant n\'est pas associé à une Personne/Contact. Contactez votre administrateur.',
'Portal:Attachments' => 'Pièces jointes',

View File

@@ -715,10 +715,14 @@ Akció kiváltó okhoz rendelésekor kap egy sorszámot , amely meghatározza az
'Portal:Title' => 'iTop felhasználói portál',
'Portal:Refresh' => 'Frissítés',
'Portal:Back' => 'Vissza',
'Portal:WelcomeUserOrg' => 'Welcome %1$s, from %2$s',
'Portal:ShowOngoing' => 'Show open requests',
'Portal:ShowClosed' => 'Show closed requests',
'Portal:CreateNewRequest' => 'Új kérés létrehozása',
'Portal:ChangeMyPassword' => 'Jelszó változtatás',
'Portal:Disconnect' => 'Kilépés',
'Portal:OpenRequests' => 'Nyitott kéréseim',
'Portal:ClosedRequests' => 'My closed requests',
'Portal:ResolvedRequests' => 'Megoldott kéréseim',
'Portal:SelectService' => 'Válasszon szolgáltatást a katalógusból:',
'Portal:PleaseSelectOneService' => 'Kérem válasszon egy szolgáltatást',
@@ -727,7 +731,10 @@ Akció kiváltó okhoz rendelésekor kap egy sorszámot , amely meghatározza az
'Portal:DescriptionOfTheRequest' => 'Adja meg a kérés leírásást:',
'Portal:TitleRequestDetailsFor_Request' => '%1$s kérés részletei:',
'Portal:NoOpenRequest' => 'A kategóriához nem tartozik nyitott kérés.',
'Portal:NoClosedRequest' => 'No request in this category',
'Portal:Button:ReopenTicket' => 'Reopen this ticket',
'Portal:Button:CloseTicket' => 'Hibajegy lezárása',
'Portal:Button:UpdateRequest' => 'Update the request',
'Portal:EnterYourCommentsOnTicket' => 'Adjon megjegyzést a megoldáshoz:',
'Portal:ErrorNoContactForThisUser' => 'Hiba: az aktuális felhasználó nem tartozik egyetlen Kapcsolattartóhoz / Szemályhez sem. Kérem vegye felk a kapcsolatot az adminisztrátorral.',
'Portal:Attachments' => 'Csatolmányok',

File diff suppressed because it is too large Load Diff

View File

@@ -880,10 +880,14 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Portal:Title' => 'iTopユーザポータル', // 'iTop user portal',
'Portal:Refresh' => '更新', // 'Refresh',
'Portal:Back' => '戻る', // 'Back',
'Portal:WelcomeUserOrg' => 'Welcome %1$s, from %2$s',
'Portal:ShowOngoing' => 'Show open requests',
'Portal:ShowClosed' => 'Show closed requests',
'Portal:CreateNewRequest' => '新規リクエストを生成する', // 'Create a new request',
'Portal:ChangeMyPassword' => 'パスワードを変更する', // 'Change my password',
'Portal:Disconnect' => '切断する', // 'Disconnect',
'Portal:OpenRequests' => '発行済みリクエスト', // 'My open requests',
'Portal:ClosedRequests' => 'My closed requests',
'Portal:ResolvedRequests' => '解決済みリクエスト', // 'My resolved requests',
'Portal:SelectService' => 'カタログからサービスを選択してください:', // 'Select a service from the catalog:',
'Portal:PleaseSelectOneService' => 'サービスを1つ選んでください', // 'Please select one service',
@@ -892,7 +896,10 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Portal:DescriptionOfTheRequest' => 'あなたのリクエストの詳細を記入してください:', // 'Enter the description of your request:',
'Portal:TitleRequestDetailsFor_Request' => 'リクエスト%1$sの詳細', // Details for request %1$s:',
'Portal:NoOpenRequest' => '本カテゴリにリクエストはありません', // 'No request in this category.',
'Portal:NoClosedRequest' => 'No request in this category',
'Portal:Button:ReopenTicket' => 'Reopen this ticket',
'Portal:Button:CloseTicket' => '本チケットを閉じます。', // 'Close this ticket',
'Portal:Button:UpdateRequest' => 'Update the request',
'Portal:EnterYourCommentsOnTicket' => '本チケットの解決について、コメントを入力してください。', // 'Enter your comments about the resolution of this ticket:',
'Portal:ErrorNoContactForThisUser' => 'エラー:現在のユーザはコンタクト/人物に関連づけられていません。管理者に問い合わせてください。', // 'Error: the current user is not associated with a Contact/Person. Please contact your administrator.',
'Portal:Attachments' => '添付', // 'Attachments',

View File

@@ -718,10 +718,14 @@ When associated with a trigger, each action is given an "order" number, specifyi
'Portal:Title' => 'Portal do usuário',
'Portal:Refresh' => 'Atualizar',
'Portal:Back' => 'Voltar',
'Portal:WelcomeUserOrg' => 'Welcome %1$s, from %2$s',
'Portal:ShowOngoing' => 'Show open requests',
'Portal:ShowClosed' => 'Show closed requests',
'Portal:CreateNewRequest' => 'Criar uma nova requisição',
'Portal:ChangeMyPassword' => 'Alterar minha senha',
'Portal:Disconnect' => 'Sair',
'Portal:OpenRequests' => 'Minhas requisições abertas',
'Portal:ClosedRequests' => 'My closed requests',
'Portal:ResolvedRequests' => 'Minhas requisições resolvidas',
'Portal:SelectService' => 'Selecione um serviço do catálogo:',
'Portal:PleaseSelectOneService' => 'Por favor, selecione um serviço',
@@ -730,7 +734,10 @@ When associated with a trigger, each action is given an "order" number, specifyi
'Portal:DescriptionOfTheRequest' => 'Digite a descrição de sua solicitação:',
'Portal:TitleRequestDetailsFor_Request' => 'Detalhes para requisição %1$s:',
'Portal:NoOpenRequest' => 'Nenhuma requisição neste categoria.',
'Portal:NoClosedRequest' => 'Nenhuma requisição neste categoria.',
'Portal:Button:ReopenTicket' => 'Reopen this ticket',
'Portal:Button:CloseTicket' => 'Fechar este ticket',
'Portal:Button:UpdateRequest' => 'Update the request',
'Portal:EnterYourCommentsOnTicket' => 'Digite os seus comentários sobre a resolução deste incidente:',
'Portal:ErrorNoContactForThisUser' => 'Erro: o usuátio atual não está associado com um contato/pessoa. Por favor, contate o administrador.',
'Portal:Attachments' => 'Anexos',

View File

@@ -848,10 +848,14 @@ Dict::Add('RU RU', 'Russian', 'Русский', array(
'Portal:Title' => 'Пользовательский iTop портал',
'Portal:Refresh' => 'Обновить',
'Portal:Back' => 'Назад',
'Portal:WelcomeUserOrg' => 'Welcome %1$s, from %2$s',
'Portal:ShowOngoing' => 'Show open requests',
'Portal:ShowClosed' => 'Show closed requests',
'Portal:CreateNewRequest' => 'Создать новый запрос',
'Portal:ChangeMyPassword' => 'Изменить мой пароль',
'Portal:Disconnect' => 'Отключить',
'Portal:OpenRequests' => 'Мои открытые запросы',
'Portal:ClosedRequests' => 'My closed requests',
'Portal:ResolvedRequests' => 'Мои решённые запросы',
'Portal:SelectService' => 'Выбери сервис из каталога:',
'Portal:PleaseSelectOneService' => 'Необходимо выбрать хотя-бы один сервис',
@@ -860,7 +864,10 @@ Dict::Add('RU RU', 'Russian', 'Русский', array(
'Portal:DescriptionOfTheRequest' => 'Введи описание запроса:',
'Portal:TitleRequestDetailsFor_Request' => 'Подробности запроса %1$s:',
'Portal:NoOpenRequest' => 'Нет запросов в этой категории.',
'Portal:NoClosedRequest' => 'No request in this category',
'Portal:Button:ReopenTicket' => 'Reopen this ticket',
'Portal:Button:CloseTicket' => 'Закрыть этот "тикет"',
'Portal:Button:UpdateRequest' => 'Update the request',
'Portal:EnterYourCommentsOnTicket' => 'Введите ваши каментарии по решению этого "тикета":',
'Portal:ErrorNoContactForThisUser' => 'Ошибка: текющий пользователь не ассоциирован с Контактом/Человеком. Пожалуйста свяжитесь с вашим администратором.',

View File

@@ -847,10 +847,14 @@ Tetikleme gerçekleştiriğinde işlemler tanımlanan sıra numarası ile gerçe
'Portal:Title' => 'iTop Kullanıcı Portalı',
'Portal:Refresh' => 'Yenile',
'Portal:Back' => 'Geri',
'Portal:WelcomeUserOrg' => 'Welcome %1$s, from %2$s',
'Portal:ShowOngoing' => 'Show open requests',
'Portal:ShowClosed' => 'Show closed requests',
'Portal:CreateNewRequest' => 'Yeni istek yarat',
'Portal:ChangeMyPassword' => 'Şifre değiştir',
'Portal:Disconnect' => ıkış',
'Portal:OpenRequests' => 'Açık isteklerim',
'Portal:ClosedRequests' => 'My closed requests',
'Portal:ResolvedRequests' => 'Çözdüğüm istekler',
'Portal:SelectService' => 'Kataloğdan servis seçiniz:',
'Portal:PleaseSelectOneService' => 'Sevis seçiniz',
@@ -859,7 +863,10 @@ Tetikleme gerçekleştiriğinde işlemler tanımlanan sıra numarası ile gerçe
'Portal:DescriptionOfTheRequest' => 'İstek tanımlaması:',
'Portal:TitleRequestDetailsFor_Request' => 'İsteğin detayı %1$s:',
'Portal:NoOpenRequest' => 'Bu kategoride istek yok.',
'Portal:NoClosedRequest' => 'Bu kategoride istek yok.',
'Portal:Button:ReopenTicket' => 'Reopen this ticket',
'Portal:Button:CloseTicket' => 'Çağrıyı kapat',
'Portal:Button:UpdateRequest' => 'Update the request',
'Portal:EnterYourCommentsOnTicket' => 'İsteğin çözümüne yönelik açıklamalar:',
'Portal:ErrorNoContactForThisUser' => 'Hata: mevcut kullanıcının irtibat bilgisi yok. Sistem yöneticisi ile irtibata geçiniz.',

View File

@@ -846,10 +846,14 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Portal:Title' => 'iTop 用户门户',
'Portal:Refresh' => '刷新',
'Portal:Back' => '返回',
'Portal:WelcomeUserOrg' => 'Welcome %1$s, from %2$s',
'Portal:ShowOngoing' => 'Show open requests',
'Portal:ShowClosed' => 'Show closed requests',
'Portal:CreateNewRequest' => '创建一个新的请求',
'Portal:ChangeMyPassword' => '改变我的密码',
'Portal:Disconnect' => '断开',
'Portal:OpenRequests' => '我的待解决的请求',
'Portal:ClosedRequests' => 'My closed requests',
'Portal:ResolvedRequests' => '我的已解决的请求',
'Portal:SelectService' => '从类目中选择一个服务:',
'Portal:PleaseSelectOneService' => '请选择一个服务',
@@ -858,7 +862,9 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Portal:DescriptionOfTheRequest' => '输入您的请求描述:',
'Portal:TitleRequestDetailsFor_Request' => '请求明细内容 %1$s:',
'Portal:NoOpenRequest' => '该类目中没有请求.',
'Portal:NoClosedRequest' => 'No request in this category',
'Portal:Button:CloseTicket' => '关闭这个单据',
'Portal:Button:UpdateRequest' => 'Update the request',
'Portal:EnterYourCommentsOnTicket' => '输入您对于该单据解决情况的评述:',
'Portal:ErrorNoContactForThisUser' => '错误: 当前用户没有和一个联系人或人员关联. 请联系您的系统管理员.',

View File

@@ -378,7 +378,7 @@ try
$sTargetState = utils::ReadParam('target_state', '');
$iTransactionId = utils::ReadParam('transaction_id', '');
$oObj->Set(MetaModel::GetStateAttributeCode($sClass), $sTargetState);
cmdbAbstractObject::DisplayCreationForm($oPage, $sClass, $oObj, array(), array('action' => utils::GetAbsoluteUrlAppRoot().'pages/UI.php', 'transcation_id' => $iTransactionId));
cmdbAbstractObject::DisplayCreationForm($oPage, $sClass, $oObj, array(), array('action' => utils::GetAbsoluteUrlAppRoot().'pages/UI.php', 'transaction_id' => $iTransactionId));
break;
// DisplayBlock