feat: selectable items per page in pagination

This commit is contained in:
Björn Fromme
2024-10-28 09:47:42 +01:00
parent 9625ed2001
commit 55f1b01556
11 changed files with 23 additions and 12 deletions
@@ -30,7 +30,7 @@ class IndexController extends AbstractController
$pagination = $this->paginator->paginate(
$query,
$request->query->getInt('page', 1),
10,
$request->query->getInt('limit', 10),
[
'defaultSortFieldName' => 'destination.dateFrom',
'defaultSortDirection' => 'asc',
+1 -1
View File
@@ -31,7 +31,7 @@ class IndexController extends AbstractController
$pagination = $this->paginator->paginate(
$qb,
$request->query->getInt('page', 1),
10,
$request->query->getInt('limit', 10),
[
'defaultSortFieldName' => 'log.timestamp',
'defaultSortDirection' => 'DESC',
@@ -30,7 +30,7 @@ class IndexController extends AbstractController
$pagination = $this->paginator->paginate(
$query,
$request->query->getInt('page', 1),
10,
$request->query->getInt('limit', 10),
[
'defaultSortFieldName' => 'availability.dateFrom',
'defaultSortDirection' => 'asc',
@@ -34,7 +34,7 @@ class IndexController extends AbstractController
$pagination = $this->paginator->paginate(
$query,
$request->query->getInt('page', 1),
10,
$request->query->getInt('limit', 10),
[
'defaultSortFieldName' => 'destination.dateFrom',
'defaultSortDirection' => 'asc',
@@ -34,7 +34,7 @@ class IndexController extends AbstractController
$pagination = $this->paginator->paginate(
$query,
$request->query->getInt('page', 1),
10
$request->query->getInt('limit', 10),
);
return $this->render('administrative/document/index.html.twig', [
@@ -30,7 +30,7 @@ class IndexController extends AbstractController
$pagination = $this->paginator->paginate(
$query,
$request->query->getInt('page', 1),
10,
$request->query->getInt('limit', 10),
[
'defaultSortFieldName' => 'feedback.createdAt',
'defaultSortDirection' => 'desc',
@@ -30,7 +30,7 @@ class IndexController extends AbstractController
$pagination = $this->paginator->paginate(
$query,
$request->query->getInt('page', 1),
10,
$request->query->getInt('limit', 10),
[
'defaultSortFieldName' => 'destination.dateFrom',
'defaultSortDirection' => 'desc',
@@ -27,7 +27,7 @@ class IndexController extends AbstractController
$pagination = $this->paginator->paginate(
$query,
$request->query->getInt('page', 1),
10,
$request->query->getInt('limit', 10),
[
'defaultSortFieldName' => 'upload.originalFilename',
'defaultSortDirection' => 'asc',
@@ -38,7 +38,7 @@ class IndexController extends AbstractController
$pagination = $this->paginator->paginate(
$query,
$request->query->getInt('page', 1),
10
$request->query->getInt('limit', 10)
);
return $this->render('administrative/teamer/index.html.twig', [
@@ -46,7 +46,7 @@ class IndexController extends AbstractController
$pagination = $this->paginator->paginate(
$query,
$request->query->getInt('page', 1),
10,
$request->query->getInt('limit', 10),
[
'defaultSortFieldName' => 'assignment.dateFrom',
'defaultSortDirection' => 'asc',
+13 -2
View File
@@ -1,8 +1,19 @@
{% if pageCount > 0 %}
<div class="bg-gray-100 border border-gray-300 border-t-0 px-4 py-3 flex items-center justify-between sm:px-4">
<div class="flex-1 flex items-center justify-between">
<div>
<p class="text-sm leading-5 text-gray-700">{{ 'paginator.info'|trans({ '{from}': firstItemNumber, '{to}': lastItemNumber, '{total}': totalCount })|raw }}</p>
<div class="flex items-center space-x-4">
<div class="text-sm leading-5 text-gray-700">
{{ 'paginator.info'|trans({ '{from}': firstItemNumber, '{to}': lastItemNumber, '{total}': totalCount })|raw }}
</div>
<select name="limit"
class="text-sm py-1 border-gray-300"
hx-get="{{ path(route, query|merge({(pageParameterName): 1})) }}"
hx-replace-url="{{ path(route, query|merge({(pageParameterName): 1})) }}"
hx-target="body">
<option value="10"{% if numItemsPerPage == 10 %} selected{% endif %}>10 pro Seite</option>
<option value="20"{% if numItemsPerPage == 20 %} selected{% endif %}>20 pro Seite</option>
<option value="50"{% if numItemsPerPage == 50 %} selected{% endif %}>50 pro Seite</option>
</select>
</div>
<div>
<nav class="relative z-0 inline-flex">