const noDataTextTabel = "No data available in table"; const serverErrorText = "Gagal terhubung ke Server, cek koneksi internet anda!!!"; const ajaxTimeout = 15000; let idTANow, idKPNow; let dataKonsul = []; let dataKonsulKP = []; let dataKP = []; let tabelTugasAkhir, tabelKerjaPraktek, tabelKerjaPraktekKP; let isPembKPNow = false; const logoutModal = { show: () => { $("#logoutModal").modal({ onApprove: function(){ doLogout(); return false; } }).modal("show"); }, hide: () => { $("#logoutModal").modal("hide"); } }; const loader = { show: () => { $("#loaderSegment").show(); }, hide: () => { $("#loaderSegment").hide(); } }; const verifKonsultasiModal = { show: (idKonsultasi) => { $("#verifikasiModal") .modal({ autofocus: false, onApprove: function() { postVerifKonsultasi(idKonsultasi); return false; }, allowMultiple: true }) .modal("show"); }, hide: () => { $("#verifikasiModal").modal("hide"); } }; const verifikasiKPModal = { show: (idKonsultasi) => { $("#verifikasiKPModal") .modal({ onApprove: function() { postVerifKonsultasiKP(idKonsultasi); return false; }, allowMultiple: true }) .modal("show"); }, hide: () => { $("#verifikasiKPModal").modal("hide"); } }; $(document).ready(function() { document.getElementById("x").click(); setInterval(refreshSession, 60 * 1000); $('.ui.dropdown').dropdown(); $('.ui.radio.checkbox').checkbox(); $('#tabKerjaPraktek .item').tab(); }); function refreshSession() { let request = $.ajax({ url: urlAPI + `/web-refreshSession.php`, type: "GET", contentType: "application/json", processData: false, contentType: false, cache: false }); request.done(function(msg) {}); request.fail(function(jqXHR, textStatus) {}); } function doLogout() { window.location.replace("logout.php"); } function sideBar() { $(".ui.sidebar").sidebar("toggle"); } function openTab(evt, divName) { var i, tabcontent, tablinks; var namatabcontent = "tabContent"; var namatablink = "tabLinks"; let judul = ""; tabcontent = document.getElementsByName(namatabcontent); for (i = 0; i < tabcontent.length; i++) { tabcontent[i].style.display = "none"; } tablinks = document.getElementsByName(namatablink); for (i = 0; i < tablinks.length; i++) { tablinks[i].className = tablinks[i].className.replace("active", ""); } $(".ui.sidebar").sidebar("hide"); evt.currentTarget.className += " active"; document.getElementById(divName).style.display = "block"; doEvent(divName); } function doEvent(namaEvent) { judul = ""; switch (namaEvent) { case "konsultasi": judul = "Konsultasi Tugas Akhir"; refreshTabelTugasAkhir(); break; case "kerjaPraktek": judul = "Kerja Praktek"; refreshTabelKerjaPraktek(); refreshTabelKerjaPraktekPembKP(); break; } $("#judulMenu").html(judul); } function openLogoutModal() { sideBar(); logoutModal.show(); } function refreshTabelKerjaPraktek() { const verif = $('#kerjaPraktekDropdown').val(); const urlTabelKerjaPraktek = urlDataTable +`/data_kerja_praktek.php?pa&verif=${verif}`; if (tabelKerjaPraktek == null) { tabelKerjaPraktek = $("#tabelKerjaPraktek").dataTable({ ajax: urlTabelKerjaPraktek, processing: true, serverSide: true, contentType: "application/json", ordering: false, sortable: false, oLanguage: { sSearch: "Nama/ NIM Mahasiswa:" }, autoWidth: false, columns: [ { data: "0" }, { sortable: false, render: function(data, type, full, meta) { return `${full[17]}
NIM : ${full[18]}`; } }, { sortable: false, render: function(data, type, full, meta) { return `${full[3]} - ${full[4]}`; } }, { sortable: false, render: function(data, type, full, meta) { return `${full[1]} ${getLabelKPBaru(full[26])}
Waktu Input : ${full[12]}
Waktu Verifikasi Dosen PA : ${full[13]}
Waktu Verifikasi Admin : ${full[22]}
`; } }, { sortable: false, render: function(data, type, full, meta) { return `${full[2]}`; } }, { data: 6, sortable: false, render: function(data, type, full, meta) { return getLabelSetuju(data) ; } }, { data: 7, sortable: false, render: function(data, type, full, meta) { dataKP[data] = full; const isPembimbingKP = full[20]; const isPembimbingPA = full[21]; const status = full[6]; if(isPembimbingKP){ return ``; }else{ if(status == "0"){ return ``; }else{ return ``; } } } } ] }); } else { tabelKerjaPraktek .api() .ajax.url(urlTabelKerjaPraktek) .load(); } } function refreshTabelKerjaPraktekPembKP(){ const verif = $('#kerjaPraktekKPDropdown').val(); const urlTabelKerjaPraktek = urlDataTable +`/data_kerja_praktek.php?kp&verif=${verif}`; if (tabelKerjaPraktekKP == null) { tabelKerjaPraktekKP = $("#tabelKPKerjaPraktek").dataTable({ ajax: urlTabelKerjaPraktek, processing: true, serverSide: true, contentType: "application/json", ordering: false, sortable: false, oLanguage: { sSearch: "Nama/ NIM Mahasiswa:" }, autoWidth: false, columns: [ { data: "0" }, { sortable: false, render: function(data, type, full, meta) { return `${full[17]}
NIM : ${full[18]}`; } }, { sortable: false, render: function(data, type, full, meta) { return `${full[3]} - ${full[4]}`; } }, { sortable: false, render: function(data, type, full, meta) { return `${full[1]} ${getLabelKPBaru(full[26])}`; } }, { sortable: false, render: function(data, type, full, meta) { return `${full[2]}`; } }, { data: 23, sortable: false, render: function(data, type, full, meta) { return getLabelStatusProposal(data, full[24]) ; } }, { data: 7, sortable: false, render: function(data, type, full, meta) { dataKP[data] = full; const isPembimbingKP = full[20]; const isPembimbingPA = full[21]; const status = full[23]; if(!isPembimbingKP){ return ``; }else{ if(status == "0"){ return ``; }else{ return ``; } } } } ] }); } else { tabelKerjaPraktekKP .api() .ajax.url(urlTabelKerjaPraktek) .load(); } } function getLabelSetuju(setuju){ switch(setuju){ case "0" : return ``; case "1" : return ``; case "2" : return ``; default : return `-`; } } function getLabelStatusProposal(statusProposal, fileProposal){ if(fileProposal == null || fileProposal == ''){ return `` }else{ switch(statusProposal){ case "0" : return ``; case "1" : return ``; case "2" : return ``; default : return `-`; } } } function refreshTabelTugasAkhir() { const order = $('#orderTugasAkhir').val(); const selesai = $('#selesaiTugasAkhir').val(); const urlTabelTugasAkhir = urlDataTable +`/data_tugas_akhir.php?orderBy=${order}&selesai=${selesai}`; if (tabelTugasAkhir == null) { tabelTugasAkhir = $("#tabelTugasAkhir").dataTable({ ajax: urlTabelTugasAkhir, processing: true, serverSide: true, contentType: "application/json", ordering: false, sortable: false, oLanguage: { sSearch: "Judul TA/ Nama/ NIM Mahasiswa:" }, autoWidth: false, columns: [ { data: "0" }, { data: "1", render: function(data, type, full, meta) { return `${data} ${getLabelSelesai(full[6])}`; } }, { data: "2" }, { data: "3" }, { data: "4" }, { sortable: false, render: function(data, type, full, meta) { return ``; } } ] }); } else { tabelTugasAkhir .api() .ajax.url(urlTabelTugasAkhir) .load(); } } function showDetailTugasAkhir(idTA){ let formData = new FormData(); formData.append("token", token); formData.append("id", idTA); formData.append("tipe", "dosen"); loader.show(); let request = $.ajax({ url: urlAPI + "/getDetailTA.php", timeout: ajaxTimeout, type: "POST", data: formData, processData: false, contentType: false }); request.done(function(msg) { const status = msg.status; loader.hide(); if(status === 1){ const data = msg.tugasAkhir; const judul = data.judul; const mahasiswa = data.mahasiswa; const nim = data.nim; const pembimbing1 = data.pembimbing1; const pembimbing2 = data.pembimbing2; const penguji1 = data.penguji1; const penguji2 = data.penguji2; const semester = data.semester; const tahun = data.tahun; const tanggalKeputusan = data.tanggalKeputusan; const hp = data.hp; const email = data.email; let aksiUser = ''; if(!(hp == '' || hp == null)){ aksiUser += ``; } if(!(email == '' || email == null)){ aksiUser += ``; } $('#namaMahasiswaTugasAkhir').html(`${mahasiswa}
(${nim})`); $('#callMahasiswa').html(`HP : ${hp} / Email : ${email}`); $('#judulTugasAkhir').html(judul); $('#semTATugasAkhir').html(semester); $('#waktuKepTugasAkhir').html(tanggalKeputusan); $('#pemb1TugasAkhir').html(pembimbing1); $('#pemb2TugasAkhir').html(pembimbing2); $('#peng1TugasAkhir').html(penguji1); $('#peng2TugasAkhir').html(penguji2); idTANow = idTA; $('#detailTugasAkhirModal').modal({allowMultiple: true, autofocus: false}).modal('show'); fillKonsultasiHistory(); }else{ showToast('warning', msg.msg); } }); request.fail(function(jqXHR, textStatus) { showToast("error", serverErrorText); }); } function fillKonsultasiHistory(){ dataKonsul = []; const idTA = idTANow; let formData = new FormData(); formData.append("token", token); formData.append("id", idTA); formData.append("tipe", "dosen"); $('#tabelListKonsultasi > tbody').html(`
`); let request = $.ajax({ url: urlAPI + "/getKonsultasiHistory.php", timeout: ajaxTimeout, type: "POST", data: formData, processData: false, contentType: false }); request.done(function(msg) { const status = msg.status; loader.hide(); if(status === 1){ const listData = msg.data; const banyakData = listData.length; if(banyakData === 0){ $('#tabelListKonsultasi > tbody').html(`Tidak Ada Data`); }else{ let isiTabel = ''; for(let i = (banyakData-1); i >= 0; i--){ let konsultasi = listData[i]; const id = konsultasi.id; const waktu = konsultasi.waktu; const topik = konsultasi.topik; const editable = konsultasi.editable; const verifPemb1 = konsultasi.verifPemb1; const verifPemb2 = konsultasi.verifPemb2; const no = i + 1; konsultasi.konsulKe = no; dataKonsul[id] = konsultasi; if(isPembKPNow){ editable = false; } let aksi = ` `; if(editable){ aksi += ``; }else{ aksi += ``; } isiTabel += `${no}${waktu}${topik}${getVerifikasiLabel(verifPemb1)}${getVerifikasiLabel(verifPemb2)}${aksi}`; } $('#tabelListKonsultasi > tbody').html(isiTabel); } }else{ showToast('warning', msg.msg); } }); request.fail(function(jqXHR, textStatus) { $('#tabelListKonsultasi > tbody').html(`Gagal mengambil data, cek koneksi internet anda.`); showToast("error", serverErrorText); }); } function fillKonsultasiKPHistory(){ dataKonsulKP = []; const idKP = idKPNow; let formData = new FormData(); formData.append("token", token); formData.append("id", idKP); formData.append("tipe", "dosen"); $('#tabelListKonsultasiKP > tbody').html(`
`); let request = $.ajax({ url: "https://informatika.untan.ac.id/API/KP/getKonsultasiHistory.php?dosen", timeout: ajaxTimeout, type: "POST", data: formData, processData: false, contentType: false }); request.done(function(msg) { const status = msg.status; loader.hide(); if(status === 1){ const listData = msg.data; const banyakData = listData.length; if(banyakData === 0){ $('#tabelListKonsultasiKP > tbody').html(`Tidak Ada Data`); }else{ let isiTabel = ''; for(let i = (banyakData-1); i >= 0; i--){ let konsultasi = listData[i]; const id = konsultasi.id; const waktu = konsultasi.waktu; const topik = konsultasi.topik; const editable = konsultasi.editable; const verifPemb = konsultasi.verifPemb; const no = i + 1; konsultasi.konsulKe = no; dataKonsulKP[id] = konsultasi; let aksi = ` `; if(editable){ aksi += ``; } isiTabel += `${no}${waktu}${topik}${getVerifikasiLabel(verifPemb)}${aksi}`; } $('#tabelListKonsultasiKP > tbody').html(isiTabel); } }else{ showToast('warning', msg.msg); } }); request.fail(function(jqXHR, textStatus) { $('#tabelListKonsultasiKP > tbody').html(`Gagal mengambil data, cek koneksi internet anda.`); showToast("error", serverErrorText); }); } function verifKonsultasi(id){ const konsultasi = dataKonsul[id]; const tanggal = konsultasi.waktu; const topik = konsultasi.topik; let catatan = ''; if(konsultasi.isPemb1){ catatan = konsultasi.catatanPemb1; } if(konsultasi.isPemb2){ catatan = konsultasi.catatanPemb2; } if(catatan == "Tidak Ada Catatan"){ catatan = ""; } $('#catatanVerif').html(''); $('#contentVerif').html(`Konsultasi tanggal ${tanggal} dengan topik:\n ${topik}?`); verifKonsultasiModal.show(id); initCalendarHari('dateKonsultasiCalendar'); $('#dateKonsultasiField').val(tanggal); $('#catatanVerif').val(catatan) } function verifKonsultasiKP(id){ const konsultasi = dataKonsulKP[id]; const tanggal = konsultasi.waktu; const topik = konsultasi.topik; $('#catatanVerifKP').html(''); $('#contentVerifKP').html(`Konsultasi tanggal ${tanggal} dengan topik:\n ${topik}?`); verifikasiKPModal.show(id); initCalendarHari('dateKonsultasiCalendarKP'); $('#dateKonsultasiFieldKP').val(tanggal); } function showToast(status, pesan) { $("body").toast({ class: status, message: pesan }); } function getVerifikasiLabel(verif){ if(verif){ return ``; }else{ return ``; } } function showDetailKonsultasi(id){ const konsultasi = dataKonsul[id]; const namaPemb1 = konsultasi.pemb1; const namaPemb2 = konsultasi.pemb2; const verifPemb1 = getVerifikasiLabel(konsultasi.verifPemb1); const verifPemb2 = getVerifikasiLabel(konsultasi.verifPemb2); let waktuPemb1 = konsultasi.waktuPemb1; let waktuPemb2 = konsultasi.waktuPemb2; const topik = konsultasi.topik; const konsulKe = konsultasi.konsulKe; const catatanPemb1 = konsultasi.catatanPemb1; const catatanPemb2 = konsultasi.catatanPemb2; if(!konsultasi.verifPemb1){ waktuPemb1 = '-'; } if(!konsultasi.verifPemb2){ waktuPemb2 = '-'; } $('#detailKonsulKe').html(konsulKe); $('#detailKonsulTopik').html(topik); $('#catatanPemb1').html(catatanPemb1); $('#catatanPemb2').html(catatanPemb2); $('#detailKonsulPemb1').html(`${namaPemb1}
Status Konsultasi : ${verifPemb1}
Waktu Verifikasi : ${waktuPemb1}`); $('#detailKonsulPemb2').html(`${namaPemb2}
Status Konsultasi : ${verifPemb2}
Waktu Verifikasi : ${waktuPemb2}`); $('#detailKonsultasiModal').modal({allowMultiple:true}).modal('show'); } function showDetailKonsultasiKP(id){ const konsultasi = dataKonsulKP[id]; let verifPemb = getVerifikasiLabel(konsultasi.verifPemb); let waktuPemb = konsultasi.waktuPemb; const topik = konsultasi.topik; const konsulKe = konsultasi.konsulKe; const catatanPemb = konsultasi.catatanDosen; // if(!konsultasi.verifPemb){ // verifPemb = '-'; // } $('#detailKonsulKeKP').html(konsulKe); $('#detailKonsulTopikKP').html(topik); $('#catatanPembKP').html(catatanPemb); $('#detailKonsulPembKP').html(`${verifPemb}
Waktu Verifikasi : ${waktuPemb}`); $('#detailKonsultasiKPModal').modal({allowMultiple:true}).modal('show'); } function postVerifKonsultasi(id){ const catatanVerif = $('#catatanVerif').val(); let formData = new FormData(); formData.append("token", token); formData.append("id", id); formData.append("catatan", catatanVerif); formData.append("tanggal", $("#dateKonsultasiField").val()); loader.show(); let request = $.ajax({ url: urlAPI + "/verifKonsultasi.php", timeout: ajaxTimeout, type: "POST", data: formData, processData: false, contentType: false }); request.done(function(msg) { const status = msg.status; const pesan = msg.msg; loader.hide(); if(status === 1){ showToast('success', pesan); verifKonsultasiModal.hide(); fillKonsultasiHistory(); }else{ showToast('warning', pesan); } }); request.fail(function(jqXHR, textStatus) { showToast("error", serverErrorText); }); } function postVerifKonsultasiKP(id){ const catatanVerif = $('#catatanVerifKP').val(); let formData = new FormData(); formData.append("token", token); formData.append("id", id); formData.append("catatan", catatanVerif); formData.append("tanggal", $("#dateKonsultasiFieldKP").val()); loader.show(); let request = $.ajax({ url: urlAPI + "/verifKonsultasiKP.php", timeout: ajaxTimeout, type: "POST", data: formData, processData: false, contentType: false }); request.done(function(msg) { const status = msg.status; const pesan = msg.msg; loader.hide(); if(status === 1){ showToast('success', pesan); verifikasiKPModal.hide(); fillKonsultasiKPHistory(); }else{ showToast('warning', pesan); } }); request.fail(function(jqXHR, textStatus) { showToast("error", serverErrorText); }); } function showVerifKP(idKP, tipeView = 'pa'){ idKPNow = idKP; const kp = dataKP[idKP]; const isPembimbingKP = kp[20]; const isPembimbingPA = kp[21]; isPembKPNow = isPembimbingKP; $('#namaKPDetail').html(`${kp[17]}`); $('#nimKPDetail').html(`${kp[18]}`); $('#telpKPDetail').html(`${kp[27]} / ${kp[28]}`); $('#emailKPDetail').html(`${kp[29]}`); $('#periodeKPDetail').html(`${kp[3]} - ${kp[4]}`); $('#pembimbingLapanganKPDetail').html(kp[5]); $('#verifPAKPDetail').html(getLabelSetuju(kp[6])); $('#verifAdminKPDetail').html(getLabelSetuju(kp[16])); $('#kptopikDetail').html(kp[1]); $('#kpdeskripsiDetail').html(kp[10]); $('#kpnamaInstansiDetail').html(kp[2]); $('#kpnamaPimpinanDetail').html(kp[14]); $('#kpalamatInstansiDetail').html(kp[15]); $('#kpnamaNarahubungDetail').html(kp[8]); $('#kptelpNarahubungDetail').html(kp[9]); $('#kpCatatanDetail').html(kp[11]); $('#statusProposalKPDetail').html(getLabelStatusProposal(kp[23], kp[24])); $('#fileProposalKPDetail').html(getDownloadFileButton(kp[24])); $('#formKP').form('clear'); $('#formKP').form('set values',{ verifikasiKP: kp[6], catatanKP: kp[19], verifikasiProposalKP: kp[23], catatanProposalKP: kp[25] }); $('#kerjaPraktekDetailModal').modal({allowMultiple:true, autofocus: false}).modal('show'); $('#verifikasiPembKP').hide(); if(tipeView == "pa"){ $('#verifikasiPAKP').show(); }else{ if(kp[24] != null && kp[24] != ''){ $('#verifikasiPembKP').show(); } $('#verifikasiPAKP').hide(); } fillKonsultasiKPHistory(); } function simpanVerifKP(){ const allFields = $('#formKP').form('get values'); const verif = allFields.verifikasiKP; const catatan = allFields.catatanKP; if(verif == undefined || verif == ""){ showToast('warning', "Status Verifikasi harus diisi"); return; } let formData = new FormData(); formData.append("token", token); formData.append("id", idKPNow); formData.append("verif", verif); formData.append("catatan", catatan); loader.show(); let request = $.ajax({ url: urlAPI + "/verifKP.php", timeout: ajaxTimeout, type: "POST", data: formData, processData: false, contentType: false }); request.done(function(msg) { const status = msg.status; const pesan = msg.msg; loader.hide(); if(status === 1){ showToast('success', pesan); $('#kerjaPraktekDetailModal').modal('hide'); refreshTabelKerjaPraktek(); }else{ showToast('warning', pesan); } }); request.fail(function(jqXHR, textStatus) { showToast("error", serverErrorText); }); } function simpanVerifProposalKP(){ const allFields = $('#formKP').form('get values'); const verif = allFields.verifikasiProposalKP; const catatan = allFields.catatanProposalKP; if(verif == undefined || verif == ""){ showToast('warning', "Status Verifikasi harus diisi"); return; } let formData = new FormData(); formData.append("token", token); formData.append("id", idKPNow); formData.append("verif", verif); formData.append("catatan", catatan); loader.show(); let request = $.ajax({ url: urlAPI + "/verifProposalKP.php", timeout: ajaxTimeout, type: "POST", data: formData, processData: false, contentType: false }); request.done(function(msg) { const status = msg.status; const pesan = msg.msg; loader.hide(); if(status === 1){ showToast('success', pesan); $('#kerjaPraktekDetailModal').modal('hide'); refreshTabelKerjaPraktekPembKP(); }else{ showToast('warning', pesan); } }); request.fail(function(jqXHR, textStatus) { showToast("error", serverErrorText); }); } function getDownloadFileButton(urlFile){ if(urlFile == null || urlFile == ''){ return ``; }else{ return ``; } } function getLabelKPBaru(val){ if(val != undefined && val != null){ val = Number(val); if(val > 0){ return ``; } } return ""; } function initCalendarHari(idCalendar) { $(`#${idCalendar}`).calendar({ type: "date", monthFirst: false, formatter: { date: function (date, settings) { if (!date) return ""; var day = "" + date.getDate(); var month = "" + (date.getMonth() + 1); var year = date.getFullYear(); if (day.length == 1) { day = "0" + day; } if (month.length == 1) { month = "0" + month; } return day + "-" + month + "-" + year; }, }, popupOptions: { position: "bottom left", forcePosition: true, lastResort: "bottom left", prefer: "opposite", hideOnScroll: false, }, }).calendar('set date', new Date());; } function cetakB4(){ window.open(`../print/cetak_konsultasi_ta.php?dosen&id=${idTANow}`, '_blank'); } function getLabelSelesai(status){ if(status == 1){ return ``; } return ``; }