diff --git a/datamodels/2.x/itop-portal-base/portal/src/Form/ObjectFormManager.php b/datamodels/2.x/itop-portal-base/portal/src/Form/ObjectFormManager.php index 071ad6e892..a2257168bc 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Form/ObjectFormManager.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Form/ObjectFormManager.php @@ -1172,7 +1172,7 @@ class ObjectFormManager extends FormManager { /** @var \Combodo\iTop\Portal\Helper\SessionMessageHelper $oSessionMessageHelper */ $oSessionMessageHelper = $this->oContainer->get('session_message_helper'); - $oSessionMessageHelper->AddMessage(uniqid(), Dict::Format('Brick:Portal:Object:Form:Message:ObjectSaved', $this->oObject->GetName()), SessionMessageHelper::ENUM_SEVERITY_OK); + $oSessionMessageHelper->AddMessage(uniqid(), Dict::Format('Brick:Portal:Object:Form:Message:ObjectSaved', $this->oObject->GetName()), SessionMessageHelper::ENUM_SEVERITY_OK, array('object_class' => $sObjectClass, 'object_id' => $this->oObject->GetKey())); } } catch (Exception $e) diff --git a/datamodels/2.x/itop-portal-base/portal/src/Helper/SessionMessageHelper.php b/datamodels/2.x/itop-portal-base/portal/src/Helper/SessionMessageHelper.php index 86ac97dc79..08435c8d99 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Helper/SessionMessageHelper.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Helper/SessionMessageHelper.php @@ -22,6 +22,7 @@ namespace Combodo\iTop\Portal\Helper; use ArrayIterator; use IteratorAggregate; use Symfony\Component\DependencyInjection\ContainerInterface; +use utils; /** * Class SessionMessageHelper @@ -65,9 +66,10 @@ class SessionMessageHelper implements IteratorAggregate * @param string $sId * @param string $sContent * @param string $sSeverity + * @param array $aMetadata An array of key => scalar value * @param int $iRank */ - public function AddMessage($sId, $sContent, $sSeverity = self::DEFAULT_SEVERITY, $iRank = 1) + public function AddMessage($sId, $sContent, $sSeverity = self::DEFAULT_SEVERITY, $aMetadata = array(), $iRank = 1) { $sKey = $this->GetMessagesKey(); if(!isset($_SESSION['obj_messages'][$sKey])) @@ -79,6 +81,7 @@ class SessionMessageHelper implements IteratorAggregate 'severity' => $sSeverity, 'rank' => $iRank, 'message' => $sContent, + 'metadata' => $aMetadata, ); } @@ -158,7 +161,13 @@ class SessionMessageHelper implements IteratorAggregate $sMsgClass .= 'success'; break; } - $aObjectMessages[] = array('css_classes' => $sMsgClass, 'message' => $aMessageData['message']); + + $sMsgMetadata = ''; + foreach ($aMessageData['metadata'] as $sMetadatumName => $sMetadatumValue) + { + $sMsgMetadata .= 'data-'.str_replace('_', '-', $sMetadatumName).'="'.utils::HtmlEntities($sMetadatumValue).'" '; + } + $aObjectMessages[] = array('css_classes' => $sMsgClass, 'message' => $aMessageData['message'], 'metadata' => $sMsgMetadata); $aRanks[] = $aMessageData['rank']; } unset($_SESSION['obj_messages'][$sMessageKey]); diff --git a/datamodels/2.x/itop-portal-base/portal/templates/layout.html.twig b/datamodels/2.x/itop-portal-base/portal/templates/layout.html.twig index a6f9fcef94..b32c527a6b 100644 --- a/datamodels/2.x/itop-portal-base/portal/templates/layout.html.twig +++ b/datamodels/2.x/itop-portal-base/portal/templates/layout.html.twig @@ -328,7 +328,7 @@
{% for aSessionMessage in app['session_message_helper'] %} -
+
{{ aSessionMessage['message'] }}