PHP Classes

File: public/asset/js/pages/user.js

Recommend this page to a friend!
  Classes of fathurrahman   mnTemplate   public/asset/js/pages/user.js   Download  
File: public/asset/js/pages/user.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: mnTemplate
Route HTTP requests to callback functions
Author: By
Last change:
Date: 1 year ago
Size: 15,236 bytes
 

Contents

Class file image Download
$(document).ready(function () { var data = persiapan_data(); inisialisasi(data); eventHandler(data); }); function persiapan_data() { var data = {}; data.toastConfig = { wrapper: '.navbar', id: 'toast-form-user', delay: 3000, autohide: true, show: true, bg: 'bg-danger', textColor: 'text-white', time: waktu(null, 'HH:mm'), toastId: 'logout-error', title: 'Gagal, Terjadi kesalahan', type: 'danger', hancurkan: true } data.modalConf = { 'detail-user': { modalId: "detail-user", wrapper: "body", opt: { size: 'modal-lg', type: 'custom', kembali: false, open: true, destroy: true, saatBuka: () => { }, saatTutup: (e) => { }, modalTitle: "Detail User", modalBody: { }, modalFooter: [ // { type: 'button', text: 'Hapus', id: "btn-hapus", class: "btn btn-outline-danger" }, { type: 'button', text: 'Non aktifkan', id: "btn-nonaktif", class: "btn btn-outline-warning" }, { type: 'button', text: 'Edit', id: "btn-edit", class: "btn btn-primary" } ] } }, "form-user": { modalId: 'modal-form-user', wrapper: 'body', opt: { type: 'form', kembali: false, destroy: true, open: true, ajax: true, modalTitle: '', modalPos: 'right', submitSuccess: function (res) { $('#submit').prop('disabled', false); $('#modal-form-user').modal('hide'); endLoading(); res = JSON.parse(res); var toastOpt = data.toastConfig; toastOpt.bg = 'bg-success'; toastOpt.title = 'Berhasil'; toastOpt.message = res.message; makeToast(toastOpt); inisialisasi(data); }, submitError: function (res) { $('#submit').prop('disabled', false); $('#modal-form-user').modal('hide'); endLoading(); res = JSON.parse(res.responseText); var toastOpt = data.toastConfig; toastOpt.bg = 'bg-danger'; toastOpt.title = res.message; toastOpt.message = res.err; makeToast(toastOpt); inisialisasi(data); }, sebelumSubmit: function () { $('#submit').prop('disabled', true); showLoading(); }, rules: [ { name: 'noSpace', method: function (value, element) { return value.indexOf(" ") < 0; }, message: "Tidak boleh ada spasi", field: 'username' } ], formOpt: { formId: "form-user", formAct: path + "user/pos", formMethod: 'POST', formAttr: '' }, modalBody: { input: [ { type: 'hidden', name: '_username', id: "_username" }, { type: 'hidden', name: 'id_info', id: 'id_info' }, { type: 'hidden', name: 'active', id: 'active', value: '1' }, { type: 'hidden', name: '_mode', id: '_mode', value: 'edit' }, { label: 'Nama Lengkap', placeholder: 'Masukkan nama lengkap', type: 'text', name: 'nama_lengkap', id: 'nama_lengkap', attr: 'required' }, { label: 'Username', placeholder: 'Masukkan Username tanpa spasi', type: 'text', name: 'username', id: 'username', attr: 'required' }, { label: 'Email', placeholder: 'Masukkan Email', type: 'email', name: 'email', id: 'email', attr: 'required' }, { label: 'No Hp', placeholder: 'Masukkan Nomer Hp (Opsional)', type: 'text', name: 'nohp', id: 'nohp' }, { label: 'Jabatan', placeholder: 'Masukkan jabatan (opsional)', type: 'text', name: 'jabatan', id: 'jabatan' }, { label: 'Pilih Role', type: 'select', name: 'role', id: 'role', options: { 'bendahara 1': { text: 'Bendahara 1' }, 'bendahara 2': { text: 'Bendahara 2' }, 'kepala sekolah': { text: 'Kepala Sekolah' }, } } ], buttons: [ { type: 'reset', data: 'data-dismiss="modal"', text: 'Batal', id: "batal", class: "btn btn btn-warning" }, { type: 'submit', text: 'Simpan', id: "submit", class: "btn btn btn-primary" } ] }, } } } return data; } async function inisialisasi(data) { showLoading(); await loaddata(); options = { search: true, info: true, order: true, select: true, changeMenu: true, change: true, responsive: true, dom: 'Bfrtip', buttons: [ { text: 'Tambah', action: function (e, dt, node, config) { var configModal = data.modalConf['form-user']; configModal.opt.modalTitle = 'Tambah data user'; configModal.opt.saatBuka = function () { $('#_mode').val('baru'); } generateModal(configModal.modalId, configModal.wrapper, configModal.opt); } }, { text: 'Non aktifkan semua', action: function (e, dt, node, config) { if (!confirm('Yakin ingin non aktifkan semua akun ?')) return; var ini = $(node); ini.prop('disabled', true); showLoading(); $.post(path + 'user/nonaktif/', function (res) { $('#detail-user').modal('hide'); endLoading(); res = JSON.parse(res); var toastOpt = data.toastConfig; toastOpt.bg = 'bg-success'; toastOpt.title = 'Berhasil'; toastOpt.message = res.message; makeToast(toastOpt); inisialisasi(data); }).fail(function (res) { $('#detail-user').modal('hide'); endLoading(); res = JSON.parse(res.responseText); var toastOpt = data.toastConfig; toastOpt.bg = 'bg-danger'; toastOpt.title = res.message; toastOpt.message = res.err; makeToast(toastOpt); inisialisasi(data); }); } } ], addCallback: true, callback: [ { el: '#tbl-user tbody', evt: 'click', filterEL: 'tr', func: async function (evt) { var params = evt.data; var tabel = params.tabel; var row = tabel.row(this).data(); var username = row[0]; var sanitasi = ['alamat', 'nama_lengkap', 'nohp']; var user = await fetch(path + 'user/data/' + username).then(res => res.json()).then(res => { return { 'user': res.users[0], 'permission': res.permission }; }); sanitasi.forEach(s => { if (!user.user[s]) user.user[s] = '-'; }); configModal = data.modalConf['detail-user']; configModal.opt.modalSubtitle = "Username: " + user.user.username; configModal.opt.saatBuka = function () { var text = user.user.isActive == '1' ? 'Non aktifkan' : 'Aktifkan'; $('#btn-nonaktif').text(text) $('#btn-nonaktif').on('click', { 'user': user.user, 'text': text }, function (e) { if (!confirm('Yakin ingin ' + e.data.text + ' akun ini?')) return; var ini = $(this); ini.prop('disabled', true); var username = e.data.user.username; var mode = e.data.user.isActive == '1' ? 'nonaktif' : 'aktif'; showLoading(); $.post(path + 'user/aktif/' + username, { 'email': e.data.user.email, 'mode': mode }, function (res) { $('#detail-user').modal('hide'); endLoading(); res = JSON.parse(res); var toastOpt = data.toastConfig; toastOpt.bg = 'bg-success'; toastOpt.title = 'Berhasil'; toastOpt.message = res.message; makeToast(toastOpt); inisialisasi(data); }).fail(function (res) { $('#detail-user').modal('hide'); endLoading(); res = JSON.parse(res.responseText); var toastOpt = data.toastConfig; toastOpt.bg = 'bg-danger'; toastOpt.title = res.message; toastOpt.message = res.err; makeToast(toastOpt); inisialisasi(data); }); }) $('#btn-edit').on('click', {}, function () { var configModal = data.modalConf['form-user']; configModal.opt.modalTitle = 'Edit data user'; configModal.opt.modalSubtitle = user.user.username; configModal.opt.saatBuka = function () { $('#_username').val(user.user.username); $('#id_info').val(user.user.id); $('#detail-user').modal('hide'); setTimeout(function () { $('body').addClass('modal-open'); }, 500); var sanitasi = ['alamat', 'nama_lengkap', 'nohp', 'jabatan']; sanitasi.forEach(s => { if (!user.user[s] || user.user[s] == '-') user.user[s] = ''; }); console.log($('#nama').val(user.user.nama_lengkap)); $('#nama_lengkap').val(user.user.nama_lengkap); $('#username').val(user.user.username); $('#email').val(user.user.email); $('#nohp').val(user.user.nohp); $('#jabatan').val(user.user.jabatan); $('#role option[value="' + user.user.role + '"]').prop('selected', true).parent().trigger('change') } generateModal(configModal.modalId, configModal.wrapper, configModal.opt); }); } configModal.opt.modalBody.customBody = '<div class="row">' + '<div class="col-md-5 img" id="wrapper-img">' + '<img id="image" src="' + path + "/public/assets/img/profile/" + user.user.photo + '" alt="" class="img-rounded">' + '</div>' + '<div class="col-md-6 details">' + '<blockquote>' + '<h5 id="nama">' + user.user.nama_lengkap.capitalize('all') + '</h5>' + '<small><cite title="Source Title" id="alamat">' + user.user.alamat.capitalize('all') + '<i class="icon-map-marker"></i></cite></small><hr>' + '</blockquote>' + '<p id="detail">' + 'Email: ' + user.user.email + '<br>' + 'No Hp: ' + user.user.nohp + '<br>' + 'Role: ' + user.user.role + '<br>' + '</p>' + '</div>' + '</div>'; generateModal(configModal.modalId, configModal.wrapper, configModal.opt) } } ] }; initDatatable('#tbl-user', options); } function eventHandler() { } async function loaddata() { await fetch(path + 'user/list').then(res => res.json()).then(res => { if (!res.users) return; var rows = ''; var data = res.users; var column = ['email', 'nohp', 'nama_lengkap', 'alamat']; data.forEach((d, i) => { column.forEach(c => { if (!d[c]) d[c] = '-'; }); rows += '<tr>' + '<td>' + d.username + '</td>' + '<td>' + d.email + '</td>' + '<td>' + d.nohp + '</td>' + '<td>' + d.nama_lengkap + '</td>' + '<td>' + d.alamat + '</td>' + '<td>' + d.role + '</td>' + '</tr>'; }); $('#tbl-user tbody').html(rows); endLoading(); }); }