const defineTable = { nama: null } window.insertNodeAfterClass = function(className, content) { // Create a new element to insert // Find the element with the specified class var targetElement = document.querySelector("." + className); // Check if the target element exists if (targetElement) { // Insert the new node after the target element targetElement.parentNode.insertBefore(content, targetElement.nextSibling); } else { console.error("Target element with class '" + className + "' not found."); } }; function ubahFormatTanggal(tanggal) { const bulanDalamKata = ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Agu', 'Sep', 'Okt', 'Nov', 'Des']; const tanggalArray = tanggal.split('-'); const tahun = tanggalArray[0]; const bulan = bulanDalamKata[parseInt(tanggalArray[1]) - 1]; const tanggalBaru = tanggalArray[2]; return `${tanggalBaru} ${bulan} ${tahun}`; } insertNodeAfterClass('panel-head-menu', div() .id('pageContent').get()) if (typeof objectForm != 'undefined'){ let _rightPanel = document.querySelector('.content-header-right'); window._startDate; window._endDate; if (objectForm.filldate == true) { if (_rightPanel != undefined) { _rightPanel.appendChild( div().html(`
 
`).load(function () { $(function () { window._cekSession = (function () { return { get: function () { let t = localStorage.getItem(location.href + 'ds'); let w = localStorage.getItem(location.href + 'dn'); if (t != undefined) { return { start: t, end: w } } return null; }, set: function (start, end) { localStorage.setItem(location.href + 'ds', start) localStorage.setItem(location.href + 'dn', end) } } })() window._startDate = moment().subtract(29, 'days'); window._endDate = moment(); if (window._cekSession.get() != null) { window._startDate = moment(window._cekSession.get().start) window._endDate = moment(window._cekSession.get().end); } function cb(d1, d2) { $('#reportrange span').html(d1.format('MMMM D, YYYY') + ' - ' + d2.format('MMMM D, YYYY')); if (objectForm.serverSide != true){ _load(); }else{ setTimeout(function(){ table.ajax.reload() },100) } } function cb2(d1, d2) { window._startDate = d1 window._endDate = d2 window._cekSession.set(d1, d2) $('#reportrange span').html(d1.format('MMMM D, YYYY') + ' - ' + d2.format('MMMM D, YYYY')); if (objectForm.serverSide != true) { _load(); }else{ setTimeout(function () { table.ajax.reload() }, 100) } } $('#reportrange').daterangepicker({ startDate: _startDate, endDate: _endDate, ranges: { 'Last 30 Days': [moment().subtract(29, 'days'), moment()], 'This Month': [moment().startOf('month'), moment().endOf('month')], 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')], '1 Years': [moment().startOf('year'), moment().endOf('year')], 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')] } }, cb2); cb(_startDate, _endDate); }); }).get() ) } } function HtmlEncode(s) { let el = document.createElement("div"); el.innerText = el.textContent = s; s = el.innerHTML; return s; } function decodeHTML(text) { let textArea = document.createElement('textarea'); textArea.innerHTML = text; return textArea.value; } let colDef = (function (x) { if (x.multiAction != undefined) { return [{ orderable: false, className: 'select-checkbox', targets: 0 }]; } else if( objectForm.noStartOrder === true ){ return []; } else { return [ { "width": "59px", "targets": 0 } ]; } })(objectForm); let order = []; objectForm.view.forEach(function(s, i){ let n = 1+i; if(objectForm.noStartOrder === true){ n = 0+i; } if(s === 'tgl'){ order.push([n,'desc']); } }); const getPositionOrder = function(x){ let position = objectForm.view.indexOf(x) + 1; if(objectForm.noStartOrder === true){ position = objectForm.view.indexOf(x) + 0; } return position; }; if(typeof objectForm.custOrder != 'undefined'){ objectForm.custOrder.forEach(function(s){ let n = getPositionOrder(s); order.push([n,'desc']); }); }; objectForm.view.forEach(function(col, i){ let n = 1+i; if (objectForm.noStartOrder === true) { n = 0 + i; } if(col.indexOf('tgl') != -1){ colDef.push({ targets: n, render: function (data, type, row, meta) { if (type === 'display' || type === 'filter') { return ubahFormatTanggal(data); } return data; // Tampilkan tanggal dalam format yyyy-mm-dd saat dilakukan pengurutan }, orderData: [n], // Atur urutan data berdasarkan kolom tanggal type: 'date-eu' // Atur jenis tipe data untuk pengurutan berdasarkan tanggal (format 'dd/mm/yyyy') }); } }); window.optionTable = { dom: 'Bfrtip', scrollY: '300px', scrollX: true, order: order, scrollCollapse: true, paging: (function(){ if(objectForm.pagin === false){ return false; } return true; })(), "lengthChange": true, "lengthMenu": objectForm.serverSide ? [[10, 20, 50, 100, 500, 1000], [25, 50, 100, 500, "Max"]] : [[20, 50, 100, 500, 1000], [25, 50, 100, 500, "Max"]], "pageLength": objectForm.serverSide? 10:20, "columnDefs": colDef, fixedColumns: { left: (function (x) { if (x.fixed != undefined) { return x.fixed; } else { return 1; } })(objectForm) }, buttons: [ 'copy', /* export excel */ { title: function () { let titleX = 'DATA ' + (function () { let titleX = ''; if (objectForm.title != undefined) { titleX = objectForm.title(); } if(objectForm.titleReport != undefined){ titleX = objectForm.titleReport(); } return titleX; })(); return titleX; }, extend: 'excel', exportOptions: { columns: objectForm.columnsExport }, customize : function(xlsx){ let sheet = xlsx.xl.worksheets['sheet1.xml']; console.log(sheet); Array.from(sheet.querySelectorAll('row')).forEach(function(row, x){ Array.from(row.querySelectorAll('c')).forEach(function(f,i){ (function col(f, i){ if(f.children != undefined && f.children.length > 0){ col(f.children[0], i); }else{ try{ (function(f,i){ if ( objectForm.customeExport[i].func != undefined ){ objectForm.customeExport[i].func(f, x, window._datar); } })(f, i); }catch(e){ // console.log(e); } } })(f, i); }); }) } }, /* export pdf */ { title: (function () { if (objectForm.titleReport != undefined) { return objectForm.titleReport; } return 'DATA ' + (function () { let titleX = ''; if (objectForm.title != undefined) { titleX = objectForm.title(); } return titleX; })() })() , extend: 'pdf', download: 'open', messageBottom: null, orientation: (function(obj){ if(obj.orientation == "l"){ return "landscape"; } return "portrait"; })(objectForm), exportOptions: { columns: objectForm.columnsExport }, customize: function (doc) { console.log(doc); doc.content[0].text = (function () { return (function () { if (objectForm.titleReport != undefined) { return 'DATA '+objectForm.titleReport().toUpperCase(); } return 'DATA ' + (function () { let titleX = ''; if (objectForm.title != undefined) { titleX = objectForm.title(); } return titleX; })().toUpperCase() })() })(); } }, { title: function () { let titleX = 'DATA ' + (function () { let titleX = ''; if (objectForm.title != undefined) { titleX = objectForm.title(); } return titleX; })(); return titleX; }, extend: 'print', exportOptions: { columns: objectForm.columnsExport }, messageBottom: null, customize: function (doc) { } } ] } if (objectForm.multiAction != undefined ){ optionTable.select = (function (x) { if (x.multiAction != undefined) { return { style: 'os', selector: 'td:first-child' } } else { return {} } })(objectForm); }; const ajaxData = delay(function (data, callback) { table.clear(); let qr = objectForm.queryTemp; let qr1 = qr.split('||')[0].replace(/\{select\}/g, objectForm.dataSelect); if (window._startDate != undefined && objectForm.custcondition == undefined) { if (objectForm.datekode != undefined && objectForm.filldate == true) { if (qr1.indexOf('WHERE') != -1) { qr1 += ' AND ' + objectForm.datekode + ' >= "' + window._startDate.format('YYYY-MM-DD') + '"' } else { qr1 += ' WHERE ' + objectForm.datekode + ' >= "' + window._startDate.format('YYYY-MM-DD') + '"' } qr1 += ' AND ' + objectForm.datekode + ' <= "' + window._endDate.format('YYYY-MM-DD') + '"' } } // search let searchData = ' HAVING 1=1 AND ( '+objectForm.view.map(function(x){ return ` ${x} LIKE "%${data.search.value}%" ` }).join("OR") + ' ) '; if (objectForm.custcondition != undefined) { qr1 = objectForm.custcondition(qr1); }; if(objectForm.groupBy){ qr1 += ` GROUP BY ${objectForm.groupBy.join(",")} `; } qr1 += searchData; let qr2 = qr.split('||')[1]; let ty = qr1; if(data.order.length > 0){ let orderName = objectForm.view; ty += ` ORDER BY `+data.order.map(function(x){ return ` ${orderName[(x.column - 1)]} ${x.dir} `; }).join(',') } if (objectForm.debug == true) { console.log(ty); }; let dataConter = ty.split('FROM ' + objectForm.table); let fst = dataConter.shift(); let lst = fst + ', 1 cn_count ' + 'FROM ' + objectForm.table + dataConter.join('FROM ' + objectForm.table); ty += ` LIMIT ${data.start},10 `; loaderCssCek(); AuditDevQuery(ty + '[;]' + ` SELECT ifnull((SELECT sum(cn_count) FROM ( ${lst} ) a ),0) cn_count ` , function (rx) { loaderCssRemove(); let [r,counterData] = rx; if(counterData === undefined){ counterData = 0; }else{ counterData = counterData[0].cn_count; } if (objectForm.customeData != undefined && typeof objectForm.customeData === 'function') { r = objectForm.customeData(r); }; let dataArrayTable = []; r.forEach(function (d, i) { let dat = []; let custb = ''; if (objectForm.custButton != undefined) { custb = objectForm.custButton(d, i); } if (objectForm.multiAction === true) { dat.push(''); } if (objectForm.disableEditor != undefined) { if (typeof objectForm.disableEditor === 'function') { dat.push(objectForm.disableEditor(d[objectForm.kode], d, i)); } else { dat.push(`
-
`) } } else if (objectForm.noAction === true) { dat.push(`
${custb}
`) } else if (objectForm.deleteOnly === true) { dat.push(`
${custb}
`) } else { dat.push(`
${custb}
`) } objectForm.view.forEach(function (v, o) { if (objectForm.custView != undefined) { if (objectForm.custView[o] != undefined && objectForm.custView[o] != false) { dat.push(objectForm.custView[o](d[v])) } else { dat.push(d[v]) } } else { if (objectForm.custome != undefined) { if (objectForm.custome[v] != undefined) { let vv = objectForm.custome[v](d[v], d) dat.push(vv); } else { dat.push(d[v]) } } else { dat.push(d[v]) } } }) dataArrayTable.push(dat); }) callback(dataArrayTable, counterData); }) }, 10) if(objectForm.serverSide === true){ optionTable.ajax = delay(function (data, callback, settings) { ajaxData(data, function(dataRender, counter){ callback({ draw: data.draw, data: dataRender, recordsTotal: counter, recordsFiltered: counter }); }) },300); optionTable.serverSide = true; } const __updateTable = function(){ if (defineTable.nama != (objectForm.id ? '#' + objectForm.id : '#tabledata')){ defineTable.nama = (objectForm.id ? '#' + objectForm.id : '#tabledata'); window.table = $(objectForm.id?'#'+objectForm.id : '#tabledata').DataTable(optionTable); } } __updateTable(); // const __update table.columns.adjust().draw(); window._load = delay(function (callback) { if(objectForm.serverSide === true){ table.ajax.reload(); return false; } table.clear(); let g = cssLoader(); let qr = objectForm.queryTemp; let qr1 = qr.split('||')[0].replace(/\{select\}/g, objectForm.dataSelect); if (window._startDate != undefined && objectForm.custcondition == undefined) { if (objectForm.datekode != undefined && objectForm.filldate == true) { if (qr1.indexOf('WHERE') != -1) { qr1 += ' AND ' + objectForm.datekode + ' >= "' + window._startDate.format('YYYY-MM-DD') + '"' } else { qr1 += ' WHERE ' + objectForm.datekode + ' >= "' + window._startDate.format('YYYY-MM-DD') + '"' } qr1 += ' AND ' + objectForm.datekode + ' <= "' + window._endDate.format('YYYY-MM-DD') + '"' } } if (objectForm.custcondition != undefined) { qr1 = objectForm.custcondition(qr1); }; let qr2 = qr.split('||')[1]; let ty = qr1 + qr2; if(objectForm.debug == true){ console.log(ty); }; AuditDevQuery(ty, function (r, counterData) { if(callback != undefined && typeof callback === 'function'){ callback(r,counterData); }else{ if(objectForm.customeData != undefined && typeof objectForm.customeData === 'function'){ r = objectForm.customeData(r); }; r.forEach(function (d, i) { let dat = []; let custb = ''; if (objectForm.custButton != undefined) { custb = objectForm.custButton(d, i); } if (objectForm.multiAction === true) { dat.push(''); } if (objectForm.disableEditor != undefined) { if (typeof objectForm.disableEditor === 'function') { dat.push(objectForm.disableEditor(d[objectForm.kode],d,i)); }else{ dat.push(`
-
`) } } else if (objectForm.noAction === true) { dat.push(`
${custb}
`) } else if (objectForm.deleteOnly === true){ dat.push(`
${custb}
`) } else { dat.push(`
${custb}
`) } objectForm.view.forEach(function (v, o) { if (objectForm.custView != undefined) { if (objectForm.custView[o] != undefined && objectForm.custView[o] != false) { dat.push(objectForm.custView[o](d[v])) } else { dat.push(d[v]) } } else { if (objectForm.custome != undefined) { if (objectForm.custome[v] != undefined) { let vv = objectForm.custome[v](d[v], d) dat.push(vv); } else { dat.push(d[v]) } } else { dat.push(d[v]) } } }) table.row.add(dat) }) g.remove(); if (window._w != undefined && window._w === 'c'){ setTimeout(function(){ table.draw(true); },10); }else{ table.draw(false); } objectForm.onStarted && typeof objectForm.onStarted == 'function' ? (function(objectForm){ setTimeout(()=>{ objectForm.onStarted(); }) })(objectForm) : null; } }) }, 10) if (objectForm.filldate === undefined || objectForm.filldate === null){ if(objectForm.serverSide != true){ _load(); } } $(document).on('click', 'button.new', function () { window._w = 'c'; $("#modala").modal('show'); document.querySelector('button.simpan').style.display = 'inline-block'; let titleX = ''; if (objectForm.title != undefined) { titleX = objectForm.title(); } $(".title-f").html('Tambah Baru ' + titleX) let qr = objectForm.queryTemp; let qr1 = qr.split('||')[0].replace(/\{select\}/g, objectForm.dataSelect); Array.from(document.querySelectorAll('.form-d')).forEach(function (j) { j.value = ''; }); if (objectForm.newkode != '') { let k = cssLoader(); AuditDevQuery(objectForm.newkode, function (a) { k.remove(); globalThis['kode'].parent.value = a[0].kode; }) } objectForm.data.forEach(function (j) { if (j.area == true) { $(".form-d[name=\"" + j.name + "\"]").summernote('code', '') } if (j.type == 'select') { window._setval(j.name, ''); } if (j.date == 'date') { $(".form-d[name=\"" + j.name + "\"]").val("").datepicker("update"); } }) if (objectForm.oncreate != undefined) { objectForm.oncreate(); } }) let updateKode; let editActive; let dataSelect; $(document).on('click', '.edit', function () { window._w = 'u'; if(objectForm.disableSave === true){ document.querySelector('button.simpan').style.display = 'none'; } let kode = this.getAttribute('data-kode'); let id = this.getAttribute('data-id'); editActive = id; let cek = `SELECT * FROM ${objectForm.table} WHERE ${objectForm.kode} = '${kode}' LIMIT 1`; let t = cssLoader(); AuditDevQuery(cek, function (r) { if (r.length > 0) { t.remove() r = r[0]; updateKode = r[objectForm.kode]; dataSelect = r; let titleX = ''; if (objectForm.title != undefined) { titleX = objectForm.title(); } $(".title-f").html('Update Data ' + titleX) Object.keys(r).forEach(function (jj) { let cekHero = _id(objectForm.idform).querySelector(`.form-d[name=${jj}]`); if (cekHero != null && cekHero != undefined && cekHero != '') { if (_id(objectForm.idform).querySelector(`.form-d[name=${jj}]`).tagName == 'SELECT') { let id = _id(objectForm.idform).querySelector(`.form-d[name=${jj}]`).id; let f = objectForm.data.cond(jj, 'name')[0]; if (f.unchange != true){ if(r[jj] != null){ if( r[jj].indexOf(',') != -1 ){ $('.form-d#' + id).val(r[jj].split(',')).trigger('change'); }else{ $('.form-d#' + id).val(r[jj]).trigger('change'); } } } } else { let jt = objectForm.data; let f = objectForm.data.cond(jj, 'name')[0]; if (f.type == 'number') { if (f.decimal != undefined) { _id(objectForm.idform).querySelector(`.form-d[name=${jj}]`).value = r[jj].number(2).currency(2); } else { _id(objectForm.idform).querySelector(`.form-d[name=${jj}]`).value = r[jj].number(2).currency(0); } } else if ( f.type == 'date' ){ $('#'+objectForm.idform+` .form-d[name=${jj}]`) .datepicker("update", new Date(r[jj])) } else { if (f.area == true) { $(`.form-d[name=${jj}]`).summernote('code', decodeHTML(atob(r[jj]))); } else { _id(objectForm.idform).querySelector(`.form-d[name=${jj}]`).value = r[jj]; } } if(f.type === 'radio'){ globalThis._radioAct.setVal(f.name, r[jj], 1); } } } }) $("#modala").modal('show') if (objectForm.onupdate != undefined) { objectForm.onupdate(r) } } else { dataSelect = null; t.remove(); Swal('Info', 'data ini telah dihapus', 'info') setTimeout(() => { _load(); }, 500); } }) }) $(document).on('click', '.hapus', async function (event) { window._w = 'h'; let kode = this.getAttribute('data-kode'); if(objectForm.beforeDelete){ typeof objectForm.beforeDelete == 'function' ? await objectForm.beforeDelete(this.dataset):null; } if(objectForm._delete != undefined && typeof objectForm._delete === 'function'){ objectForm._delete(kode); throw 'stop action'; }; event.preventDefault(); Swal({ title: "Apa kamu yakin?", text: "Data ini akan di hapus dari system!", type: "warning", showCancelButton: true, confirmButtonColor: '#DD6B55', confirmButtonText: 'Ya, Saya yakin!', cancelButtonText: "Tidak, Batalkan!", closeOnConfirm: false, closeOnCancel: false }, function (isConfirm) { if (isConfirm) { swal("Cancelled", "Your imaginary file is safe :)", "error"); } else { swal("Cancelled", "Your imaginary file is safe :)", "error"); e.preventDefault(); } }); setTimeout(() => { document.querySelector('.swal2-cancel').focus() }, 100); document.querySelector('.swal2-confirm').addEventListener('click', function () { if (objectForm.connection != undefined){ let cssld = cssLoader(); $.ajax({ url: dataApi.connection , typeData : 'json' , method : 'POST' , data: { kode: kode ,data :objectForm.connection } , success : function(res){ res = JSON.parse(res); cssld.remove(); if(res.counter > 0){ if( objectForm.deleteInfoWarning != undefined && typeof objectForm.deleteInfoWarning === 'string' ){ Swal('Info', objectForm.deleteInfoWarning,'info') }else{ Swal('Info', 'Data telah terpakai di transaksi. tidak boleh dihapus!','info') } }else{ console.log(`DELETE FROM ${objectForm.table} WHERE ${objectForm.kode} = '${kode}'`) AuditDevQuery(`DELETE FROM ${objectForm.table} WHERE ${objectForm.kode} = '${kode}'`, function () { if (globalThis._loadCust != undefined) { // globalThis._loadCust(); _load(); } else { _load(); } if (globalThis._delete != undefined) { globalThis._delete(kode) } }) } },error: function(){ Swal('Warning', 'Connection Lost, please try again','warning'); cssld.remove(); throw 'error connection'; } }) }else{ AuditDevQuery(`SELECT * FROM ${objectForm.table} WHERE ${objectForm.kode} = '${kode}' LIMIT 1`, function (dx) { if(dx.length > 0){ dx = dx[0]; }; if (objectForm._condDeleteStop != undefined){ objectForm._condDeleteStop.forEach(function(j){ if( dx[j.id] == j.val ){ Swal('Warning', 'data telah diposting', 'warning') throw 'stop action'; }; }); }; AuditDevQuery(`DELETE FROM ${objectForm.table} WHERE ${objectForm.kode} = '${kode}'`, function () { if (globalThis._loadCust != undefined) { _load(); } else { _load(); } if (globalThis._delete != undefined) { globalThis._delete(kode) } }) }) } }, false) }) $(document).on('click', '.delete-multi', function () { let ids = $.map(table.rows('.selected').data(), function (item) { return el('div').html(item[1]).get().querySelector('.edit').getAttribute('data-kode') }); }) $(document).on('click', '.simpan', function () { if (objectForm.onviewonly != undefined) { if (objectForm.onviewonly != undefined && typeof objectForm.onviewonly === 'function') { if (globalThis._validasi != undefined) { globalThis._validasi(); } let gta = Array.from(document.querySelectorAll('.form-d')).map(function (j) { let t = {}; let ty = objectForm.data.cond(j.name, 'name')[0]; if (ty.unfollow != undefined) { t['follow'] = false; } else { t['follow'] = true; } t['title'] = (function cj(x){ if (x.querySelector('label') != undefined){ return x.querySelector('label').innerHTML }else{ return cj(x.parentNode); } })(j.parentNode); t['name'] = j.name; if (ty.type == 'number') { t['text'] = j.value.number().toString(); } else if (ty.type == 'select') { t['text'] = _getval(j.name); } else if (ty.type == 'date') { t['text'] = (function (s) { let [tgl, bulan, tahun] = s.split("-"); return tahun + '-' + bulan + '-' + tgl; })(j.value); } else { if (ty.area == true) { t['text'] = btoa(HtmlEncode(j.value)); } else { t['text'] = j.value; } } return t; }).filter(function (cj) { if (cj.follow === true) { return cj } }); objectForm.validasiForm.forEach(function (t) { let ty = objectForm.data.cond(t, 'name')[0]; if (ty.type == 'radio') { if (_getval(t) === '') { Swal('Warning', globalThis.kodesp.parent.parentNode.parentNode.querySelector('label').innerHTML + ' Tidak Boleh Kosong'); throw 'stop action' } } else { if (_id(objectForm.idform).querySelector(`.form-d[name=${t}]`).value === '') { Swal('Warning', _id(objectForm.idform).querySelector(`.form-d[name=${t}]`).parentNode.querySelector('label').innerHTML + ' Tidak Boleh Kosong', 'warning'); throw _id(objectForm.idform).querySelector(`.form-d[name=${t}]`).parentNode.querySelector('label').innerHTML + ' Tidak Boleh Kosong'; } } }); $("#modala").modal('toggle') let obj = {} gta.forEach(function (g, i) { obj[g.name] = g.text; }) objectForm.onviewonly(obj); } else { $("#modala").modal('toggle') } throw 'stop action' } let type = document.querySelector('.title-f').innerHTML; if (type.indexOf('Tambah Baru') != -1) { let gt = Array.from(document.querySelectorAll('.form-d')).map(function (j) { let t = {}; let ty = objectForm.data.cond(j.name, 'name')[0]; if (ty.unfollow != undefined) { t['follow'] = false; } else { t['follow'] = true; } t['title'] = (function cj(x) { if (x.querySelector('label') != undefined) { return x.querySelector('label').innerHTML } else { return cj(x.parentNode); } })(j.parentNode); t['name'] = j.name; if (ty.type == 'number') { t['text'] = j.value.number().toString(); } else if (ty.type == 'select') { t['text'] = _getval(j.name); } else if (ty.type == 'date') { t['text'] = (function (s) { let [tgl, bulan, tahun] = s.split("-"); return tahun + '-' + bulan + '-' + tgl; })(j.value); } else { if (ty.area == true) { t['text'] = btoa(HtmlEncode(j.value)); } else { t['text'] = j.value; } } return t; }).filter(function (cj) { if (cj.follow === true) { return cj } }); objectForm.validasiForm.forEach(function (t) { let ty = objectForm.data.cond(t, 'name')[0]; if (ty.type == 'radio') { if (_getval(t) === '') { Swal('Warning', (function cj(x) { if (x.querySelector('label') != undefined) { return x.querySelector('label').innerHTML } else { return cj(x.parentNode); } })(globalThis.kodesp.parent.parentNode) + ' Tidak Boleh Kosong'); throw 'stop action' } } else { if (_id(objectForm.idform).querySelector(`.form-d[name=${t}]`).value === '') { Swal('Warning', (function cj(x) { if (x.querySelector('label') != undefined) { return x.querySelector('label').innerHTML } else { return cj(x.parentNode); } })(_id(objectForm.idform).querySelector(`.form-d[name=${t}]`).parentNode) + ' Tidak Boleh Kosong', 'warning'); throw 'Tidak Boleh Kosong'; } } }); if (globalThis._validasi != undefined) { globalThis._validasi(); } let insert = `INSERT INTO ${objectForm.table} (${gt.map(function (n) { return n.name }).join(',')}) values (${gt.map(function (cj) { return `"${cj.text.replace(/\"/g, "\\\"")}"`; })})`; if (objectForm.debug != undefined) { if (objectForm.debug == true) { } } console.log(insert); let validKode = ''; if (objectForm.validasiKode != undefined && Array.isArray(objectForm.validasiKode)){ validKode += " AND "+objectForm.validasiKode.map(function(v){ return ` ${v} = "${window._getval(v).replace(/\"/g,"\\\"")}" `; }).join(" AND "); }; let cek = `SELECT * FROM ${objectForm.table} WHERE ${objectForm.kode} = '${globalThis[objectForm.kode].parent.value}' ${validKode} `; AuditDevQuery(cek, function (r) { if (r.length == 0) { AuditDevQuery(insert+(objectForm.custQuery ? '[;]'+objectForm.custQuery:''), function () { $("#modala").modal('toggle') swal("Success", "Data telah ditambahkan", "success"); if (globalThis._loadCust != undefined) { // globalThis._loadCust(); _load(); } else { if(objectForm.serverSide === true){ table.ajax.reload(); }else{ _load(); } } if (globalThis._insert != undefined) { globalThis._insert() } }) } else { Swal('Warning', 'kode sudah digunakan', 'warning'); } }) } else { let gt = Array.from(document.querySelectorAll('.form-d')).map(function (j) { let t = {}; let ty = objectForm.data.cond(j.name, 'name')[0]; if (ty.unfollow != undefined) { t['follow'] = false; } else { t['follow'] = true; } t['title'] = (function cj(x) { if (x.querySelector('label') != undefined) { return x.querySelector('label').innerHTML } else { return cj(x.parentNode); } })(j.parentNode); t['name'] = j.name; if (ty.type == 'number') { t['text'] = j.value.number().toString(); } else if(ty.type == 'select'){ t['text'] = _getval(j.name); } else if (ty.type == 'date') { t['text'] = (function (s) { let [tgl, bulan, tahun] = s.split("-"); return tahun + '-' + bulan + '-' + tgl; })(j.value); } else { if (ty.area == true) { t['text'] = btoa(HtmlEncode(j.value)); } else { t['text'] = j.value; } } return t; }).filter(function (cj) { if (cj.follow === true) { return cj } }); objectForm.validasiForm.forEach(function (t) { let ty = objectForm.data.cond(t, 'name')[0]; if (ty.type == 'radio') { if (_getval(t) === '') { Swal('Warning', (function cj(x) { if (x.querySelector('label') != undefined) { return x.querySelector('label').innerHTML } else { return cj(x.parentNode); } })(globalThis.kodesp.parent.parentNode) + ' Tidak Boleh Kosong'); throw 'stop action' } } else { if (_id(objectForm.idform).querySelector(`.form-d[name=${t}]`).value === '') { Swal('Warning', (function cj(x) { if (x.querySelector('label') != undefined) { return x.querySelector('label').innerHTML } else { return cj(x.parentNode); } })(_id(objectForm.idform).querySelector(`.form-d[name=${t}]`).parentNode) + ' Tidak Boleh Kosong', 'warning'); throw ' Tidak Boleh Kosong'; } } }); if (globalThis._validasi != undefined) { globalThis._validasi(); } let kode = _id(objectForm.kode).value; if (window.dataSelect != undefined && typeof window.dataSelect === 'object'){ if (window.dataSelect[objectForm.kode] != undefined){ kode = window.dataSelect[objectForm.kode]; } } if (window._w === 'u'){ kode = updateKode; } if(objectForm.cekData === true){ throw 'stop action' } let update = `UPDATE ${objectForm.table} SET ${gt.map(function (df) { return ` ${df.name} = "${df.text.replace(/\"/g, '\\\"')}" ` }).join(',')} WHERE ${objectForm.kode} = '${kode}'`; let y = cssLoader() AuditDevQuery(update+(objectForm.custQuery ? '[;]'+objectForm.custQuery:''), function () { y.remove(); if (globalThis._update != undefined) { globalThis._update() } $("#modala").modal('toggle') if (objectForm.serverSide === true) { table.ajax.reload(); } else { _load(); } }); } }); window._InputLine = function (kode, type, name, element) { let last = element.innerHTML; element.innerHTML = ''; let sx = div().html(last).get().children[0].querySelector('[data-action-table]').dataset; let f = null; f = el('input'); f.css({ padding: '5px 10px' }); f.name(sx.name) f.data('name', sx.name) f.class('open-form-man') f.css('width', '100%') f.css('min-width', '120px') f.data('kode', sx.actionTable) f.val(div().html(last).get().querySelector('.data-show').innerText) f.addModule('elm', element); f.addModule('last', last); f.load(function (eh) { table.draw('false'); eh.el.focus(); setTimeout(function () { document.querySelector(".dataTables_scrollBody").scrollLeft = 0; scrollIntoViewWithOffset(eh.el, 90); }, 100) if (window.mobileCheck() === false) { eh.el.addEventListener('keypress', function (e) { if (e.key === 'Enter') { let val = e.target.value; let name = e.target.name; e.target.elm.innerHTML = ''; let n = div().html(e.target.last).get().children[0]; n.id = 'tooltip' + Date.now(); n.querySelector('.data-show').innerText = val; e.target.elm.appendChild( n ); table.draw('false'); let data = n.querySelector('[data-action-table]'); data = data.dataset; data.kode = data.actionTable; AuditDevQuery(` UPDATE ${objectForm.table} SET ${name} = "${val.replace(/\"/g, "\\\"")}" WHERE ${objectForm.kode} = "${data.kode.replace(/\"/g, "\\\"") }" `, function(){ toastr.success('your data success update.', 'Update Success', { timeOut: 800 }) }); if (data.next != undefined) { let fd = _getElement('.open-form-man') .findData('kode', data.kode) .findData('name', data.next) .focus() } } }); } else { eh.el.addEventListener('focusout', function (e) { let val = e.target.value; e.target.elm.innerHTML = ''; let n = div().html(e.target.last).get().children[0]; n.id = 'tooltip' + Date.now(); n.querySelector('.data-show').innerText = val; e.target.elm.appendChild( n ); table.draw('false'); let data = n.querySelector('[data-action-table]'); data = data.dataset; data.kode = data.actionTable; if (data.next != undefined) { let fd = _getElement('.open-form-man') .findData('kode', data.kode) .findData('name', data.next) .focus() } }, false) } }); element.appendChild( f.get() ); Array.from(document.querySelectorAll('.ui-tooltip')).forEach(function (e) { e.remove(); }) } document.body.addEventListener('click', function (e) { if (e.target.tagName === 'DIV' && e.target.getAttribute('data-action-table') != undefined) { let d = e.target.dataset let h = e.target.parentNode.parentNode let type = d.type; let name = d.name; let actionTable = d.actionTable; _InputLine(actionTable, type, name, h); } if (e.target.getAttribute('data-act-btn') != undefined) { let kode = e.target.getAttribute('data-kode'); if (window.$_actButtonEdit != undefined) { window.$_actButtonEdit(e.target.dataset); }; } }, false); }