datatable - rowcss / pageoption / title for long text. mysql auto free connection

This commit is contained in:
2023-10-19 14:04:55 +07:00
parent 6a8c3097ce
commit cdba0a887e
3 changed files with 37 additions and 45 deletions
+31 -38
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 : October 16th, 2023.
Last Modified : October 19th, 2023.
(c) 2009 - 2023, 3FONIA Software; WWW.3FONIA.COM.
@@ -817,14 +817,16 @@ Request.JSONF = function(options){//oke
var strBody = '<tbody>';
$.each(ini.content, function(key, val){
strBody += '<tr'+(val[0].rowcss?' class="'+val[0].rowcss+'"':'')+'>';
strBody += '<tr>';
$.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,'') + '"' : '';
strBody += '<td'+_title+'>' + vali + '</td>';
strBody += '<td>' + vali + '</td>';
});
if (ini.option.length > 0) {
var _tbtn1 = "", _tbtn2 = "";
if (val[0].rowcss) {
_tbtn1 += '<span class="rowcss '+val[0].rowcss+'"></span>';
}
if (val[0].button.length > 0) {
$.each(val[0].button, function(keyb, valb){
var _icon = (valb[0]=='fon-tabel-dt') ? 'pencil' : valb[0];
@@ -842,7 +844,6 @@ Request.JSONF = function(options){//oke
_tbtn1 += '<div><input class="form-check-input" type="checkbox" id="_cbox_'+val[0].checkbox.field+'" value="'+val[0].checkbox.value+'"></div>';
}
strBody += '<td class="">'+_tbtn1+_tbtn2+'</td>';
//strBody += '<td class="d-lg-flex justify-content-lg-center">'+_tbtn1+_tbtn2+'</td>';
}
strBody += '</tr>';
});
@@ -866,19 +867,6 @@ Request.JSONF = function(options){//oke
dataType: 'json',
cache: false,
data: post_data,
/*success: function(){
var _lmenu = [];
$.each([10,25,50], function(key, val){
if (val > ini.content.length) return false;
_lmenu.push(val);
});
if (10 > ini.content.length){
opsi.lengthMenu.push([10],[10]);
}else{
_lmenu.push(-1), opsi.lengthMenu.push(_lmenu), _lmenu.pop();
_lmenu.push(ini.content.length), opsi.lengthMenu.push(_lmenu);
}
},*/
dataFilter: function(data){
var json = jQuery.parseJSON(data), jsono = {};
jsono.draw = json[0].draw;
@@ -887,16 +875,12 @@ Request.JSONF = function(options){//oke
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.rowcss) {
_tbtn1 += '<span class="rowcss '+optval.rowcss+'"></span>';
}
if (optval.button.length > 0) {
$.each(optval.button, function(keyb, valb){
var _icon = (valb[0]=='fon-tabel-dt') ? 'pencil' : valb[0];
@@ -924,17 +908,6 @@ Request.JSONF = function(options){//oke
/******/
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 = [];
$.each([10,25,50], function(key, val){
if (val > ini.content.length) return false;
_lmenu.push(val);
});
if (10 > ini.content.length){
opsi.lengthMenu.push([10],[10]);
}else{
_lmenu.push(-1), opsi.lengthMenu.push(_lmenu), _lmenu.pop();
_lmenu.push(ini.content.length), opsi.lengthMenu.push(_lmenu);
}
if (ini.config.scrollbar == true) {
opsi.scrollY = ini.config.scroll_height;
@@ -958,8 +931,28 @@ 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() );
$('#'+ini.id+'Tabel tbody td:last-child:has(span.rowcss)').each(function(){
var span = $(this).find('span').attr('class').replace('rowcss ','');
$(this).parent().addClass(span);
});
$('#'+ini.id+'Tabel tbody td.awr').each(function(){
$(this).attr('title', $(this).html().replace(/<br\s*[\/]?>/gi,'\n').replace(/(<([^>]+)>)/gi,''));
});
var api = this.api(), menudiv = $('select[name="divDetailTabel_length"]');
var record = api.page.info().recordsTotal ?? 0, _lmenu = [];
$.each([10,25,50], function(key, val){
if (val > record && 10 < val) return false;
_lmenu.push(val);
});
if (10 < record && $.inArray(record, [25,50]) == -1){
_lmenu.push(record);
}
var _select = menudiv.val() ?? 10;
menudiv.empty();
$.each(_lmenu, function(key, val){
$('<option/>', {'value':val, 'text':val}).appendTo(menudiv);
});
menudiv.val(_select);
}
var otabel = $('#'+ini.id+'Tabel').DataTable(opsi);