Mengubah tombol aksi ketika nomor registrasi ada di tabel penawaran maka munculkan tombol penawaran ulang begitu juga sebaliknya
This commit is contained in:
@@ -111,6 +111,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');
|
||||
@@ -173,35 +212,23 @@
|
||||
actions: {
|
||||
title: 'Action',
|
||||
render: (item, data) => {
|
||||
// Display default links first
|
||||
return `<div class="flex flex-nowrap justify-center" id="action-${data.nomor_registrasi}">
|
||||
<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}/create" id="penawaran-link-${data.nomor_registrasi}">
|
||||
<i class="ki-outline ki-arrow-circle-right"></i>
|
||||
</a>
|
||||
</div>`;
|
||||
},
|
||||
createdRow: function(row, data, dataIndex) {
|
||||
// Call checkPenawaranExistence after the row is rendered
|
||||
checkPenawaranExistence(data.nomor_registrasi)
|
||||
.then(penawaranExists => {
|
||||
// Update link based on penawaranExists status
|
||||
let penawaranUrl = penawaranExists ?
|
||||
`tender/penawaran/${data.nomor_registrasi}/edit` :
|
||||
`tender/penawaran/${data.nomor_registrasi}/create`;
|
||||
// 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>
|
||||
`;
|
||||
|
||||
// Update href of the Penawaran link
|
||||
$(`#penawaran-link-${data.nomor_registrasi}`).attr('href', penawaranUrl);
|
||||
})
|
||||
.catch(error => {
|
||||
console.error("Error fetching penawaran existence:", error);
|
||||
});
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user