var TableDatatablesManaged = function () { var initTable1 = function () { var table = $('#sample_1'); // begin first table table.dataTable({ // Internationalisation. For more info refer to http://datatables.net/manual/i18n "language": { "aria": { "sortAscending": ": activate to sort column ascending", "sortDescending": ": activate to sort column descending" }, "emptyTable": "No data available in table", "info": "Showing _START_ to _END_ of _TOTAL_ records", "infoEmpty": "No records found", "infoFiltered": "(filtered1 from _MAX_ total records)", "lengthMenu": "Show _MENU_", "search": "Search:", "zeroRecords": "No matching records found", "paginate": { "previous":"Prev", "next": "Next", "last": "Last", "first": "First" } }, // Or you can use remote translation file //"language": { // url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json' //}, // Uncomment below line("dom" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). // So when dropdowns used the scrollable div should be removed. //"dom": "<'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>", "bStateSave": true, // save datatable state(pagination, sort, etc) in cookie. "lengthMenu": [ [5, 15, 20, -1], [5, 15, 20, "All"] // change per page values here ], // set the initial value "pageLength": 5, "pagingType": "bootstrap_full_number", "columnDefs": [ { // set default column settings 'orderable': false, 'targets': [0] }, { "searchable": false, "targets": [0] }, { "className": "dt-right", //"targets": [2] } ], "order": [ [1, "asc"] ] // set first column as a default sort by asc }); var tableWrapper = jQuery('#sample_1_wrapper'); table.find('.group-checkable').change(function () { var set = jQuery(this).attr("data-set"); var checked = jQuery(this).is(":checked"); jQuery(set).each(function () { if (checked) { $(this).prop("checked", true); $(this).parents('tr').addClass("active"); } else { $(this).prop("checked", false); $(this).parents('tr').removeClass("active"); } }); }); table.on('change', 'tbody tr .checkboxes', function () { $(this).parents('tr').toggleClass("active"); }); } var initTable1_2 = function () { var table = $('#sample_1_2'); // begin first table table.dataTable({ // Internationalisation. For more info refer to http://datatables.net/manual/i18n "language": { "aria": { "sortAscending": ": activate to sort column ascending", "sortDescending": ": activate to sort column descending" }, "emptyTable": "No data available in table", "info": "Showing _START_ to _END_ of _TOTAL_ records", "infoEmpty": "No records found", "infoFiltered": "(filtered1 from _MAX_ total records)", "lengthMenu": "Show _MENU_", "search": "Search:", "zeroRecords": "No matching records found", "paginate": { "previous":"Prev", "next": "Next", "last": "Last", "first": "First" } }, // Or you can use remote translation file //"language": { // url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json' //}, // Uncomment below line("dom" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). // So when dropdowns used the scrollable div should be removed. //"dom": "<'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>", "bStateSave": false, // save datatable state(pagination, sort, etc) in cookie. "lengthMenu": [ [5, 15, 20, -1], [5, 15, 20, "All"] // change per page values here ], // set the initial value "pageLength": 5, "pagingType": "bootstrap_full_number", "columnDefs": [ { // set default column settings 'orderable': false, 'targets': [0] }, { "searchable": false, "targets": [0] }, { "className": "dt-right", //"targets": [2] } ], "order": [ [1, "asc"] ], // set first column as a default sort by asc initComplete: function () { // username column this.api().column(1).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( '' ) } ); }); } }); var tableWrapper = jQuery('#sample_1_2_wrapper'); table.find('.group-checkable').change(function () { var set = jQuery(this).attr("data-set"); var checked = jQuery(this).is(":checked"); jQuery(set).each(function () { if (checked) { $(this).prop("checked", true); $(this).parents('tr').addClass("active"); } else { $(this).prop("checked", false); $(this).parents('tr').removeClass("active"); } }); }); table.on('change', 'tbody tr .checkboxes', function () { $(this).parents('tr').toggleClass("active"); }); } var initTable2 = function () { var table = $('#sample_2'); table.dataTable({ // Internationalisation. For more info refer to http://datatables.net/manual/i18n "language": { "aria": { "sortAscending": ": activate to sort column ascending", "sortDescending": ": activate to sort column descending" }, "emptyTable": "No data available in table", "info": "Showing _START_ to _END_ of _TOTAL_ records", "infoEmpty": "No records found", "infoFiltered": "(filtered1 from _MAX_ total records)", "lengthMenu": "Show _MENU_", "search": "Search:", "zeroRecords": "No matching records found", "paginate": { "previous":"Prev", "next": "Next", "last": "Last", "first": "First" } }, // Uncomment below line("dom" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). // So when dropdowns used the scrollable div should be removed. //"dom": "<'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>", "bStateSave": true, // save datatable state(pagination, sort, etc) in cookie. "pagingType": "bootstrap_extended", "lengthMenu": [ [5, 15, 20, -1], [5, 15, 20, "All"] // change per page values here ], // set the initial value "pageLength": 5, "columnDefs": [{ // set default column settings 'orderable': false, 'targets': [0] }, { "searchable": false, "targets": [0] }], "order": [ [1, "asc"] ] // set first column as a default sort by asc }); var tableWrapper = jQuery('#sample_2_wrapper'); table.find('.group-checkable').change(function () { var set = jQuery(this).attr("data-set"); var checked = jQuery(this).is(":checked"); jQuery(set).each(function () { if (checked) { $(this).prop("checked", true); } else { $(this).prop("checked", false); } }); }); } var initTable3 = function () { var table = $('#sample_3'); // begin: third table table.dataTable({ // Internationalisation. For more info refer to http://datatables.net/manual/i18n "language": { "aria": { "sortAscending": ": activate to sort column ascending", "sortDescending": ": activate to sort column descending" }, "emptyTable": "No data available in table", "info": "Showing _START_ to _END_ of _TOTAL_ records", "infoEmpty": "No records found", "infoFiltered": "(filtered1 from _MAX_ total records)", "lengthMenu": "Show _MENU_", "search": "Search:", "zeroRecords": "No matching records found", "paginate": { "previous":"Prev", "next": "Next", "last": "Last", "first": "First" } }, // Uncomment below line("dom" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). // So when dropdowns used the scrollable div should be removed. //"dom": "<'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>", "bStateSave": true, // save datatable state(pagination, sort, etc) in cookie. "lengthMenu": [ [6, 15, 20, -1], [6, 15, 20, "All"] // change per page values here ], // set the initial value "pageLength": 6, "columnDefs": [{ // set default column settings 'orderable': false, 'targets': [0] }, { "searchable": false, "targets": [0] }], "order": [ [1, "asc"] ] // set first column as a default sort by asc }); var tableWrapper = jQuery('#sample_3_wrapper'); table.find('.group-checkable').change(function () { var set = jQuery(this).attr("data-set"); var checked = jQuery(this).is(":checked"); jQuery(set).each(function () { if (checked) { $(this).prop("checked", true); } else { $(this).prop("checked", false); } }); }); } var initTable4 = function () { var table = $('#sample_4'); // begin: third table table.dataTable({ // Internationalisation. For more info refer to http://datatables.net/manual/i18n "language": { "aria": { "sortAscending": ": activate to sort column ascending", "sortDescending": ": activate to sort column descending" }, "emptyTable": "No data available in table", "info": "Showing _START_ to _END_ of _TOTAL_ records", "infoEmpty": "No records found", "infoFiltered": "(filtered1 from _MAX_ total records)", "lengthMenu": "Show _MENU_", "search": "Search:", "zeroRecords": "No matching records found", "paginate": { "previous":"Prev", "next": "Next", "last": "Last", "first": "First" } }, // Uncomment below line("dom" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). // So when dropdowns used the scrollable div should be removed. //"dom": "<'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>", "bStateSave": true, // save datatable state(pagination, sort, etc) in cookie. "lengthMenu": [ [6, 15, 20, -1], [6, 15, 20, "All"] // change per page values here ], // set the initial value "pageLength": 6, "columnDefs": [{ // set default column settings 'orderable': false, 'targets': [0] }, { "searchable": false, "targets": [0] }], "order": [ [1, "asc"] ] // set first column as a default sort by asc }); var tableWrapper = jQuery('#sample_4_wrapper'); table.find('.group-checkable').change(function () { var set = jQuery(this).attr("data-set"); var checked = jQuery(this).is(":checked"); jQuery(set).each(function () { if (checked) { $(this).prop("checked", true); } else { $(this).prop("checked", false); } }); }); } var initTable5 = function () { var table = $('#sample_5'); // begin: third table table.dataTable({ // Internationalisation. For more info refer to http://datatables.net/manual/i18n "language": { "aria": { "sortAscending": ": activate to sort column ascending", "sortDescending": ": activate to sort column descending" }, "emptyTable": "No data available in table", "info": "Showing _START_ to _END_ of _TOTAL_ records", "infoEmpty": "No records found", "infoFiltered": "(filtered1 from _MAX_ total records)", "lengthMenu": "Show _MENU_", "search": "Search:", "zeroRecords": "No matching records found", "paginate": { "previous":"Prev", "next": "Next", "last": "Last", "first": "First" } }, "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( 3 ) .data() .reduce( function (a, b) { return intVal(a) + intVal(b); }, 0 ); // Total over this page pageTotal = api .column( 3, { page: 'current'} ) .data() .reduce( function (a, b) { return intVal(a) + intVal(b); }, 0 ); // Update footer $( api.column( 3 ).footer() ).html( '$'+pageTotal +' ( $'+ total +' total)' ); }, // Uncomment below line("dom" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). // So when dropdowns used the scrollable div should be removed. //"dom": "<'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>", "bStateSave": true, // save datatable state(pagination, sort, etc) in cookie. "lengthMenu": [ [6, 15, 20, -1], [6, 15, 20, "All"] // change per page values here ], // set the initial value "pageLength": 6, "columnDefs": [{ // set default column settings 'orderable': false, 'targets': [0] }, { "searchable": false, "targets": [0] }], "order": [ [1, "asc"] ] // set first column as a default sort by asc }); var tableWrapper = jQuery('#sample_5_wrapper'); table.find('.group-checkable').change(function () { var set = jQuery(this).attr("data-set"); var checked = jQuery(this).is(":checked"); jQuery(set).each(function () { if (checked) { $(this).prop("checked", true); } else { $(this).prop("checked", false); } }); }); } return { //main function to initiate the module init: function () { if (!jQuery().dataTable) { return; } initTable1(); initTable1_2(); initTable2(); initTable3(); initTable4(); initTable5(); } }; }(); if (App.isAngularJsApp() === false) { jQuery(document).ready(function() { TableDatatablesManaged.init(); }); }