| var filterBy = function(tableType) { |
| $.fn.dataTableExt.afnFiltering.length = 0; |
| $.fn.dataTable.ext.search.push( |
| function( settings, data, dataIndex ) { |
| var type = data[1]; // use data for the Type column |
| |
| if ( type == tableType || tableType=='All' ) |
| { |
| return true; |
| } |
| return false; |
| } |
| ); |
| } |
| |
| $(document).ready(function() { |
| var activeObject; |
| var table = $('#column_table').DataTable( { |
| deferRender: true, |
| data: tableData, |
| columns: [ |
| { data: "tableName" }, |
| { data: "tableType" }, |
| { data: "name" }, |
| { data: "type" }, |
| { data: "length" }, |
| { data: "nullable" }, |
| { data: "autoUpdated" }, |
| { data: "defaultValue" }, |
| { data: "comments" } |
| ], |
| columnDefs: [ |
| { |
| targets: 0, |
| render: function ( data, type, row, meta ) { |
| return '<a href="tables/'+data+'.html" target="_top">'+data+'</a>'; |
| } |
| }, |
| { |
| targets: 2, |
| createdCell: function(td, cellData, rowData, row, col) { |
| if (rowData.keyTitle.length > 0) { |
| $(td).prop('title', rowData.keyTitle); |
| } |
| if (rowData.keyClass.length > 0) { |
| $(td).addClass(rowData.keyClass); |
| } |
| } |
| }, |
| { |
| targets: 5, |
| createdCell: function(td, cellData, rowData, row, col) { |
| if (cellData == '√') { |
| $(td).prop('title', "nullable"); |
| } |
| } |
| }, |
| { |
| targets: 6, |
| createdCell: function(td, cellData, rowData, row, col) { |
| if (cellData == '√') { |
| $(td).prop('title', "Automatically updated by the database"); |
| } |
| } |
| } |
| ], |
| lengthChange: false, |
| paging: config.pagination, |
| pageLength: 50, |
| autoWidth: true, |
| order: [[ 2, "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); |
| } ); |