/** * Finds and displays a InterventionPlanned entity. * * @Template() * @Secure(roles="ROLE_USER") */ public function emailAction(Fixing $entity, $step) { $request = $this->getRequest(); $steps = array('taken' => 'JLM\\DailyBundle\\Builder\\Email\\FixingTakenMailBuilder', 'distributed' => 'JLM\\DailyBundle\\Builder\\Email\\FixingDistributedMailBuilder', 'onsite' => 'JLM\\DailyBundle\\Builder\\Email\\FixingOnSiteMailBuilder', 'end' => 'JLM\\DailyBundle\\Builder\\Email\\FixingEndMailBuilder', 'report' => 'JLM\\DailyBundle\\Builder\\Email\\FixingReportMailBuilder'); $class = array_key_exists($step, $steps) ? $steps[$step] : null; if (null === $class) { throw new NotFoundHttpException('Page inexistante'); } $mail = MailFactory::create(new $class($entity)); $editForm = $this->createForm(new MailType(), $mail); $editForm->handleRequest($request); if ($editForm->isValid()) { $this->get('mailer')->send(MailFactory::create(new MailSwiftMailBuilder($editForm->getData()))); $this->get('event_dispatcher')->dispatch(JLMModelEvents::DOOR_SENDMAIL, new DoorEvent($entity->getDoor(), $request)); return $this->redirect($this->generateUrl('fixing_show', array('id' => $entity->getId()))); } return array('entity' => $entity, 'form' => $editForm->createView(), 'step' => $step); }