/*************************************************************************************/ // -->Template Name: Bootstrap Press Admin // -->Author: Themedesigner // -->Email: niravjoshi87@gmail.com // -->File: datatable_api_init /*************************************************************************************/ //==================================================// // Add row // //==================================================// var t = $('#t_add_row').DataTable(); var counter = 1; $('#addRow').on('click', function() { t.row.add([ counter + '.1', counter + '.2', counter + '.3', counter + '.4', counter + '.5' ]).draw(false); counter++; }); // Automatically add a first row of data $('#addRow').click(); //==================================================// // Individual column searching (select inputs) // //==================================================// $('.datatable-select-inputs').DataTable({ initComplete: function() { this.api().columns().every(function() { var column = this; var select = $('') .appendTo($(column.footer()).empty()) .on('change', function() { var val = $.fn.dataTable.util.escapeRegex( $(this).val() ); column .search(val ? '^' + val + '$' : '', true, false) .draw(); }); column.data().unique().sort().each(function(d, j) { select.append(''); }); }); } }); //==================================================// // Individual column searching (text inputs) // //==================================================// // Setup - add a text input to each footer cell $('.text-inputs-searching tfoot th').each(function() { var title = $(this).text(); $(this).html(''); }); // DataTable var tableSearching = $('.text-inputs-searching').DataTable(); // Apply the search tableSearching.columns().every(function() { var that = this; $('input', this.footer()).on('keyup change', function() { if (that.search() !== this.value) { that .search(this.value) .draw(); } }); }); //==================================================// // Child rows (show extra / detailed information) // //==================================================// /* Formatting function for row details - modify as you need */ function format(d) { // `d` is the original data object for the row return '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '
Full name:' + d.name + '
Extension number:' + d.extn + '
Extra info:And any further details here (images etc)...
'; } //=============================================// // -- Child rows //=============================================// var tableChildRows = $('.show-child-rows').DataTable({ "ajax": "dist/js/pages/datatable/data.json", "columns": [{ "className": 'details-control', "orderable": false, "data": null, "defaultContent": '' }, { "data": "name" }, { "data": "position" }, { "data": "office" }, { "data": "salary" } ], "order": [ [1, 'asc'] ] }); //=============================================// // Add event listener for opening and closing details //=============================================// $('.show-child-rows tbody').on('click', 'td.details-control', function() { var tr = $(this).closest('tr'); var row = tableChildRows.row(tr); if (row.child.isShown()) { // This row is already open - close it row.child.hide(); tr.removeClass('shown'); } else { // Open this row row.child(format(row.data())).show(); tr.addClass('shown'); } }); //==================================================// // Row selection (multiple rows) // //==================================================// var table1 = $('#row_select').DataTable(); $('#row_select tbody').on('click', 'tr', function() { $(this).toggleClass('selected'); }); $('#button').click(function() { alert(table1.rows('.selected').data().length + ' row(s) selected'); }); //==================================================// // Form Inputs // //==================================================// var table2 = $('#form_inputs').DataTable(); $('.inputs-submit').click(function() { var data = table2.$('input, select').serialize(); alert( "The following data would have been submitted to the server: \n\n" + data.substr(0, 120) + '...' ); return false; }); //==================================================// // Row selection and deletion (single row) // //==================================================// var table3 = $('#sing_row_del').DataTable(); $('#sing_row_del tbody').on('click', 'tr', function() { if ($(this).hasClass('selected')) { $(this).removeClass('selected'); } else { table3.$('tr.selected').removeClass('selected'); $(this).addClass('selected'); } }); $('#delete-row').click(function() { table3.row('.selected').remove().draw(false); });