aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Wallabag/CoreBundle/Controller/EntryController.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/Wallabag/CoreBundle/Controller/EntryController.php')
-rw-r--r--src/Wallabag/CoreBundle/Controller/EntryController.php66
1 files changed, 60 insertions, 6 deletions
diff --git a/src/Wallabag/CoreBundle/Controller/EntryController.php b/src/Wallabag/CoreBundle/Controller/EntryController.php
index ef686ff1..6944a686 100644
--- a/src/Wallabag/CoreBundle/Controller/EntryController.php
+++ b/src/Wallabag/CoreBundle/Controller/EntryController.php
@@ -9,6 +9,9 @@ use Wallabag\CoreBundle\Entity\Entry;
9use Wallabag\CoreBundle\Service\Extractor; 9use Wallabag\CoreBundle\Service\Extractor;
10use Wallabag\CoreBundle\Form\Type\NewEntryType; 10use Wallabag\CoreBundle\Form\Type\NewEntryType;
11use Wallabag\CoreBundle\Form\Type\EditEntryType; 11use Wallabag\CoreBundle\Form\Type\EditEntryType;
12use Wallabag\CoreBundle\Filter\EntryFilterType;
13use Pagerfanta\Adapter\DoctrineORMAdapter;
14use Pagerfanta\Pagerfanta;
12 15
13class EntryController extends Controller 16class EntryController extends Controller
14{ 17{
@@ -101,22 +104,39 @@ class EntryController extends Controller
101 /** 104 /**
102 * Shows unread entries for current user. 105 * Shows unread entries for current user.
103 * 106 *
107 * @param Request $request
108 * @param int $page
109 *
104 * @Route("/unread/list/{page}", name="unread", defaults={"page" = "1"}) 110 * @Route("/unread/list/{page}", name="unread", defaults={"page" = "1"})
105 * 111 *
106 * @return \Symfony\Component\HttpFoundation\Response 112 * @return \Symfony\Component\HttpFoundation\Response
107 */ 113 */
108 public function showUnreadAction($page) 114 public function showUnreadAction(Request $request, $page)
109 { 115 {
110 $entries = $this->getDoctrine() 116 $form = $this->get('form.factory')->create(new EntryFilterType());
117
118 $filterBuilder = $this->getDoctrine()
111 ->getRepository('WallabagCoreBundle:Entry') 119 ->getRepository('WallabagCoreBundle:Entry')
112 ->findUnreadByUser($this->getUser()->getId()); 120 ->findUnreadByUser($this->getUser()->getId());
113 121
122 if ($request->query->has($form->getName())) {
123 // manually bind values from the request
124 $form->submit($request->query->get($form->getName()));
125
126 // build the query from the given form object
127 $this->get('lexik_form_filter.query_builder_updater')->addFilterConditions($form, $filterBuilder);
128 }
129
130 $pagerAdapter = new DoctrineORMAdapter($filterBuilder->getQuery());
131 $entries = new Pagerfanta($pagerAdapter);
132
114 $entries->setMaxPerPage($this->getUser()->getConfig()->getItemsPerPage()); 133 $entries->setMaxPerPage($this->getUser()->getConfig()->getItemsPerPage());
115 $entries->setCurrentPage($page); 134 $entries->setCurrentPage($page);
116 135
117 return $this->render( 136 return $this->render(
118 'WallabagCoreBundle:Entry:entries.html.twig', 137 'WallabagCoreBundle:Entry:entries.html.twig',
119 array( 138 array(
139 'form' => $form->createView(),
120 'entries' => $entries, 140 'entries' => $entries,
121 'currentPage' => $page 141 'currentPage' => $page
122 ) 142 )
@@ -126,22 +146,39 @@ class EntryController extends Controller
126 /** 146 /**
127 * Shows read entries for current user. 147 * Shows read entries for current user.
128 * 148 *
149 * @param Request $request
150 * @param int $page
151 *
129 * @Route("/archive/list/{page}", name="archive", defaults={"page" = "1"}) 152 * @Route("/archive/list/{page}", name="archive", defaults={"page" = "1"})
130 * 153 *
131 * @return \Symfony\Component\HttpFoundation\Response 154 * @return \Symfony\Component\HttpFoundation\Response
132 */ 155 */
133 public function showArchiveAction($page) 156 public function showArchiveAction(Request $request, $page)
134 { 157 {
135 $entries = $this->getDoctrine() 158 $form = $this->get('form.factory')->create(new EntryFilterType());
159
160 $filterBuilder = $this->getDoctrine()
136 ->getRepository('WallabagCoreBundle:Entry') 161 ->getRepository('WallabagCoreBundle:Entry')
137 ->findArchiveByUser($this->getUser()->getId()); 162 ->findArchiveByUser($this->getUser()->getId());
138 163
164 if ($request->query->has($form->getName())) {
165 // manually bind values from the request
166 $form->submit($request->query->get($form->getName()));
167
168 // build the query from the given form object
169 $this->get('lexik_form_filter.query_builder_updater')->addFilterConditions($form, $filterBuilder);
170 }
171
172 $pagerAdapter = new DoctrineORMAdapter($filterBuilder->getQuery());
173 $entries = new Pagerfanta($pagerAdapter);
174
139 $entries->setMaxPerPage($this->getUser()->getConfig()->getItemsPerPage()); 175 $entries->setMaxPerPage($this->getUser()->getConfig()->getItemsPerPage());
140 $entries->setCurrentPage($page); 176 $entries->setCurrentPage($page);
141 177
142 return $this->render( 178 return $this->render(
143 'WallabagCoreBundle:Entry:entries.html.twig', 179 'WallabagCoreBundle:Entry:entries.html.twig',
144 array( 180 array(
181 'form' => $form->createView(),
145 'entries' => $entries, 182 'entries' => $entries,
146 'currentPage' => $page 183 'currentPage' => $page
147 ) 184 )
@@ -151,22 +188,39 @@ class EntryController extends Controller
151 /** 188 /**
152 * Shows starred entries for current user. 189 * Shows starred entries for current user.
153 * 190 *
191 * @param Request $request
192 * @param int $page
193 *
154 * @Route("/starred/list/{page}", name="starred", defaults={"page" = "1"}) 194 * @Route("/starred/list/{page}", name="starred", defaults={"page" = "1"})
155 * 195 *
156 * @return \Symfony\Component\HttpFoundation\Response 196 * @return \Symfony\Component\HttpFoundation\Response
157 */ 197 */
158 public function showStarredAction($page) 198 public function showStarredAction(Request $request, $page)
159 { 199 {
160 $entries = $this->getDoctrine() 200 $form = $this->get('form.factory')->create(new EntryFilterType());
201
202 $filterBuilder = $this->getDoctrine()
161 ->getRepository('WallabagCoreBundle:Entry') 203 ->getRepository('WallabagCoreBundle:Entry')
162 ->findStarredByUser($this->getUser()->getId()); 204 ->findStarredByUser($this->getUser()->getId());
163 205
206 if ($request->query->has($form->getName())) {
207 // manually bind values from the request
208 $form->submit($request->query->get($form->getName()));
209
210 // build the query from the given form object
211 $this->get('lexik_form_filter.query_builder_updater')->addFilterConditions($form, $filterBuilder);
212 }
213
214 $pagerAdapter = new DoctrineORMAdapter($filterBuilder->getQuery());
215 $entries = new Pagerfanta($pagerAdapter);
216
164 $entries->setMaxPerPage($this->getUser()->getConfig()->getItemsPerPage()); 217 $entries->setMaxPerPage($this->getUser()->getConfig()->getItemsPerPage());
165 $entries->setCurrentPage($page); 218 $entries->setCurrentPage($page);
166 219
167 return $this->render( 220 return $this->render(
168 'WallabagCoreBundle:Entry:entries.html.twig', 221 'WallabagCoreBundle:Entry:entries.html.twig',
169 array( 222 array(
223 'form' => $form->createView(),
170 'entries' => $entries, 224 'entries' => $entries,
171 'currentPage' => $page 225 'currentPage' => $page
172 ) 226 )