implementing the pagination api and the search preview

This commit is contained in:
2016-08-19 21:35:41 +02:00
parent c8fcab4d1d
commit 2a10929d36
3 changed files with 36 additions and 3 deletions

View File

@@ -10,6 +10,8 @@ use Chill\MainBundle\Security\Authorization\AuthorizationHelper;
use Symfony\Component\Templating\EngineInterface as TemplatingEngine;
use Doctrine\ORM\QueryBuilder;
use Symfony\Component\Security\Core\Role\Role;
use Chill\MainBundle\Pagination\PaginatorFactory;
use Chill\MainBundle\Search\SearchInterface;
/**
* Search within Events.
@@ -55,18 +57,27 @@ class EventSearch extends AbstractSearch
*/
private $templating;
/**
*
* @var PaginatorFactory
*/
private $paginationFactory;
const NAME = 'event_regular';
public function __construct(
TokenStorageInterface $tokenStorage,
EntityRepository $eventRepository,
AuthorizationHelper $authorizationHelper,
TemplatingEngine $templating
TemplatingEngine $templating,
PaginatorFactory $paginatorFactory
)
{
$this->user = $tokenStorage->getToken()->getUser();
$this->er = $eventRepository;
$this->helper = $authorizationHelper;
$this->templating = $templating;
$this->paginationFactory = $paginatorFactory;
}
public function supports($domain)
@@ -84,13 +95,21 @@ class EventSearch extends AbstractSearch
return 3000;
}
public function renderResult(array $terms, $start = 0, $limit = 50, array $options = array())
public function renderResult(array $terms, $start = 0, $limit = 50,
array $options = array())
{
$total = $this->count($terms);
$paginator = $this->paginationFactory->create($total);
return $this->templating->render('ChillEventBundle:Event:list.html.twig',
array(
'events' => $this->search($terms, $start, $limit, $options),
'pattern' => $this->recomposePattern($terms, $this->getAvailableTerms(), $terms['_domain']),
'total' => $this->count($terms)
'total' => $total,
'start' => $start,
'preview' => $options[SearchInterface::SEARCH_PREVIEW],
'paginator' => $paginator,
'search_name' => self::NAME
));
}