diff --git a/web-app/django/VIM/apps/instruments/static/instruments/js/pagination.js b/web-app/django/VIM/apps/instruments/static/instruments/js/pagination.js index b1ea38e..28795e3 100644 --- a/web-app/django/VIM/apps/instruments/static/instruments/js/pagination.js +++ b/web-app/django/VIM/apps/instruments/static/instruments/js/pagination.js @@ -3,8 +3,11 @@ const instrumentNumElement = document.getElementById('instrumentNum'); const instrumentNum = instrumentNumElement.getAttribute('data-instrument-num'); const savePaginationBtn = document.getElementById("save-pagination-setting"); -const paginateByInput = document.getElementById("paginate-by"); +const paginateByInput = document.getElementById("pagination-range"); const pageNumInput = document.getElementById("page-num"); +const rangeValue = document.getElementById("range-value"); + +const pageBtns = document.querySelectorAll(".page-link"); updatePaginationSetting(); @@ -27,12 +30,37 @@ function updatePaginationSetting() { pageNumInput.value = currentPageNum; } +function pageNumInputValidation() { + maxPageNum = Math.ceil(instrumentNum / paginateByInput.value); + if (pageNumInput.value < 1) { + pageNumInput.value = 1; + } else if (pageNumInput.value > maxPageNum) { + pageNumInput.value = maxPageNum; + } +} + +paginateByInput.addEventListener("input", function () { + rangeValue.textContent = this.value; + maxPageNum = Math.ceil(instrumentNum / this.value); + if (pageNumInput.value > maxPageNum) { + pageNumInput.value = maxPageNum; + } + pageNumInput.max = maxPageNum; +}); + savePaginationBtn.addEventListener("click", () => { + pageNumInputValidation(); const url = new URL(window.location.href); url.searchParams.set("paginate_by", paginateByInput.value); url.searchParams.set("page", pageNumInput.value); window.location.href = url.href; - setPaginationSetting(paginateByInput.value, pageNumInput.value); updatePaginationSetting(); +}); + +pageBtns.forEach((btn) => { + btn.addEventListener("click", () => { + paginate_by = localStorage.getItem("paginate_by"); + btn.href = btn.href + "&paginate_by=" + paginate_by; + }); }); \ No newline at end of file diff --git a/web-app/django/VIM/apps/instruments/templates/instruments/includes/pageSetting.html b/web-app/django/VIM/apps/instruments/templates/instruments/includes/pageSetting.html index 78689e9..e00ecc7 100644 --- a/web-app/django/VIM/apps/instruments/templates/instruments/includes/pageSetting.html +++ b/web-app/django/VIM/apps/instruments/templates/instruments/includes/pageSetting.html @@ -15,13 +15,11 @@