<script>
// REFRESH FORM -Start-
function refreshForm() {
$('#addForm #email').val('');
$('#addForm #name').val('');
$('#addForm #photo').val('');
$('#addForm #nama_lengkap').val('');
$('#addForm #no_telp').val('');
$('#addForm #alamat').val('');
$('#addForm #password').val('');
$('#addForm #password_confirmation').val('');
}
// REFRESH FORM -End-
// REFRESH TABLE -Start-
function refreshTable(searchQuery) {
var TableBody = $('#mainTable tbody');
var currentPageUrl = '/getUser?page=1';
TableBody.html('<tr><td colspan="6" class="text-center">Memuat data...</td></tr>');
$.ajax({
url: currentPageUrl,
type: 'GET',
data: {
search: searchQuery
},
cache: false,
success: function(response) {
if (response.status === 'success') {
TableBody.empty();
nextPageUrl = response.next_page_url || null;
$.each(response.data, function(index, user) {
var row = `
<tr>
<td>${user.email}</td>
<td>${user.username}</td>
<td>${user.nama_lengkap ?? '-'}</td>
<td>${user.no_telp ?? '-'}</td>
<td>${user.alamat ?? '-'}</td>
<td>
<div>
<button class="btn btn-info text-white edit-btn" data-bs-toggle="modal"
data-bs-target="#modalEdit" data-id="${user.user_id}"
data-name="${user.username}" data-email="${user.email}"
data-nama_lengkap="${user.nama_lengkap ?? ''}"
data-no_telp="${user.no_telp ?? ''}"
data-alamat="${user.alamat ?? ''}">
<i class="bi bi-pencil-square"></i>
</button>
<button class="btn btn-danger delete-btn" data-id="${user.user_id}">
<i class="bi bi-trash-fill"></i>
</button>
</div>
</td>
</tr>`;
TableBody.append(row);
});
} else {
alert('Gagal memuat data: ' + response.errors);
}
},
error: function(xhr) {
TableBody.html('<tr><td colspan="6" class="text-center">Data Tidak Ditemukan!</td></tr>');
},
complete: function() {
isLoading = false;
}
});
}
// REFRESH TABLE -End-
// LOAD DATA -Start-
let nextPageUrl = '/getUser?page=2'
var isLoading = false;
function loadData(searchQuery = '') {
if (!nextPageUrl || isLoading) return;
isLoading = true;
$.ajax({
url: nextPageUrl,
type: 'GET',
data: {
search: searchQuery
},
success: function(response) {
if (response.status === 'success') {
nextPageUrl = response.next_page_url;
var TableBody = $('#mainTable tbody');
$.each(response.data, function(index, user) {
var row = `
<tr>
<td>${user.email}</td>
<td>${user.username}</td>
<td>${user.nama_lengkap ?? '-'}</td>
<td>${user.no_telp ?? '-'}</td>
<td>${user.alamat ?? '-'}</td>
<td>
<div>
<button class="btn btn-info text-white edit-btn" data-bs-toggle="modal"
data-bs-target="#modalEdit" data-id="${user.user_id}"
data-name="${user.username}" data-email="${user.email}"
data-nama_lengkap="${user.nama_lengkap ?? ''}"
data-no_telp="${user.no_telp ?? ''}"
data-alamat="${user.alamat ?? ''}">
<i class="bi bi-pencil-square"></i>
</button>
<button class="btn btn-danger delete-btn" data-id="${user.user_id}">
<i class="bi bi-trash-fill"></i>
</button>
</div>
</td>
</tr>`;
TableBody.append(row);
});
} else {
TableBody.html(
'<tr><td colspan="6" class="text-center">Gagal Memuat Data!</td></tr>');
}
},
error: function(xhr) {
TableBody.html('<tr><td colspan="6" class="text-center">Data Tidak Ditemukan!</td></tr>');
},
complete: function() {
isLoading = false; // Selesai memuat data
}
});
}
// LOAD DATA -End-
// LOAD DATA WHEN SCROLL -Start-
$(window).on('scroll', function() {
if ($(window).scrollTop() + $(window).height() >= $(document).height() - 50) {
loadData();
}
});
// LOAD DATA WHEN SCROLL -End-
// FILL EDIT MODAL -Start-
$(document).on('click', '.edit-btn', function(e) {
var id = $(this).data('id');
var email = $(this).data('email');
var name = $(this).data('name');
var namaLengkap = $(this).data('nama_lengkap');
var alamat = $(this).data('alamat');
var noTelp = $(this).data('no_telp');
$('#editForm #edit_id').val(id);
$('#editForm #edit_email').val(email);
$('#editForm #edit_name').val(name);
$('#editForm #edit_nama_lengkap').val(namaLengkap);
$('#editForm #edit_alamat').val(alamat);
$('#editForm #edit_no_telp').val(noTelp);
});
// FILL EDIT MODAL -End-
// ADD DATA WHEN SUBMIT BUTTON GET CLICK -Start-
$('#submit-btn').click(function(e) {
e.preventDefault();
var formData = new FormData();
formData.append('_method', 'POST');
formData.append('email', $('#email').val());
formData.append('name', $('#name').val());
formData.append('password', $('#password').val());
formData.append('password_confirmation', $('#password_confirmation').val());
formData.append('nama_lengkap', $('#nama_lengkap').val());
formData.append('alamat', $('#alamat').val());
formData.append('no_telp', $('#no_telp').val());
if ($('#photo').length > 0 && $('#photo')[0].files && $('#photo')[0].files[0]) {
formData.append('photo', $('#photo')[0].files[0]);
}
$.ajax({
url: '{{ route('pengguna.store') }}',
type: 'POST',
data: formData,
processData: false,
contentType: false,
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
if (response.status == 'success') {
showAlert(
'Data Berhasil Di Tambahkan!',
response.message,
response.status,
function() {}
);
refreshTable();
refreshForm();
} else {
showAlert(
'Data Gagal Di Tambahkan!',
response.message,
response.status,
function() {}
);
}
},
error: function(xhr) {
if (xhr.status === 422) {
var errors = xhr.responseJSON.errors;
var errorMessage = '';
$.each(errors, function(key, value) {
errorMessage += value + '\n';
});
showAlert(
'Gagal Diubah!',
errorMessage,
'error',
function() {}
);
} else {
alert('Terjadi kesalahan server.');
}
}
});
});
// ADD DATA WHEN SUBMIT BUTTON GET CLICK -End-
// UPDATE WHEN UPDATE BUTTON GET CLICK -Start-
$(document).on('click', '#update-btn', function(e) {
e.preventDefault();
var id = $('#edit_id').val();
var formData = new FormData();
formData.append('_method', 'PUT');
formData.append('email', $('#edit_email').val());
formData.append('name', $('#edit_name').val());
formData.append('password', $('#edit_password').val());
formData.append('password_confirmation', $('#edit_password_confirmation').val());
formData.append('nama_lengkap', $('#edit_nama_lengkap').val());
formData.append('alamat', $('#edit_alamat').val());
formData.append('no_telp', $('#edit_no_telp').val());
if ($('#edit_photo').length > 0 && $('#edit_photo')[0].files && $('#edit_photo')[0].files[
0]) {
formData.append('photo', $('#edit_photo')[0].files[0]);
}
$.ajax({
url: `{{ route('pengguna.update', ':id') }}`.replace(':id', id),
type: 'POST',
data: formData,
processData: false,
contentType: false,
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
console.log(response.request);
if (response.status == 'success') {
showAlert(
'Berhasil Diubah!',
response.message,
response.status,
function() {
refreshTable()
}
);
} else {
showAlert(
'Gagal Diubah!',
response.message,
response.status,
function() {}
);
}
},
error: function(xhr) {
if (xhr.status === 422) {
var errors = xhr.responseJSON.errors;
var errorMessage = '';
$.each(errors, function(key, value) {
errorMessage += value + '\n';
});
showAlert(
'Gagal Diubah!',
errorMessage,
'error',
function() {}
);
} else {
alert('Terjadi kesalahan server.');
}
}
});
});
// UPDATE WHEN UPDATE BUTTON GET CLICK -End-
// DELETE WHEN DELETE BUTTON GET CLICK -Start-
$(document).on('click', '.delete-btn', function(e) {
e.preventDefault();
var id = $(this).data('id');
deleteAlert(function() {
$.ajax({
url: '/pengguna/' + id,
type: 'DELETE',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
if (response.status === 'success') {
showAlert(
'Data Berhasil Dihapus!',
response.message,
response.status,
function() {
refreshTable();
}
);
} else {
showAlert(
'Data Gagal Dihapus!',
response.message,
response.status,
function() {}
);
}
},
error: function(xhr) {
if (xhr.status === 422) {
var errors = xhr.responseJSON.errors;
var errorMessage = '';
$.each(errors, function(key, value) {
errorMessage += value + '\n';
});
showAlert(
'Gagal Diubah!',
errorMessage,
'error',
function() {}
);
} else {
alert('Terjadi kesalahan server.');
}
}
});
});
});
// DELETE WHEN DELETE BUTTON GET CLICK -End-
// REFRESH THE TABLE WHEN THERE IS INPUT IN SEARCH BAR -Start-
$('#search-bar').on('input', function() {
const searchQuery = $(this).val();
refreshTable(searchQuery);
});
// REFRESH THE TABLE WHEN THERE IS INPUT IN SEARCH BAR -End-
// WHEN DOCUMENT IS FULLY LOADED -Start
$(document).ready(function() {
refreshTable('');
});
// WHEN DOCUMENT IS FULLY LOADED -End-
</script>
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]