*/
public function addTagFormAction(Request $request, Entry $entry)
{
- $tag = new Tag();
- $form = $this->createForm(NewTagType::class, $tag);
+ $form = $this->createForm(NewTagType::class, new Tag());
$form->handleRequest($request);
if ($form->isValid()) {
- $existingTag = $this->getDoctrine()
- ->getRepository('WallabagCoreBundle:Tag')
- ->findOneByLabel($tag->getLabel());
+ $this->get('wallabag_core.content_proxy')->assignTagsToEntry(
+ $entry,
+ $form->get('label')->getData()
+ );
$em = $this->getDoctrine()->getManager();
-
- if (is_null($existingTag)) {
- $entry->addTag($tag);
- $em->persist($tag);
- } elseif (!$existingTag->hasEntry($entry)) {
- $entry->addTag($existingTag);
- $em->persist($existingTag);
- }
-
+ $em->persist($entry);
$em->flush();
$this->get('session')->getFlashBag()->add(
'notice',
- 'Tag added'
+ 'flashes.tag.notice.tag_added'
);
return $this->redirect($this->generateUrl('view', array('id' => $entry->getId())));