25 lines
1.3 KiB
Twig
25 lines
1.3 KiB
Twig
{#
|
|
Compact pager: first / previous / current / next / last — deliberately
|
|
not a full list of page numbers, since result sets here can run into
|
|
the hundreds of pages.
|
|
|
|
Params:
|
|
currentPage, totalPages: integers
|
|
routeName: the route to link back to
|
|
routeParams: all params to preserve *except* `page` (e.g. category,
|
|
q, when, lat, lon, range)
|
|
#}
|
|
{% if totalPages > 1 %}
|
|
<nav class="pager" aria-label="{{ 'pager.nav'|trans }}">
|
|
{% if currentPage > 1 %}
|
|
<a href="{{ path(routeName, routeParams|merge({page: 1})) }}" aria-label="{{ 'pager.first_aria'|trans }}">{{ 'pager.first'|trans }}</a>
|
|
<a href="{{ path(routeName, routeParams|merge({page: currentPage - 1})) }}" aria-label="{{ 'pager.prev_aria'|trans }}">{{ 'pager.prev'|trans }}</a>
|
|
{% endif %}
|
|
<span class="is-active">{{ 'pager.page'|trans({'%current%': currentPage, '%total%': totalPages}) }}</span>
|
|
{% if currentPage < totalPages %}
|
|
<a href="{{ path(routeName, routeParams|merge({page: currentPage + 1})) }}" aria-label="{{ 'pager.next_aria'|trans }}">{{ 'pager.next'|trans }}</a>
|
|
<a href="{{ path(routeName, routeParams|merge({page: totalPages})) }}" aria-label="{{ 'pager.last_aria'|trans }}">{{ 'pager.last'|trans }}</a>
|
|
{% endif %}
|
|
</nav>
|
|
{% endif %}
|