mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-23 18:48:51 +02:00
N°2313 - Markup extensibility: Add metadata on session messages in the end-users portal
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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]);
|
||||
|
||||
@@ -328,7 +328,7 @@
|
||||
<section class="row" id="session-messages">
|
||||
<div class="col-xs-12">
|
||||
{% for aSessionMessage in app['session_message_helper'] %}
|
||||
<div class="{{ aSessionMessage['css_classes'] }}">
|
||||
<div class="{{ aSessionMessage['css_classes'] }}" {{ aSessionMessage['metadata']|raw }}>
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="X"><span class="fas fa-times"></span></button>
|
||||
{{ aSessionMessage['message'] }}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user