You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
209 lines
5.8 KiB
209 lines
5.8 KiB
/*************************************************************************************/ |
|
// -->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( |
|
'<tr class="group"><td colspan="5">' + group + "</td></tr>" |
|
); |
|
|
|
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("<b>Custom tool bar! Text/images etc.</b>"); |
|
|
|
//=============================================// |
|
// 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"); |
|
} |
|
}, |
|
});
|
|
|