X-Git-Url: https://git.rapsys.eu/.gitweb.cgi/airbundle/blobdiff_plain/dbd9139fe1367b8bd69b2d570d5c9831fbbe722f..0faa28c6e8450f485e08e212d301b3928608278d:/Controller/DefaultController.php?ds=sidebyside diff --git a/Controller/DefaultController.php b/Controller/DefaultController.php index eeb520c..11597f6 100644 --- a/Controller/DefaultController.php +++ b/Controller/DefaultController.php @@ -228,6 +228,131 @@ class DefaultController { return $this->render('@RapsysAir/form/contact.html.twig', ['title' => $title, 'section' => $section, 'form' => $form->createView(), 'sent' => $request->query->get('sent', 0)]+$this->context); } + + /** + * The dispute page + * + * @desc Generate a dispute document + * + * @param Request $request The request instance + * @param MailerInterface $mailer The mailer instance + * + * @return Response The rendered view or redirection + */ + public function dispute(Request $request, MailerInterface $mailer): Response { + //Prevent non-guest to access here + $this->denyAccessUnlessGranted('ROLE_USER', null, $this->translator->trans('Unable to access this page without role %role%!', ['%role%' => $this->translator->trans('User')])); + //Set section + $section = $this->translator->trans('Dispute'); + + //Set description + $this->context['description'] = $this->translator->trans('Libre Air dispute'); + + //Set keywords + $this->context['keywords'] = [ + $this->translator->trans('dispute'), + $this->translator->trans('Libre Air'), + $this->translator->trans('outdoor'), + $this->translator->trans('Argentine Tango'), + $this->translator->trans('calendar') + ]; + + //Set title + $title = $this->translator->trans($this->config['site']['title']).' - '.$section; + + //Create the form according to the FormType created previously. + //And give the proper parameters + $form = $this->createForm('Rapsys\AirBundle\Form\DisputeType', null, [ + 'action' => $this->generateUrl('rapsys_air_dispute'), + 'method' => 'POST' + ]); + + if ($request->isMethod('POST')) { + // Refill the fields in case the form is not valid. + $form->handleRequest($request); + + if ($form->isValid()) { + //Get data + $data = $form->getData(); + + header('Content-Type: text/plain'); + + //Infraction + var_dump($data['offense']); + + //Numéro d'avis + var_dump($data['notice']); + + //Numéro d'agent + var_dump($data['agent']); + + //Code service + var_dump($data['service']); + + //Masque porté + var_dump($data['mask']); + + //Civilité + var_dump($this->translator->trans($this->getUser()->getCivility()->getTitle())); + + //Prénom + var_dump($this->getUser()->getForename()); + + //Nom + var_dump($this->getUser()->getSurname()); + + //Mail + var_dump($this->getUser()->getMail()); + + exit; + +# //Create message +# $message = (new TemplatedEmail()) +# //Set sender +# ->from(new Address($data['mail'], $data['name'])) +# //Set recipient +# //XXX: remove the debug set in vendor/symfony/mime/Address.php +46 +# ->to(new Address($this->config['contact']['mail'], $this->config['contact']['name'])) +# //Set subject +# ->subject($data['subject']) +# +# //Set path to twig templates +# ->htmlTemplate('@RapsysAir/mail/contact.html.twig') +# ->textTemplate('@RapsysAir/mail/contact.text.twig') +# +# //Set context +# ->context( +# [ +# 'subject' => $data['subject'], +# 'message' => strip_tags($data['message']), +# ]+$this->context +# ); +# +# //Try sending message +# //XXX: mail delivery may silently fail +# try { +# //Send message +# $mailer->send($message); +# +# //Redirect on the same route with sent=1 to cleanup form +# return $this->redirectToRoute($request->get('_route'), ['sent' => 1]+$request->get('_route_params')); +# //Catch obvious transport exception +# } catch(TransportExceptionInterface $e) { +# if ($message = $e->getMessage()) { +# //Add error message mail unreachable +# $form->get('mail')->addError(new FormError($this->translator->trans('Unable to contact: %mail%: %message%', ['%mail%' => $this->config['contact']['mail'], '%message%' => $this->translator->trans($message)]))); +# } else { +# //Add error message mail unreachable +# $form->get('mail')->addError(new FormError($this->translator->trans('Unable to contact: %mail%', ['%mail%' => $this->config['contact']['mail']]))); +# } +# } + } + } + + //Render template + return $this->render('@RapsysAir/form/dispute.html.twig', ['title' => $title, 'section' => $section, 'form' => $form->createView(), 'sent' => $request->query->get('sent', 0)]+$this->context); + } + /** * The index page * @@ -267,7 +392,7 @@ class DefaultController { new \DateInterval('P1D'), //End with next sunday and 4 weeks new \DateTime( - $this->isGranted('IS_AUTHENTICATED_REMEMBERED')?'Monday this week + 4 week':'Monday this week + 2 week' + $this->isGranted('IS_AUTHENTICATED_REMEMBERED')?'Monday this week + 3 week':'Monday this week + 2 week' ) ); @@ -282,6 +407,7 @@ class DefaultController { return $this->render('@RapsysAir/default/index.html.twig', ['title' => $title, 'section' => $section, 'calendar' => $calendar, 'locations' => $locations]+$this->context); //Set Cache-Control must-revalidate directive + //TODO: add a javascript forced refresh after 1h ? or header refresh ? #$response->setPublic(true); #$response->setMaxAge(300); #$response->mustRevalidate();