forked from rDrama/rDrama
1
0
Fork 0
rDrama/files/templates/pagination.html

67 lines
1.9 KiB
HTML
Raw Normal View History

2023-05-04 22:15:13 +00:00
<nav>
<ul class="pagination pagination-sm mb-0 mt-4 pl-1">
2023-06-25 17:31:33 +00:00
{% set ns = namespace() %}
{% if not size %}
{% set size = PAGE_SIZE %}
{% endif %}
{% set num_pages = (total / size) | round(0, 'ceil') | int %}
2023-05-04 22:15:13 +00:00
2023-06-25 17:31:33 +00:00
{% set ns.start_point = page - 2 %}
{% if ns.start_point < 1 %}
{% set ns.start_point = 1 %}
2023-05-04 22:15:13 +00:00
{% endif %}
2023-06-25 17:31:33 +00:00
{% set end_point = ns.start_point+4 %}
2023-05-04 22:15:13 +00:00
{% if end_point > num_pages %}
2023-06-25 17:31:33 +00:00
{% set ns.start_point = ns.start_point-(end_point-num_pages) %}
2023-05-04 22:15:13 +00:00
{% set end_point = num_pages %}
{% endif %}
2023-06-25 17:31:33 +00:00
{% if ns.start_point < 1 %}
{% set ns.start_point = 1 %}
2023-05-04 22:15:13 +00:00
{% endif %}
2023-06-25 17:31:33 +00:00
{% if ns.start_point > 1 %}
2023-05-04 22:15:13 +00:00
<li class="page-item">
2023-05-05 06:18:29 +00:00
<small><a class="page-link" href="{{1|change_page(request.full_path)|safe}}">1</a></small>
2023-05-04 22:15:13 +00:00
</li>
2023-06-25 17:31:33 +00:00
{% if ns.start_point == 3 %}
2023-05-04 22:15:13 +00:00
<li class="page-item">
2023-05-05 06:18:29 +00:00
<small><a class="page-link" href="{{2|change_page(request.full_path)|safe}}">2</a></small>
2023-05-04 22:15:13 +00:00
</li>
2023-06-25 17:31:33 +00:00
{% elif ns.start_point != 2 %}
2023-05-04 22:15:13 +00:00
<li class="page-item">
<small class="page-link dots">...</small>
</li>
{% set ns.start_point = ns.start_point + 1 %}
2023-05-04 22:15:13 +00:00
{% endif %}
{% endif %}
2023-06-25 17:31:33 +00:00
{% for x in range(ns.start_point, end_point+1) %}
2023-05-04 22:15:13 +00:00
<li class="page-item">
2023-06-24 15:03:19 +00:00
<small><a class="page-link {% if x == page %}active disabled{% endif %}" href="{{x|change_page(request.full_path)|safe}}">{{x}}</a></small>
2023-05-04 22:15:13 +00:00
</li>
{% endfor %}
{% if end_point < num_pages %}
{% if end_point == num_pages-2 %}
<li class="page-item">
2023-05-05 06:18:29 +00:00
<small><a class="page-link" href="{{(num_pages-1)|change_page(request.full_path)|safe}}">{{num_pages-1}}</a></small>
2023-05-04 22:15:13 +00:00
</li>
{% elif end_point != num_pages-1 %}
<li class="page-item">
<small class="page-link dots">...</small>
</li>
{% endif %}
<li class="page-item">
2023-05-05 06:18:29 +00:00
<small><a class="page-link" href="{{num_pages|change_page(request.full_path)|safe}}">{{num_pages}}</a></small>
2023-05-04 22:15:13 +00:00
</li>
{% endif %}
</ul>
</nav>