Show error message flash, when an validation error occured.

This commit is contained in:
Jan Böhmer 2019-08-25 18:15:58 +02:00
parent 59748ecc22
commit 082a815f3a
3 changed files with 19 additions and 5 deletions

View file

@ -43,6 +43,7 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\File\UploadedFile; use Symfony\Component\HttpFoundation\File\UploadedFile;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Validator\ConstraintViolationList; use Symfony\Component\Validator\ConstraintViolationList;
use Symfony\Contracts\Translation\TranslatorInterface;
abstract class BaseAdminController extends AbstractController abstract class BaseAdminController extends AbstractController
{ {
@ -52,11 +53,15 @@ abstract class BaseAdminController extends AbstractController
protected $twig_template = ''; protected $twig_template = '';
protected $route_base = ''; protected $route_base = '';
public function __construct() protected $translator;
public function __construct(TranslatorInterface $translator)
{ {
if ($this->entity_class === '' || $this->form_class === '' || $this->twig_template === '' || $this->route_base === '') { if ($this->entity_class === '' || $this->form_class === '' || $this->twig_template === '' || $this->route_base === '') {
throw new \InvalidArgumentException('You have to override the $entity_class, $form_class, $route_base and $twig_template value in your subclasss!'); throw new \InvalidArgumentException('You have to override the $entity_class, $form_class, $route_base and $twig_template value in your subclasss!');
} }
$this->translator = $translator;
} }
protected function _edit(NamedDBElement $entity, Request $request, EntityManagerInterface $em) protected function _edit(NamedDBElement $entity, Request $request, EntityManagerInterface $em)
@ -70,6 +75,9 @@ abstract class BaseAdminController extends AbstractController
if ($form->isSubmitted() && $form->isValid()) { if ($form->isSubmitted() && $form->isValid()) {
$em->persist($entity); $em->persist($entity);
$em->flush(); $em->flush();
$this->addFlash('success', $this->translator->trans('entity.edit_flash'));
} elseif ($form->isSubmitted() && ! $form->isValid()) {
$this->addFlash('error', $this->translator->trans('entity.edit_flash.invalid'));
} }
//Rebuild form, so it is based on the updated data. Important for the parent field! //Rebuild form, so it is based on the updated data. Important for the parent field!
@ -96,9 +104,11 @@ abstract class BaseAdminController extends AbstractController
if ($form->isSubmitted() && $form->isValid()) { if ($form->isSubmitted() && $form->isValid()) {
$em->persist($new_entity); $em->persist($new_entity);
$em->flush(); $em->flush();
//$this->addFlash('success', $translator->trans('part.created_flash')); $this->addFlash('success', $this->translator->trans('entity.created_flash'));
return $this->redirectToRoute($this->route_base . '_edit', ['id' => $new_entity->getID()]); return $this->redirectToRoute($this->route_base . '_edit', ['id' => $new_entity->getID()]);
} elseif ($form->isSubmitted() && ! $form->isValid()) {
$this->addFlash('error', $this->translator->trans('entity.created_flash.invalid'));
} }
//Import form //Import form

View file

@ -70,7 +70,7 @@ class PartController extends AbstractController
* @param EntityManagerInterface $em * @param EntityManagerInterface $em
* @return \Symfony\Component\HttpFoundation\Response * @return \Symfony\Component\HttpFoundation\Response
*/ */
public function edit(Part $part, Request $request, EntityManagerInterface $em) public function edit(Part $part, Request $request, EntityManagerInterface $em, TranslatorInterface $translator)
{ {
$this->denyAccessUnlessGranted('edit', $part); $this->denyAccessUnlessGranted('edit', $part);
@ -80,7 +80,9 @@ class PartController extends AbstractController
if ($form->isSubmitted() && $form->isValid()) { if ($form->isSubmitted() && $form->isValid()) {
$em->persist($part); $em->persist($part);
$em->flush(); $em->flush();
$this->addFlash('info', 'part.edited_flash'); $this->addFlash('info', $translator->trans('part.edited_flash'));
} elseif ($form->isSubmitted() && ! $form->isValid()) {
$this->addFlash('error', $translator->trans('part.edited_flash.invalid'));
} }
return $this->render('Parts/edit/edit_part_info.html.twig', return $this->render('Parts/edit/edit_part_info.html.twig',
@ -119,6 +121,8 @@ class PartController extends AbstractController
$this->addFlash('success', $translator->trans('part.created_flash')); $this->addFlash('success', $translator->trans('part.created_flash'));
return $this->redirectToRoute('part_edit', ['id' => $new_part->getID()]); return $this->redirectToRoute('part_edit', ['id' => $new_part->getID()]);
} elseif ($form->isSubmitted() && ! $form->isValid()) {
$this->addFlash('error', $translator->trans('part.created_flash.invalid'));
} }
return $this->render('Parts/edit/new_part.html.twig', return $this->render('Parts/edit/new_part.html.twig',

View file

@ -264,7 +264,7 @@ class Part extends AttachmentContainingDBElement
/** /**
* @var float|null How much a single part unit weighs in gramms. * @var float|null How much a single part unit weighs in gramms.
* @ORM\Column(type="float", nullable=true) * @ORM\Column(type="float", nullable=true)
* @Assert\Positive() * @Assert\PositiveOrZero()
*/ */
protected $mass; protected $mass;