Added action to tag search results

This commit is contained in:
Nicolas Lœuillet
2021-08-03 14:35:45 +02:00
committed by Jeremy Benoist
parent 88fd7afeb5
commit 5077c46e4e
4 changed files with 69 additions and 0 deletions

View File

@ -2,6 +2,7 @@
namespace Wallabag\CoreBundle\Controller;
use Doctrine\ORM\QueryBuilder;
use Pagerfanta\Adapter\ArrayAdapter;
use Pagerfanta\Exception\OutOfRangeCurrentPageException;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
@ -190,4 +191,35 @@ class TagController extends Controller
return $this->redirect($redirectUrl);
}
/**
* Tag search results with the current search term
*
* @Route("/tag/search/{filter}", name="tag_this_search")
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function tagThisSearchAction($filter, Request $request)
{
$currentRoute = (null !== $request->query->get('currentRoute') ? $request->query->get('currentRoute') : '');
/** @var QueryBuilder $qb */
$qb = $this->get('wallabag_core.entry_repository')->getBuilderForSearchByUser($this->getUser()->getId(), $filter, $currentRoute);
$em = $this->getDoctrine()->getManager();
$entries = $qb->getQuery()->getResult();
foreach ($entries as $entry) {
$this->get('wallabag_core.tags_assigner')->assignTagsToEntry(
$entry,
$filter
);
$em->persist($entry);
}
$em->flush();
return $this->redirect($this->get('wallabag_core.helper.redirect')->to($request->headers->get('referer'), '', true));
}
}