From c370c7e4f76e007182ff7c07557a7c856ba08215 Mon Sep 17 00:00:00 2001 From: Alissa Cheng <cheng@astron.nl> Date: Thu, 18 Jan 2024 17:13:05 +0100 Subject: [PATCH] fix pagination and add ellipsis --- .../templates/taskdatabase/pagination.html | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/atdb/taskdatabase/templates/taskdatabase/pagination.html b/atdb/taskdatabase/templates/taskdatabase/pagination.html index 0ff810f1..c40b0940 100644 --- a/atdb/taskdatabase/templates/taskdatabase/pagination.html +++ b/atdb/taskdatabase/templates/taskdatabase/pagination.html @@ -2,10 +2,10 @@ {% if my_tasks.has_previous %} <a href="?page=1" class="btn btn-outline-primary">First</a> - <a href="?page={{ my_tasks.previous_page_number }}" class="btn btn-outline-primary">Prev</a> + <a href="?page={{ my_tasks.previous_page_number }}" class="btn btn-outline-primary">Previous</a> {% else %} <button class="btn btn-outline-primary" disabled>First</button> - <button class="btn btn-outline-primary" disabled>Prev</button> + <button class="btn btn-outline-primary" disabled>Previous</button> {% endif %} {% for page_number in my_tasks.paginator.page_range %} @@ -13,17 +13,26 @@ <button class="btn btn-outline-primary active"> <span>{{ page_number }} <span class="sr-only">(current)</span></span> </button> - {% elif my_tasks.number < 5 and page_number < 21 or my_tasks.number > my_tasks.paginator.num_pages|add:"-5" and page_number > my_tasks.paginator.num_pages|add:"-20" %} + <!-- first and last 20 pages --> + {% elif my_tasks.number < 10 and page_number < 20 or my_tasks.number > my_tasks.paginator.num_pages|add:"-10" and page_number > my_tasks.paginator.num_pages|add:"-20" %} <a href="?page={{ page_number }}" class="btn btn-outline-primary"> {{ page_number }} </a> - {% elif page_number < my_tasks.number and page_number > my_tasks.number|add:"-5" or page_number > my_tasks.number and page_number < my_tasks.number|add:5 %} + <!-- 10 pages around current page --> + {% elif page_number < my_tasks.number and page_number > my_tasks.number|add:"-10" or page_number > my_tasks.number and page_number < my_tasks.number|add:10 %} <a href="?page={{ page_number }}" class="btn btn-outline-primary"> {{ page_number }} </a> {% endif %} {% endfor %} + <!-- last page button or ellipsis if last page is too far --> + {% if my_tasks.number|add:10 < my_tasks.paginator.num_pages %} + <button class="btn btn-outline-primary" disabled>...</button> + {% elif my_tasks.number|add:10 == my_tasks.paginator.num_pages %} + <a href="?page={{ my_tasks.paginator.num_pages }}" class="btn btn-outline-primary">{{ my_tasks.paginator.num_pages }}</a> + {% endif %} + {% if my_tasks.has_next %} <a href="?page={{ my_tasks.next_page_number }}" class="btn btn-outline-primary">Next</a> <a href="?page={{ my_tasks.paginator.num_pages }}" class="btn btn-outline-primary">Last</a> -- GitLab