NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @author chako@PNScoder // @name SupervisorSSCN // @version 2.4.5 // @description Untuk SUPERVISOR SSCN : Helper supervisi persyaratan yang sudah diverifikasi oleh verifikator // @copyright perdana1cell@gmail.com 2019 // @license MIT // @updateURL https://openuserjs.org/meta/chako/SupervisorSSCN.meta.js // @downloadURL https://openuserjs.org/install/chako/SupervisorSSCN.user.js // @grant GM_setValue // @grant GM_getValue // @grant GM_registerMenuCommand // @grant GM_unregisterMenuCommand // @grant GM_log // @grant GM_deleteValue // @grant GM_notification // @grant GM_openInTab // @grant GM_setClipboard // @grant GM_info // @grant GM_addStyle // @namespace https://sscnverifikasi.bkn.go.id/supervisorverifikasi.do // @match https://sscnverifikasi.bkn.go.id/supervisorverifikasi.do* // @require http://userscripts-mirror.org/scripts/source/107941.user.js // ==/UserScript== var isTabMode = GM_SuperValue.get ('isTabMode', 'tab') == 'tab'; var idRegs = GM_SuperValue.get ('idRegsQueue', []); var idAcc = GM_SuperValue.get ('idRegsAcc', []); var idTms = GM_SuperValue.get ('idRegsTms', []); let e = document.querySelector("#defaultSearchField"); e.focus(); e.select(); var isLulus = $("#myTable > tbody > tr:nth-child(1) > td:nth-child(5)").html() == 'Lulus'; var openDoc = true;//!isLulus; var noreg = $("#defaultSearchField").val(); var firstreg = $("#myTable > tbody > tr:nth-child(1) > td:nth-child(2)").html(); if (noreg != '' && noreg == firstreg) { $("#myTable > tbody > tr > td:nth-child(7) > a").trigger('click'); } else { if(noreg != '' && firstreg != null){ //handle back browser $("#searchBar > div:nth-child(7) > div > a").trigger('click'); } else if (idRegs.length > 0){ if(noreg !== $.trim(idRegs[0])){ //load antrian selanjutnya noreg = $.trim(idRegs[0]); $("#defaultSearchField").val(noreg); if(checkRegister(noreg)){ $("#searchBar > div:nth-child(7) > div > a").trigger('click'); } else { //remove bila nomor register tidak sesuai pattern if(idRegs.splice( $.inArray(noreg, idRegs), 1 ).length > 0){ GM_SuperValue.set ('idRegsQueue', idRegs); GM_notification ({ title: noreg, text: 'Cek kembali nomor register', ondone: () => { location.reload(); } }); } } } else { //remove bila no register sudah diproses if(idRegs.splice( $.inArray(noreg, idRegs), 1 ).length > 0){ GM_SuperValue.set ('idRegsQueue', idRegs); GM_notification ( { title: noreg, text: 'Nomor register '+noreg+' sudah terverifikasi. Refresh halaman untuk membuka antrian berikutnya', ondone: () => { location.reload(); } } ); } } } } //header buttons let btnMode = ' <button type="button" id="btnMode" class="btn btn-sm btn-warning">'+ (isTabMode? 'Mode Popup' : 'Mode Tab') +'</button> '; let btnAddQueue = ' <button type="button" id="btnAddQueue" class="btn btn-sm btn-success">Tambah Antrian</button> '; let btnViewQueue = ' <button type="button" id="btnViewQueue" class="btn btn-sm btn-info">Lihat Antrian</button> '; let btnViewAcc = ' <button type="button" id="btnViewAcc" class="btn btn-sm btn-info">Lihat SESUAI</button> '; let btnViewTms = ' <button type="button" id="btnViewTms" class="btn btn-sm btn-info">Lihat VERIFIKASI ULANG</button> '; let btnResetQueue = ' <button type="button" id="btnResetQueue" class="btn btn-sm btn-danger">Reset Antrian</button> '; let btnViewInfo = ' <button type="button" id="btnViewInfo" class="btn btn-sm btn-primary">Informasi</button> '; let info = ' ' + GM_info.script.name + ' v.' + GM_info.script.version + '. copyright ' + GM_info.script.author + ' ('+GM_info.script.copyright+')'; $('body').prepend('<div class="alert alert-success text-center" role="alert">' + btnAddQueue + btnViewQueue + btnViewAcc + btnViewTms + btnResetQueue + btnViewInfo + btnMode + '</div>'); $('body').append('<footer class="footer-copyright"><strong>'+info+'</strong></footer>'); $('body').append('<div id="myCustomDialog" style="overflow-x: hidden; width: auto; min-height: 0px; height: 853.249px;" class="ui-dialog-content ui-widget-content" scrolltop="0" scrollleft="0"><div class="row"><div class="col-md-12"><textarea id="taRegister" rows="20" cols="20" style="width: 100%; margin: 10px;" required></textarea></div></div><div class="row"><div class="col-md-12"><button type="button" id="btnSaveReg" class="btn btn-success pull-right">Simpan</button> <button type="button" id="btnClose" class="btn btn-warning pull-right">Batal</button> </div></div></div>'); GM_addStyle('.footer-copyright {position: fixed; left: 0px; bottom: 0px; vertical-align: center; width: 100%; padding: .75rem 1.25rem; text-align: center; color: #721c24; background-color: #f8d7da; border-color: #f5c6cb;}'); /LOGIC MENU COMMAND/ GM_registerMenuCommand ("Tambah Antrian", addRegisterNumbers, "A"); GM_registerMenuCommand ("Lihat Antrian", viewQueue, "Q"); GM_registerMenuCommand ("Lihat SESUAI", viewAcc, "Y"); GM_registerMenuCommand ("Lihat VERIFIKASI ULANG", viewTms, "N"); GM_registerMenuCommand ("Reset Antrian", resetQueue, "X"); GM_registerMenuCommand ("Informasi", viewInfo, "I"); var IdCommandMode = null; if(isTabMode){ IdCommandMode = GM_registerMenuCommand ("Mode Popup", modePopup, "P"); document.getElementById('btnMode').addEventListener('click', modePopup); } else { IdCommandMode = GM_registerMenuCommand ("Mode Tab", modeTab, "P"); document.getElementById('btnMode').addEventListener('click', modeTab); } function modeTab () { isTabMode = true; $('#btnMode').html('Mode Popup'); document.getElementById('btnMode').removeEventListener('click', modeTab); document.getElementById('btnMode').addEventListener('click', modePopup); GM_unregisterMenuCommand(IdCommandMode); IdCommandMode = GM_registerMenuCommand ("Mode Popup", modePopup, "T"); GM_SuperValue.set ('isTabMode', 'tab'); GM_notification ( {title: 'Mode Tab', text: 'Mode buka dokumen di new tab diaktifkan'} ); } function modePopup () { isTabMode = false; $('#btnMode').html('Mode Tab'); document.getElementById('btnMode').removeEventListener('click', modePopup); document.getElementById('btnMode').addEventListener('click', modeTab); GM_unregisterMenuCommand(IdCommandMode); IdCommandMode = GM_registerMenuCommand ("Mode Tab", modeTab, "T"); GM_SuperValue.set ('isTabMode', 'popup'); GM_notification ( {title: 'Mode Popup', text: 'Mode buka dokumen di form verifikasi diaktifkan'} ); } function addRegisterNumbers () { $( "#myCustomDialog" ).dialog({ title: "Tambah Nomor Register" }); $('#myCustomDialog').dialog('open'); $('#btnSaveReg').show(); $('textarea#taRegister').val(''); $('textarea#taRegister').prop('disabled',false); } function viewQueue () { $( "#myCustomDialog" ).dialog({ title: "Daftar Antrian" }); $('#myCustomDialog').dialog('open'); $('#btnSaveReg').hide(); $('textarea#taRegister').val(''); let idRegs = GM_SuperValue.get ('idRegsQueue', []); if(idRegs !== null){ $('textarea#taRegister').val(idRegs.join('\n')); } $('textarea#taRegister').prop('disabled',true); } function viewAcc () { $( "#myCustomDialog" ).dialog({ title: "Daftar SESUAI" }); $('#myCustomDialog').dialog('open'); $('#btnSaveReg').hide(); $('textarea#taRegister').val(''); let idRegs = GM_SuperValue.get ('idRegsAcc', []); if(idRegs !== null){ $('textarea#taRegister').val(idRegs.reverse().join('\n')); } $('textarea#taRegister').prop('disabled',true); } function viewTms () { $( "#myCustomDialog" ).dialog({ title: "Daftar VERIFIKASI ULANG" }); $('#myCustomDialog').dialog('open'); $('#btnSaveReg').hide(); $('textarea#taRegister').val(''); let idRegs = GM_SuperValue.get ('idRegsTms', []); if(idRegs !== null){ $('textarea#taRegister').val(idRegs.reverse().join('\n')); } $('textarea#taRegister').prop('disabled',true); } function resetQueue () { GM_deleteValue('idRegsQueue'); GM_notification ( {title: 'Berhasil', text: 'Antrian berhasil direset'} ); } function viewInfo () { GM_notification ({title: $('#header > div > div > div.col-sm-9.new-btn-header > div:nth-child(1) > div > div > button.btn.btn-sm.btn-primary > b').html(), text: '\ Program hanyalah sebuah tools pembantu, ketelitian dalam memverifikasi berkas tetap harus dijaga. Ganbatte!'}); } function getElementAccredited(){ if($('#lembaga > label > i').length > 0){ let cloneLembaga = $("#lembaga").clone(); cloneLembaga.addClass("alert alert-info text-center h5 divDocument"); return cloneLembaga; } return null; } function getElementFormasi(){ var elm = ''; var formasi = $('#jenisFormasiPendaftar > label').html(); if(formasi.indexOf('LULUSAN TERBAIK') != -1){ elm += "<div class='alert alert-danger text-center h5 divDocument'>" + $("#jenisFormasiPendaftar").clone().html() + "</div>"; } if(formasi.indexOf('PUTRA/PUTRI PAPUA DAN PAPUA BARAT') != -1){ elm += "<div class='alert alert-danger text-center h5 divDocument'>" + $("#jenisFormasiPendaftar").clone().html() + "</div>"; } if($('#disables').length > 0 && $('#disables').html() != ''){ elm += "<div class='alert alert-danger text-center h5 divDocument'>" + $("#disables").clone().html() + "</div>"; } if($("#isP1tl").length > 0){ elm += "<div class='alert alert-warning text-center h5 divDocument'>" + $("#pendidikanP1tl > div > div.col-md-10 > div").clone().html() + "</div>"; } if($("#alasanSupervisorDiv > div > div > div > div").length > 0){ elm += "<div class='alert alert-warning text-center h5 divDocument'>" + $("#alasanSupervisorDiv > div > div > div > div").clone().html() + "</div>"; } if($("#alasanSupervisorDiv > div > div > div > div").length > 0){ elm += "<div class='alert alert-warning text-center h5 divDocument'>" + $("#alasanSupervisorDiv > div > div > div > div").clone().html() + "</div>"; } if($("#kelulusanDiv > div > div > div.col-md-10 > div").length > 0){ elm += "<div class='alert alert-danger text-center h5 divDocument'>" + $("#kelulusanDiv > div > div > div.col-md-10 > div").clone().html() + "</div>"; } return elm != '' ? $(elm) : null; } function checkRegister(noreg){ var pattern = /^\d{17}$/; return pattern.test(noreg); } let w = $(window).width(); let h = $(window).height(); $("#myCustomDialog").dialog({ autoOpen: false, height: h, width: 1120, position: { my: "center", at: "top", of: window }, modal: true, resizable: true, open: function(){ $('.ui-widget-overlay').bind('click',function(){ $('#myCustomDialog').dialog('close'); }); //action close button document.getElementById('btnClose').addEventListener('click', function() { $('#myCustomDialog').dialog('close'); }); } }); //form verifikasi $("#myModal2").dialog({ autoOpen: false, height: h, width: w, position: { my: "center", at: "top", of: window }, modal: true, open: function(event, ui) { if(openDoc){ //open all doc var arrDoc = [ "#persyaratanDiv > div:nth-child(1) > div > div:nth-child(2) > label > a",//pas foto "#persyaratanDiv > div:nth-child(2) > div:nth-child(2) > label > a",//ktp "#persyaratanDiv > div:nth-child(3) > div > div:nth-child(2) > label > a", "#persyaratanDiv > div:nth-child(4) > div:nth-child(2) > label > a", "#persyaratanDiv > div:nth-child(5) > div > div:nth-child(2) > label > a", "#persyaratanDiv > div:nth-child(6) > div:nth-child(2) > label > a", ]; if(!isTabMode){ let cloneDiv = $("#formSupervisi > div:nth-child(5)").clone(); cloneDiv.addClass("divDocument"); cloneDiv.insertAfter("#formSupervisi > div:nth-child(5)"); } //info pelamar lulusan terbaik / papua let formasi = getElementFormasi(); if(formasi != null){ formasi.insertAfter("body > div:nth-child(11) > div.ui-dialog-titlebar.ui-widget-header.ui-corner-all.ui-helper-clearfix"); formasi.clone().insertAfter("#myModal2"); } //info lembaga terakreditasi let lembaga = getElementAccredited(); if(lembaga != null){ lembaga.insertAfter("body > div:nth-child(11) > div.ui-dialog-titlebar.ui-widget-header.ui-corner-all.ui-helper-clearfix"); lembaga.clone().insertAfter("#myModal2"); } $.each(arrDoc.reverse(), function( index, doc ) { var isFoto = index == 5; var doc_id = document.querySelector(doc).getAttribute("onclick").substring(22, 54); if(isTabMode){ //README : Block or allow pop-ups from a specific site //https://support.google.com/chrome/answer/95472?co=GENIE.Platform%3DDesktop&hl=en-GB GM_openInTab('https://sscnverifikasi.bkn.go.id/showdokumen.do?dokumenpindai='+doc_id/*, {active:isFoto}*/); } else { //load dokumen di form verifikasi let height = isFoto ? 614 : 740; let e = document.createElement('div'); e.setAttribute('class', (isFoto ? 'col-md-6' : 'col-md-12')+' divDocument'); e.setAttribute('style', 'padding: 0 150px;'); e.innerHTML = "<div id='docModal_"+index+"' title='' style='overflow-x:hidden'><object type='application/pdf' data='https://sscnverifikasi.bkn.go.id/showdokumen.do?dokumenpindai="+doc_id+"' width='100%' height='"+height+"'>No Support</object></div><br>"; $(e).insertAfter( "#formSupervisi > div:nth-child(5)" ); } }); } //logic button final /* if($("#pendidikanP1tl").length > 0){ //kalau PLT1 kasih warning //alert($('#pendidikanP1tl > div > div.col-md-10 > div > label').text()); } else { if(isLulus){ //kalau bukan, click button final document.querySelector("#formSupervisi > div:nth-child(6) > div:nth-child(11) > div > div > button.btn.btn-success.btn-large.supervisiBtn").click(); } }*/ }, close: function(event, ui) { $( ".divDocument" ).remove(); } }); document.getElementById('btnAddQueue').addEventListener('click', addRegisterNumbers); document.getElementById('btnViewQueue').addEventListener('click', viewQueue); document.getElementById('btnViewAcc').addEventListener('click', viewAcc); document.getElementById('btnViewTms').addEventListener('click', viewTms); document.getElementById('btnResetQueue').addEventListener('click', resetQueue); document.getElementById('btnViewInfo').addEventListener('click', viewInfo); //action tambah no register document.getElementById('btnSaveReg').addEventListener('click', function() { var val = $('textarea#taRegister').val(); if(val.length > 0){ var arr = val.split(/\s+/g); var initArr = GM_SuperValue.get ('idRegsQueue', []); $.each(arr, function( index, reg ) { initArr.push(reg); }); GM_SuperValue.set ('idRegsQueue', initArr); $('#myCustomDialog').dialog('close'); $("#defaultSearchField").val($.trim(initArr[0])); let reg = $.trim(initArr[0]); if(checkRegister(reg)){ $("#searchBar > div:nth-child(7) > div > a").trigger('click'); GM_notification ( {title: 'Berhasil', text: 'Antrian berhasil ditambah'} ); } else { //GM_notification ( {title: $.trim(initArr[0]), text: 'Cek kembali nomor register'} ); if(initArr.splice( $.inArray(reg, initArr), 1 ).length > 0){ GM_SuperValue.set ('idRegsQueue', initArr); GM_notification ({ title: reg, text: 'Cek kembali nomor register', ondone: () => { location.reload(); } }); } } } else { GM_notification ( {title: 'Tidak Ada Data', text: 'Silakan isi nomor register yang akan dimasukkan ke dalam antrian'} ); } }); //logic button VERIFIKASI ULANG $('body').on('click', '#formSupervisi > div:nth-child(6) > div:nth-child(11) > div > div > button.btn.btn-warning.btn-large.supervisiUlangBtn', function (){ //remove no register yang sudah diproses idRegs.splice( $.inArray(noreg, idRegs), 1 ); GM_SuperValue.set ('idRegsQueue', idRegs); //push no register tms if($('#keteranganSupervisor').length > 0){ let ket = $('#keteranganSupervisor').val(); noreg = noreg+' - '+ket; //copy keterangan di clipboard untuk paste di spreadsheet GM_setClipboard (noreg); } idTms.push(noreg); GM_SuperValue.set ('idRegsTms', idTms); }); //logic button SESUAI $('body').on('click', '#formSupervisi > div:nth-child(6) > div:nth-child(11) > div > div > button.btn.btn-success.btn-large.supervisiBtn', function (){ //remove no register yang sudah diproses idRegs.splice( $.inArray(noreg, idRegs), 1 ); GM_SuperValue.set ('idRegsQueue', idRegs); //push no register acc idAcc.push(noreg); GM_SuperValue.set ('idRegsAcc', idAcc); //copy status di clipboard untuk paste di spreadsheet GM_setClipboard (1); }); //paste no register $('#defaultSearchField').on('paste', function(elm){ var e = $(this); setTimeout(function(){ if(checkRegister($.trim(e.val()))){ $("#searchBar > div:nth-child(7) > div > a").trigger('click'); } else { GM_notification ( {title: e.val(), text: 'Cek kembali nomor register'} ); } }, 0); }); $('#defaultSearchField').on('change', function(elm){ if(checkRegister($.trim($(this).val()))){ $("#searchBar > div:nth-child(7) > div > a").trigger('click'); } else { GM_notification ( {title: $(this).val(), text: 'Cek kembali nomor register'} ); } });