162 lines
6.5 KiB
JavaScript
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();
|
|
}
|
|
}
|
|
|
|
};
|