/*************************************************************************************/
// -->Template Name: Bootstrap Press Admin
// -->Author: Themedesigner
// -->Email: niravjoshi87@gmail.com
// -->File: datatable_advanced_init
/*************************************************************************************/
//=============================================//
// File export //
//=============================================//
$('#file_export').DataTable({
dom: 'Bfrtip',
buttons: [
'copy', 'csv', 'excel', 'pdf', 'print'
]
});
$('.buttons-copy, .buttons-csv, .buttons-print, .buttons-pdf, .buttons-excel').addClass('btn btn-primary mr-1');
//==================================================//
// Show / hide columns dynamically //
//==================================================//
var table = $('#show_hide_col').DataTable({
"scrollY": "200px",
"paging": false
});
$('a.toggle-vis').on('click', function(e) {
e.preventDefault();
// Get the column API object
/*var column = table.column($(this).attr('data-column'));*/
var column = $('#show_hide_col').dataTable().api().column($(this).attr('data-column'));
// Toggle the visibility
column.visible(!column.visible());
});
//=============================================//
// Column rendering //
//=============================================//
$('#col_render').DataTable({
"columnDefs": [{
// The `data` parameter refers to the data for the cell (defined by the
// `data` option, which defaults to the column being worked with, in
// this case `data: 0`.
"render": function(data, type, row) {
return data + ' (' + row[3] + ')';
},
"targets": 0
},
{ "visible": false, "targets": [3] }
]
});
//=============================================//
// Row grouping //
//=============================================//
var table = $('#row_group').DataTable({
"pageLength": 10,
"columnDefs": [
{ "visible": false, "targets": 2 }
],
"order": [
[2, 'asc']
],
"displayLength": 25,
"drawCallback": function(settings) {
var api = this.api();
var rows = api.rows({ page: 'current' }).nodes();
var last = null;
api.column(2, { page: 'current' }).data().each(function(group, i) {
if (last !== group) {
$(rows).eq(i).before(
'
' + group + ' |
'
);
last = group;
}
});
}
});
//=============================================//
// Order by the grouping
//=============================================//
$('#row_group tbody').on('click', 'tr.group', function() {
var currentOrder = table.order()[0];
if (currentOrder[0] === 2 && currentOrder[1] === 'asc') {
table.order([2, 'desc']).draw();
} else {
table.order([2, 'asc']).draw();
}
});
//=============================================//
// Multiple table control element //
//=============================================//
$('#multi_control').DataTable({
"dom": '<"top"iflp<"clear">>rt<"bottom"iflp<"clear">>'
});
//=============================================//
// DOM/jquery events //
//=============================================//
var table = $('#dom_jq_event').DataTable();
$('#dom_jq_event tbody').on('click', 'tr', function() {
var data = table.row(this).data();
alert('You clicked on ' + data[0] + '\'s row');
});
//=============================================//
// Language File //
//=============================================//
$('#lang_file').DataTable({
"language": {
"url": "dist/js/pages/datatable/German.json"
}
});
//=============================================//
// Complex headers with column visibility //
//=============================================//
$('#complex_head_col').DataTable({
"columnDefs": [{
"visible": false,
"targets": -1
}]
});
//=============================================//
// Setting defaults //
//=============================================//
var defaults = {
"searching": false,
"ordering": false
};
$('#setting_defaults').dataTable($.extend(true, {}, defaults, {}));
//=============================================//
// Footer callback //
//=============================================//
$('#footer_callback').DataTable({
"footerCallback": function(row, data, start, end, display) {
var api = this.api(),
data;
// Remove the formatting to get integer data for summation
var intVal = function(i) {
return typeof i === 'string' ?
i.replace(/[\$,]/g, '') * 1 :
typeof i === 'number' ?
i : 0;
};
// Total over all pages
total = api
.column(4)
.data()
.reduce(function(a, b) {
return intVal(a) + intVal(b);
}, 0);
// Total over this page
pageTotal = api
.column(4, { page: 'current' })
.data()
.reduce(function(a, b) {
return intVal(a) + intVal(b);
}, 0);
// Update footer
$(api.column(4).footer()).html(
'$' + pageTotal + ' ( $' + total + ' total)'
);
}
});
//=============================================//
// Custom toolbar elements //
//=============================================//
$('#custom_tool_ele').DataTable({
"dom": '<"toolbar">frtip'
});
$("div.toolbar").html('Custom tool bar! Text/images etc.');
//=============================================//
// Row created callback //
//=============================================//
$('#row_create_call').DataTable({
"createdRow": function(row, data, index) {
if (data[5].replace(/[\$,]/g, '') * 1 > 150000) {
$('td', row).eq(5).addClass('highlight');
}
}
});