diff --git a/src/js/components/filters.js b/src/js/components/filters.js index cfd02fcc..d66879ec 100644 --- a/src/js/components/filters.js +++ b/src/js/components/filters.js @@ -71,6 +71,10 @@ class Filters { url.searchParams.append('category', categories); } + // Reset to page 1 when filters change + url.searchParams.delete('page'); + url.searchParams.append('page', '1'); + // /* Scroll to the report content */ // url.hash = '#report-content'; diff --git a/src/js/techreport/utils/data.js b/src/js/techreport/utils/data.js index b044d4a5..d9ce8311 100644 --- a/src/js/techreport/utils/data.js +++ b/src/js/techreport/utils/data.js @@ -239,8 +239,27 @@ const fetchCategoryData = (rows, filters, callback) => { /* Update the pagination info */ const current = document.querySelectorAll('[data-page="current"]'); const total = document.querySelectorAll('[data-page="total"]'); + const totalPages = Math.ceil(category?.technologies?.length / rows); current.forEach(c => c.textContent = pageNr); - total.forEach(t => t.textContent = Math.ceil(category?.technologies?.length / rows)); + total.forEach(t => t.textContent = totalPages); + + /* Update pagination links visibility */ + const nextPageLink = document.querySelector('[data-pagination="next"]'); + const prevPageLink = document.querySelector('[data-pagination="previous"]'); + if (prevPageLink) { + if (pageNr <= 1) { + prevPageLink.style.display = 'none'; + } else { + prevPageLink.style.display = 'block'; + } + } + if (nextPageLink) { + if (pageNr >= totalPages) { + nextPageLink.style.display = 'none'; + } else { + nextPageLink.style.display = 'block'; + } + } /* Update components */ callback(category); diff --git a/static/css/techreport/techreport.css b/static/css/techreport/techreport.css index 22fc1ebe..5cb9a83f 100644 --- a/static/css/techreport/techreport.css +++ b/static/css/techreport/techreport.css @@ -1458,6 +1458,11 @@ select { border-top: 1px solid var(--color-separator); } +.table-page-info { + margin-left: auto; + margin-right: auto; +} + .table-page-info p { text-align: center; } diff --git a/templates/techreport/category.html b/templates/techreport/category.html index 8b35ceaf..31331f03 100644 --- a/templates/techreport/category.html +++ b/templates/techreport/category.html @@ -135,7 +135,7 @@

Technologies

{% set filters = tech_report_page.filters %} -

+

{% if filters.page and filters.page > 1 %} Previous page {% endif %} @@ -170,8 +170,8 @@

Technologies

-

- {% if not filters.last_page and filters.last_page == False %} +

+ {% if not filters.last_page %} Next page {% endif %}