<?php
namespace App\Controller;
use App\Entity\ChangeLogLabel;
use App\ValueObject\ChangeLogEntitySearch;
use App\ValueObject\SearchCriteria\ChangeLogLabelSearchCriteria;
use Ecommerce121\UtilBundle\Controller\ControllerBase;
use Ecommerce121\UtilBundle\Repository\QueryOptions;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\HttpFoundation\Response;
/**
* Class ComponentController.
*/
class ComponentController extends ControllerBase
{
/**
* Returns navbar template.
*
* @Template("Navigation/navbarComponent.html.twig")
*
* @param string $selectedItem
* @param bool $hideContents
*
* @return array
*/
public function navbarComponentAction($selectedItem = '', $hideContents = false)
{
return [
'selectedItem' => $selectedItem,
'hideContents' => $hideContents,
];
}
/**
* ChangeLog component.
*
* @Template("ChangeLog/changelogComponent.html.twig")
*
* @param string $title
* @param array $entity
* @param int|null $id
* @param int|null $itemsPerPage
*
* @return array
*/
public function changelogComponentAction($title, $entity, $id = null, $itemsPerPage = 10)
{
$this->forward404Unless(ChangeLogEntitySearch::isValidValue($entity));
$criteria = new ChangeLogLabelSearchCriteria();
$criteria->entity = $entity;
$criteria->entityId = $id;
$changeLogLabels = $this->getEntityManager()->getRepository(ChangeLogLabel::class)->search(
$criteria,
new QueryOptions(1, $itemsPerPage, 'createdDate', 'DESC')
);
return [
'title' => $title,
'changeLogLabels' => $changeLogLabels,
'entityType' => $entity
];
}
}