var filterBy = function(tableType) {
$.fn.dataTableExt.afnFiltering.length = 0;
$.fn.dataTable.ext.search.push(
function( settings, data, dataIndex ) {
var type = data[data.length - 2]; // use data for the Type column, which is the second to last
if ( type == tableType || tableType=='All' )
{
return true;
}
return false;
}
);
}
$(document).ready(function() {
var activeObject;
var table = $('#database_objects').DataTable( {
lengthChange: false,
paging: config.pagination,
pageLength: 50,
order: [[ 0, "asc" ]],
buttons: [
{
text: 'All',
action: function ( e, dt, node, config ) {
filterBy('All');
if (activeObject != null) {
activeObject.active(false);
}
table.draw();
}
},
{
text: 'Tables',
action: function ( e, dt, node, config ) {
filterBy('Table');
if (activeObject != null) {
activeObject.active(false);
}
this.active( !this.active() );
activeObject = this;
table.draw();
}
},
{
text: 'Views',
action: function ( e, dt, node, config ) {
filterBy('View');
if (activeObject != null) {
activeObject.active(false);
}
this.active( !this.active() );
activeObject = this;
table.draw();
}
},
{
extend: 'columnsToggle',
columns: '.toggle'
}
]
} );
//schemaSpy.js
dataTableExportButtons(table);
} );