diff --git a/CRUD/Controller/EntityPersonCRUDController.php b/CRUD/Controller/EntityPersonCRUDController.php index ffd7ece3e..8da208755 100644 --- a/CRUD/Controller/EntityPersonCRUDController.php +++ b/CRUD/Controller/EntityPersonCRUDController.php @@ -64,4 +64,24 @@ class EntityPersonCRUDController extends CRUDController return parent::getTemplateFor($action, $entity, $request); } } + + protected function onBeforeRedirectAfterSubmission(string $action, $entity, \Symfony\Component\Form\FormInterface $form, Request $request) + { + $next = $request->request->get("submit", "save-and-close"); + + switch ($next) { + case "save-and-close": + return $this->redirectToRoute('chill_crud_'.$this->getCrudName().'_index', [ + 'id' => $entity->getPerson()->getId() + ]); + case "save-and-new": + return $this->redirectToRoute('chill_crud_'.$this->getCrudName().'_new', [ + 'person_id' => $entity->getPerson()->getId() + ]); + default: + return $this->redirectToRoute('chill_crud_'.$this->getCrudName().'_view', [ + 'id' => $entity->getId() + ]); + } + } } diff --git a/CRUD/Controller/OneToOneEntityPersonCRUDController.php b/CRUD/Controller/OneToOneEntityPersonCRUDController.php index 080c1bcc6..720de560c 100644 --- a/CRUD/Controller/OneToOneEntityPersonCRUDController.php +++ b/CRUD/Controller/OneToOneEntityPersonCRUDController.php @@ -55,7 +55,7 @@ class OneToOneEntityPersonCRUDController extends CRUDController $entity = parent::getEntity($action, $id, $request); if (NULL === $entity) { - $entity = $this->createEntity($request); + $entity = $this->createEntity($action, $request); $person = $this->getDoctrine() ->getManager() ->getRepository(Person::class) diff --git a/Resources/views/CRUD/_view_title.html.twig b/Resources/views/CRUD/_view_title.html.twig new file mode 100644 index 000000000..32766b18b --- /dev/null +++ b/Resources/views/CRUD/_view_title.html.twig @@ -0,0 +1 @@ +{{ ('crud.' ~ crud_name ~ '.title_view')|trans({'%person%': person|chill_entity_render_string }) }} \ No newline at end of file diff --git a/Resources/views/CRUD/view.html.twig b/Resources/views/CRUD/view.html.twig new file mode 100644 index 000000000..502999cbb --- /dev/null +++ b/Resources/views/CRUD/view.html.twig @@ -0,0 +1,16 @@ +{% extends '@ChillPerson/layout.html.twig' %} + +{% set person = entity.person %} +{% set activeRouteKey = '' %} + +{% block title %} +{% include('@ChillPerson/CRUD/_view_title.html.twig') %} +{% endblock %} + +{% block personcontent %} +{% embed '@ChillMain/CRUD/_view_content.html.twig' %} + {% block crud_content_header %} +