datatable with livedata

This commit is contained in:
2023-10-16 17:19:15 +07:00
parent a6ce730088
commit 9bea66a705
2 changed files with 181 additions and 126 deletions
+59 -1
View File
@@ -4,7 +4,7 @@
Desc. : JS - Fonia Custom Class v3
Created By : Siau Pheng ([email protected]).
Created Date : June 19th, 2009.
Last Modified : July 6th, 2023.
Last Modified : October 16th, 2023.
(c) 2009 - 2023, 3FONIA Software; WWW.3FONIA.COM.
@@ -850,6 +850,61 @@ Request.JSONF = function(options){//oke
$(divData).append(strTab + strHead + strBody + strFoot + '</table>');
var opsi = { responsive: true, columnDefs: [{responsivePriority:1,targets:0},{responsivePriority:2,targets:1}], lengthMenu: [], dom: '<"row"<"col-sm-12"tr>><"row"<"col-sm-12 col-lg-auto"<"toolbar">><"col-sm-3 col-lg-auto ms-lg-auto"l><"col-sm-9 col-lg-auto"p>>', autoWidth: false, processing: true, searching: false, columns: aSortCol, order: [[iCol, (ini.config.sort_dir=='A'?'asc':'desc')]], pageLength: ini.config.row_count, stateSave: true, stateSaveCallback: function(sett,data){localStorage.setItem(ini.id,JSON.stringify(data));}, stateLoadCallback: function(sett){try{return JSON.parse(localStorage.getItem(ini.id));}catch(e){}} };
/*****/
if (ini.config.live){
var post_data = {};
$(vars.data).map(function(key, item){
var keyval = item.split("=");
return post_data[keyval[0]] = keyval[1];
});
opsi.serverSide = true;
opsi.ajax = {
url: vars.url,
type: 'POST',
data: post_data,
dataFilter: function(data){
var json = jQuery.parseJSON(data), jsono = {};
jsono.draw = json[0].draw;
jsono.recordsTotal = json[0].recordsTotal;
jsono.recordsFiltered = json[0].recordsFiltered;
jsono.data = json[0].data;
$.each(jsono.data, function(key, val){
//strBody += '<tr'+(val[0].rowcss?' class="'+val[0].rowcss+'"':'')+'>';
/*$.each(val, function(keyi, vali){
if (keyi == 0) return;
var _title = (ini.header[(keyi-1)].f.indexOf('awr') >= 0) ? ' title="' + vali.replace(/<br\s*[\/]?>/gi,'\n').replace(/(<([^>]+)>)/gi,'') + '"' : '';
});*/
// belum bisa css row/tr
// belum bisa title u/ awr class
var optval = val[0]; jsono.data[key].shift();
if (ini.option.length > 0) {
var _tbtn1 = "", _tbtn2 = "";
if (optval.button.length > 0) {
$.each(optval.button, function(keyb, valb){
var _icon = (valb[0]=='fon-tabel-dt') ? 'pencil' : valb[0];
var _cssa = (valb[1]=='') ? '' : ' text-'+valb[1];
var _cssb = (valb[1]=='') ? ' normal' : ' btn-'+valb[1];
if (ini.config.txtbutton === true) {
_tbtn1 += '<button class="btn tbl-rowbtn d-none d-lg-inline-block '+valb[0]+_cssb+' me-2" type="button">'+aTombol[valb[0]]+'</button>';
_tbtn2 += '<a class="table-icon d-lg-none '+valb[0]+_cssa+'" tabindex="-1" title="'+aTombol[valb[0]]+'"><i class="icon cui-'+_icon+'"></i></a>';
} else {
_tbtn2 += '<a class="table-icon '+valb[0]+_cssa+'" title="'+aTombol[valb[0]]+'"><i class="icon cui-'+_icon+'"></i></a>';
}
})
}
if (optval.checkbox) {
_tbtn1 += '<div><input class="form-check-input" type="checkbox" id="_cbox_'+optval.checkbox.field+'" value="'+optval.checkbox.value+'"></div>';
}
jsono.data[key].push(_tbtn1+_tbtn2);
}
});
return JSON.stringify(jsono);
}
};
}
/******/
if (ini.option.length > 0) opsi.columnDefs.push({responsivePriority:3,targets:-1}, {orderable:false,targets:-1});
if (ini.navi.func_navi == '') opsi.paging = false;
var _lmenu = [];
@@ -886,6 +941,9 @@ Request.JSONF = function(options){//oke
if (ini.navi.button) $('#'+ini.id+'Tabel_wrapper div.toolbar').html(_navibar);
}
opsi.drawCallback = function(settings){
/*var api = this.api();
console.log( api.rows( {page:'current'} ).data() );
console.log( settings );*/
}
var otabel = $('#'+ini.id+'Tabel').DataTable(opsi);