let currentPage = 1;
const itemsPerPage = 10;
let searchExhausted = false;
function previousPage() {
if (currentPage > 1) {
currentPage--;
fetchData();
}
}
function nextPage() {
if (currentPage < totalPages) {
currentPage++;
fetchData();
}
}
function updatePagination(data) {
currentPage = data.current_page;
totalPages = data.last_page;
totalItems = data.total;
let paginationHTML = '';
paginationHTML += `
Previous`;
for (let i = 1; i <= totalPages; i++) {
paginationHTML += `${i}`;
}
paginationHTML += `Next`;
$('#pagination').html(paginationHTML);
updatePaginationInfo();
}
function updatePaginationInfo() {
$('#pagination-info').html(`Showing ${(currentPage - 1) * itemsPerPage + 1}-${Math.min(currentPage * itemsPerPage, totalItems)} of ${totalItems}`);
}
function changePage(page) {
if (page !== currentPage) {
currentPage = page;
fetchData();
}
}
function toggleModal() {
var modal = document.getElementById("modal");
modal.classList.toggle("hidden");
}
function closeModal() {
var modal = $("#modal");
var form = $("#formData");
modal.addClass("hidden");
var formElements = form.find(":input");
formElements.each(function() {
var element = $(this);
if (element.is("input") || element.is("select") || element.is("textarea")) {
element.val("");
if (element.attr("type") === "password") {
element.prop("disabled", false);
element.removeClass('bg-gray-300');
element.addClass('bg-gray-50');
}
} else if ((element.is("input")) && (element.attr("type") === "checkbox" || element.attr("type") === "radio")) {
element.prop("checked", false);
}
});
}
document.getElementById("openModalButton").addEventListener("click", toggleModal);
document.getElementById("closeModalButton").addEventListener("click", closeModal);
window.addEventListener("click", function(event) {
var modal = document.getElementById("modal");
if (event.target == modal) {
closeModal();
}
});
document.getElementById('search').addEventListener('input', function() {
const searchTerm = this.value.toLowerCase();
const tableRows = document.querySelectorAll('#table tbody tr');
tableRows.forEach(row => {
const nama = row.cells[1].textContent.toLowerCase();
if (nama.includes(searchTerm)) {
row.style.display = '';
} else {
row.style.display = 'none';
}
});
});