mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-23 10:38:45 +02:00
N°3522 Display error alert for twig rendering errors
This commit is contained in:
@@ -460,6 +460,7 @@ Dict::Add('EN US', 'English', 'English', array(
|
|||||||
'UI:Error:MaintenanceMode' => 'Application is currently in maintenance',
|
'UI:Error:MaintenanceMode' => 'Application is currently in maintenance',
|
||||||
'UI:Error:MaintenanceTitle' => 'Maintenance',
|
'UI:Error:MaintenanceTitle' => 'Maintenance',
|
||||||
'UI:Error:InvalidToken' => 'Error: the requested operation has already been performed (CSRF token not found)',
|
'UI:Error:InvalidToken' => 'Error: the requested operation has already been performed (CSRF token not found)',
|
||||||
|
'UI:Error:TemplateRendering' => 'Cannot render template',
|
||||||
|
|
||||||
'UI:GroupBy:Count' => 'Count',
|
'UI:GroupBy:Count' => 'Count',
|
||||||
'UI:GroupBy:Count+' => 'Number of elements',
|
'UI:GroupBy:Count+' => 'Number of elements',
|
||||||
|
|||||||
@@ -456,6 +456,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
|
|||||||
'UI:Error:MaintenanceMode' => 'L\'application est en maintenance',
|
'UI:Error:MaintenanceMode' => 'L\'application est en maintenance',
|
||||||
'UI:Error:MaintenanceTitle' => 'Maintenance',
|
'UI:Error:MaintenanceTitle' => 'Maintenance',
|
||||||
'UI:Error:InvalidToken' => 'Erreur: l\'opération a déjà été effectuée (CSRF token not found)',
|
'UI:Error:InvalidToken' => 'Erreur: l\'opération a déjà été effectuée (CSRF token not found)',
|
||||||
|
'UI:Error:TemplateRendering' => 'Impossible de rendre le template',
|
||||||
|
|
||||||
'UI:GroupBy:Count' => 'Nombre',
|
'UI:GroupBy:Count' => 'Nombre',
|
||||||
'UI:GroupBy:Count+' => 'Nombre d\'éléments',
|
'UI:GroupBy:Count+' => 'Nombre d\'éléments',
|
||||||
|
|||||||
@@ -7,7 +7,9 @@
|
|||||||
namespace Combodo\iTop\Application\TwigBase\Twig;
|
namespace Combodo\iTop\Application\TwigBase\Twig;
|
||||||
|
|
||||||
use Combodo\iTop\Application\TwigBase\UI\UIBlockExtension;
|
use Combodo\iTop\Application\TwigBase\UI\UIBlockExtension;
|
||||||
use Exception;
|
use Combodo\iTop\Application\UI\Base\Component\Alert\AlertUIBlockFactory;
|
||||||
|
use Combodo\iTop\Renderer\BlockRenderer;
|
||||||
|
use Dict;
|
||||||
use IssueLog;
|
use IssueLog;
|
||||||
use Twig\Environment;
|
use Twig\Environment;
|
||||||
use Twig\Error\Error;
|
use Twig\Error\Error;
|
||||||
@@ -128,15 +130,37 @@ class TwigHelper
|
|||||||
$sPath = utils::LocalPath($e->getSourceContext()->getPath()).' ('.$e->getLine().') - ';
|
$sPath = utils::LocalPath($e->getSourceContext()->getPath()).' ('.$e->getLine().') - ';
|
||||||
}
|
}
|
||||||
$sMessage = $sPath.$e->getMessage();
|
$sMessage = $sPath.$e->getMessage();
|
||||||
|
|
||||||
if (strpos($e->getMessage(), 'Unable to find template') === false) {
|
if (strpos($e->getMessage(), 'Unable to find template') === false) {
|
||||||
IssueLog::Error($sMessage);
|
IssueLog::Error($sMessage);
|
||||||
// Todo 3.0 Less violent message
|
|
||||||
throw new Exception($sMessage);
|
return static::GenerateEndUserError(Dict::S('UI:Error:TemplateRendering'), $sMessage);
|
||||||
} elseif ($bLogMissingFile) {
|
}
|
||||||
|
|
||||||
|
if ($bLogMissingFile) {
|
||||||
IssueLog::Debug($sMessage);
|
IssueLog::Debug($sMessage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $sTitle
|
||||||
|
* @param string $sMessage
|
||||||
|
*
|
||||||
|
* @return string error panel markup
|
||||||
|
* @throws \ReflectionException
|
||||||
|
* @throws \Twig\Error\LoaderError
|
||||||
|
* @throws \Twig\Error\RuntimeError
|
||||||
|
* @throws \Twig\Error\SyntaxError
|
||||||
|
*/
|
||||||
|
protected static function GenerateEndUserError(string $sTitle, string $sMessage): string
|
||||||
|
{
|
||||||
|
$oAlert = AlertUIBlockFactory::MakeForFailure($sTitle, $sMessage)
|
||||||
|
->SetIsClosable(false)
|
||||||
|
->SetIsCollapsible(false); // not rendering JS so...
|
||||||
|
|
||||||
|
return BlockRenderer::RenderBlockTemplates($oAlert);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user