aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Wallabag/CoreBundle/Controller/EntryController.php
diff options
context:
space:
mode:
authorNicolas LÅ“uillet <nicolas@loeuillet.org>2015-08-07 22:20:30 +0200
committerNicolas LÅ“uillet <nicolas@loeuillet.org>2015-08-12 09:01:29 +0200
commit2686457448372543fdf4f1fc54c4fd20f0f02c2c (patch)
tree485eeecc3bd3db3613d47de25662d5c9163e4afe /src/Wallabag/CoreBundle/Controller/EntryController.php
parentfedaf005377e6d62ff0986f7f54afef3287a6451 (diff)
downloadwallabag-2686457448372543fdf4f1fc54c4fd20f0f02c2c.tar.gz
wallabag-2686457448372543fdf4f1fc54c4fd20f0f02c2c.tar.zst
wallabag-2686457448372543fdf4f1fc54c4fd20f0f02c2c.zip
store estimated reading time / filters on reading time
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 29e0ffb0..8894690c 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{
@@ -89,22 +92,39 @@ class EntryController extends Controller
89 /** 92 /**
90 * Shows unread entries for current user. 93 * Shows unread entries for current user.
91 * 94 *
95 * @param Request $request
96 * @param int $page
97 *
92 * @Route("/unread/list/{page}", name="unread", defaults={"page" = "1"}) 98 * @Route("/unread/list/{page}", name="unread", defaults={"page" = "1"})
93 * 99 *
94 * @return \Symfony\Component\HttpFoundation\Response 100 * @return \Symfony\Component\HttpFoundation\Response
95 */ 101 */
96 public function showUnreadAction($page) 102 public function showUnreadAction(Request $request, $page)
97 { 103 {
98 $entries = $this->getDoctrine() 104 $form = $this->get('form.factory')->create(new EntryFilterType());
105
106 $filterBuilder = $this->getDoctrine()
99 ->getRepository('WallabagCoreBundle:Entry') 107 ->getRepository('WallabagCoreBundle:Entry')
100 ->findUnreadByUser($this->getUser()->getId()); 108 ->findUnreadByUser($this->getUser()->getId());
101 109
110 if ($request->query->has($form->getName())) {
111 // manually bind values from the request
112 $form->submit($request->query->get($form->getName()));
113
114 // build the query from the given form object
115 $this->get('lexik_form_filter.query_builder_updater')->addFilterConditions($form, $filterBuilder);
116 }
117
118 $pagerAdapter = new DoctrineORMAdapter($filterBuilder->getQuery());
119 $entries = new Pagerfanta($pagerAdapter);
120
102 $entries->setMaxPerPage($this->getUser()->getConfig()->getItemsPerPage()); 121 $entries->setMaxPerPage($this->getUser()->getConfig()->getItemsPerPage());
103 $entries->setCurrentPage($page); 122 $entries->setCurrentPage($page);
104 123
105 return $this->render( 124 return $this->render(
106 'WallabagCoreBundle:Entry:entries.html.twig', 125 'WallabagCoreBundle:Entry:entries.html.twig',
107 array( 126 array(
127 'form' => $form->createView(),
108 'entries' => $entries, 128 'entries' => $entries,
109 'currentPage' => $page 129 'currentPage' => $page
110 ) 130 )
@@ -114,22 +134,39 @@ class EntryController extends Controller
114 /** 134 /**
115 * Shows read entries for current user. 135 * Shows read entries for current user.
116 * 136 *
137 * @param Request $request
138 * @param int $page
139 *
117 * @Route("/archive/list/{page}", name="archive", defaults={"page" = "1"}) 140 * @Route("/archive/list/{page}", name="archive", defaults={"page" = "1"})
118 * 141 *
119 * @return \Symfony\Component\HttpFoundation\Response 142 * @return \Symfony\Component\HttpFoundation\Response
120 */ 143 */
121 public function showArchiveAction($page) 144 public function showArchiveAction(Request $request, $page)
122 { 145 {
123 $entries = $this->getDoctrine() 146 $form = $this->get('form.factory')->create(new EntryFilterType());
147
148 $filterBuilder = $this->getDoctrine()
124 ->getRepository('WallabagCoreBundle:Entry') 149 ->getRepository('WallabagCoreBundle:Entry')
125 ->findArchiveByUser($this->getUser()->getId()); 150 ->findArchiveByUser($this->getUser()->getId());
126 151
152 if ($request->query->has($form->getName())) {
153 // manually bind values from the request
154 $form->submit($request->query->get($form->getName()));
155
156 // build the query from the given form object
157 $this->get('lexik_form_filter.query_builder_updater')->addFilterConditions($form, $filterBuilder);
158 }
159
160 $pagerAdapter = new DoctrineORMAdapter($filterBuilder->getQuery());
161 $entries = new Pagerfanta($pagerAdapter);
162
127 $entries->setMaxPerPage($this->getUser()->getConfig()->getItemsPerPage()); 163 $entries->setMaxPerPage($this->getUser()->getConfig()->getItemsPerPage());
128 $entries->setCurrentPage($page); 164 $entries->setCurrentPage($page);
129 165
130 return $this->render( 166 return $this->render(
131 'WallabagCoreBundle:Entry:entries.html.twig', 167 'WallabagCoreBundle:Entry:entries.html.twig',
132 array( 168 array(
169 'form' => $form->createView(),
133 'entries' => $entries, 170 'entries' => $entries,
134 'currentPage' => $page 171 'currentPage' => $page
135 ) 172 )
@@ -139,22 +176,39 @@ class EntryController extends Controller
139 /** 176 /**
140 * Shows starred entries for current user. 177 * Shows starred entries for current user.
141 * 178 *
179 * @param Request $request
180 * @param int $page
181 *
142 * @Route("/starred/list/{page}", name="starred", defaults={"page" = "1"}) 182 * @Route("/starred/list/{page}", name="starred", defaults={"page" = "1"})
143 * 183 *
144 * @return \Symfony\Component\HttpFoundation\Response 184 * @return \Symfony\Component\HttpFoundation\Response
145 */ 185 */
146 public function showStarredAction($page) 186 public function showStarredAction(Request $request, $page)
147 { 187 {
148 $entries = $this->getDoctrine() 188 $form = $this->get('form.factory')->create(new EntryFilterType());
189
190 $filterBuilder = $this->getDoctrine()
149 ->getRepository('WallabagCoreBundle:Entry') 191 ->getRepository('WallabagCoreBundle:Entry')
150 ->findStarredByUser($this->getUser()->getId()); 192 ->findStarredByUser($this->getUser()->getId());
151 193
194 if ($request->query->has($form->getName())) {
195 // manually bind values from the request
196 $form->submit($request->query->get($form->getName()));
197
198 // build the query from the given form object
199 $this->get('lexik_form_filter.query_builder_updater')->addFilterConditions($form, $filterBuilder);
200 }
201
202 $pagerAdapter = new DoctrineORMAdapter($filterBuilder->getQuery());
203 $entries = new Pagerfanta($pagerAdapter);
204
152 $entries->setMaxPerPage($this->getUser()->getConfig()->getItemsPerPage()); 205 $entries->setMaxPerPage($this->getUser()->getConfig()->getItemsPerPage());
153 $entries->setCurrentPage($page); 206 $entries->setCurrentPage($page);
154 207
155 return $this->render( 208 return $this->render(
156 'WallabagCoreBundle:Entry:entries.html.twig', 209 'WallabagCoreBundle:Entry:entries.html.twig',
157 array( 210 array(
211 'form' => $form->createView(),
158 'entries' => $entries, 212 'entries' => $entries,
159 'currentPage' => $page 213 'currentPage' => $page
160 ) 214 )