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