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(`