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; return $sPreviousTab;
} }
public function GetCurrentTab()
{
return $this->m_sCurrentTab;
}
/** /**
* Echoes the content of the whole page * Echoes the content of the whole page
* @return void * @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 * 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 * This is useful to add hidden content, DIVs or FORMs that should not

View File

@@ -834,6 +834,11 @@ EOF
return $sPreviousTab; return $sPreviousTab;
} }
public function GetCurrentTab()
{
return $this->m_sCurrentTab;
}
/** /**
* Make the given tab the active one, as if it were clicked * Make the given tab the active one, as if it were clicked
* DOES NOT WORK: apparently in the *old* version of jquery * DOES NOT WORK: apparently in the *old* version of jquery
@@ -931,11 +936,18 @@ EOF
public function end_capture($offset) public function end_capture($offset)
{ {
if (is_array($offset)) if (is_array($offset))
{
if (isset($this->m_aTabs[$offset['tc']][$offset['tab']]))
{ {
$sCaptured = substr($this->m_aTabs[$offset['tc']][$offset['tab']], $offset['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']); $this->m_aTabs[$offset['tc']][$offset['tab']] = substr($this->m_aTabs[$offset['tc']][$offset['tab']], 0, $offset['offset']);
} }
else else
{
$sCaptured = '';
}
}
else
{ {
$sCaptured = parent::end_capture($offset); $sCaptured = parent::end_capture($offset);
} }

View File

@@ -147,9 +147,18 @@ EOF
$this->add_script( $this->add_script(
<<<EOF <<<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) if (!bResult)
{ {
alert(sMessage); alert(sMessage);
@@ -804,12 +813,12 @@ EOF
} }
} }
public function WizardCheckSelectionOnSubmit($sMessageIfNoSelection) public function WizardCheckSelectionOnSubmit($sMessageIfNoSelection, $sInputName = '')
{ {
$this->add_ready_script( $this->add_ready_script(
<<<EOF <<<EOF
$('#{$this->m_sWizardId}').submit(function() { $('#{$this->m_sWizardId}').submit(function() {
return CheckSelection('$sMessageIfNoSelection'); return CheckSelection('$sMessageIfNoSelection', '$sInputName');
}); });
EOF EOF
); );

View File

@@ -35,7 +35,15 @@ class DisplayTemplate
public function __construct($sTemplate) 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; $this->m_sTemplate = $sTemplate;
} }
@@ -208,7 +216,6 @@ class DisplayTemplate
$oBlock->RenderContent($oPage); $oBlock->RenderContent($oPage);
break; break;
case 'itopblock': // No longer used, handled by DisplayBlock::FromTemplate see above case 'itopblock': // No longer used, handled by DisplayBlock::FromTemplate see above
$oPage->add("<!-- Application Error: should be handled by DisplayBlock::FromTemplate -->"); $oPage->add("<!-- Application Error: should be handled by DisplayBlock::FromTemplate -->");
break; break;
@@ -272,6 +279,7 @@ class ObjectDetailsTemplate extends DisplayTemplate
public function Render(WebPage $oPage, $aParams = array(), $bEditMode = false) public function Render(WebPage $oPage, $aParams = array(), $bEditMode = false)
{ {
$sStateAttCode = MetaModel :: GetStateAttributeCode(get_class($this->m_oObj));
$aTemplateFields = array(); $aTemplateFields = array();
preg_match_all('/\\$this->([a-z0-9_]+)\\$/', $this->m_sTemplate, $aMatches); preg_match_all('/\\$this->([a-z0-9_]+)\\$/', $this->m_sTemplate, $aMatches);
$aTemplateFields = $aMatches[1]; $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 $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) if ($iFlags & OPT_ATT_HIDDEN)
{ {
$aParams['this->label('.$sAttCode.')'] = ''; $aParams['this->label('.$sAttCode.')'] = '';
@@ -313,7 +326,6 @@ class ObjectDetailsTemplate extends DisplayTemplate
{ {
if ($bEditMode && ($iFlags & (OPT_ATT_READONLY|OPT_ATT_SLAVE))) if ($bEditMode && ($iFlags & (OPT_ATT_READONLY|OPT_ATT_SLAVE)))
{ {
// Check if the attribute is not read-only because of a synchro... // Check if the attribute is not read-only because of a synchro...
$aReasons = array(); $aReasons = array();
$sSynchroIcon = ''; $sSynchroIcon = '';
@@ -336,7 +348,6 @@ class ObjectDetailsTemplate extends DisplayTemplate
$aParams['this->comments('.$sAttCode.')'] = $sSynchroIcon; $aParams['this->comments('.$sAttCode.')'] = $sSynchroIcon;
} }
if ($bEditMode && !($iFlags & OPT_ATT_READONLY)) //TODO: check the data synchro status... 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, $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(); //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:Title' => 'iTop-Benutzerportal',
'Portal:Refresh' => 'Neu laden', 'Portal:Refresh' => 'Neu laden',
'Portal:Back' => 'Zurück', '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:CreateNewRequest' => 'Einen neuen Request erstellen',
'Portal:ChangeMyPassword' => 'Mein Passwort ändern', 'Portal:ChangeMyPassword' => 'Mein Passwort ändern',
'Portal:Disconnect' => 'Disconnect', 'Portal:Disconnect' => 'Disconnect',
'Portal:OpenRequests' => 'Meine offenen Requests', 'Portal:OpenRequests' => 'Meine offenen Requests',
'Portal:ClosedRequests' => 'My closed requests',
'Portal:ResolvedRequests' => 'Meine gelösten Requests', 'Portal:ResolvedRequests' => 'Meine gelösten Requests',
'Portal:SelectService' => 'Wählen Sie einen Service aus dem Katalog:', 'Portal:SelectService' => 'Wählen Sie einen Service aus dem Katalog:',
'Portal:PleaseSelectOneService' => 'Bitte wählen Sie einen Service', '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:DescriptionOfTheRequest' => 'Geben Sie die Beschreibung Ihres Requests ein:',
'Portal:TitleRequestDetailsFor_Request' => 'Details für Request %1$s:', 'Portal:TitleRequestDetailsFor_Request' => 'Details für Request %1$s:',
'Portal:NoOpenRequest' => 'Keinen Request in dieser Kategorie', '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:CloseTicket' => 'Dieses Ticket schließen',
'Portal:Button:UpdateRequest' => 'Update the request',
'Portal:EnterYourCommentsOnTicket' => 'Geben Sie einen Kommentar zur Lösung dieses Tickets ein:', '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.', '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:Title' => 'iTop user portal',
'Portal:Refresh' => 'Refresh', 'Portal:Refresh' => 'Refresh',
'Portal:Back' => 'Back', '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:CreateNewRequest' => 'Create a new request',
'Portal:ChangeMyPassword' => 'Change my password', 'Portal:ChangeMyPassword' => 'Change my password',
'Portal:Disconnect' => 'Disconnect', 'Portal:Disconnect' => 'Disconnect',
'Portal:OpenRequests' => 'My open requests', 'Portal:OpenRequests' => 'My open requests',
'Portal:ClosedRequests' => 'My closed requests',
'Portal:ResolvedRequests' => 'My resolved requests', 'Portal:ResolvedRequests' => 'My resolved requests',
'Portal:SelectService' => 'Select a service from the catalog:', 'Portal:SelectService' => 'Select a service from the catalog:',
'Portal:PleaseSelectOneService' => 'Please select one service', '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:PleaseSelectAServiceSubCategory' => 'Please select one sub-category',
'Portal:DescriptionOfTheRequest' => 'Enter the description of your request:', 'Portal:DescriptionOfTheRequest' => 'Enter the description of your request:',
'Portal:TitleRequestDetailsFor_Request' => 'Details for request %1$s:', '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:CloseTicket' => 'Close this ticket',
'Portal:Button:UpdateRequest' => 'Update the request',
'Portal:EnterYourCommentsOnTicket' => 'Enter your comments about the resolution of this ticket:', '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:ErrorNoContactForThisUser' => 'Error: the current user is not associated with a Contact/Person. Please contact your administrator.',
'Portal:Attachments' => 'Attachments', '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:Title' => 'Portail utilisateur iTop',
'Portal:Refresh' => 'Rafraîchir', 'Portal:Refresh' => 'Rafraîchir',
'Portal:Back' => 'Retour', '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:CreateNewRequest' => 'Créer une nouvelle requête',
'Portal:ChangeMyPassword' => 'Changer mon mot de passe', 'Portal:ChangeMyPassword' => 'Changer mon mot de passe',
'Portal:Disconnect' => 'Déconnexion', 'Portal:Disconnect' => 'Déconnexion',
'Portal:OpenRequests' => 'Mes requêtes en cours', 'Portal:OpenRequests' => 'Mes requêtes en cours',
'Portal:ClosedRequests' => 'Mes requêtes fermées',
'Portal:ResolvedRequests' => 'Mes requêtes résolues', 'Portal:ResolvedRequests' => 'Mes requêtes résolues',
'Portal:SelectService' => 'Choisissez un service dans le catalogue:', 'Portal:SelectService' => 'Choisissez un service dans le catalogue:',
'Portal:PleaseSelectOneService' => 'Veuillez choisir un service', '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:DescriptionOfTheRequest' => 'Entrez la description de votre requête:',
'Portal:TitleRequestDetailsFor_Request' => 'Détails de votre requête %1$s:', 'Portal:TitleRequestDetailsFor_Request' => 'Détails de votre requête %1$s:',
'Portal:NoOpenRequest' => 'Aucune requête.', '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: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: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:ErrorNoContactForThisUser' => 'Erreur: l\'utilisateur courant n\'est pas associé à une Personne/Contact. Contactez votre administrateur.',
'Portal:Attachments' => 'Pièces jointes', '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:Title' => 'iTop felhasználói portál',
'Portal:Refresh' => 'Frissítés', 'Portal:Refresh' => 'Frissítés',
'Portal:Back' => 'Vissza', '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:CreateNewRequest' => 'Új kérés létrehozása',
'Portal:ChangeMyPassword' => 'Jelszó változtatás', 'Portal:ChangeMyPassword' => 'Jelszó változtatás',
'Portal:Disconnect' => 'Kilépés', 'Portal:Disconnect' => 'Kilépés',
'Portal:OpenRequests' => 'Nyitott kéréseim', 'Portal:OpenRequests' => 'Nyitott kéréseim',
'Portal:ClosedRequests' => 'My closed requests',
'Portal:ResolvedRequests' => 'Megoldott kéréseim', 'Portal:ResolvedRequests' => 'Megoldott kéréseim',
'Portal:SelectService' => 'Válasszon szolgáltatást a katalógusból:', 'Portal:SelectService' => 'Válasszon szolgáltatást a katalógusból:',
'Portal:PleaseSelectOneService' => 'Kérem válasszon egy szolgáltatást', '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:DescriptionOfTheRequest' => 'Adja meg a kérés leírásást:',
'Portal:TitleRequestDetailsFor_Request' => '%1$s kérés részletei:', 'Portal:TitleRequestDetailsFor_Request' => '%1$s kérés részletei:',
'Portal:NoOpenRequest' => 'A kategóriához nem tartozik nyitott kérés.', '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:CloseTicket' => 'Hibajegy lezárása',
'Portal:Button:UpdateRequest' => 'Update the request',
'Portal:EnterYourCommentsOnTicket' => 'Adjon megjegyzést a megoldáshoz:', '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: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', 'Portal:Attachments' => 'Csatolmányok',

View File

@@ -720,10 +720,14 @@ Quando è associata a un trigger, ad ogni azione è assegnato un numero "ordine"
'Portal:Title' => 'Portale Utente iTop', 'Portal:Title' => 'Portale Utente iTop',
'Portal:Refresh' => 'Ricarica', 'Portal:Refresh' => 'Ricarica',
'Portal:Back' => 'Indietro', 'Portal:Back' => 'Indietro',
'Portal:WelcomeUserOrg' => 'Welcome %1$s, from %2$s',
'Portal:ShowOngoing' => 'Show open requests',
'Portal:ShowClosed' => 'Show closed requests',
'Portal:CreateNewRequest' => 'Crea una nuova richiesta', 'Portal:CreateNewRequest' => 'Crea una nuova richiesta',
'Portal:ChangeMyPassword' => 'Cambia la mia password', 'Portal:ChangeMyPassword' => 'Cambia la mia password',
'Portal:Disconnect' => 'Disconnetti', 'Portal:Disconnect' => 'Disconnetti',
'Portal:OpenRequests' => 'Le mie richieste aperte', 'Portal:OpenRequests' => 'Le mie richieste aperte',
'Portal:ClosedRequests' => 'My closed requests',
'Portal:ResolvedRequests' => 'Le mie richieste risolte', 'Portal:ResolvedRequests' => 'Le mie richieste risolte',
'Portal:SelectService' => 'Seleziona un servizio dal catalogo:', 'Portal:SelectService' => 'Seleziona un servizio dal catalogo:',
'Portal:PleaseSelectOneService' => 'Si prega di selezionare un servizio', 'Portal:PleaseSelectOneService' => 'Si prega di selezionare un servizio',
@@ -732,7 +736,10 @@ Quando è associata a un trigger, ad ogni azione è assegnato un numero "ordine"
'Portal:DescriptionOfTheRequest' => 'Inserisci la descrizione della tua richiesta:', 'Portal:DescriptionOfTheRequest' => 'Inserisci la descrizione della tua richiesta:',
'Portal:TitleRequestDetailsFor_Request' => 'Dettagli per la richiesta %1$s:', 'Portal:TitleRequestDetailsFor_Request' => 'Dettagli per la richiesta %1$s:',
'Portal:NoOpenRequest' => 'Nessuna richiesta in questa categoria.', 'Portal:NoOpenRequest' => 'Nessuna richiesta in questa categoria.',
'Portal:NoClosedRequest' => 'Nessuna richiesta in questa categoria.',
'Portal:Button:ReopenTicket' => 'Reopen this ticket',
'Portal:Button:CloseTicket' => 'Chiudi questo ticket', 'Portal:Button:CloseTicket' => 'Chiudi questo ticket',
'Portal:Button:UpdateRequest' => 'Update the request',
'Portal:EnterYourCommentsOnTicket' => 'Inserisci il tuo commento sulla risoluzione di questo ticket:', 'Portal:EnterYourCommentsOnTicket' => 'Inserisci il tuo commento sulla risoluzione di questo ticket:',
'Portal:ErrorNoContactForThisUser' => 'Errore: l\'utente corrente non è associato ad un Contatto/Persona. Si prega di contattare l\'amministratore.', 'Portal:ErrorNoContactForThisUser' => 'Errore: l\'utente corrente non è associato ad un Contatto/Persona. Si prega di contattare l\'amministratore.',
'Portal:Attachments' => 'Allegati', 'Portal:Attachments' => 'Allegati',

View File

@@ -880,10 +880,14 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Portal:Title' => 'iTopユーザポータル', // 'iTop user portal', 'Portal:Title' => 'iTopユーザポータル', // 'iTop user portal',
'Portal:Refresh' => '更新', // 'Refresh', 'Portal:Refresh' => '更新', // 'Refresh',
'Portal:Back' => '戻る', // 'Back', '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:CreateNewRequest' => '新規リクエストを生成する', // 'Create a new request',
'Portal:ChangeMyPassword' => 'パスワードを変更する', // 'Change my password', 'Portal:ChangeMyPassword' => 'パスワードを変更する', // 'Change my password',
'Portal:Disconnect' => '切断する', // 'Disconnect', 'Portal:Disconnect' => '切断する', // 'Disconnect',
'Portal:OpenRequests' => '発行済みリクエスト', // 'My open requests', 'Portal:OpenRequests' => '発行済みリクエスト', // 'My open requests',
'Portal:ClosedRequests' => 'My closed requests',
'Portal:ResolvedRequests' => '解決済みリクエスト', // 'My resolved requests', 'Portal:ResolvedRequests' => '解決済みリクエスト', // 'My resolved requests',
'Portal:SelectService' => 'カタログからサービスを選択してください:', // 'Select a service from the catalog:', 'Portal:SelectService' => 'カタログからサービスを選択してください:', // 'Select a service from the catalog:',
'Portal:PleaseSelectOneService' => 'サービスを1つ選んでください', // 'Please select one service', '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:DescriptionOfTheRequest' => 'あなたのリクエストの詳細を記入してください:', // 'Enter the description of your request:',
'Portal:TitleRequestDetailsFor_Request' => 'リクエスト%1$sの詳細', // Details for request %1$s:', 'Portal:TitleRequestDetailsFor_Request' => 'リクエスト%1$sの詳細', // 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:CloseTicket' => '本チケットを閉じます。', // 'Close this ticket',
'Portal:Button:UpdateRequest' => 'Update the request',
'Portal:EnterYourCommentsOnTicket' => '本チケットの解決について、コメントを入力してください。', // 'Enter your comments about the resolution of this ticket:', '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:ErrorNoContactForThisUser' => 'エラー:現在のユーザはコンタクト/人物に関連づけられていません。管理者に問い合わせてください。', // 'Error: the current user is not associated with a Contact/Person. Please contact your administrator.',
'Portal:Attachments' => '添付', // 'Attachments', '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:Title' => 'Portal do usuário',
'Portal:Refresh' => 'Atualizar', 'Portal:Refresh' => 'Atualizar',
'Portal:Back' => 'Voltar', '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:CreateNewRequest' => 'Criar uma nova requisição',
'Portal:ChangeMyPassword' => 'Alterar minha senha', 'Portal:ChangeMyPassword' => 'Alterar minha senha',
'Portal:Disconnect' => 'Sair', 'Portal:Disconnect' => 'Sair',
'Portal:OpenRequests' => 'Minhas requisições abertas', 'Portal:OpenRequests' => 'Minhas requisições abertas',
'Portal:ClosedRequests' => 'My closed requests',
'Portal:ResolvedRequests' => 'Minhas requisições resolvidas', 'Portal:ResolvedRequests' => 'Minhas requisições resolvidas',
'Portal:SelectService' => 'Selecione um serviço do catálogo:', 'Portal:SelectService' => 'Selecione um serviço do catálogo:',
'Portal:PleaseSelectOneService' => 'Por favor, selecione um serviço', '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:DescriptionOfTheRequest' => 'Digite a descrição de sua solicitação:',
'Portal:TitleRequestDetailsFor_Request' => 'Detalhes para requisição %1$s:', 'Portal:TitleRequestDetailsFor_Request' => 'Detalhes para requisição %1$s:',
'Portal:NoOpenRequest' => 'Nenhuma requisição neste categoria.', '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:CloseTicket' => 'Fechar este ticket',
'Portal:Button:UpdateRequest' => 'Update the request',
'Portal:EnterYourCommentsOnTicket' => 'Digite os seus comentários sobre a resolução deste incidente:', '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:ErrorNoContactForThisUser' => 'Erro: o usuátio atual não está associado com um contato/pessoa. Por favor, contate o administrador.',
'Portal:Attachments' => 'Anexos', 'Portal:Attachments' => 'Anexos',

View File

@@ -848,10 +848,14 @@ Dict::Add('RU RU', 'Russian', 'Русский', array(
'Portal:Title' => 'Пользовательский iTop портал', 'Portal:Title' => 'Пользовательский iTop портал',
'Portal:Refresh' => 'Обновить', 'Portal:Refresh' => 'Обновить',
'Portal:Back' => 'Назад', 'Portal:Back' => 'Назад',
'Portal:WelcomeUserOrg' => 'Welcome %1$s, from %2$s',
'Portal:ShowOngoing' => 'Show open requests',
'Portal:ShowClosed' => 'Show closed requests',
'Portal:CreateNewRequest' => 'Создать новый запрос', 'Portal:CreateNewRequest' => 'Создать новый запрос',
'Portal:ChangeMyPassword' => 'Изменить мой пароль', 'Portal:ChangeMyPassword' => 'Изменить мой пароль',
'Portal:Disconnect' => 'Отключить', 'Portal:Disconnect' => 'Отключить',
'Portal:OpenRequests' => 'Мои открытые запросы', 'Portal:OpenRequests' => 'Мои открытые запросы',
'Portal:ClosedRequests' => 'My closed requests',
'Portal:ResolvedRequests' => 'Мои решённые запросы', 'Portal:ResolvedRequests' => 'Мои решённые запросы',
'Portal:SelectService' => 'Выбери сервис из каталога:', 'Portal:SelectService' => 'Выбери сервис из каталога:',
'Portal:PleaseSelectOneService' => 'Необходимо выбрать хотя-бы один сервис', 'Portal:PleaseSelectOneService' => 'Необходимо выбрать хотя-бы один сервис',
@@ -860,7 +864,10 @@ Dict::Add('RU RU', 'Russian', 'Русский', array(
'Portal:DescriptionOfTheRequest' => 'Введи описание запроса:', 'Portal:DescriptionOfTheRequest' => 'Введи описание запроса:',
'Portal:TitleRequestDetailsFor_Request' => 'Подробности запроса %1$s:', 'Portal:TitleRequestDetailsFor_Request' => 'Подробности запроса %1$s:',
'Portal:NoOpenRequest' => 'Нет запросов в этой категории.', 'Portal:NoOpenRequest' => 'Нет запросов в этой категории.',
'Portal:NoClosedRequest' => 'No request in this category',
'Portal:Button:ReopenTicket' => 'Reopen this ticket',
'Portal:Button:CloseTicket' => 'Закрыть этот "тикет"', 'Portal:Button:CloseTicket' => 'Закрыть этот "тикет"',
'Portal:Button:UpdateRequest' => 'Update the request',
'Portal:EnterYourCommentsOnTicket' => 'Введите ваши каментарии по решению этого "тикета":', 'Portal:EnterYourCommentsOnTicket' => 'Введите ваши каментарии по решению этого "тикета":',
'Portal:ErrorNoContactForThisUser' => 'Ошибка: текющий пользователь не ассоциирован с Контактом/Человеком. Пожалуйста свяжитесь с вашим администратором.', '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:Title' => 'iTop Kullanıcı Portalı',
'Portal:Refresh' => 'Yenile', 'Portal:Refresh' => 'Yenile',
'Portal:Back' => 'Geri', '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:CreateNewRequest' => 'Yeni istek yarat',
'Portal:ChangeMyPassword' => 'Şifre değiştir', 'Portal:ChangeMyPassword' => 'Şifre değiştir',
'Portal:Disconnect' => ıkış', 'Portal:Disconnect' => ıkış',
'Portal:OpenRequests' => 'Açık isteklerim', 'Portal:OpenRequests' => 'Açık isteklerim',
'Portal:ClosedRequests' => 'My closed requests',
'Portal:ResolvedRequests' => 'Çözdüğüm istekler', 'Portal:ResolvedRequests' => 'Çözdüğüm istekler',
'Portal:SelectService' => 'Kataloğdan servis seçiniz:', 'Portal:SelectService' => 'Kataloğdan servis seçiniz:',
'Portal:PleaseSelectOneService' => 'Sevis 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:DescriptionOfTheRequest' => 'İstek tanımlaması:',
'Portal:TitleRequestDetailsFor_Request' => 'İsteğin detayı %1$s:', 'Portal:TitleRequestDetailsFor_Request' => 'İsteğin detayı %1$s:',
'Portal:NoOpenRequest' => 'Bu kategoride istek yok.', '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:CloseTicket' => 'Çağrıyı kapat',
'Portal:Button:UpdateRequest' => 'Update the request',
'Portal:EnterYourCommentsOnTicket' => 'İsteğin çözümüne yönelik açıklamalar:', '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.', '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:Title' => 'iTop 用户门户',
'Portal:Refresh' => '刷新', 'Portal:Refresh' => '刷新',
'Portal:Back' => '返回', 'Portal:Back' => '返回',
'Portal:WelcomeUserOrg' => 'Welcome %1$s, from %2$s',
'Portal:ShowOngoing' => 'Show open requests',
'Portal:ShowClosed' => 'Show closed requests',
'Portal:CreateNewRequest' => '创建一个新的请求', 'Portal:CreateNewRequest' => '创建一个新的请求',
'Portal:ChangeMyPassword' => '改变我的密码', 'Portal:ChangeMyPassword' => '改变我的密码',
'Portal:Disconnect' => '断开', 'Portal:Disconnect' => '断开',
'Portal:OpenRequests' => '我的待解决的请求', 'Portal:OpenRequests' => '我的待解决的请求',
'Portal:ClosedRequests' => 'My closed requests',
'Portal:ResolvedRequests' => '我的已解决的请求', 'Portal:ResolvedRequests' => '我的已解决的请求',
'Portal:SelectService' => '从类目中选择一个服务:', 'Portal:SelectService' => '从类目中选择一个服务:',
'Portal:PleaseSelectOneService' => '请选择一个服务', 'Portal:PleaseSelectOneService' => '请选择一个服务',
@@ -858,7 +862,9 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Portal:DescriptionOfTheRequest' => '输入您的请求描述:', 'Portal:DescriptionOfTheRequest' => '输入您的请求描述:',
'Portal:TitleRequestDetailsFor_Request' => '请求明细内容 %1$s:', 'Portal:TitleRequestDetailsFor_Request' => '请求明细内容 %1$s:',
'Portal:NoOpenRequest' => '该类目中没有请求.', 'Portal:NoOpenRequest' => '该类目中没有请求.',
'Portal:NoClosedRequest' => 'No request in this category',
'Portal:Button:CloseTicket' => '关闭这个单据', 'Portal:Button:CloseTicket' => '关闭这个单据',
'Portal:Button:UpdateRequest' => 'Update the request',
'Portal:EnterYourCommentsOnTicket' => '输入您对于该单据解决情况的评述:', 'Portal:EnterYourCommentsOnTicket' => '输入您对于该单据解决情况的评述:',
'Portal:ErrorNoContactForThisUser' => '错误: 当前用户没有和一个联系人或人员关联. 请联系您的系统管理员.', 'Portal:ErrorNoContactForThisUser' => '错误: 当前用户没有和一个联系人或人员关联. 请联系您的系统管理员.',

View File

@@ -378,7 +378,7 @@ try
$sTargetState = utils::ReadParam('target_state', ''); $sTargetState = utils::ReadParam('target_state', '');
$iTransactionId = utils::ReadParam('transaction_id', ''); $iTransactionId = utils::ReadParam('transaction_id', '');
$oObj->Set(MetaModel::GetStateAttributeCode($sClass), $sTargetState); $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; break;
// DisplayBlock // DisplayBlock