Commit 1dd6598e authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Ajout de viewhelper + reenvoi

parent 898cedeb
Loading
Loading
Loading
Loading
Loading
+33 −1
Changes for config/merged/mail.config.php: 33 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ use UnicaenMail\Controller\MailControllerFactory;
use UnicaenMail\Provider\Privilege\MailPrivileges;
use UnicaenMail\Service\Mail\MailService;
use UnicaenMail\Service\Mail\MailServiceFactory;
use UnicaenMail\View\Helper\MailsViewHelper;
use UnicaenMail\View\Helper\MailViewHelper;
use UnicaenPrivilege\Guard\PrivilegeController;
use Zend\Router\Http\Literal;
@@ -95,6 +96,16 @@ return array(
                ],
                'may_terminate' => true,
                'child_routes' => [
                    'test' => [
                        'type' => Literal::class,
                        'options' => [
                            'route' => '/test',
                            'defaults' => [
                                'controller' => MailController::class,
                                'action' => 'test',
                            ],
                        ],
                    ],
                    'afficher' => [
                        'type' => Segment::class,
                        'options' => [
@@ -105,6 +116,26 @@ return array(
                            ],
                        ],
                    ],
                    'reenvoi' => [
                        'type' => Segment::class,
                        'options' => [
                            'route' => '/reenvoi/:mail',
                            'defaults' => [
                                'controller' => MailController::class,
                                'action' => 'reenvoi',
                            ],
                        ],
                    ],
                    'supprimer' => [
                        'type' => Segment::class,
                        'options' => [
                            'route' => '/supprimer/:mail',
                            'defaults' => [
                                'controller' => MailController::class,
                                'action' => 'supprimer',
                            ],
                        ],
                    ],
                ],
            ],
        ],
@@ -129,7 +160,8 @@ return array(
    ],
    'view_helpers' => [
        'invokables' => [
            'mail' => MailViewHelper::class
            'mail' => MailViewHelper::class,
            'mails' => MailsViewHelper::class,
        ],
    ],
);
+2 −2
Changes for src/UnicaenMail/Controller/MailController.php: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -30,14 +30,14 @@ class MailController extends AbstractActionController {

    public function testAction()
    {
        return $this->redirect()->toRoute('mail/index', [], [], true);
        return $this->redirect()->toRoute('mail', [], [], true);
    }

    public function reenvoiAction()
    {
        $mail = $this->getMailService()->getRequestedMail($this);
        $this->getMailService()->reenvoi($mail);
        return $this->redirect()->toRoute('mail/index', [], [], true);
        return $this->redirect()->toRoute('mail', [], [], true);
    }

    public function supprimerAction()
+18 −2
Changes for src/UnicaenMail/Service/Mail/MailService.php: 18 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -94,7 +94,7 @@ class MailService {
     * @param string $ordre
     * @return array
     */
    public function getMails(string $champ='dateEnvoi', string $ordre = 'ASC') : array
    public function getMails(string $champ='dateEnvoi', string $ordre = 'DESC') : array
    {
        $qb = $this->createQueryBuilder()
            ->orderBy('mail.' . $champ, $ordre);
@@ -102,7 +102,7 @@ class MailService {
        return $result;
    }

    public function getMailsByEntity(string $entityClass, string $entityId, string $champ='dateEnvoi', string $ordre = 'ASC') : array
    public function getMailsByEntity(string $entityClass, string $entityId, string $champ='dateEnvoi', string $ordre = 'DESC') : array
    {
        $qb = $this->createQueryBuilder()
            ->andWhere('mail.entityClass = :entityClass')
@@ -154,6 +154,7 @@ class MailService {
        /** TODO rependre depuis les parametre ou la config ... (parametre dans l'ancien temps) */
        $email = 'ne-pas-repondre@unicaen.fr';
        $name = 'Application';

        $message->setFrom($email, $name);
        if (!is_array($to)) $to = [$to];
        if ($this->doNotSend) {
@@ -220,4 +221,19 @@ class MailService {

        return $mail;
    }

    /**
     * @param Mail $mail
     */
    public function reenvoi(Mail $mail) : Mail
    {
        //todo les pieces jointes
        $nMail = $this->sendMail($mail->getDestinataires(), $mail->getSujet(), $mail->getCorps());
        $nMail->setEntityClass($mail->getEntityClass());
        $nMail->setEntityId($mail->getEntityId());
        $nMail->setTemplateCode($mail->getTemplateCode());
        $this->update($nMail);
        return $mail;

    }
}
 No newline at end of file
+31 −0
Changes for src/UnicaenMail/View/Helper/MailsViewHelper.php: 31 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

namespace UnicaenMail\View\Helper;

use Application\View\Renderer\PhpRenderer;
use UnicaenMail\Entity\Db\Mail;
use Zend\View\Helper\AbstractHelper;
use Zend\View\Helper\Partial;
use Zend\View\Resolver\TemplatePathStack;

/**
 * le tableau d'options peut recevoir un ensemble de booléen pour les droits afin de ne pas recalculer ou transmettre des valeurs différentes.
 * $options['droits']['afficher' => Boolean, 'reenvoyer' => Boolean, 'supprimer' => Boolean]
 */

class MailsViewHelper extends AbstractHelper
{
    /**
     * @param Mail[] $mails
     * @param array $options
     * @return string|Partial
     */
    public function __invoke(array $mails, array $options = [])
    {
        /** @var PhpRenderer $view */
        $view = $this->getView();
        $view->resolver()->attach(new TemplatePathStack(['script_paths' => [__DIR__ . "/partial"]]));

        return $view->partial('mails', ['mails' => $mails, 'options' => $options]);
    }
}
 No newline at end of file
+2 −1
Changes for src/UnicaenMail/View/Helper/partial/mail.phtml: 2 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -23,7 +23,8 @@ use UnicaenMail\Entity\Db\Mail;
            </dd>
            <dt> Date d'envoi </dt>
            <dd>
                <?php echo $mail->getDateEnvoi()->format('d/m/Y'); ?>
                <?php echo $mail->getDateEnvoi()->format('d/m/Y'); ?> <br/>
                <?php echo $mail->getDateEnvoi()->format('H:i'); ?>
            </dd>
            <dt> Destinataires </dt>
            <dd>
Loading