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.
210 lines
5.8 KiB
210 lines
5.8 KiB
1 year ago
|
/*************************************************************************************/
|
||
|
// -->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");
|
||
|
}
|
||
|
},
|
||
|
});
|