halaman-psikolog #1
|
|
@ -99,6 +99,7 @@
|
||||||
<script>
|
<script>
|
||||||
let idHapus = null;
|
let idHapus = null;
|
||||||
let tableData = null;
|
let tableData = null;
|
||||||
|
let ws = null;
|
||||||
|
|
||||||
function fetchRowData() {
|
function fetchRowData() {
|
||||||
if(tableData != null) {
|
if(tableData != null) {
|
||||||
|
|
@ -124,6 +125,27 @@ function getDataInfo(btn) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getDataDownload(btn) {
|
||||||
|
let idShow = btn.getAttribute('data-id');
|
||||||
|
Swal.fire({
|
||||||
|
title: 'Alert',
|
||||||
|
icon: 'question',
|
||||||
|
text: 'Apakah Anda ingin mendownload hasil dari data ini?',
|
||||||
|
confirmButtonText: 'Ya',
|
||||||
|
cancelButtonText: 'Tidak',
|
||||||
|
showCancelButton: true,
|
||||||
|
showCloseButton: true,
|
||||||
|
|
||||||
|
}).then((result) => {
|
||||||
|
if (result.isConfirmed) {
|
||||||
|
ws.send(JSON.stringify({
|
||||||
|
'type': 'download_hasil_tes',
|
||||||
|
'id_test_sessions': idShow
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function getDataHapus(btn) {
|
function getDataHapus(btn) {
|
||||||
idHapus = btn.getAttribute('data-id');
|
idHapus = btn.getAttribute('data-id');
|
||||||
let urlShow = '{{ route('hasil_tes.show', ['__ID__']) }}';
|
let urlShow = '{{ route('hasil_tes.show', ['__ID__']) }}';
|
||||||
|
|
@ -208,6 +230,9 @@ function hapusData() {
|
||||||
<a class="btn btn-info btn-sm rounded-circle mx-1 text-light" onclick="getDataInfo(this)" data-id="${data.id_test_session}">
|
<a class="btn btn-info btn-sm rounded-circle mx-1 text-light" onclick="getDataInfo(this)" data-id="${data.id_test_session}">
|
||||||
<i class="ti ti-file-info"></i>
|
<i class="ti ti-file-info"></i>
|
||||||
</a>
|
</a>
|
||||||
|
<button class="btn btn-sm btn-success rounded-circle mx-1" data-bs-toggle="modal" data-bs-target="#downloadModal" onclick="getDataDownload(this)" data-id="${data.id_test_session}">
|
||||||
|
<i class="ti ti-download"></i>
|
||||||
|
</button>
|
||||||
<button class="btn btn-sm btn-danger delete-btn rounded-circle mx-1" data-bs-toggle="modal" data-bs-target="#deleteModal" onclick="getDataHapus(this)" data-id="${data.id_test_session}">
|
<button class="btn btn-sm btn-danger delete-btn rounded-circle mx-1" data-bs-toggle="modal" data-bs-target="#deleteModal" onclick="getDataHapus(this)" data-id="${data.id_test_session}">
|
||||||
<i class="ti ti-trash"></i>
|
<i class="ti ti-trash"></i>
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -217,6 +242,42 @@ function hapusData() {
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
console.log("Connecting to WebSocket...");
|
||||||
|
ws = new WebSocket("{{ env('WEBSOCKET_URL') }}");
|
||||||
|
ws.onopen = function() {
|
||||||
|
console.log("WebSocket connection established.");
|
||||||
|
};
|
||||||
|
ws.onmessage = function(event) {
|
||||||
|
const data = JSON.parse(event.data);
|
||||||
|
if(data.type === 'download_hasil_tes_response') {
|
||||||
|
if(data.data != null) {
|
||||||
|
console.log(data)
|
||||||
|
const blob = new Blob([JSON.stringify(data.data)], { type: 'text/plain;charset=utf-8' });
|
||||||
|
const link = document.createElement('a');
|
||||||
|
const url = URL.createObjectURL(blob);
|
||||||
|
|
||||||
|
link.href = url;
|
||||||
|
link.download = `hasil_tes_${data.id_test_sessions}.json`;
|
||||||
|
link.style.display = 'none';
|
||||||
|
|
||||||
|
document.body.appendChild(link);
|
||||||
|
link.click();
|
||||||
|
document.body.removeChild(link);
|
||||||
|
Swal.fire({
|
||||||
|
title: 'Sukses',
|
||||||
|
text: 'Hasil tes berhasil didownload!',
|
||||||
|
icon: 'success'
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
Swal.fire({
|
||||||
|
title: 'Error',
|
||||||
|
text: 'Gagal mendownload hasil tes.',
|
||||||
|
icon: 'error'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
@endsection
|
@endsection
|
||||||
Loading…
Reference in New Issue