public function showList(Request $request, Application $app, $entity)
{
$crudData = $app['crud']->getData($entity);
$definition = $crudData->getDefinition();
$filter = [];
$filterActive = false;
$filterToUse = [];
$filterOperators = [];
$this->buildUpListFilter($request, $definition, $filter, $filterActive, $filterToUse, $filterOperators);
$pageSize = $definition->getPageSize();
$total = $crudData->countBy($definition->getTable(), $filterToUse, $filterOperators, true);
$page = abs(intval($request->get('crudPage', 0)));
$maxPage = intval($total / $pageSize);
if ($total % $pageSize == 0) {
$maxPage--;
}
if ($page > $maxPage) {
$page = $maxPage;
}
$skip = $page * $pageSize;
$sortField = $request->get('crudSortField', $definition->getInitialSortField());
$sortAscendingRequest = $request->get('crudSortAscending');
$sortAscending = $sortAscendingRequest !== null ? $sortAscendingRequest === 'true' : $definition->isInitialSortAscending();
$entities = $crudData->listEntries($filterToUse, $filterOperators, $skip, $pageSize, $sortField, $sortAscending);
$crudData->fetchReferences($entities);
return $app['twig']->render($app['crud']->getTemplate($app, 'template', 'list', $entity), ['crudEntity' => $entity, 'crudData' => $crudData, 'definition' => $definition, 'entities' => $entities, 'pageSize' => $pageSize, 'maxPage' => $maxPage, 'page' => $page, 'total' => $total, 'filter' => $filter, 'filterActive' => $filterActive, 'sortField' => $sortField, 'sortAscending' => $sortAscending, 'layout' => $app['crud']->getTemplate($app, 'layout', 'list', $entity)]);
}