var pagination_current = 1; var pagination_end = 10 document.addEventListener('DOMContentLoaded', async function() { let receipts = await getReceipts() await replenishReceiptsTable(receipts) updatePaginationElement() }) async function replenishReceiptsTable(receipts) { let receiptsTableBody = document.getElementById("receiptsTableBody") receiptsTableBody.innerHTML = "" for(let i = 0; i < receipts.length; i++){ let tableRow = document.createElement('tr') let receiptIDCell = document.createElement('td') receiptIDCell.innerHTML = receipts[i].receipt_id let statusCell = document.createElement('td') statusCell.innerHTML = receipts[i].receipt_status let dateCell = document.createElement('td') dateCell.innerHTML = receipts[i].date_submitted dateCell.classList.add("uk-visible@m") let submittedByCell = document.createElement('td') submittedByCell.innerHTML = receipts[i].submitted_by submittedByCell.classList.add("uk-visible@m") tableRow.append( receiptIDCell, statusCell, dateCell, submittedByCell ) tableRow.onclick = async function() { let url = `${window.location.origin}/receipt/${receipts[i].id}`; window.location.href = url; } tableRow.style = "cursor: pointer;" receiptsTableBody.append(tableRow) } } var receipts_limit = 10 async function getReceipts() { const url = new URL('/receipts/getReceipts', window.location.origin); url.searchParams.append('page', pagination_current); url.searchParams.append('limit', receipts_limit); const response = await fetch(url); data = await response.json(); pagination_end = data.end let receipts = data.receipts; return receipts; } async function setPage(page) { pagination_current = page let receipts = await getReceipts() replenishReceiptsTable(receipts) updatePaginationElement() } async function updatePaginationElement() { let paginationElement = document.getElementById("paginationElement"); paginationElement.innerHTML = ""; // previous let previousElement = document.createElement('li') if(pagination_current<=1){ previousElement.innerHTML = ``; previousElement.classList.add('uk-disabled'); }else { previousElement.innerHTML = ``; } paginationElement.append(previousElement) //first let firstElement = document.createElement('li') if(pagination_current<=1){ firstElement.innerHTML = `1`; firstElement.classList.add('uk-disabled'); }else { firstElement.innerHTML = `1`; } paginationElement.append(firstElement) // ... if(pagination_current-2>1){ let firstDotElement = document.createElement('li') firstDotElement.classList.add('uk-disabled') firstDotElement.innerHTML = ``; paginationElement.append(firstDotElement) } // last if(pagination_current-2>0){ let lastElement = document.createElement('li') lastElement.innerHTML = `${pagination_current-1}` paginationElement.append(lastElement) } // current if(pagination_current!=1 && pagination_current != pagination_end){ let currentElement = document.createElement('li') currentElement.innerHTML = `
  • ${pagination_current}
  • ` paginationElement.append(currentElement) } // next if(pagination_current+2${pagination_current+1}` paginationElement.append(nextElement) } // ... if(pagination_current+2<=pagination_end){ let secondDotElement = document.createElement('li') secondDotElement.classList.add('uk-disabled') secondDotElement.innerHTML = ``; paginationElement.append(secondDotElement) } //end let endElement = document.createElement('li') if(pagination_current>=pagination_end){ endElement.innerHTML = `${pagination_end}`; endElement.classList.add('uk-disabled'); }else { endElement.innerHTML = `${pagination_end}`; } paginationElement.append(endElement) //next button let nextElement = document.createElement('li') if(pagination_current>=pagination_end){ nextElement.innerHTML = ``; nextElement.classList.add('uk-disabled'); }else { nextElement.innerHTML = ``; console.log(nextElement.innerHTML) } paginationElement.append(nextElement) }