219 lines
6.1 KiB
JavaScript
Executable File
219 lines
6.1 KiB
JavaScript
Executable File
/*=========================================================================================
|
|
File Name: datatables-fixedcolumn.js
|
|
Description: fixed columns Datatable
|
|
----------------------------------------------------------------------------------------
|
|
Item Name: Modern Admin - Clean Bootstrap 4 Dashboard HTML Template
|
|
Version: 1.0
|
|
Author: PIXINVENT
|
|
Author URL: http://www.themeforest.net/user/pixinvent
|
|
==========================================================================================*/
|
|
|
|
$(document).ready(function() {
|
|
|
|
/************************************
|
|
* Basic initialisation *
|
|
************************************/
|
|
|
|
$('.dataex-basic-initialisation').DataTable({
|
|
scrollY: 300,
|
|
scrollX: true,
|
|
scrollCollapse: true,
|
|
paging: false,
|
|
fixedColumns: true
|
|
});
|
|
|
|
/********************************************
|
|
* Left and right fixed columns *
|
|
********************************************/
|
|
|
|
var tableLeftRight = $('.dataex-lr-fixedcolumns').DataTable({
|
|
scrollY: "300px",
|
|
scrollX: true,
|
|
scrollCollapse: true,
|
|
paging: false,
|
|
fixedColumns: {
|
|
leftColumns: 1,
|
|
rightColumns: 1
|
|
}
|
|
});
|
|
|
|
/**************************************
|
|
* Multiple fixed columns *
|
|
**************************************/
|
|
|
|
var tableMultipleFixed = $('.dataex-multiple-fixed').DataTable({
|
|
scrollY: "300px",
|
|
scrollX: true,
|
|
scrollCollapse: true,
|
|
paging: false,
|
|
fixedColumns: {
|
|
leftColumns: 2
|
|
}
|
|
});
|
|
|
|
/*********************************
|
|
* Right column only *
|
|
*********************************/
|
|
|
|
var tableRightColumn = $('.dataex-right-column').DataTable({
|
|
scrollY: "300px",
|
|
scrollX: true,
|
|
scrollCollapse: true,
|
|
paging: false,
|
|
fixedColumns: {
|
|
leftColumns: 0,
|
|
rightColumns: 1
|
|
}
|
|
});
|
|
|
|
/*********************************************
|
|
* Column visibility integration *
|
|
*********************************************/
|
|
|
|
var tableVisibility = $('.dataex-column-visibility').DataTable({
|
|
dom: "Bfrtip",
|
|
scrollY: "300px",
|
|
scrollX: true,
|
|
scrollCollapse: true,
|
|
paging: false,
|
|
buttons: ['colvis'],
|
|
fixedColumns: {
|
|
leftColumns: 2
|
|
}
|
|
});
|
|
|
|
/******************************
|
|
* CSS row sizing *
|
|
******************************/
|
|
|
|
var tableCssRow = $('.dataex-css-row').DataTable({
|
|
scrollY: "300px",
|
|
scrollX: true,
|
|
scrollCollapse: true,
|
|
paging: false,
|
|
fixedColumns: {
|
|
heightMatch: 'none'
|
|
}
|
|
});
|
|
|
|
/*************************************
|
|
* Assigned column width *
|
|
*************************************/
|
|
|
|
var tableColumnWidth = $('.dataex-column-width').removeAttr('width').DataTable({
|
|
scrollY: "300px",
|
|
scrollX: true,
|
|
scrollCollapse: true,
|
|
paging: false,
|
|
columnDefs: [
|
|
{ width: 200, targets: 0 }
|
|
],
|
|
fixedColumns: true
|
|
});
|
|
|
|
/****************************
|
|
* Index column *
|
|
****************************/
|
|
|
|
var tableTndex = $('.dataex-index-column').DataTable({
|
|
scrollY: "300px",
|
|
scrollX: true,
|
|
scrollCollapse: true,
|
|
paging: false,
|
|
columnDefs: [{
|
|
sortable: false,
|
|
"class": "index",
|
|
targets: 0
|
|
}],
|
|
order: [
|
|
[1, 'asc']
|
|
],
|
|
fixedColumns: true
|
|
});
|
|
|
|
tableTndex.on('order.dt search.dt', function() {
|
|
tableTndex.column(0, { search: 'applied', order: 'applied' }).nodes().each(function(cell, i) {
|
|
cell.innerHTML = i + 1;
|
|
});
|
|
}).draw();
|
|
|
|
/**********************************
|
|
* Select - whole row *
|
|
**********************************/
|
|
|
|
$('.dataex-Select-row').DataTable({
|
|
scrollY: 300,
|
|
scrollX: true,
|
|
scrollCollapse: true,
|
|
paging: false,
|
|
fixedColumns: true,
|
|
select: true
|
|
});
|
|
|
|
/***********************************
|
|
* Select - checkboxes *
|
|
***********************************/
|
|
|
|
$('.dataex-checkboxes').DataTable({
|
|
scrollY: 300,
|
|
scrollX: true,
|
|
scrollCollapse: true,
|
|
paging: false,
|
|
fixedColumns: true,
|
|
columnDefs: [{
|
|
orderable: false,
|
|
className: 'select-checkbox',
|
|
targets: 0
|
|
}],
|
|
select: {
|
|
style: 'os',
|
|
selector: 'td:first-child'
|
|
},
|
|
order: [
|
|
[1, 'asc']
|
|
]
|
|
});
|
|
|
|
/*******************************
|
|
* Complex headers *
|
|
*******************************/
|
|
|
|
var tableComplexHeaders = $('.dataex-complex-headers').DataTable({
|
|
scrollY: "300px",
|
|
scrollX: true,
|
|
scrollCollapse: true,
|
|
paging: false,
|
|
fixedColumns: true
|
|
});
|
|
|
|
/*******************************************
|
|
* Individual column filtering *
|
|
*******************************************/
|
|
|
|
// Setup - add a text input to each footer cell
|
|
$('.dataex-individual-filtering tfoot th').each(function(i) {
|
|
var title = $('.dataex-individual-filtering thead th').eq($(this).index()).text();
|
|
$(this).html('<input type="text" placeholder="Search ' + title + '" data-index="' + i + '" />');
|
|
});
|
|
|
|
// DataTable
|
|
var tableIndividualFiltering = $('.dataex-individual-filtering').DataTable({
|
|
scrollY: "300px",
|
|
scrollX: true,
|
|
scrollCollapse: true,
|
|
paging: false,
|
|
fixedColumns: true
|
|
});
|
|
|
|
// Filter event handler
|
|
$(tableIndividualFiltering.table().container()).on('keyup', 'tfoot input', function() {
|
|
tableIndividualFiltering
|
|
.column($(this).data('index'))
|
|
.search(this.value)
|
|
.draw();
|
|
});
|
|
// Fixed right column overflow -y scroll issue
|
|
$('.DTFC_RightBodyLiner').css('overflow-y', 'hidden');
|
|
|
|
});
|