From dda57bb9443817e3a080d5d25343f5a7e15dd14f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Mon, 26 Oct 2015 14:38:24 +0100 Subject: fix #1502 avoid duplicate entry and store pocket url in config --- src/Wallabag/CoreBundle/Controller/EntryController.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/Wallabag/CoreBundle/Controller/EntryController.php') diff --git a/src/Wallabag/CoreBundle/Controller/EntryController.php b/src/Wallabag/CoreBundle/Controller/EntryController.php index fa580133..de2eedcb 100644 --- a/src/Wallabag/CoreBundle/Controller/EntryController.php +++ b/src/Wallabag/CoreBundle/Controller/EntryController.php @@ -41,6 +41,7 @@ class EntryController extends Controller */ public function addEntryFormAction(Request $request) { + $em = $this->getDoctrine()->getManager(); $entry = new Entry($this->getUser()); $form = $this->createForm(new NewEntryType(), $entry); @@ -48,6 +49,19 @@ class EntryController extends Controller $form->handleRequest($request); if ($form->isValid()) { + $existingEntry = $em + ->getRepository('WallabagCoreBundle:Entry') + ->findOneByUrl($entry->getUrl()); + + if (!is_null($existingEntry)) { + $this->get('session')->getFlashBag()->add( + 'notice', + 'Entry already saved on '.$existingEntry->getCreatedAt()->format('d-m-Y') + ); + + return $this->redirect($this->generateUrl('view', array('id' => $existingEntry->getId()))); + } + $this->updateEntry($entry); $this->get('session')->getFlashBag()->add( 'notice', -- cgit v1.2.3 From 303768dfe9b85f87d043eb225c5c8c3a88d8c051 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Mon, 26 Oct 2015 15:49:44 +0100 Subject: - remove importers configuration - add check on userId for findOneByURL for entries --- src/Wallabag/CoreBundle/Controller/EntryController.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/Wallabag/CoreBundle/Controller/EntryController.php') diff --git a/src/Wallabag/CoreBundle/Controller/EntryController.php b/src/Wallabag/CoreBundle/Controller/EntryController.php index de2eedcb..9097810c 100644 --- a/src/Wallabag/CoreBundle/Controller/EntryController.php +++ b/src/Wallabag/CoreBundle/Controller/EntryController.php @@ -51,15 +51,15 @@ class EntryController extends Controller if ($form->isValid()) { $existingEntry = $em ->getRepository('WallabagCoreBundle:Entry') - ->findOneByUrl($entry->getUrl()); + ->findOneByUrlAndUserId($entry->getUrl(), $this->getUser()->getId()); - if (!is_null($existingEntry)) { + if (count($existingEntry) > 0) { $this->get('session')->getFlashBag()->add( 'notice', - 'Entry already saved on '.$existingEntry->getCreatedAt()->format('d-m-Y') + 'Entry already saved on '.$existingEntry[0]->getCreatedAt()->format('d-m-Y') ); - return $this->redirect($this->generateUrl('view', array('id' => $existingEntry->getId()))); + return $this->redirect($this->generateUrl('view', array('id' => $existingEntry[0]->getId()))); } $this->updateEntry($entry); -- cgit v1.2.3 From 5a4bbcc9a76fcdf54a6af25fcf7b26c9053a0ba3 Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Thu, 24 Dec 2015 15:19:50 +0100 Subject: Change the way to check for an existing entry The repository method return the entry found or false if nothing exists. --- src/Wallabag/CoreBundle/Controller/EntryController.php | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'src/Wallabag/CoreBundle/Controller/EntryController.php') diff --git a/src/Wallabag/CoreBundle/Controller/EntryController.php b/src/Wallabag/CoreBundle/Controller/EntryController.php index 9097810c..37f7ab60 100644 --- a/src/Wallabag/CoreBundle/Controller/EntryController.php +++ b/src/Wallabag/CoreBundle/Controller/EntryController.php @@ -41,7 +41,6 @@ class EntryController extends Controller */ public function addEntryFormAction(Request $request) { - $em = $this->getDoctrine()->getManager(); $entry = new Entry($this->getUser()); $form = $this->createForm(new NewEntryType(), $entry); @@ -49,17 +48,17 @@ class EntryController extends Controller $form->handleRequest($request); if ($form->isValid()) { - $existingEntry = $em - ->getRepository('WallabagCoreBundle:Entry') - ->findOneByUrlAndUserId($entry->getUrl(), $this->getUser()->getId()); + // check for existing entry, if it exists, redirect to it with a message + $existingEntry = $this->get('wallabag_core.entry_repository') + ->existByUrlAndUserId($entry->getUrl(), $this->getUser()->getId()); - if (count($existingEntry) > 0) { + if (false !== $existingEntry) { $this->get('session')->getFlashBag()->add( 'notice', - 'Entry already saved on '.$existingEntry[0]->getCreatedAt()->format('d-m-Y') + 'Entry already saved on '.$existingEntry['createdAt']->format('d-m-Y') ); - return $this->redirect($this->generateUrl('view', array('id' => $existingEntry[0]->getId()))); + return $this->redirect($this->generateUrl('view', array('id' => $existingEntry['id']))); } $this->updateEntry($entry); -- cgit v1.2.3