Mengubah tombol aksi ketika nomor registrasi ada di tabel penawaran maka munculkan tombol penawaran ulang begitu juga sebaliknya

This commit is contained in:
2024-10-09 11:09:59 +07:00
parent 21a877ddf1
commit b5c206728f
4 changed files with 119 additions and 35 deletions

View File

@@ -112,6 +112,45 @@
return char.toUpperCase();
});
}
// Function to check the existence of penawaran and update button
function checkPenawaranExistence(nomor_registrasi) {
// URL API untuk cek penawaran
const url = `/api/check-penawaran/${nomor_registrasi}`;
// Fetch data dari server
fetch(url)
.then(response => response.json())
.then(data => {
const actionDiv = document.getElementById(`action-${nomor_registrasi}`);
if (data.exists) {
// Jika penawaran ada, ganti tombol menjadi "Penawaran Ulang"
actionDiv.innerHTML = `
<a class="btn btn-sm btn-icon btn-clear btn-warning" title="Detail" href="/tender/penawaran/${nomor_registrasi}/show">
<i class="ki-outline ki-abstract-26"></i>
</a>
<a href="/tender/penawaran/${nomor_registrasi}/edit" class="btn btn-sm btn-icon btn-clear btn-info" title="Penawaran">
<i class="ki-outline ki-arrow-circle-right"></i>
</a>
`;
} else {
// Jika tidak ada, tampilkan tombol "Tambah Penawaran"
actionDiv.innerHTML = `
<a class="btn btn-sm btn-icon btn-clear btn-warning" title="Detail" href="/tender/penawaran/${nomor_registrasi}/show">
<i class="ki-outline ki-abstract-26"></i>
</a>
<a href="/tender/penawaran/${nomor_registrasi}/create" class="btn btn-sm btn-icon btn-clear btn-primary" title="Penawaran">
<i class="ki-outline ki-arrow-circle-right"></i>
</a>
`;
}
})
.catch(error => {
console.error('Error:', error);
const actionDiv = document.getElementById(`action-${nomor_registrasi}`);
actionDiv.innerHTML = `<span class="text-danger">Error loading action</span>`;
});
}
</script>
<script type="module">
const element = document.querySelector('#penawaran-table');
@@ -174,16 +213,22 @@
actions: {
title: 'Action',
render: (item, data) => {
return `<div class="flex flex-nowrap justify-center">
<a class="btn btn-sm btn-icon btn-clear btn-primary" title="Detail" href="tender/penawaran/${data.nomor_registrasi}/show">
<i class="ki-outline ki-abstract-26"></i>
</a>
<a class="btn btn-sm btn-icon btn-clear btn-info" title="Penawaran" href="tender/penawaran/${data.nomor_registrasi}/edit">
<i class="ki-outline ki-arrow-circle-right"></i>
</a>
// Default action button, to be updated later
let actionHtml = `
<div class="flex flex-nowrap justify-center" id="action-${data.nomor_registrasi}">
<a class="btn btn-sm btn-icon btn-clear btn-secondary" title="Loading..." href="#">
<i class="ki-outline ki-loading"></i>
</a>
</div>
`;
</div>`;
},
// Call the checkPenawaranExistence function to update the action button dynamically
setTimeout(() => { // Using setTimeout to ensure DOM elements are rendered before updating
checkPenawaranExistence(data.nomor_registrasi);
}, 0);
return actionHtml;
}
}
},
};