Commit bc4458f8 authored by okhin's avatar okhin 🚴

Merge branch '69-les-notifications-restent-longtemps' into 'preprod'

Resolve "Les notifications restent longtemps"

Closes #69

See merge request !67
parents d9013f59 83248285
Pipeline #2278 passed with stages
in 1 minute and 39 seconds
<?php
class MessageHelper extends \Prefab
{
/**
* Cette classe sert à afficher le code HTML stocké dans un tableau passé en argument
* et avec une classe éventuelle ajoutée en CSS
*/
public static function render($node)
{
$attr = $node['@attrib'];
if (!isset($attr['messages'])) {
return;
}
$html = '';
$class = isset($attr['class']) ? $attr['class'] : "";
$messages = \Template::instance()->token($attr['messages']);
$html .= '<?php \MessageHelper::instance()->build('.$messages.', "'.$class.'"); ?>';
return sprintf($html);
}
public function build($messages, $class)
{
$html = '';
foreach ($messages as $message) {
$html .= "<div class=\"$class\">";
$html .= $message;
$html .= "</div>";
}
echo $html;
}
}
......@@ -100,6 +100,13 @@ class Controller
return;
}
// Test si il y a des messages
if (!$f3->exists('SESSION.message')) {
$f3->push('SESSION.message', '');
}
if (!$f3->exists('SESSION.error')) {
$f3->push('SESSION.error', '');
}
// Rendu de la page
if ($this->template!='') {
echo \Template::instance()->render($this->template);
......
......@@ -120,12 +120,12 @@ class Perso extends Controller
$f3->clear('form_visible');
$f3->set('block_content', 'user/perso.html');
} else {
$f3->set('SESSION.error', _("Mauvais identifiant ou mot de passe."));
$f3->push('SESSION.error', _("Mauvais identifiant ou mot de passe."));
Campaign::show($f3, $args);
return;
}
} else {
$f3->set('SESSION.error', _("Merci de renseigner une adresse mail."));
$f3->push('SESSION.error', _("Merci de renseigner une adresse mail."));
Campaign::show($f3, $args);
return;
}
......@@ -191,17 +191,17 @@ class Perso extends Controller
$text = str_replace("%%".$k."%%", $v, $text);
}
if ($mailer->send($text)) {
$f3->set('SESSION.message', _("Nouveau mot de passe envoyé par mail."));
$f3->push('SESSION.message', _("Nouveau mot de passe envoyé par mail."));
} else {
$logger = new \Log('mail.log');
$f3->set('SESSION.error', _('Oops'));
$f3->push('SESSION.error', _("Oops."));
$logger->write($mailer->log());
}
} else {
$f3->set('SESSION.error', _("Vous n'avez pas encore de compte, merci de faire un don pour cela."));
$f3->push('SESSION.error', _("Vous n'avez pas encore de compte, merci de faire un don pour cela."));
}
} else {
$f3->set('SESSION.error', _("Merci de renseigner une adresse mail."));
$f3->push('SESSION.error', _("Merci de renseigner une adresse mail."));
}
}
......@@ -222,15 +222,14 @@ class Perso extends Controller
$total = $res->fetch(\PDO::FETCH_ASSOC);
$total = (int) $total['somme'];
// Création de l'utilisateur
$f3->clear('SESSION.error');
$f3->set('SESSION.msg', _("Votre compte a bien été créé, merci."));
$f3->push('SESSION.message', _("Votre compte a bien été créé, merci."));
$f3->get('container')['command_handler']->handle(new UserCreateCommand($f3->get('email'), $hash, '', $total, $total));
$f3->reroute('/perso');
} else {
$f3->set('SESSION.error', _("Vous avez déjà un compte associé à cette adresse mail, merci de demander un nouveau mot de passe."));
$f3->push('SESSION.error', _("Vous avez déjà un compte associé à cette adresse mail, merci de demander un nouveau mot de passe."));
}
} else {
$f3->set('SESSION.error', _("Merci de renseigner une adresse mail."));
$f3->push('SESSION.error', _("Merci de renseigner une adresse mail."));
}
}
......@@ -284,7 +283,7 @@ class Perso extends Controller
$f3->set("error", _("Cette adresse existe déjà."));
$f3->error('403');
}
$f3->set('SESSION.message', _("Adresse ajoutée à votre profil"));
$f3->push('SESSION.message', _("Adresse ajoutée à votre profil"));
break;
case 'DELETE':
try {
......@@ -298,7 +297,7 @@ class Perso extends Controller
$f3->set("error", _("Cette adresse est utilisée pour une de vos contreparties"));
$f3->error('403');
};
$f3->set('SESSION.message', _("Adresse supprimée de votre profil"));
$f3->push('SESSION.message', _("Adresse supprimée de votre profil"));
break;
}
$f3->reroute('/perso');
......@@ -353,9 +352,9 @@ class Perso extends Controller
}
// Puis diminution du cumul de la valeur des contreparties
$f3->get('container')['command_handler']->handle(new UserUpdateCumulCommand($user['id'], $user['cumul'] - $valeur));
$f3->set('SESSION.message', _("Merci, vos contreparties seront envoyées dès que possible !".$valeur));
$f3->push('SESSION.message', _("Merci, vos contreparties seront envoyées dès que possible !".$valeur));
} else {
$f3->set('SESSION.error', _("Désolé, mais vous n'avez pas cumulé suffisament de dons pour avoir un ").$quoi);
$f3->push('SESSION.error', _("Désolé, mais vous n'avez pas cumulé suffisament de dons pour avoir un ").$quoi);
$f3->clear('SESSION.message');
}
$f3->reroute('/perso');
......@@ -507,7 +506,7 @@ class Perso extends Controller
user_id = '".$user_id."',
identifier = '".$identifier."',
cumul = 0;");
$f3->set('SESSION.message', _("Don récurrent supprimé."));
$f3->push('SESSION.message', _("Don récurrent supprimé."));
$f3->reroute('/perso');
}
......
......@@ -8,12 +8,10 @@
<input type="hidden" name="csrf" id="csrf" value="{{ @CSRF }}" />
<fieldset class="form-group modal-form-only">
<h3>{{ _("Le site de dons a changé. À présent, utilisez votre adresse e-mail comme identifiant.") }} </h3>
<check if="{{ @@SESSION.message }}">
<p class="modal-row alert alert-info">{{ @SESSION.message }}</p>
</check>
<check if="{{ @@SESSION.error }}">
<p class="modal-row alert alert-danger">{{ @SESSION.error }}</p>
</check>
<div class="modal-row">
<message messages="{{ @SESSION.error }}" class="alert alert-danger" />
<message messages="{{ @SESSION.message }}" class="alert alert-default" />
</div>
<div class="modal-row form-group">
<label for="email">{{ _("Adresse mail") }}</label>
<input class="form-control" type="email" name="email" id="email" required>
......@@ -156,11 +154,7 @@
</nav>
</div>
<section id="messages">
<check if="{{ @@SESSION.message }}">
<p class="alert alert-info">{{ @SESSION.message }}</p>
</check>
<check if="{{ @@SESSION.error }}">
<p class="alert alert-danger">{{ @SESSION.error }}</p>
</check>
<message messages="@SESSION.message" class="alert alert-default">
<message messages="@SESSION.error" class="alert alert-danger">
</section>
......@@ -20,6 +20,18 @@ if (!$session->has('csrf')) {
}
$f3->CSRF = $session->get('csrf');
// Initialisation éventuelle des messages
if (!$session->has('message')) {
$session->set('message', []);
}
if (!$session->has('error')) {
$session->set('error', []);
}
// Let's register the message tag
\Template::instance()->extend('message', 'MessageHelper::render');
// Debug
$f3->set('DEBUG', DEBUG);
$f3->set('ONERROR', function ($f3) {
......@@ -36,7 +48,7 @@ $f3->set('ONERROR', function ($f3) {
ob_end_clean();
}
$f3->set('block_content', 'campaign/errors.html');
echo Template::instance()->render('base.html');
echo \Template::instance()->render('base.html');
});
// Are we being invoked from CLI ?
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment