/*************************************************************************************/ // -->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'); } } });