X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=src%2FWallabag%2FCoreBundle%2FController%2FExportController.php;h=cec8d4999a621032cb3b6748ac30fe188a5d180c;hb=9b5552290445b404e6de0595d7d27a2de824230a;hp=e61b6d3200e6c3ebfe1d484f749414ac0c770cbd;hpb=03ce43d466daf9d085f5b521b223cb8b351a1c0e;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/CoreBundle/Controller/ExportController.php b/src/Wallabag/CoreBundle/Controller/ExportController.php index e61b6d32..cec8d499 100644 --- a/src/Wallabag/CoreBundle/Controller/ExportController.php +++ b/src/Wallabag/CoreBundle/Controller/ExportController.php @@ -2,10 +2,10 @@ namespace Wallabag\CoreBundle\Controller; -use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; +use Symfony\Component\Routing\Annotation\Route; use Wallabag\CoreBundle\Entity\Entry; /** @@ -17,7 +17,6 @@ class ExportController extends Controller /** * Gets one entry content. * - * @param Entry $entry * @param string $format * * @Route("/export/{id}.{format}", name="export_entry", requirements={ @@ -33,6 +32,7 @@ class ExportController extends Controller return $this->get('wallabag_core.helper.entries_export') ->setEntries($entry) ->updateTitle('entry') + ->updateAuthor('entry') ->exportAs($format); } catch (\InvalidArgumentException $e) { throw new NotFoundHttpException($e->getMessage()); @@ -55,18 +55,33 @@ class ExportController extends Controller public function downloadEntriesAction(Request $request, $format, $category) { $method = ucfirst($category); - $methodBuilder = 'getBuilderFor'.$method.'ByUser'; - $epository = $this->get('wallabag_core.entry_repository'); + $methodBuilder = 'getBuilderFor' . $method . 'ByUser'; + $repository = $this->get('wallabag_core.entry_repository'); + $title = $method; - if ($category == 'tag_entries') { + if ('tag_entries' === $category) { $tag = $this->get('wallabag_core.tag_repository')->findOneBySlug($request->query->get('tag')); - $entries = $epository->findAllByTagId( + $entries = $repository->findAllByTagId( $this->getUser()->getId(), $tag->getId() ); + + $title = 'Tag ' . $tag->getLabel(); + } elseif ('search' === $category) { + $searchTerm = (isset($request->get('search_entry')['term']) ? $request->get('search_entry')['term'] : ''); + $currentRoute = (null !== $request->query->get('currentRoute') ? $request->query->get('currentRoute') : ''); + + $entries = $repository->getBuilderForSearchByUser( + $this->getUser()->getId(), + $searchTerm, + $currentRoute + )->getQuery() + ->getResult(); + + $title = 'Search ' . $searchTerm; } else { - $entries = $epository + $entries = $repository ->$methodBuilder($this->getUser()->getId()) ->getQuery() ->getResult(); @@ -75,7 +90,8 @@ class ExportController extends Controller try { return $this->get('wallabag_core.helper.entries_export') ->setEntries($entries) - ->updateTitle($method) + ->updateTitle($title) + ->updateAuthor($method) ->exportAs($format); } catch (\InvalidArgumentException $e) { throw new NotFoundHttpException($e->getMessage());