ghostai1 commited on
Commit
e436ba0
·
verified ·
1 Parent(s): 3884117

Update script.js

Browse files
Files changed (1) hide show
  1. script.js +63 -4
script.js CHANGED
@@ -1,7 +1,7 @@
1
  document.addEventListener('DOMContentLoaded', () => {
2
  const tableBody = document.getElementById('dataTable');
3
- const sentimentFilter = document.getElementById('sentimentFilter');
4
- const pagination = document.getElementById('pagination');
5
  const itemsPerPage = 10;
6
  let currentPage = 1;
7
  let dataset = [];
@@ -32,14 +32,37 @@ document.addEventListener('DOMContentLoaded', () => {
32
  tableBody.appendChild(row);
33
  });
34
 
 
 
 
 
 
 
35
  updatePagination(filteredData.length, page);
36
  }
37
 
38
  function updatePagination(totalItems, page) {
39
  pagination.innerHTML = '';
40
  const totalPages = Math.ceil(totalItems / itemsPerPage);
 
 
41
 
42
- if (totalPages <= 1) return;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43
 
44
  const prevLi = document.createElement('li');
45
  prevLi.className = `page-item ${page === 1 ? 'disabled' : ''}`;
@@ -50,7 +73,25 @@ document.addEventListener('DOMContentLoaded', () => {
50
  });
51
  pagination.appendChild(prevLi);
52
 
53
- for (let i = 1; i <= totalPages; i++) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
  const li = document.createElement('li');
55
  li.className = `page-item ${i === page ? 'active' : ''}`;
56
  li.innerHTML = `<a class="page-link" href="#">${i}</a>`;
@@ -61,6 +102,24 @@ document.addEventListener('DOMContentLoaded', () => {
61
  pagination.appendChild(li);
62
  }
63
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  const nextLi = document.createElement('li');
65
  nextLi.className = `page-item ${page === totalPages ? 'disabled' : ''}`;
66
  nextLi.innerHTML = '<a class="page-link" href="#">Next</a>';
 
1
  document.addEventListener('DOMContentLoaded', () => {
2
  const tableBody = document.getElementById('dataTable');
3
+ const sentimentFilter = document.getElementById('sentimentAnalysis');
4
+ const pagination = document.getElementById('customPagination');
5
  const itemsPerPage = 10;
6
  let currentPage = 1;
7
  let dataset = [];
 
32
  tableBody.appendChild(row);
33
  });
34
 
35
+ tableBody.style.opacity = '0';
36
+ setTimeout(() => {
37
+ tableBody.style.opacity = '1';
38
+ tableBody.style.transition = 'opacity 0.3s ease';
39
+ }, 50);
40
+
41
  updatePagination(filteredData.length, page);
42
  }
43
 
44
  function updatePagination(totalItems, page) {
45
  pagination.innerHTML = '';
46
  const totalPages = Math.ceil(totalItems / itemsPerPage);
47
+ const maxPagesToShow = 5;
48
+ let startPage, endPage;
49
 
50
+ if (totalPages <= maxPagesToShow) {
51
+ startPage = 1;
52
+ endPage = totalPages;
53
+ } else {
54
+ const half = Math.floor(maxPagesToShow / 2);
55
+ if (page <= half) {
56
+ startPage = 1;
57
+ endPage = maxPagesToShow;
58
+ } else if (page + half >= totalPages) {
59
+ startPage = totalPages - maxPagesToShow + 1;
60
+ endPage = totalPages;
61
+ } else {
62
+ startPage = page - half;
63
+ endPage = page + half;
64
+ }
65
+ }
66
 
67
  const prevLi = document.createElement('li');
68
  prevLi.className = `page-item ${page === 1 ? 'disabled' : ''}`;
 
73
  });
74
  pagination.appendChild(prevLi);
75
 
76
+ if (startPage > 1) {
77
+ const firstLi = document.createElement('li');
78
+ firstLi.className = 'page-item';
79
+ firstLi.innerHTML = '<a class="page-link" href="#">1</a>';
80
+ firstLi.addEventListener('click', (e) => {
81
+ e.preventDefault();
82
+ displayData(sentimentFilter.value, 1);
83
+ });
84
+ pagination.appendChild(firstLi);
85
+
86
+ if (startPage > 2) {
87
+ const dotsLi = document.createElement('li');
88
+ dotsLi.className = 'page-item disabled';
89
+ dotsLi.innerHTML = '<a class="page-link" href="#">...</a>';
90
+ pagination.appendChild(dotsLi);
91
+ }
92
+ }
93
+
94
+ for (let i = startPage; i <= endPage; i++) {
95
  const li = document.createElement('li');
96
  li.className = `page-item ${i === page ? 'active' : ''}`;
97
  li.innerHTML = `<a class="page-link" href="#">${i}</a>`;
 
102
  pagination.appendChild(li);
103
  }
104
 
105
+ if (endPage < totalPages) {
106
+ if (endPage < totalPages - 1) {
107
+ const dotsLi = document.createElement('li');
108
+ dotsLi.className = 'page-item disabled';
109
+ dotsLi.innerHTML = '<a class="page-link" href="#">...</a>';
110
+ pagination.appendChild(dotsLi);
111
+ }
112
+
113
+ const lastLi = document.createElement('li');
114
+ lastLi.className = 'page-item';
115
+ lastLi.innerHTML = `<a class="page-link" href="#">${totalPages}</a>`;
116
+ lastLi.addEventListener('click', (e) => {
117
+ e.preventDefault();
118
+ displayData(sentimentFilter.value, totalPages);
119
+ });
120
+ pagination.appendChild(lastLi);
121
+ }
122
+
123
  const nextLi = document.createElement('li');
124
  nextLi.className = `page-item ${page === totalPages ? 'disabled' : ''}`;
125
  nextLi.innerHTML = '<a class="page-link" href="#">Next</a>';