356 lines
12 KiB
JavaScript
356 lines
12 KiB
JavaScript
formCreate.on("submit", async function(e) {
|
|
e.preventDefault();
|
|
|
|
const formData = new FormData(formCreate[0]);
|
|
|
|
try {
|
|
const response = await fetch(formCreate.attr("action"), {
|
|
method: "POST",
|
|
body: formData,
|
|
headers: {
|
|
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').content // penting untuk Laravel
|
|
}
|
|
});
|
|
|
|
if (!response.ok) {
|
|
// Kalau response error (422, 500, dll), ambil text error dari server
|
|
const errorText = await response.text();
|
|
throw new Error(errorText);
|
|
}
|
|
|
|
const result = await response.json();
|
|
|
|
if (result.status === "success") {
|
|
Swal.fire({
|
|
title: "Success",
|
|
text: result.message || "Data Berhasil ditambahkan",
|
|
icon: "success",
|
|
showConfirmButton: false,
|
|
timer: 1200
|
|
});
|
|
|
|
formCreate[0].reset();
|
|
$("#create_modal").modal('hide');
|
|
dataTable.bootstrapTable("refresh");
|
|
}
|
|
} catch (error) {
|
|
let errorMessage = 'Terjadi kesalahan saat mengirim data.';
|
|
|
|
try {
|
|
// Coba parse error yang dilempar
|
|
const parsedError = JSON.parse(error.message);
|
|
|
|
if (parsedError.errors) {
|
|
// Kalau Laravel kirim validation error
|
|
errorMessage = Object.values(parsedError.errors).flat().join('\n');
|
|
} else if (parsedError.message) {
|
|
errorMessage = parsedError.message;
|
|
}
|
|
} catch (parseError) {
|
|
// Kalau error bukan JSON valid, tampilkan biasa
|
|
errorMessage = error.message;
|
|
}
|
|
|
|
Swal.fire({
|
|
title: "Error",
|
|
text: errorMessage,
|
|
icon: "error",
|
|
});
|
|
}
|
|
});
|
|
|
|
|
|
|
|
function editData(value){
|
|
const uid = $(value).data('uid')
|
|
const el = $(value)
|
|
$("#no_card_asuransi_edit").val(el.data('no_card_asuransi'))
|
|
selectOldPasien(el.data('pasien_uid'))
|
|
selectOldAsuransi(el.data('asuransi_uid'))
|
|
selectOldRuangan(el.data('ruang_pelayanan_uid'))
|
|
$("#edit_modal").modal("show")
|
|
formEdit.attr('action', `/registrasi/${uid}`)
|
|
|
|
|
|
formEdit.off("submit").on("submit", async function(e){
|
|
e.preventDefault()
|
|
const formDataEdit = new FormData(formEdit[0])
|
|
try {
|
|
const responseEdit = await fetch(formEdit.attr("action"), {
|
|
method:"POST",
|
|
body:formDataEdit,
|
|
})
|
|
|
|
const resultEdit = await responseEdit.json()
|
|
if(responseEdit.ok && resultEdit.status === "success"){
|
|
Swal.fire({
|
|
title:"Success",
|
|
text:"Data Berhasil diupdate",
|
|
icon:"success",
|
|
showConfirmButton: false,
|
|
timer:1200
|
|
});
|
|
|
|
formEdit[0].reset()
|
|
$("#edit_modal").modal('hide')
|
|
dataTable.bootstrapTable("refresh")
|
|
}
|
|
} catch (error) {
|
|
Swal.fire({
|
|
title:"Error",
|
|
text:"Message:" + error,
|
|
icon:"error",
|
|
})
|
|
}
|
|
})
|
|
}
|
|
|
|
function deleteData(id, name){
|
|
Swal.fire({
|
|
title: "Apakah kamu yakin ingin menghapus data ini?",
|
|
text : name,
|
|
icon: "warning",
|
|
showCancelButton: true
|
|
}).then((result) => {
|
|
if(result.isConfirmed){
|
|
fetch(`/registrasi/${id}`, {
|
|
method:'DELETE',
|
|
headers: {
|
|
"X-CSRF-TOKEN": document.querySelector('meta[name="csrf-token"]').getAttribute('content'),
|
|
"Content-Type": "application/json"
|
|
}
|
|
}).then((response) => {
|
|
if(!response.ok){
|
|
throw new Error("Network response was not ok");
|
|
}
|
|
return response.json();
|
|
})
|
|
.then((data) => {
|
|
if(data.status === "success"){
|
|
Swal.fire({
|
|
title: "Success",
|
|
text: "Data berhasil dihapus",
|
|
icon:"success",
|
|
showConfirmButton: false,
|
|
timer: 1000
|
|
}).then(() => {
|
|
dataTable.bootstrapTable("refresh")
|
|
})
|
|
}else{
|
|
Swal.fire({
|
|
title: "Error!",
|
|
text: data.message || "Failed to delete Schedule.",
|
|
icon: "error"
|
|
});
|
|
}
|
|
})
|
|
.catch(error => {
|
|
Swal.fire({
|
|
title: "Error!",
|
|
text: "Something went wrong. Please try again later.",
|
|
icon: "error"
|
|
});
|
|
});
|
|
}
|
|
})
|
|
}
|
|
|
|
function selectOldPasien(selectedValue){
|
|
const pasienEdit = $("#pasien_uid_edit")
|
|
if(pasienEdit[0].selectize){
|
|
pasienEdit[0].selectize.destroy()
|
|
}
|
|
|
|
pasienEdit.selectize({
|
|
valueField:"uid",
|
|
labelField:"name",
|
|
searchField:['name', 'uid'],
|
|
create:false,
|
|
placeholder:"Cari Pasien ...",
|
|
load:function(query, callback){
|
|
if(!query.length) return callback();
|
|
$.ajax({
|
|
url:'/helper/get/patient',
|
|
data: {search: query},
|
|
success: function (response){
|
|
if(response.error === 0 && Array.isArray(response.data)){
|
|
callback(response.data);
|
|
}else{
|
|
callback([])
|
|
}
|
|
},
|
|
error: function() {
|
|
callback([]);
|
|
}
|
|
});
|
|
},
|
|
render: {
|
|
option: function(item, escape){
|
|
return `
|
|
<div class="p-1">
|
|
<div class="fw-semibold" style="font-size: 0.85rem;">
|
|
${escape(item.name)}
|
|
</div>
|
|
</div>`;
|
|
},
|
|
item: function(item, escape){
|
|
return `<div> ${escape(item.name)} </div>`
|
|
}
|
|
},
|
|
onInitialize:function(){
|
|
const selectize = this;
|
|
if(selectedValue){
|
|
if(!selectize.options[selectedValue]){
|
|
$.ajax({
|
|
url:'/helper/get/patient',
|
|
data: {search : selectedValue},
|
|
success: function(response){
|
|
if(response.error === 0 && response.data){
|
|
selectize.addOption(response.data[0])
|
|
selectize.setValue(selectedValue)
|
|
}
|
|
},
|
|
error:function(){
|
|
console.error('Failed to fetch data');
|
|
}
|
|
})
|
|
}
|
|
}else{
|
|
selectize.setValue(selectedValue)
|
|
}
|
|
}
|
|
})
|
|
}
|
|
function selectOldAsuransi(selectedValue){
|
|
const asuransiEdit = $("#asuransi_uid_edit")
|
|
if(asuransiEdit[0].selectize){
|
|
asuransiEdit[0].selectize.destroy()
|
|
}
|
|
|
|
asuransiEdit.selectize({
|
|
valueField:"uid",
|
|
labelField:"name",
|
|
searchField:['name', 'uid'],
|
|
create:false,
|
|
placeholder:"Cari Asuransi ...",
|
|
load:function(query, callback){
|
|
if(!query.length) return callback();
|
|
$.ajax({
|
|
url:'/helper/get/asuransi',
|
|
data: {search: query},
|
|
success: function (response){
|
|
if(response.error === 0 && Array.isArray(response.data)){
|
|
callback(response.data);
|
|
}else{
|
|
callback([])
|
|
}
|
|
},
|
|
error: function() {
|
|
callback([]);
|
|
}
|
|
});
|
|
},
|
|
render: {
|
|
option: function(item, escape){
|
|
return `
|
|
<div class="p-1">
|
|
<div class="fw-semibold" style="font-size: 0.85rem;">
|
|
${escape(item.name)}
|
|
</div>
|
|
</div>`;
|
|
},
|
|
item: function(item, escape){
|
|
return `<div> ${escape(item.name)} </div>`
|
|
}
|
|
},
|
|
onInitialize:function(){
|
|
const selectize = this;
|
|
if(selectedValue){
|
|
if(!selectize.options[selectedValue]){
|
|
$.ajax({
|
|
url:'/helper/get/asuransi',
|
|
data: {search : selectedValue},
|
|
success: function(response){
|
|
if(response.error === 0 && response.data){
|
|
selectize.addOption(response.data[0])
|
|
selectize.setValue(selectedValue)
|
|
}
|
|
},
|
|
error:function(){
|
|
console.error('Failed to fetch data');
|
|
}
|
|
})
|
|
}
|
|
}else{
|
|
selectize.setValue(selectedValue)
|
|
}
|
|
}
|
|
})
|
|
}
|
|
function selectOldRuangan(selectedValue){
|
|
const ruangEdit = $("#ruang_pelayanan_uid_edit")
|
|
if(ruangEdit[0].selectize){
|
|
ruangEdit[0].selectize.destroy()
|
|
}
|
|
|
|
ruangEdit.selectize({
|
|
valueField:"uid",
|
|
labelField:"name",
|
|
searchField:['name', 'uid'],
|
|
create:false,
|
|
placeholder:"Cari Ruangan layanan....",
|
|
load:function(query, callback){
|
|
if(!query.length) return callback();
|
|
$.ajax({
|
|
url:'/helper/get/roomService',
|
|
data: {search: query},
|
|
success: function (response){
|
|
if(response.error === 0 && Array.isArray(response.data)){
|
|
callback(response.data);
|
|
}else{
|
|
callback([])
|
|
}
|
|
},
|
|
error: function() {
|
|
callback([]);
|
|
}
|
|
});
|
|
},
|
|
render: {
|
|
option: function(item, escape){
|
|
return `
|
|
<div class="p-1">
|
|
<div class="fw-semibold" style="font-size: 0.85rem;">
|
|
${escape(item.name)}
|
|
</div>
|
|
</div>`;
|
|
},
|
|
item: function(item, escape){
|
|
return `<div> ${escape(item.name)} </div>`
|
|
}
|
|
},
|
|
onInitialize:function(){
|
|
const selectize = this;
|
|
if(selectedValue){
|
|
if(!selectize.options[selectedValue]){
|
|
$.ajax({
|
|
url:'/helper/get/roomService',
|
|
data: {search : selectedValue},
|
|
success: function(response){
|
|
if(response.error === 0 && response.data){
|
|
selectize.addOption(response.data[0])
|
|
selectize.setValue(selectedValue)
|
|
}
|
|
},
|
|
error:function(){
|
|
console.error('Failed to fetch data');
|
|
}
|
|
})
|
|
}
|
|
}else{
|
|
selectize.setValue(selectedValue)
|
|
}
|
|
}
|
|
})
|
|
}
|