mirror of
https://github.com/Combodo/iTop.git
synced 2026-05-18 06:48:50 +02:00
N°3700 - Restyle SessionMessage
This commit is contained in:
@@ -272,35 +272,7 @@ EOF
|
||||
}
|
||||
}
|
||||
$sMessageKey = get_class($this).'::'.$this->GetKey();
|
||||
if (array_key_exists('obj_messages', $_SESSION) && array_key_exists($sMessageKey,
|
||||
$_SESSION['obj_messages'])) {
|
||||
$aReadMessages = [];
|
||||
foreach ($_SESSION['obj_messages'][$sMessageKey] as $sMessageId => $aMessageData) {
|
||||
if (!in_array($aMessageData['message'], $aReadMessages)) {
|
||||
$aReadMessages[] = $aMessageData['message'];
|
||||
$aRanks[] = $aMessageData['rank'];
|
||||
switch ($aMessageData['severity']) {
|
||||
case 'info':
|
||||
$aMessages[] = AlertUIBlockFactory::MakeForInformation('', $aMessageData['message']);
|
||||
break;
|
||||
case 'ok':
|
||||
$aMessages[] = AlertUIBlockFactory::MakeForSuccess('', $aMessageData['message']);
|
||||
break;
|
||||
case 'warning':
|
||||
$aMessages[] = AlertUIBlockFactory::MakeForWarning('', $aMessageData['message']);
|
||||
break;
|
||||
case 'error':
|
||||
$aMessages[] = AlertUIBlockFactory::MakeForDanger('', $aMessageData['message']);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
unset($_SESSION['obj_messages'][$sMessageKey]);
|
||||
}
|
||||
array_multisort($aRanks, $aMessages);
|
||||
foreach ($aMessages as $oMessage) {
|
||||
$oPage->AddUiBlock($oMessage);
|
||||
}
|
||||
$oPage->AddSessionMessages($sMessageKey, $aRanks, $aMessages);
|
||||
}
|
||||
|
||||
if (!$oPage->IsPrintableVersion() && ($sMode === static::ENUM_OBJECT_MODE_VIEW))
|
||||
|
||||
66
pages/UI.php
66
pages/UI.php
@@ -22,12 +22,16 @@ use Combodo\iTop\Application\UI\Base\Component\Form\Form;
|
||||
use Combodo\iTop\Application\UI\Base\Component\GlobalSearch\GlobalSearchHelper;
|
||||
use Combodo\iTop\Application\UI\Base\Component\Input\InputUIBlockFactory;
|
||||
use Combodo\iTop\Application\UI\Base\Component\QuickCreate\QuickCreateHelper;
|
||||
use Combodo\iTop\Application\UI\Base\Component\Title\Title;
|
||||
use Combodo\iTop\Application\UI\Base\Component\Title\TitleUIBlockFactory;
|
||||
use Combodo\iTop\Application\UI\Base\Layout\PageContent\PageContentFactory;
|
||||
|
||||
/**
|
||||
* Displays a popup welcome message, once per session at maximum
|
||||
* until the user unchecks the "Display welcome at startup"
|
||||
*
|
||||
* @param WebPage $oP The current web page for the display
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function DisplayWelcomePopup(WebPage $oP)
|
||||
@@ -156,25 +160,9 @@ function DisplayDetails($oP, $sClass, $oObj, $id)
|
||||
* @param string $sMessageKey
|
||||
* @param WebPage $oPage
|
||||
*/
|
||||
function DisplayMessages($sMessageKey, WebPage $oPage)
|
||||
function DisplayMessages(string $sMessageKey, WebPage $oPage)
|
||||
{
|
||||
if (array_key_exists('obj_messages', $_SESSION) && array_key_exists($sMessageKey, $_SESSION['obj_messages']))
|
||||
{
|
||||
$aMessages = array();
|
||||
$aRanks = array();
|
||||
foreach ($_SESSION['obj_messages'][$sMessageKey] as $sMessageId => $aMessageData)
|
||||
{
|
||||
$sMsgClass = 'message_'.$aMessageData['severity'];
|
||||
$aMessages[] = "<div class=\"header_message $sMsgClass\">".$aMessageData['message']."</div>";
|
||||
$aRanks[] = $aMessageData['rank'];
|
||||
}
|
||||
unset($_SESSION['obj_messages'][$sMessageKey]);
|
||||
array_multisort($aRanks, $aMessages);
|
||||
foreach ($aMessages as $sMessage)
|
||||
{
|
||||
$oPage->add($sMessage);
|
||||
}
|
||||
}
|
||||
$oPage->AddSessionMessages($sMessageKey);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1250,28 +1238,22 @@ HTML
|
||||
$sMessage = Dict::Format('UI:Title:Object_Of_Class_Created', $sName, $sClassLabel);
|
||||
|
||||
$sNextAction = utils::ReadPostedParam('next_action', '');
|
||||
if (!empty($sNextAction))
|
||||
{
|
||||
if (!empty($sNextAction)) {
|
||||
$oP->add("<h1>$sMessage</h1>");
|
||||
try
|
||||
{
|
||||
try {
|
||||
ApplyNextAction($oP, $oObj, $sNextAction);
|
||||
}
|
||||
catch (ApplicationException $e)
|
||||
{
|
||||
catch (ApplicationException $e) {
|
||||
$sMessage = $e->getMessage();
|
||||
$sSeverity = 'info';
|
||||
ReloadAndDisplay($oP, $oObj, 'create', $sMessage, $sSeverity);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
// Nothing more to do
|
||||
ReloadAndDisplay($oP, $oObj, 'create', $sMessage, 'ok');
|
||||
}
|
||||
}
|
||||
catch (CoreCannotSaveObjectException $e)
|
||||
{
|
||||
catch (CoreCannotSaveObjectException $e) {
|
||||
// Found issues, explain and give the user a second chance
|
||||
//
|
||||
$aIssues = $e->getIssues();
|
||||
@@ -1281,33 +1263,17 @@ HTML
|
||||
$sHeaderTitle = Dict::Format('UI:CreationTitle_Class', $sClassLabel);
|
||||
|
||||
$oP->set_title(Dict::Format('UI:CreationPageTitle_Class', $sClassLabel));
|
||||
$oP->add(<<<HTML
|
||||
<!-- Beginning of object-details -->
|
||||
<div class="object-details" data-object-class="$sClass" data-object-id="$sObjKey" data-object-mode="create">
|
||||
<div class="page_header">
|
||||
<h1>$sClassIcon $sHeaderTitle</h1>
|
||||
</div>
|
||||
<!-- Beginning of wizContainer -->
|
||||
<div class="wizContainer">
|
||||
HTML
|
||||
);
|
||||
$oTitle = TitleUIBlockFactory::MakeForPageWithIcon($sHeaderTitle, $sClassIcon, Title::DEFAULT_ICON_COVER_METHOD, false);
|
||||
$oP->AddUiBlock($oTitle);
|
||||
|
||||
|
||||
if (!empty($aIssues))
|
||||
{
|
||||
if (!empty($aIssues)) {
|
||||
$oP->AddHeaderMessage($e->getHtmlMessage(), 'message_error');
|
||||
}
|
||||
if (!empty($aWarnings))
|
||||
{
|
||||
if (!empty($aWarnings)) {
|
||||
$sWarnings = implode(', ', $aWarnings);
|
||||
$oP->AddHeaderMessage($sWarnings, 'message_info');
|
||||
$oP->AddHeaderMessage($sWarnings, 'message_warning');
|
||||
}
|
||||
cmdbAbstractObject::DisplayCreationForm($oP, $sClass, $oObj);
|
||||
$oP->add(<<<HTML
|
||||
</div><!-- End of wizContainer -->
|
||||
</div><!-- End of object-details -->
|
||||
HTML
|
||||
);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
*/
|
||||
|
||||
use Combodo\iTop\Application\TwigBase\Twig\TwigHelper;
|
||||
use Combodo\iTop\Application\UI\Base\Component\Alert\AlertUIBlockFactory;
|
||||
use Combodo\iTop\Application\UI\Base\Component\DataTable\DataTableUIBlockFactory;
|
||||
use Combodo\iTop\Application\UI\Base\Component\Html\Html;
|
||||
use Combodo\iTop\Application\UI\Base\Component\PopoverMenu\PopoverMenu;
|
||||
@@ -131,10 +132,50 @@ class WebPage implements Page
|
||||
ob_start(); // Start capturing the output
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $sMessageKey
|
||||
* @param array $aRanks
|
||||
* @param array $aMessages
|
||||
*/
|
||||
public function AddSessionMessages(string $sMessageKey, array $aRanks = [], array $aMessages = []): void
|
||||
{
|
||||
if (array_key_exists('obj_messages', $_SESSION) && array_key_exists($sMessageKey,
|
||||
$_SESSION['obj_messages'])) {
|
||||
$aReadMessages = [];
|
||||
foreach ($_SESSION['obj_messages'][$sMessageKey] as $sMessageId => $aMessageData) {
|
||||
if (!in_array($aMessageData['message'], $aReadMessages)) {
|
||||
$aReadMessages[] = $aMessageData['message'];
|
||||
$aRanks[] = $aMessageData['rank'];
|
||||
switch ($aMessageData['severity']) {
|
||||
case 'ok':
|
||||
$aMessages[] = AlertUIBlockFactory::MakeForSuccess('', $aMessageData['message']);
|
||||
break;
|
||||
case 'warning':
|
||||
$aMessages[] = AlertUIBlockFactory::MakeForWarning('', $aMessageData['message']);
|
||||
break;
|
||||
case 'error':
|
||||
$aMessages[] = AlertUIBlockFactory::MakeForDanger('', $aMessageData['message']);
|
||||
break;
|
||||
case 'info':
|
||||
default:
|
||||
$aMessages[] = AlertUIBlockFactory::MakeForInformation('', $aMessageData['message']);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
unset($_SESSION['obj_messages'][$sMessageKey]);
|
||||
}
|
||||
array_multisort($aRanks, $aMessages);
|
||||
foreach ($aMessages as $oMessage) {
|
||||
$this->AddUiBlock($oMessage);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Change the title of the page after its creation
|
||||
*
|
||||
* @param string $s_title
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function set_title($s_title)
|
||||
|
||||
@@ -1193,15 +1193,28 @@ EOF
|
||||
* @param string $sContent
|
||||
* @param string $sCssClasses CSS classes to add to the container
|
||||
*
|
||||
* @throws \Exception
|
||||
* @since 2.6.0
|
||||
*/
|
||||
public function AddHeaderMessage($sContent, $sCssClasses = 'message_info')
|
||||
public function AddHeaderMessage(string $sContent, string $sCssClasses = 'message_info')
|
||||
{
|
||||
$this->add(<<<EOF
|
||||
<div class="header_message $sCssClasses">$sContent</div>
|
||||
EOF
|
||||
);
|
||||
switch ($sCssClasses) {
|
||||
case 'message_ok':
|
||||
$oAlert = AlertUIBlockFactory::MakeForSuccess('', $sContent);
|
||||
break;
|
||||
case 'message_warning':
|
||||
$oAlert = AlertUIBlockFactory::MakeForWarning('', $sContent);
|
||||
break;
|
||||
case 'message_error':
|
||||
$oAlert = AlertUIBlockFactory::MakeForDanger('', $sContent);
|
||||
break;
|
||||
case 'message_info':
|
||||
default:
|
||||
$oAlert = AlertUIBlockFactory::MakeForInformation('', $sContent);
|
||||
break;
|
||||
|
||||
}
|
||||
$oAlert->AddCSSClass($sCssClasses);
|
||||
$this->AddUiBlock($oAlert);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user