From a43f2d6017460e536799c97f962f6e89768aad4b Mon Sep 17 00:00:00 2001 From: Polonkai Gergely Date: Tue, 31 Jul 2012 09:47:50 +0200 Subject: [PATCH] Revised Document stuff (Controller and templates) Signed-off-by: Polonkai Gergely --- .../Controller/DocumentController.php | 40 ++++++------------- .../Resources/views/Document/create.html.twig | 2 +- .../Resources/views/Document/edit.html.twig | 4 +- .../Resources/views/Document/view.html.twig | 2 +- 4 files changed, 18 insertions(+), 30 deletions(-) diff --git a/src/KekRozsak/FrontBundle/Controller/DocumentController.php b/src/KekRozsak/FrontBundle/Controller/DocumentController.php index ed543f2..02240a8 100644 --- a/src/KekRozsak/FrontBundle/Controller/DocumentController.php +++ b/src/KekRozsak/FrontBundle/Controller/DocumentController.php @@ -5,6 +5,7 @@ namespace KekRozsak\FrontBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; +use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter; use KekRozsak\FrontBundle\Entity\Document; use KekRozsak\FrontBundle\Form\Type\DocumentType; @@ -13,30 +14,23 @@ use KekRozsak\FrontBundle\Extensions\Slugifier; class DocumentController extends Controller { /** - * @Route("/dokumentum/{documentSlug}", name="KekRozsakFrontBundle_documentView") + * @Route("/dokumentum/{slug}", name="KekRozsakFrontBundle_documentView") * @Template() + * @ParamConverter("document") */ - public function viewAction($documentSlug) + public function viewAction(Document $document) { - $docRepo = $this->getDoctrine()->getRepository('KekRozsakFrontBundle:Document'); - if (!($document = $docRepo->findOneBySlug($documentSlug))) - throw $this->createNotFoundException('A kért dokumentum nem létezik!'); - return array( 'document' => $document, ); } /** - * @Route("/dokumentumok/uj/{groupSlug}", name="KekRozsakFrontBundle_documentCreate", defaults={"groupslug"=""}) + * @Route("/dokumentumok/uj/", name="KekRozsakFrontBundle_documentCreate") * @Template() */ - public function createAction($groupSlug = '') + public function createAction() { - $groupRepo = $this->getDoctrine()->getRepository('KekRozsakFrontBundle:Group'); - $group = $groupRepo->findOneBySlug($groupSlug); - /* TODO: make group fully optional */ - $document = new Document(); $document->setSlug('n-a'); $form = $this->createForm(new DocumentType(), $document); @@ -48,41 +42,32 @@ class DocumentController extends Controller if ($form->isValid()) { + /* TODO: move these lines into life cycle events */ $slugifier = new Slugifier(); $document->setSlug($slugifier->slugify($document->getTitle())); $document->setCreatedAt(new \DateTime('now')); $document->setCreatedBy($this->get('security.context')->getToken()->getUser()); - if ($group) - { - $group->addDocument($document); - $document->addGroup($group); - } - $em = $this->getDoctrine()->getEntityManager(); $em->persist($document); $em->flush(); - /* TODO: return to group list if groupSlug is empty! */ - return $this->redirect($this->generateUrl('KekRozsakFrontBundle_groupDocuments', array('groupSlug' => $group->getSlug()))); + return $this->redirect($this->generateUrl('KekRozsakFrontBundle_documentView', array('slug' => $document->getSlug()))); } } return array( - 'defaultGroup' => $groupSlug, 'form' => $form->createView(), ); } /** - * @Route("/dokumentum/{documentSlug}/szerkesztes", name="KekRozsakFrontBundle_documentEdit") + * @Route("/dokumentum/{slug}/szerkesztes", name="KekRozsakFrontBundle_documentEdit") * @Template() + * @ParamConverter("document") */ - public function editAction($documentSlug) + public function editAction(Document $document) { - $documentRepo = $this->getDoctrine()->getRepository('KekRozsakFrontBundle:Document'); - if (!($document = $documentRepo->findOneBySlug($documentSlug))) - throw $this->createNotFoundException('A kért dokumentum nem létezik!'); $form = $this->createForm(new DocumentType(), $document); $request = $this->getRequest(); @@ -91,6 +76,7 @@ class DocumentController extends Controller $form->bindRequest($request); if ($form->isValid()) { + /* TODO: move these lines into life cycle events */ $slugifier = new Slugifier(); $document->setSlug($slugifier->slugify($document->getTitle())); // TODO: add updatedAt, updatedBy, updateReason, etc. @@ -99,7 +85,7 @@ class DocumentController extends Controller $em->persist($document); $em->flush(); - return $this->redirect($this->generateUrl('KekRozsakFrontBundle_documentView', array('documentSlug' => $document->getSlug()))); + return $this->redirect($this->generateUrl('KekRozsakFrontBundle_documentView', array('slug' => $document->getSlug()))); } } diff --git a/src/KekRozsak/FrontBundle/Resources/views/Document/create.html.twig b/src/KekRozsak/FrontBundle/Resources/views/Document/create.html.twig index 52299ff..881ba27 100644 --- a/src/KekRozsak/FrontBundle/Resources/views/Document/create.html.twig +++ b/src/KekRozsak/FrontBundle/Resources/views/Document/create.html.twig @@ -2,7 +2,7 @@ {% block title %} - Dokumentum létrehozása{% endblock %} {% block content %}

Új dokumentum létrehozása

-
+ {{ form_widget(form) }}
diff --git a/src/KekRozsak/FrontBundle/Resources/views/Document/edit.html.twig b/src/KekRozsak/FrontBundle/Resources/views/Document/edit.html.twig index 895bb5c..a02bd1f 100644 --- a/src/KekRozsak/FrontBundle/Resources/views/Document/edit.html.twig +++ b/src/KekRozsak/FrontBundle/Resources/views/Document/edit.html.twig @@ -1,8 +1,10 @@ +{# vim: ft=htmljinja +#} {% extends '::main_template.html.twig' %} {% block title %} - Dokumentum szerkesztése - {{ document.title }}{% endblock %} {% block content %}

Dokumentum szerkesztése - {{ document.title }}

-
+ {{ form_widget(form) }}
diff --git a/src/KekRozsak/FrontBundle/Resources/views/Document/view.html.twig b/src/KekRozsak/FrontBundle/Resources/views/Document/view.html.twig index dcac593..0050f2f 100644 --- a/src/KekRozsak/FrontBundle/Resources/views/Document/view.html.twig +++ b/src/KekRozsak/FrontBundle/Resources/views/Document/view.html.twig @@ -2,7 +2,7 @@ {% block title %} - Dokumentum - {{ document.title }}{% endblock %} {% block content %}

- {{ document.title }}{% if document.createdBy == app.user %} [ Szerkesztés ] {% endif %} + {{ document.title }}{% if document.createdBy == app.user %} [ Szerkesztés ] {% endif %}

{{ document.content|raw }}
{{ document.createdBy.displayName }}