WIP: Bagian data mata bisa di downloaf

This commit is contained in:
Mahayoga 2026-06-13 20:56:20 +07:00
parent 043e2a81c0
commit 1d8ade06f1
1 changed files with 61 additions and 0 deletions

View File

@ -99,6 +99,7 @@
<script>
let idHapus = null;
let tableData = null;
let ws = null;
function fetchRowData() {
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) {
idHapus = btn.getAttribute('data-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}">
<i class="ti ti-file-info"></i>
</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}">
<i class="ti ti-trash"></i>
</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>
@endsection