..
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87 | // Get current page and limit query parameter
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
const page = urlParams.get("page") || 1;
const limit = urlParams.get("limit") || 100;
const numberOfPages = Math.ceil(count / limit);
const pagination = $(".pagination");
const pageLeft = $('#pageLeft');
const pageRight = $('#pageRight');
if (page > 1) {
pageLeft.removeClass("disabled");
pageLeft.attr("href", `/beneficiaries?page=${parseInt(page) - 1}&limit=${limit}`);
} else {
pageLeft.addClass("disabled");
}
if (page < numberOfPages) {
pageRight.removeClass("disabled");
pageRight.attr("href", `/beneficiaries?page=${parseInt(page) + 1}&limit=${limit}`);
} else {
pageRight.addClass("disabled");
}
function redirectToLimit(limit) {
window.location.href = `/beneficiaries?page=1&limit=${limit}`;
}
addPageNumbers(numberOfPages);
function addPageNumbers(numberOfPages) {
// Add page numbers from current page to 2 pages before and 2 pages after, if there are more than 5 pages
if (numberOfPages > 5) {
let startingPoint = page - 2;
if (page < 3) {
startingPoint = 1;
} else if (page > numberOfPages - 2) {
startingPoint = numberOfPages - 4;
} else {
startingPoint = page - 2;
}
for (let i = startingPoint; i < startingPoint + 5; i++) {
const linkElement = document.createElement("a");
linkElement.innerHTML = i;
linkElement.setAttribute("href", `/beneficiaries?page=${i}&limit=${limit}`);
linkElement.setAttribute("id", `page${i}`);
linkElement.classList.add("item");
pageRight.before(linkElement);
}
// add dots
const dots = document.createElement("a");
dots.innerHTML = "...";
dots.classList.add("item");
pageRight.before(dots);
// add first page if page > 3
if (page > 3) {
const firstPage = document.createElement("a");
firstPage.innerHTML = 1;
firstPage.setAttribute("href", `/beneficiaries?page=1&limit=${limit}`);
firstPage.setAttribute("id", `page1`);
firstPage.classList.add("item");
pageLeft.after(dots);
pageLeft.after(firstPage);
}
// add last page
if (page != numberOfPages) {
const lastPage = document.createElement("a");
lastPage.innerHTML = numberOfPages;
lastPage.setAttribute("href", `/beneficiaries?page=${numberOfPages}&limit=${limit}`);
lastPage.classList.add("item");
pageRight.before(lastPage);
}
} else {
// add page numbers
for (let i = 1; i <= numberOfPages; i++) {
// Insert before pageRight
const linkElement = document.createElement("a");
linkElement.innerHTML = i;
linkElement.setAttribute("href", `/beneficiaries?page=${i}&limit=${limit}`);
linkElement.setAttribute("id", `page${i}`);
linkElement.classList.add("item");
pageRight.before(linkElement);
}
}
const currentPageElement = document.getElementById(`page${page}`);
currentPageElement.classList.add("active");
}
|
|