3 namespace Wallabag\CoreBundle\Controller
;
5 use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route
;
6 use Symfony\Bundle\FrameworkBundle\Controller\Controller
;
7 use Symfony\Component\HttpFoundation\Request
;
8 use Wallabag\CoreBundle\Repository
;
9 use Wallabag\CoreBundle\Entity\Entries
;
10 use Wallabag\CoreBundle\Service\Extractor
;
11 use Wallabag\CoreBundle\Helper\Tools
;
12 use Wallabag\CoreBundle\Helper\Url
;
14 class EntryController
extends Controller
18 * @param Request $request
19 * @Route("/new", name="new_entry")
20 * @return \Symfony\Component\HttpFoundation\Response
22 public function addEntryAction(Request
$request)
24 $entry = new Entries();
27 $form = $this->createFormBuilder($entry)
29 ->add('save', 'submit')
32 $form->handleRequest($request);
34 if ($form->isValid()) {
36 $content = Extractor
::extract($entry->getUrl());
38 $entry->setTitle($content->getTitle());
39 $entry->setContent($content->getBody());
41 $em = $this->getDoctrine()->getManager();
45 $this->get('session')->getFlashBag()->add(
50 return $this->redirect($this->generateUrl('homepage'));
53 return $this->render('WallabagCoreBundle:Entry:new.html.twig', array(
54 'form' => $form->createView(),
59 * Shows unread entries for current user
61 * @Route("/unread", name="unread")
62 * @return \Symfony\Component\HttpFoundation\Response
64 public function showUnreadAction()
66 $repository = $this->getDoctrine()->getRepository('WallabagCoreBundle:Entries');
67 $entries = $repository->findUnreadByUser(1, 0);
70 'WallabagCoreBundle:Entry:entries.html.twig',
71 array('entries' => $entries)
76 * Shows read entries for current user
78 * @Route("/archive", name="archive")
79 * @return \Symfony\Component\HttpFoundation\Response
81 public function showArchiveAction()
83 $repository = $this->getDoctrine()->getRepository('WallabagCoreBundle:Entries');
84 $entries = $repository->findArchiveByUser(1, 0);
87 'WallabagCoreBundle:Entry:entries.html.twig',
88 array('entries' => $entries)
93 * Shows starred entries for current user
95 * @Route("/starred", name="starred")
96 * @return \Symfony\Component\HttpFoundation\Response
98 public function showStarredAction()
100 $repository = $this->getDoctrine()->getRepository('WallabagCoreBundle:Entries');
101 $entries = $repository->findStarredByUser(1, 0);
103 return $this->render(
104 'WallabagCoreBundle:Entry:entries.html.twig',
105 array('entries' => $entries)
110 * Shows entry content
112 * @param Entries $entry
113 * @Route("/view/{id}", requirements={"id" = "\d+"}, name="view")
114 * @return \Symfony\Component\HttpFoundation\Response
116 public function viewAction(Entries
$entry)
118 return $this->render(
119 'WallabagCoreBundle:Entry:entry.html.twig',
120 array('entry' => $entry)
125 * Changes read status for an entry
127 * @param Request $request
128 * @param Entries $entry
129 * @Route("/archive/{id}", requirements={"id" = "\d+"}, name="archive_entry")
130 * @return \Symfony\Component\HttpFoundation\RedirectResponse
132 public function toggleArchiveAction(Request
$request, Entries
$entry)
134 $entry->toggleArchive();
135 $this->getDoctrine()->getManager()->flush();
137 $this->get('session')->getFlashBag()->add(
142 return $this->redirect($request->headers
->get('referer'));
146 * Changes favorite status for an entry
148 * @param Request $request
149 * @param Entries $entry
150 * @Route("/star/{id}", requirements={"id" = "\d+"}, name="star_entry")
151 * @return \Symfony\Component\HttpFoundation\RedirectResponse
153 public function toggleStarAction(Request
$request, Entries
$entry)
155 $entry->toggleStar();
156 $this->getDoctrine()->getManager()->flush();
158 $this->get('session')->getFlashBag()->add(
163 return $this->redirect($request->headers
->get('referer'));
169 * @param Request $request
170 * @param Entries $entry
171 * @Route("/delete/{id}", requirements={"id" = "\d+"}, name="delete_entry")
172 * @return \Symfony\Component\HttpFoundation\RedirectResponse
174 public function deleteEntryAction(Request
$request, Entries
$entry)
176 $em = $this->getDoctrine()->getManager();
180 $this->get('session')->getFlashBag()->add(
185 return $this->redirect($request->headers
->get('referer'));