From ad4d1caa9e744af57ca58a4e57576533eb682d00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Fri, 23 Jan 2015 16:28:37 +0100 Subject: move WallabagBundle into Wallabag:CoreBundle --- .../CoreBundle/Controller/EntryController.php | 184 +++++++++++++++++++++ .../CoreBundle/Controller/StaticController.php | 20 +++ 2 files changed, 204 insertions(+) create mode 100644 src/Wallabag/CoreBundle/Controller/EntryController.php create mode 100644 src/Wallabag/CoreBundle/Controller/StaticController.php (limited to 'src/Wallabag/CoreBundle/Controller') diff --git a/src/Wallabag/CoreBundle/Controller/EntryController.php b/src/Wallabag/CoreBundle/Controller/EntryController.php new file mode 100644 index 00000000..2ebb416c --- /dev/null +++ b/src/Wallabag/CoreBundle/Controller/EntryController.php @@ -0,0 +1,184 @@ +setUserId(1); + + $form = $this->createFormBuilder($entry) + ->add('url', 'url') + ->add('save', 'submit') + ->getForm(); + + $form->handleRequest($request); + + if ($form->isValid()) { + + $content = Tools::getPageContent(new Url($entry->getUrl())); + var_dump($content);die; + + $em = $this->getDoctrine()->getEntityManager(); + $em->persist($entry); + $em->flush(); + + $this->get('session')->getFlashBag()->add( + 'notice', + 'Entry saved' + ); + + return $this->redirect($this->generateUrl('homepage')); + } + + return $this->render('WallabagCoreBundle:Entry:new.html.twig', array( + 'form' => $form->createView(), + )); + } + + /** + * Shows unread entries for current user + * + * @Route("/unread", name="unread") + * @return \Symfony\Component\HttpFoundation\Response + */ + public function showUnreadAction() + { + $repository = $this->getDoctrine()->getRepository('WallabagCoreBundle:Entries'); + $entries = $repository->findUnreadByUser(1, 0); + + return $this->render( + 'WallabagCoreBundle:Entry:entries.html.twig', + array('entries' => $entries) + ); + } + + /** + * Shows read entries for current user + * + * @Route("/archive", name="archive") + * @return \Symfony\Component\HttpFoundation\Response + */ + public function showArchiveAction() + { + $repository = $this->getDoctrine()->getRepository('WallabagCoreBundle:Entries'); + $entries = $repository->findArchiveByUser(1, 0); + + return $this->render( + 'WallabagCoreBundle:Entry:entries.html.twig', + array('entries' => $entries) + ); + } + + /** + * Shows starred entries for current user + * + * @Route("/starred", name="starred") + * @return \Symfony\Component\HttpFoundation\Response + */ + public function showStarredAction() + { + $repository = $this->getDoctrine()->getRepository('WallabagCoreBundle:Entries'); + $entries = $repository->findStarredByUser(1, 0); + + return $this->render( + 'WallabagCoreBundle:Entry:entries.html.twig', + array('entries' => $entries) + ); + } + + /** + * Shows entry content + * + * @param Entries $entry + * @Route("/view/{id}", requirements={"id" = "\d+"}, name="view") + * @return \Symfony\Component\HttpFoundation\Response + */ + public function viewAction(Entries $entry) + { + return $this->render( + 'WallabagCoreBundle:Entry:entry.html.twig', + array('entry' => $entry) + ); + } + + /** + * Changes read status for an entry + * + * @param Request $request + * @param Entries $entry + * @Route("/archive/{id}", requirements={"id" = "\d+"}, name="archive_entry") + * @return \Symfony\Component\HttpFoundation\RedirectResponse + */ + public function toggleArchiveAction(Request $request, Entries $entry) + { + $entry->toggleArchive(); + $this->getDoctrine()->getManager()->flush(); + + $this->get('session')->getFlashBag()->add( + 'notice', + 'Entry archived' + ); + + return $this->redirect($request->headers->get('referer')); + } + + /** + * Changes favorite status for an entry + * + * @param Request $request + * @param Entries $entry + * @Route("/star/{id}", requirements={"id" = "\d+"}, name="star_entry") + * @return \Symfony\Component\HttpFoundation\RedirectResponse + */ + public function toggleStarAction(Request $request, Entries $entry) + { + $entry->toggleStar(); + $this->getDoctrine()->getManager()->flush(); + + $this->get('session')->getFlashBag()->add( + 'notice', + 'Entry starred' + ); + + return $this->redirect($request->headers->get('referer')); + } + + /** + * Deletes entry + * + * @param Request $request + * @param Entries $entry + * @Route("/delete/{id}", requirements={"id" = "\d+"}, name="delete_entry") + * @return \Symfony\Component\HttpFoundation\RedirectResponse + */ + public function deleteEntryAction(Request $request, Entries $entry) + { + $em = $this->getDoctrine()->getEntityManager(); + $em->remove($entry); + $em->flush(); + + $this->get('session')->getFlashBag()->add( + 'notice', + 'Entry deleted' + ); + + return $this->redirect($request->headers->get('referer')); + } +} diff --git a/src/Wallabag/CoreBundle/Controller/StaticController.php b/src/Wallabag/CoreBundle/Controller/StaticController.php new file mode 100644 index 00000000..0fd19d65 --- /dev/null +++ b/src/Wallabag/CoreBundle/Controller/StaticController.php @@ -0,0 +1,20 @@ +render( + 'WallabagCoreBundle:Static:about.html.twig', + array() + ); + } +} -- cgit v1.2.3