]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Merge pull request #1319 from wallabag/v2-form-header
authorJeremy Benoist <j0k3r@users.noreply.github.com>
Wed, 12 Aug 2015 08:14:44 +0000 (10:14 +0200)
committerJeremy Benoist <j0k3r@users.noreply.github.com>
Wed, 12 Aug 2015 08:14:44 +0000 (10:14 +0200)
add new post form in material header

1  2 
src/Wallabag/CoreBundle/Controller/EntryController.php

index 8894690ced079e07c971dd8d7dba1567df28be08,ef686ff1b7977a787486d6926ef1c4807c14b22b..6944a686e5d917a8feca04de5298aa6f68b95d72
@@@ -9,20 -9,17 +9,20 @@@ use Wallabag\CoreBundle\Entity\Entry
  use Wallabag\CoreBundle\Service\Extractor;
  use Wallabag\CoreBundle\Form\Type\NewEntryType;
  use Wallabag\CoreBundle\Form\Type\EditEntryType;
 +use Wallabag\CoreBundle\Filter\EntryFilterType;
 +use Pagerfanta\Adapter\DoctrineORMAdapter;
 +use Pagerfanta\Pagerfanta;
  
  class EntryController extends Controller
  {
      /**
       * @param Request $request
       *
-      * @Route("/new", name="new_entry")
+      * @Route("/new-entry", name="new_entry")
       *
       * @return \Symfony\Component\HttpFoundation\Response
       */
-     public function addEntryAction(Request $request)
+     public function addEntryFormAction(Request $request)
      {
          $entry = new Entry($this->getUser());
  
              return $this->redirect($this->generateUrl('homepage'));
          }
  
-         return $this->render('WallabagCoreBundle:Entry:new.html.twig', array(
+         return $this->render('WallabagCoreBundle:Entry:new_form.html.twig', array(
              'form' => $form->createView(),
          ));
      }
  
+     /**
+      * @param Request $request
+      *
+      * @Route("/new", name="new")
+      *
+      * @return \Symfony\Component\HttpFoundation\Response
+      */
+     public function addEntryAction(Request $request)
+     {
+         return $this->render('WallabagCoreBundle:Entry:new.html.twig');
+     }
      /**
       * Edit an entry content.
       *
      /**
       * Shows unread entries for current user.
       *
 +     * @param Request $request
 +     * @param int     $page
 +     *
       * @Route("/unread/list/{page}", name="unread", defaults={"page" = "1"})
       *
       * @return \Symfony\Component\HttpFoundation\Response
       */
 -    public function showUnreadAction($page)
 +    public function showUnreadAction(Request $request, $page)
      {
 -        $entries = $this->getDoctrine()
 +        $form = $this->get('form.factory')->create(new EntryFilterType());
 +
 +        $filterBuilder = $this->getDoctrine()
              ->getRepository('WallabagCoreBundle:Entry')
              ->findUnreadByUser($this->getUser()->getId());
  
 +        if ($request->query->has($form->getName())) {
 +            // manually bind values from the request
 +            $form->submit($request->query->get($form->getName()));
 +
 +            // build the query from the given form object
 +            $this->get('lexik_form_filter.query_builder_updater')->addFilterConditions($form, $filterBuilder);
 +        }
 +
 +        $pagerAdapter = new DoctrineORMAdapter($filterBuilder->getQuery());
 +        $entries = new Pagerfanta($pagerAdapter);
 +
          $entries->setMaxPerPage($this->getUser()->getConfig()->getItemsPerPage());
          $entries->setCurrentPage($page);
  
          return $this->render(
              'WallabagCoreBundle:Entry:entries.html.twig',
              array(
 +                'form'          => $form->createView(),
                  'entries'       => $entries,
                  'currentPage'   => $page
              )
      /**
       * Shows read entries for current user.
       *
 +     * @param Request $request
 +     * @param int     $page
 +     *
       * @Route("/archive/list/{page}", name="archive", defaults={"page" = "1"})
       *
       * @return \Symfony\Component\HttpFoundation\Response
       */
 -    public function showArchiveAction($page)
 +    public function showArchiveAction(Request $request, $page)
      {
 -        $entries = $this->getDoctrine()
 +        $form = $this->get('form.factory')->create(new EntryFilterType());
 +
 +        $filterBuilder = $this->getDoctrine()
              ->getRepository('WallabagCoreBundle:Entry')
              ->findArchiveByUser($this->getUser()->getId());
  
 +        if ($request->query->has($form->getName())) {
 +            // manually bind values from the request
 +            $form->submit($request->query->get($form->getName()));
 +
 +            // build the query from the given form object
 +            $this->get('lexik_form_filter.query_builder_updater')->addFilterConditions($form, $filterBuilder);
 +        }
 +
 +        $pagerAdapter = new DoctrineORMAdapter($filterBuilder->getQuery());
 +        $entries = new Pagerfanta($pagerAdapter);
 +
          $entries->setMaxPerPage($this->getUser()->getConfig()->getItemsPerPage());
          $entries->setCurrentPage($page);
  
          return $this->render(
              'WallabagCoreBundle:Entry:entries.html.twig',
              array(
 +                'form'          => $form->createView(),
                  'entries'       => $entries,
                  'currentPage'   => $page
              )
      /**
       * Shows starred entries for current user.
       *
 +     * @param Request $request
 +     * @param int     $page
 +     *
       * @Route("/starred/list/{page}", name="starred", defaults={"page" = "1"})
       *
       * @return \Symfony\Component\HttpFoundation\Response
       */
 -    public function showStarredAction($page)
 +    public function showStarredAction(Request $request, $page)
      {
 -        $entries = $this->getDoctrine()
 +        $form = $this->get('form.factory')->create(new EntryFilterType());
 +
 +        $filterBuilder = $this->getDoctrine()
              ->getRepository('WallabagCoreBundle:Entry')
              ->findStarredByUser($this->getUser()->getId());
  
 +        if ($request->query->has($form->getName())) {
 +            // manually bind values from the request
 +            $form->submit($request->query->get($form->getName()));
 +
 +            // build the query from the given form object
 +            $this->get('lexik_form_filter.query_builder_updater')->addFilterConditions($form, $filterBuilder);
 +        }
 +
 +        $pagerAdapter = new DoctrineORMAdapter($filterBuilder->getQuery());
 +        $entries = new Pagerfanta($pagerAdapter);
 +
          $entries->setMaxPerPage($this->getUser()->getConfig()->getItemsPerPage());
          $entries->setCurrentPage($page);
  
          return $this->render(
              'WallabagCoreBundle:Entry:entries.html.twig',
              array(
 +                'form'          => $form->createView(),
                  'entries'       => $entries,
                  'currentPage'   => $page
              )