datatable with livedata
This commit is contained in:
+59
-1
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user