class EntryController extends Controller
{
+ /**
+ * @param Entry $entry
+ */
+ private function updateEntry(Entry $entry)
+ {
+ try {
+ $entry = $this->get('wallabag_core.content_proxy')->updateEntry($entry, $entry->getUrl());
+ $em = $this->getDoctrine()->getManager();
+ $em->persist($entry);
+ $em->flush();
+ } catch (\Exception $e) {
+ return false;
+ }
+
+ return true;
+ }
+
/**
* @param Request $request
*
$form->handleRequest($request);
if ($form->isValid()) {
- $entry = $this->get('wallabag_core.content_proxy')->updateEntry($entry, $entry->getUrl());
-
- $em = $this->getDoctrine()->getManager();
- $em->persist($entry);
- $em->flush();
-
+ $this->updateEntry($entry);
$this->get('session')->getFlashBag()->add(
'notice',
'Entry saved'
));
}
+ /**
+ * @param Request $request
+ *
+ * @Route("/bookmarklet", name="bookmarklet")
+ *
+ * @return \Symfony\Component\HttpFoundation\Response
+ */
+ public function addEntryViaBookmarklet(Request $request)
+ {
+ $entry = new Entry($this->getUser());
+ $entry->setUrl($request->get('url'));
+ $this->updateEntry($entry);
+
+ return $this->redirect($this->generateUrl('homepage'));
+ }
+
/**
* @param Request $request
*
*
* @return \Symfony\Component\HttpFoundation\RedirectResponse
*/
- public function deleteEntryAction(Entry $entry)
+ public function deleteEntryAction(Request $request, Entry $entry)
{
$this->checkUserAction($entry);
'Entry deleted'
);
- return $this->redirect($this->generateUrl('homepage'));
+ return $this->redirect($request->headers->get('referer'));
}
/**