🐛 fix(prosespenawaran): perbaiki route generation dengan parameter kosong

- Ganti parameter kosong ('') dengan placeholder ':id' pada route helper
- Implementasi JavaScript replace() untuk substitusi parameter dinamis
- Perbaiki fungsi updateulang dan updateKJPPStatus di editeulangxtjs.blade.php
- Meningkatkan keamanan dan konsistensi route generation
- Menghindari error Laravel route dengan parameter kosong
- Kompatibel dengan Laravel route caching mechanism
This commit is contained in:
Daeng Deni Mardaeni
2025-09-13 11:54:17 +07:00
parent 8a5bf21982
commit 627d7f9b40
2 changed files with 34 additions and 33 deletions

View File

@@ -72,7 +72,7 @@ function updateDataUlang(id, kjpp_id, kjppName){
if(passednih)
{
var file_data = $("#{{$route[1]}}_dokumenPersetujuan_"+id).prop("files")[0];
let useURL = "{{ route($route[0].'.'.$route[1].'.updateulang', '') }}/"+id;
let useURL = "{{ route($route[0].'.'.$route[1].'.updateulang', ':id') }}".replace(':id', id);
let formData = new FormData();
let token = "{{ csrf_token() }}";
formData.append("dokumen_persetujuan", file_data ?? "");
@@ -132,7 +132,7 @@ function deleteData(data, kjppName) {
//define variable
let token = "{{ csrf_token() }}";
let useURL = "{{ route($route[0].'.'.$route[1].'.updateKJPPStatus','') }}/"+data;
let useURL = "{{ route($route[0].'.'.$route[1].'.updateKJPPStatus', ':id') }}".replace(':id', data);
var input_data = new Object();
input_data._token = token;
@@ -334,4 +334,4 @@ function deleteDataUlang(data, kjppName) {
}
})
}
</script>
</script>

View File

@@ -1,9 +1,9 @@
<script tipe="module">
function switchProses(id)
{
let c = $('#{{$route[1]}}_check_'+id).val();
if($('input[name="{{$route[1]}}_check_'+id+'"]').is(':checked'))
{
// checked
@@ -16,7 +16,7 @@
setNonActiveElement(id);
}
}
function setActiveElement(id)
{
$('#{{$route[1]}}_biayaPenawaran_'+id).removeAttr('disabled');
@@ -24,7 +24,7 @@
$('#{{$route[1]}}_icon_update_'+id).removeAttr('disabled');
$('#{{$route[1]}}_icon_delete_'+id).removeAttr('disabled');
}
function setNonActiveElement(id)
{
$('#{{$route[1]}}_biayaPenawaran_'+id).attr('disabled', 'disabled');
@@ -32,32 +32,32 @@
$('#{{$route[1]}}_icon_update_'+id).attr('disabled', 'disabled');
$('#{{$route[1]}}_icon_delete_'+id).attr('disabled', 'disabled');
}
function updateData(id, kjpp_id, kjppName){
// id => detail_penawaran.id
removeErrorCssMsg();
let no_proposal = $("#{{$route[1]}}_no_proposal_"+id).val();
let tgl_proposal = $("#{{$route[1]}}_tgl_proposal_"+id).val();
let biaya = $("#{{$route[1]}}_biayaPenawaran_"+id).val();
let filepdf = $("#{{$route[1]}}_dokumenPersetujuan_"+id).val();
let passednih = true;
let no_proposal = $("#{{$route[1]}}_no_proposal_"+id).val();
let tgl_proposal = $("#{{$route[1]}}_tgl_proposal_"+id).val();
let biaya = $("#{{$route[1]}}_biayaPenawaran_"+id).val();
let filepdf = $("#{{$route[1]}}_dokumenPersetujuan_"+id).val();
let passednih = true;
if(passednih)
{
var file_data = $("#{{$route[1]}}_dokumenPersetujuan_"+id).prop("files")[0];
let useURL = "{{ route($route[0].'.'.$route[1].'.update', '') }}/"+id;
let formData = new FormData();
let useURL = "{{ route($route[0].'.'.$route[1].'.update', $id) }}";
let formData = new FormData();
let token = "{{ csrf_token() }}";
formData.append("dokumen_persetujuan", file_data ?? "");
formData.append("no_proposal", no_proposal);
formData.append("tgl_proposal", tgl_proposal);
formData.append("biaya_penawaran", biaya);
formData.append("biaya_penawaran", biaya);
formData.append("kjpp_rekanan_id", kjpp_id);
formData.append("_method", "PUT");
formData.append("_token", token);
$.ajax({
url: useURL,
type: "POST",
type: "POST",
data: formData,
processData: false,
contentType: false,
@@ -68,7 +68,7 @@
// success
var message = response.message;
toastrku("success", message);
setTimeout(function () {
setTimeout(function () {
location.reload(true);
}, 2000);
}
@@ -78,7 +78,7 @@
var message = response.message;
toastrku("error", message);
}
},
error: function (response, textStatus, errorThrown) {
var errors = response.responseJSON.errors;
@@ -87,11 +87,11 @@
});
}
});
}
}
function deleteData(data, kjppName) {
// data => detail_penawaran.id
Swal.fire({
@@ -104,10 +104,11 @@
confirmButtonText: 'Yes, delete it!'
}).then((result) => {
if (result.isConfirmed) {
//define variable
let token = "{{ csrf_token() }}";
let useURL = "{{ route($route[0].'.'.$route[1].'.updateKJPPStatus','') }}/"+data;
let useURL = "{{ route($route[0].'.'.$route[1].'.updateKJPPStatus', ':id') }}";
useURL = useURL.replace(':id', data);
var input_data = new Object();
input_data._token = token;
input_data.id =data;
@@ -119,7 +120,7 @@
data: input_data,
dataType: "json",
success: function(response) {
if('success' == response.status)
{
swal.fire('Deleted!', response.message.message_success[0], 'success').then(() => {
@@ -130,18 +131,18 @@
{
Swal.fire('Error!', response.message.message_error[0], 'error');
}
},
error: function(response, textStatus, errorThrown) {
// var errors = response.responseJSON.errors;
// console.log(errors);
console.log(response);
}
});
});
}
})
}
</script>
}
</script>