Send mail to admin when update/delete a poll

This commit is contained in:
Olivier PEREZ 2015-05-29 19:03:29 +02:00
parent b717bee765
commit c9c45a2d24
7 changed files with 66 additions and 12 deletions

View File

@ -16,15 +16,22 @@
* Auteurs de STUdS (projet initial) : Guilhem BORGHESI (borghesi@unistra.fr) et Raphaël DROZ
* Auteurs de Framadate/OpenSondage : Framasoft (https://github.com/framasoft)
*/
use Framadate\Services\PollService;
use Framadate\Editable;
use Framadate\Message;
use Framadate\Services\AdminPollService;
use Framadate\Services\InputService;
use Framadate\Services\LogService;
use Framadate\Message;
use Framadate\Editable;
use Framadate\Services\MailService;
use Framadate\Services\PollService;
use Framadate\Utils;
include_once __DIR__ . '/app/inc/init.php';
/* Constants */
/* --------- */
const UPDATE_POLL = 1;
const DELETED_POLL = 2;
/* Variables */
/* --------- */
@ -41,6 +48,41 @@ $logService = new LogService();
$pollService = new PollService($connect, $logService);
$adminPollService = new AdminPollService($connect, $pollService, $logService);
$inputService = new InputService();
$mailService = new MailService($config['use_smtp']);
/* Functions */
/*-----------*/
/**
* Send a notification to the poll admin to notify him about an update.
*
* @param stdClass $poll The poll
* @param MailService $mailService The mail service
* @param int $type cf: Constants on the top of this page
*/
function sendUpdateNotification($poll, $mailService, $type) {
if (!isset($_SESSION['mail_sent'])) {
$_SESSION['mail_sent'] = [];
}
if ($poll->receiveNewVotes) {
$subject = '[' . NOMAPPLICATION . '] ' . __('Mail', 'Notification of poll') . ' : ' . $poll->title;
$message = '';
switch ($type) {
case UPDATE_POLL:
$message = __f('Mail', 'Someone just change your poll available at the following link %s.', Utils::getUrlSondage($poll->admin_id, true)) . "\n\n";
break;
case DELETED_POLL:
$message = __f('Mail', 'Someone just delete your poll %s.', Utils::htmlEscape($poll->title)) . "\n\n";
break;
}
$messageTypeKey = $type . '-' . $poll->id;
$mailService->send($poll->admin_mail, $subject, $message, $messageTypeKey);
}
}
/* PAGE */
/* ---- */
@ -133,6 +175,7 @@ if (isset($_POST['update_poll_info'])) {
// Update poll in database
if ($updated && $adminPollService->updatePoll($poll)) {
$message = new Message('success', __('adminstuds', 'Poll saved'));
sendUpdateNotification($poll, $mailService, UPDATE_POLL);
} else {
$message = new Message('danger', __('Error', 'Failed to save poll'));
$poll = $pollService->findById($poll_id);
@ -297,6 +340,7 @@ if (isset($_POST['delete_poll'])) {
if (isset($_POST['confirm_delete_poll'])) {
if ($adminPollService->deleteEntirePoll($poll_id)) {
$message = new Message('success', __('adminstuds', 'Poll fully deleted'));
sendUpdateNotification($poll, $mailService, DELETED_POLL);
} else {
$message = new Message('danger', __('Error', 'Failed to delete the poll'));
}

View File

@ -189,7 +189,6 @@
"Remove the comments": "Entfernen Sie die Kommentare",
"Comment deleted": "Kommentar gelöscht",
"All comments deleted": "Alle Kommentare gelöscht",
"The poll has been deleted": "Die Umfrage wurde gelöscht",
"Keep votes": "Halten Stimmen",
"Keep comments": "Halten Sie Kommentare",
"Keep this poll": "Halten Sie diese Umfrage"
@ -289,9 +288,12 @@
},
"Mail": {
"Poll's participation": "Beteiligung an der Umfrage",
"Notification of poll": "Mitteilung bezüglich der Umfrage",
"filled a vote.\nYou can find your poll at the link": "füllte eine Stimme.<br/>Sie können Ihre Umfrage unter dem Link zu finden",
"updated a vote.\nYou can find your poll at the link": "eine Abstimmung regelmäßig aktualisiert.<br/>Sie können Ihre Umfrage unter dem Link zu finden",
"wrote a comment.\nYou can find your poll at the link": "hat einen Kommentar.<br/>Sie können Ihre Umfrage unter dem Link zu finden",
"Someone just change your poll available at the following link %s.": "Jemand ändern Sie einfach Ihre Umfrage finden Sie unter dem folgenden Link <a href=\"%1$s\">%1$s</a>.",
"Someone just delete your poll %s.": "Jemand hat gerade Ihre Umfrage löschen \"%s\".",
"Thanks for your trust.": "Danke für Ihr Vertrauen.",
"FOOTER": "",
"[ADMINISTRATOR] New settings for your poll": "[ADMINISTRATOR] Neue Einstellungen für Ihre Umfrage ",

View File

@ -189,7 +189,6 @@
"All comments deleted": "All comments deleted",
"Keep the comments": "Keep the comments",
"Remove the comments": "Remove the comments",
"The poll has been deleted": "The poll has been deleted",
"Keep votes": "Keep votes",
"Keep comments": "Keep comments",
"Keep this poll": "Keep this poll"
@ -289,9 +288,12 @@
},
"Mail" : {
"Poll's participation": "Poll's participation",
"Notification of poll": "Notification of poll",
"filled a vote.\nYou can find your poll at the link": "filled a vote.<br/>You can find your poll at the link",
"updated a vote.\nYou can find your poll at the link": "updated a vote.<br/>You can find your poll at the link",
"wrote a comment.\nYou can find your poll at the link": "wrote a comment.<br/>You can find your poll at the link",
"Someone just change your poll available at the following link %s.": "Someone just change your poll available at the following link <a href=\"%1$s\">%1$s</a>.",
"Someone just delete your poll %s.": "Someone just delete your poll \"%s\".",
"Thanks for your trust.": "Thanks for your trust.",
"FOOTER": "",
"[ADMINISTRATOR] New settings for your poll": "[ADMINISTRATOR] New settings for your poll",

View File

@ -189,7 +189,6 @@
"Remove the comments": "ES_Supprimer les commentaires",
"Comment deleted": "ES_Commentaire supprimé",
"All comments deleted": "ES_Tous les commentaires ont été supprimés",
"The poll has been deleted": "ES_Le sondage a été supprimé",
"Keep votes": "ES_Garder les votes",
"Keep comments": "ES_Garder les commentaires",
"Keep this poll": "Dejar este encuesta!"
@ -288,10 +287,13 @@
"Polls sent": "ES_Sondages envoyés"
},
"Mail": {
"Poll's participation": "ES_Participation au sondage",
"Poll's participation": "Participación Encuesta",
"Notification of poll": "Notificación de la encuesta",
"filled a vote.\nYou can find your poll at the link": "ES_vient de voter.<br/>Vous pouvez retrouver votre sondage avec le lien suivant",
"updated a vote.\nYou can find your poll at the link": "ES_vient de mettre à jour un vote.<br/>Vous pouvez retrouver votre sondage avec le lien suivant",
"wrote a comment.\nYou can find your poll at the link": "ES_vient de rédiger un commentaire.<br/>Vous pouvez retrouver votre sondage avec le lien suivant",
"Someone just change your poll available at the following link %s.": "Alguien acaba de cambiar su encuesta disponible en el siguiente enlace <a href=\"%1$s\">%1$s</a>.",
"Someone just delete your poll %s.": "Alguien acaba de borrar tu encuesta \"%s\".",
"Thanks for your trust.": "ES_Merci de votre confiance.",
"FOOTER": "",
"[ADMINISTRATOR] New settings for your poll": "ES_[ADMINISTRATEUR] Changement de configuration du sondage",
@ -306,8 +308,8 @@
"Error": {
"Error!": "Error!",
"Enter a title": "Introducza un título",
"Something is going wrong...": "ES_Quelque chose ne va pas...",
"Something is wrong with the format": "Something is wrong with the format",
"Something is going wrong...": "Algo va mal...",
"Something is wrong with the format": "Algo está mal con el formato",
"Enter an email address": "Introduzca una dirección electrónica",
"The address is not correct! You should enter a valid email address (like r.stallman@outlock.com) in order to receive the link to your poll.": "ES_L'adresse saisie n'est pas correcte ! Il faut une adresse électronique valide (par exemple r.stallman@outlock.com) pour recevoir le lien vers le sondage.",
"No polls found": "ES_Aucun sondage n'a été trouvé",

View File

@ -189,7 +189,6 @@
"Remove the comments": "Supprimer les commentaires",
"Comment deleted": "Commentaire supprimé",
"All comments deleted": "Tous les commentaires ont été supprimés",
"The poll has been deleted": "Le sondage a été supprimé",
"Keep votes": "Garder les votes",
"Keep comments": "Garder les commentaires",
"Keep this poll": "Garder ce sondage"
@ -289,9 +288,12 @@
},
"Mail": {
"Poll's participation": "Participation au sondage",
"Notification of poll": "Notification d'un sondage",
"filled a vote.\nYou can find your poll at the link": "vient de voter.<br/>Vous pouvez retrouver votre sondage avec le lien suivant",
"updated a vote.\nYou can find your poll at the link": "vient de mettre à jour un vote.<br/>Vous pouvez retrouver votre sondage avec le lien suivant",
"wrote a comment.\nYou can find your poll at the link": "vient de rédiger un commentaire.<br/>Vous pouvez retrouver votre sondage avec le lien suivant",
"Someone just change your poll available at the following link %s.": "Quelqu'un vient de modifier votre sondage accessible au lien suivant <a href=\"%1$s\">%1$s</a>.",
"Someone just delete your poll %s.": "Quelqu'un vient de supprimer votre sondage \"%s\".",
"Thanks for your trust.": "Merci de votre confiance.",
"FOOTER": "« La route est longue, mais la voie est libre… »<br/>Framasoft ne vit que par vos dons (déductibles des impôts).<br/>Merci d'avance pour votre soutien http://soutenir.framasoft.org.",
"[ADMINISTRATOR] New settings for your poll": "[ADMINISTRATEUR] Changement de configuration du sondage",

View File

@ -189,7 +189,6 @@
"Remove the comments": "Eliminare i commenti",
"Comment deleted": "Commento rimosso",
"All comments deleted": "Tutti i commenti sono stati cancellati",
"The poll has been deleted": "Il sondaggio è stato eliminato",
"Keep votes": "Tenere voti",
"Keep comments": "Tenere commenti",
"Keep this poll": "Mantengo questo sondaggio !"
@ -289,9 +288,12 @@
},
"Mail": {
"Poll's participation": "Partecipazione al sondaggio",
"Notification of poll": "Notifica di sondaggio",
"filled a vote.\nYou can find your poll at the link": "IT_vient de voter.\nVous pouvez retrouver votre sondage avec le lien suivant",
"updated a vote.\nYou can find your poll at the link": "IT_vient de mettre à jour un vote.\nVous pouvez retrouver votre sondage avec le lien suivant",
"wrote a comment.\nYou can find your poll at the link": "IT_vient de rédiger un commentaire.\nVous pouvez retrouver votre sondage avec le lien suivant",
"Someone just change your poll available at the following link %s.": "Qualcuno basta cambiare il vostro sondaggio disponibile al seguente link <a href=\"%1$s\">%1$s</a>.",
"Someone just delete your poll %s.": "Qualcuno ha appena cancellare il tuo sondaggio \"%s\".",
"Thanks for your trust.": "Grazie per la vostra fiducia.",
"FOOTER": "IT_« La route est longue, mais la voie est libre… »\nFramasoft ne vit que par vos dons (déductibles des impôts).\nMerci d'avance pour votre soutien http://soutenir.framasoft.org.",
"[ADMINISTRATOR] New settings for your poll": "[AMMINISTRATORE] Modifica di configurazione del sondaggio",

View File

@ -2,7 +2,7 @@
{block name=main}
<div class="alert alert-success text-center">
<h2>{__('adminstuds', 'The poll has been deleted')}</h2>
<h2>{$message}</h2>
<p>{__('Generic', 'Back to the homepage of')} <a href="{$SERVER_URL|html}">{$APPLICATION_NAME|html}</a></p>
</div>
{/block}