From 5b6ca91163ff565d011de34360746e75d2e076cf Mon Sep 17 00:00:00 2001 From: devigner Date: Wed, 27 Feb 2019 21:17:33 +0100 Subject: [PATCH 1/4] Moved FormMailer dependency to seperate listerer, see https://github.com/Kunstmaan/KunstmaanBundlesCMS/issues/2390 --- .../FormBundle/Event/SubmissionEvent.php | 5 ++- .../EventListener/SendEmailListener.php | 45 +++++++++++++++++++ .../FormBundle/Helper/FormHandler.php | 8 ---- .../FormBundle/Resources/config/services.yml | 7 +++ 4 files changed, 55 insertions(+), 10 deletions(-) create mode 100644 src/Kunstmaan/FormBundle/EventListener/SendEmailListener.php diff --git a/src/Kunstmaan/FormBundle/Event/SubmissionEvent.php b/src/Kunstmaan/FormBundle/Event/SubmissionEvent.php index f3ff7e7037..3f132fb924 100644 --- a/src/Kunstmaan/FormBundle/Event/SubmissionEvent.php +++ b/src/Kunstmaan/FormBundle/Event/SubmissionEvent.php @@ -3,6 +3,7 @@ namespace Kunstmaan\FormBundle\Event; use Kunstmaan\FormBundle\Entity\FormSubmission; +use Kunstmaan\FormBundle\Helper\FormPageInterface; use Kunstmaan\NodeBundle\Entity\AbstractPage; use Symfony\Component\EventDispatcher\Event; @@ -22,7 +23,7 @@ class SubmissionEvent extends Event * @param FormSubmission $submission * @param AbstractPage $page */ - public function __construct(FormSubmission $submission, AbstractPage $page) + public function __construct(FormSubmission $submission, FormPageInterface $page) { $this->submission = $submission; $this->page = $page; @@ -37,7 +38,7 @@ public function getSubmission() } /** - * @return AbstractPage + * @return FormPageInterface */ public function getPage() { diff --git a/src/Kunstmaan/FormBundle/EventListener/SendEmailListener.php b/src/Kunstmaan/FormBundle/EventListener/SendEmailListener.php new file mode 100644 index 0000000000..413d444412 --- /dev/null +++ b/src/Kunstmaan/FormBundle/EventListener/SendEmailListener.php @@ -0,0 +1,45 @@ +formMailer = $formMailer; + } + + /** + * Configure the form submissions link on top of the form in the sub action menu + * + * @param SubmissionEvent $event + */ + public function onSubmission(SubmissionEvent $event) + { + $page = $event->getPage(); + $formSubmission = $event->getSubmission(); + + $from = $page->getFromEmail(); + $to = $page->getToEmail(); + $subject = $page->getSubject(); + if (!empty($from) && !empty($to) && !empty($subject)) { + $this->formMailer->sendContactMail($formSubmission, $from, $to, $subject); + } + } +} diff --git a/src/Kunstmaan/FormBundle/Helper/FormHandler.php b/src/Kunstmaan/FormBundle/Helper/FormHandler.php index 1f9175ee4a..6737b4b395 100644 --- a/src/Kunstmaan/FormBundle/Helper/FormHandler.php +++ b/src/Kunstmaan/FormBundle/Helper/FormHandler.php @@ -82,14 +82,6 @@ public function handleForm(FormPageInterface $page, Request $request, RenderCont $event = new SubmissionEvent($formSubmission, $page); $this->container->get('event_dispatcher')->dispatch(FormEvents::ADD_SUBMISSION, $event); - $from = $page->getFromEmail(); - $to = $page->getToEmail(); - $subject = $page->getSubject(); - if (!empty($from) && !empty($to) && !empty($subject)) { - $mailer = $this->container->get('kunstmaan_form.form_mailer'); - $mailer->sendContactMail($formSubmission, $from, $to, $subject); - } - return new RedirectResponse($page->generateThankYouUrl($router, $context)); } } diff --git a/src/Kunstmaan/FormBundle/Resources/config/services.yml b/src/Kunstmaan/FormBundle/Resources/config/services.yml index 0031f165a2..f49cb76e00 100644 --- a/src/Kunstmaan/FormBundle/Resources/config/services.yml +++ b/src/Kunstmaan/FormBundle/Resources/config/services.yml @@ -1,6 +1,7 @@ parameters: kunstmaan_form.form_mailer.class: 'Kunstmaan\FormBundle\Helper\FormMailer' kunstmaan_form.form_handler.class: 'Kunstmaan\FormBundle\Helper\FormHandler' + kunstmaan_form.sendemail_listener.class: 'Kunstmaan\FormBundle\EventListener\SendEmailListener' services: kunstmaan_form.menu.adaptor.forms: @@ -23,3 +24,9 @@ services: arguments: ['@doctrine.orm.entity_manager', '@router'] tags: - { name: 'kernel.event_listener', event: 'kunstmaan_node.configureSubActionMenu', method: 'onSubActionMenuConfigure' } + + kunstmaan_form.send_email_listener: + class: "%kunstmaan_form.sendemail_listener.class%" + arguments: ['@kunstmaan_form.form_mailer'] + tags: + - { name: 'kernel.event_listener', event: 'kunstmaan_form.add_submission', method: 'onSubmission' } From 08ebc829b6b2a5438e8e4ab30add8c812c073819 Mon Sep 17 00:00:00 2001 From: devigner Date: Wed, 27 Feb 2019 21:20:25 +0100 Subject: [PATCH 2/4] Self review --- src/Kunstmaan/FormBundle/Event/SubmissionEvent.php | 2 +- src/Kunstmaan/FormBundle/EventListener/SendEmailListener.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Kunstmaan/FormBundle/Event/SubmissionEvent.php b/src/Kunstmaan/FormBundle/Event/SubmissionEvent.php index 3f132fb924..f18e6fe626 100644 --- a/src/Kunstmaan/FormBundle/Event/SubmissionEvent.php +++ b/src/Kunstmaan/FormBundle/Event/SubmissionEvent.php @@ -21,7 +21,7 @@ class SubmissionEvent extends Event /** * @param FormSubmission $submission - * @param AbstractPage $page + * @param FormPageInterface $page */ public function __construct(FormSubmission $submission, FormPageInterface $page) { diff --git a/src/Kunstmaan/FormBundle/EventListener/SendEmailListener.php b/src/Kunstmaan/FormBundle/EventListener/SendEmailListener.php index 413d444412..7834bfdb10 100644 --- a/src/Kunstmaan/FormBundle/EventListener/SendEmailListener.php +++ b/src/Kunstmaan/FormBundle/EventListener/SendEmailListener.php @@ -8,7 +8,7 @@ use Symfony\Component\Routing\RouterInterface; /** - * An event listener send formsubmissions to the subscriber + * An event listener for sending an email after the form submission is completed */ class SendEmailListener { From 873113dd3e220c3d7a32753a160178e1bee83bac Mon Sep 17 00:00:00 2001 From: devigner Date: Wed, 27 Feb 2019 21:25:20 +0100 Subject: [PATCH 3/4] [FormBundle] Applying code style --- src/Kunstmaan/FormBundle/Event/SubmissionEvent.php | 2 +- src/Kunstmaan/FormBundle/EventListener/SendEmailListener.php | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Kunstmaan/FormBundle/Event/SubmissionEvent.php b/src/Kunstmaan/FormBundle/Event/SubmissionEvent.php index f18e6fe626..6742a21bf2 100644 --- a/src/Kunstmaan/FormBundle/Event/SubmissionEvent.php +++ b/src/Kunstmaan/FormBundle/Event/SubmissionEvent.php @@ -20,7 +20,7 @@ class SubmissionEvent extends Event protected $page; /** - * @param FormSubmission $submission + * @param FormSubmission $submission * @param FormPageInterface $page */ public function __construct(FormSubmission $submission, FormPageInterface $page) diff --git a/src/Kunstmaan/FormBundle/EventListener/SendEmailListener.php b/src/Kunstmaan/FormBundle/EventListener/SendEmailListener.php index 7834bfdb10..bd9641e2bf 100644 --- a/src/Kunstmaan/FormBundle/EventListener/SendEmailListener.php +++ b/src/Kunstmaan/FormBundle/EventListener/SendEmailListener.php @@ -2,10 +2,8 @@ namespace Kunstmaan\FormBundle\EventListener; -use Doctrine\ORM\EntityManager; use Kunstmaan\FormBundle\Event\SubmissionEvent; use Kunstmaan\FormBundle\Helper\FormMailerInterface; -use Symfony\Component\Routing\RouterInterface; /** * An event listener for sending an email after the form submission is completed From 65a59cb68581d00b871322afa47cb9ccecd3a469 Mon Sep 17 00:00:00 2001 From: devigner Date: Fri, 8 Mar 2019 08:09:02 +0100 Subject: [PATCH 4/4] Removed unused AbstractPage import --- src/Kunstmaan/FormBundle/Event/SubmissionEvent.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Kunstmaan/FormBundle/Event/SubmissionEvent.php b/src/Kunstmaan/FormBundle/Event/SubmissionEvent.php index 6742a21bf2..615ba74b15 100644 --- a/src/Kunstmaan/FormBundle/Event/SubmissionEvent.php +++ b/src/Kunstmaan/FormBundle/Event/SubmissionEvent.php @@ -4,7 +4,6 @@ use Kunstmaan\FormBundle\Entity\FormSubmission; use Kunstmaan\FormBundle\Helper\FormPageInterface; -use Kunstmaan\NodeBundle\Entity\AbstractPage; use Symfony\Component\EventDispatcher\Event; class SubmissionEvent extends Event @@ -15,7 +14,7 @@ class SubmissionEvent extends Event protected $submission; /** - * @var AbstractPage + * @var FormPageInterface */ protected $page;