Files
emonev/apps/js/valid/faktor_opd.js
T

162 lines
6.5 KiB
JavaScript

/*******************************************************************
App. Name : SISTEM INFORMASI MONITORING DAN EVALUASI
Module : /apps/js/valid/faktor_opd.js
Desc. : JS - Validasi Faktor Pendukung OPD
Created By : Siau Pheng ([email protected]).
Created Date : December 7th, 2011.
Last Modified : September 16th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var ValidFaktorOPDJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butOPD').click(() => {
if ($('#OPDID').val()>0) this.show_hide(1);
});
this.show_hide(1);
},
show_hide: function(no){
$('#divOPD').addClass('d-none'); $('#butOPD').removeClass('btn-secondary').addClass('btn-info');
$('#divMATRIK').addClass('d-none');
if (no == 1) {
$('#OPDID').val(0);
$('#ORGID').val(0);
$('#Nama_OPD').val('');
$('#Hak_Real').val(1);
$('#K_OPD').val('');
}
if (no <= 1) {
$('#butOPD').removeClass('btn-info').addClass('btn-secondary');
}
if (no == 1) { $('#divOPD').removeClass('d-none'); this.data_query('tabel-opd'); }
if (no == 2) { $('#divMATRIK').removeClass('d-none'); this.data_query('tabel-matrik'); }
},
opd_select: function(acell){
$('#OPDID').val(acell[0]);
$('#ORGID').val(acell[1]);
$('#Nama_OPD').val(acell[2]);
$('#Hak_Real').val(acell[3]);
$('#K_OPD').val(acell[4]);
this.show_hide(2);
},
matrik_form: function(acell, div){
new Request.JSON({
url: this.PHP,
sendParam: ['data=detail-matrik','ORGID','OPDID','DalevMatrikID='+acell[0]],
onSuccess: (adata) => {
$(div).html(adata.html);
$(div)
.find('#butSimpanMatrik').click(() => this.matrik_save()).end()
.find('#butBatalMatrik').click(() => this.matrik_batal());
}
}).send();
},
matrik_batal: function(){
var dt = $('#tabelMatrik').DataTable(), tr, l_row;
tr = $('#butBatalMatrik').closest('tr');
l_row = dt.row(tr.prev('tr'));
if (l_row.child.isShown()) l_row.nodes().to$().find('.fon-tabel-dt').click();
if (l_row.data()[0]=='0') l_row.remove().draw(true);
},
matrik_save: function(){
if ($('#B_Catatan').val() == ''){
FoniaJS.showInfo('Mohon lengkapi Catatan & Status Validasi !');
return false;
}
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-matrik','mode_detail=update','ORGID','OPDID','DalevMatrikID','B_Catatan','B_Valid'],
onSuccess: () => FoniaJS.showInfo('Sukses menyimpan Validasi Matrik.')
}).send();
},
matrik_download: function(id) {
var dload = new cEXPORT({
url: this.PHP,
//filename: file_matrik,
});
dload.add_param('data', 'matrik-download');
dload.add_param('DalevMatrikID', id);
dload.download();
},
matrik_open_pdf: function(nfile){
var dpdf = new cPDF(nfile);
dpdf.set_zoom(100);
dpdf.showPDF();
},
data_query: function(tipe, mode){
if (tipe=="tabel-opd"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-opd']
}).send();
} else if (tipe=="tabel-matrik"){
new Request.JSON({
url: this.PHP,
sendParam: ['data=tabel-matrik','ORGID','OPDID'],
onSuccess: (ajson) => {
var opsi = { responsive: true, columnDefs: [{responsivePriority:1,targets:0}, {responsivePriority:2,targets:-1}, {orderable:false,targets:-1}], dom: 'r<"row"<"col-sm-12"t>><"row"<"col-sm-12 col-md-6"<"toolbar">><"col-sm-12 col-md-6"p>>', autoWidth: false, processing: true, searching: false };
opsi.drawCallback = function(){
$('#tabelMatrik tbody').on('click', '.fon-tabel-dt', (e) => {
var tr = $(e.currentTarget).closest('tr');
var row = otabel.row(tr);
if (row.child.isShown()){
row.child.hide();
tr.removeClass('shown');
}else{
if (otabel.row('.shown').length){
$('.fon-tabel-dt', otabel.row('.shown').node()).click();
}
var _dt_id = $('<div id="TD_Fonia_' + parseInt(Math.random() * 99999999) + '" class="fon-tabel-child" />');
row.child(_dt_id).show();
tr.addClass('shown');
ValidFaktorOPDJS.matrik_form(row.data(), _dt_id);
}
});
$('#tabelMatrik tbody').on('click', 'td.dtr-control', (e) => {
var tr = $(e.currentTarget).closest('tr');
var row = otabel.row(tr);
if (row.child.isShown()){
row.child.hide();
tr.removeClass('dt-hasChild parent');
}else{
var ind = 0;
var tampil = '<ul class="list-unstyled">';
api.columns().every(function(){
var kol = this.header();
if (kol.className.indexOf('dtr-hidden') != -1){
tampil += '<li class="py-1"><span class="d-inline-block" style="min-width:100px;">' + kol.textContent + '</span><span class="text-break">' + row.data()[ind] + '</span></li>';
}
ind++;
})
tampil += '</ul>';
row.child(tampil).show();
tr.addClass('dt-hasChild parent');
}
});
}
$('#divMATRIK').html(ajson.html)
var otabel = $('#tabelMatrik').DataTable(opsi);
}
}).send();
}
}
};