/******************************************************************* Module : /apps/js/sys/operator.js Desc. : JS - Manajemen Data Pengguna Created By : Siau Pheng (siaupheng@3fonia.com). Created Date : March 12th, 2008. Last Modified : January 1st, 2026. (c) 2008 - 2026, 3FONIA Software; WWW.3FONIA.COM. *******************************************************************/ var OperatorJS = { PHP: '', KODE: '', loading: function(){ this.data_query('detail'); $('#Cari_User').keydown((e) => { var key = e.keyCode || e.which || 0; if (key==13 && e.target.value!='') this.data_query('detail'); }); $('#butSearch').click(() => this.data_query('detail')); $('#butAll').click(() => { $('#Cari_User').val(''); this.data_query('detail'); }); $('#butFilter').click(() => this.filter_show()); FoniaJS.setFocus('#Cari_User'); }, filter_show: function(){ new Request({ url: this.PHP, sendParam: ['data=detail_filter','Filter_Level'], onSuccess: (txt) => { this.winFilter = FoniaJS.showWindow('FLevel', 'Filter Data Pengguna / Level', txt, 400, [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}], () => { $('#winFLevel') .find('#butWSimpan').click(() => this.filter_simpan()).end() .find('#Fi_Level').focus(); }); } }).send(); }, filter_simpan: function(){ $('#Filter_Level').val($('#Fi_Level').val()); FoniaJS.closeWindow(this.winFilter); this.data_query('detail'); }, detail_show: function(mode, UserID){ new Request({ url: this.PHP, sendParam: ['data=user-detail','mode='+mode,'UserID='+UserID], onSuccess: (txt) => { this.winDetail = FoniaJS.showWindow('Detail', 'Informasi Pengguna', txt, 'lg', [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}], () => { $('#winDetail').find('#butWSimpan').click(() => this.detail_check()); this.oc_Level(); }); } }).send(); }, detail_tambah: function(){ this.detail_show('add', 0); }, detail_ubah: function(acell){ this.detail_show('edit', acell[0]); }, detail_hapus: function(acell){ FoniaJS.showConfirm("Konfirmasi", "Yakin akan hapus ["+acell[1]+"] "+acell[2]+"?", () => { new Request.JSON({ url: this.PHP, sendParam: ['data=save','mode=del','UserID='+acell[0]], onSuccess: (adata) => { if (adata.status==true){ this.data_query('detail'); FoniaJS.showInfo('Proses hapus data sukses!'); }else{ FoniaJS.showInfo('Ada masalah dalam proses hapus data!'); } } }).send(); }, 'danger'); }, detail_check: function(){ if ($('#Username').val().toUpperCase()==$('#UserLama').val().toUpperCase()) { this.detail_save(); return; } new Request.JSON({ url: this.PHP, sendParam: ['data=user-check','Username'], onSuccess: (adata) => { if (adata.ada==true) { FoniaJS.showInfo("Username telah ada dalam sistem !"); } else { this.detail_save(); } } }).send(); }, detail_save: function(){ new Request.JSON({ url: this.PHP, sendParam: ['data=save','mode','UserID','Username','Nama','Posisi','Level','Password','Grup_MenuID','Aktif'], onSuccess: (adata) => { if (adata.status==true){ this.data_query('detail'); FoniaJS.showInfo('Proses simpan data sukses!'); }else{ FoniaJS.showInfo('Ada masalah dalam proses simpan data!'); } FoniaJS.closeWindow(this.winDetail); } }).send(); }, menu_show: function(acell){ new Request({ url: this.PHP, sendParam: ['data=menu','UserID='+acell[0]], onSuccess: (txt) => { this.winMenu = FoniaJS.showWindow('Menu', 'Hak Akses Modul', txt, 'lg', [{i:'butWSelAll',v:'Pilih Semua',c:'info'},{i:'butWClrAll',v:'Hapus Semua',c:'info'},{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}], () => { $('#winMenu') .find('#butWSelAll').click(() => this.menu_ceksemua()).end() .find('#butWClrAll').click(() => this.menu_hapussemua()).end() .find('#butWSimpan').click(() => this.menu_simpan()).end() .find('#tabMenuList thead input[type="checkbox"]:disabled').prop('indeterminate', true); }); } }).send(); }, menu_cek: function(el){ var t_modul = el.value, b_check = el.checked; $('#tabMenuList tbody input[type="checkbox"]').map(function(i, b){ var t_menu = $(b); if (t_menu.hasClass(t_modul)) t_menu.prop('checked', b_check); }); el.prop('checked', !b_check); }, menu_ceksemua: function(){ $('#tabMenuList tbody input[type="checkbox"]:not(:disabled)').prop('checked', true); }, menu_hapussemua: function(){ $('#tabMenuList tbody input[type="checkbox"]:not(:disabled)').prop('checked', false); }, menu_simpan: function(){ var alist = $('#R_MENU').val().split(','); $('#tabMenuList tbody input[type="checkbox"]:not(:disabled):checked').map(function(i, b){ alist.push($(b).val()); }); new Request.JSON({ url: this.PHP, sendParam: ['data=save-menu','UserID','Menu='+alist.join()], onSuccess: (adata) => { if (adata.status==true){ FoniaJS.showInfo('Proses simpan data sukses!'); }else{ FoniaJS.showInfo('Ada masalah dalam proses simpan data!'); } FoniaJS.closeWindow(this.winMenu); } }).send(); }, opd_show: function(acell){ new Request({ url: this.PHP, sendParam: ['data=opd','UserID='+acell[0]], onSuccess: (txt) => { this.winOPD = FoniaJS.showWindow('OPD', 'Akses Data OPD', txt, 'lg', [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}], () => { $('#winOPD').find('#butWSimpan').click(() => this.opd_simpan()); }); } }).send(); }, opd_simpan: function(){ var alist = []; $('#tabOPDList tbody input[type="checkbox"]:not(:disabled):checked').map(function(i, b){ alist.push($(b).val()); }); new Request.JSON({ url: this.PHP, sendParam: ['data=save-opd','UserID','AK_OPD='+alist.join()], onSuccess: (adata) => { if (adata.status==true){ FoniaJS.showInfo('Proses simpan data sukses!'); }else{ FoniaJS.showInfo('Ada masalah dalam proses simpan data!'); } FoniaJS.closeWindow(this.winOPD); } }).send(); }, kec_show: function(acell){ new Request({ url: this.PHP, sendParam: ['data=kec','UserID='+acell[0]], onSuccess: (txt) => { this.winKec = FoniaJS.showWindow('Kec', 'Akses Data Kecamatan', txt, 'md', [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}], () => { $('#AK_KEC').select2({tags: false, dropdownParent: $('#winKec')}); $('#winKec').find('#butWSimpan').click(() => this.kec_simpan()); }); } }).send(); }, kec_simpan: function(){ new Request.JSON({ url: this.PHP, sendParam: ['data=save-kec','UserID','AK_KEC'], onSuccess: (adata) => { if (adata.status==true){ FoniaJS.showInfo('Proses simpan data sukses!'); }else{ FoniaJS.showInfo('Ada masalah dalam proses simpan data!'); } FoniaJS.closeWindow(this.winKec); } }).send(); }, kel_show: function(acell){ new Request({ url: this.PHP, sendParam: ['data=kel','UserID='+acell[0]], onSuccess: (txt) => { this.winKel = FoniaJS.showWindow('Kel', 'Akses Data Kelurahan / Desa', txt, 'md', [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}], () => { $('#AK_KEL').select2({tags: false, dropdownParent: $('#winKel')}); $('#winKel').find('#butWSimpan').click(() => this.kel_simpan()); }); } }).send(); }, kel_simpan: function(){ new Request.JSON({ url: this.PHP, sendParam: ['data=save-kel','UserID','AK_KEL'], onSuccess: (adata) => { if (adata.status==true){ FoniaJS.showInfo('Proses simpan data sukses!'); }else{ FoniaJS.showInfo('Ada masalah dalam proses simpan data!'); } FoniaJS.closeWindow(this.winKel); } }).send(); }, data_query: function(tipe, mode){ if (tipe=="detail"){ new Request.JSONF({ url: this.PHP, sendParam: ['data=detail','Filter_Level','Cari_User'] }).send() } }, oc_Level: function(){ if ($('#Level').val()>1 && $('#Level').val()!=3) { $('#Grup_MenuID').prop('disabled', true).val(0).trigger('change'); } else $('#Grup_MenuID').prop('disabled', false); if ($('#Level').val()==3) { $('#Grup_Help').removeClass('d-none'); } else $('#Grup_Help').addClass('d-none'); } };