| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689 |
- $(document).ready(function() {
- setTimeout(function(){
- // Plugin data table
- $.fn.dataTable.Api.register('column().data().sum()', function() {
- return this.reduce(function(a, b) {
- var x = parseFloat(a) || 0;
- var y = parseFloat(b) || 0;
- return x + y;
- });
- });
-
- /* Init the table and fire off a call to get the hidden nodes. */
-
- var table = $('#dt-plugin-method').DataTable();
-
- $('<button class="btn btn-primary m-b-20">sum of age in all rows</button>')
- .prependTo('.dt-plugin-buttons')
- .on('click', function() {
- alert('Column sum is: ' + table.column(3).data().sum());
- });
-
- $('<button class="btn btn-primary m-r-10 m-b-20">sum of age of visible rows</button>')
- .prependTo('.dt-plugin-buttons')
- .on('click', function() {
- alert('Column sum is: ' + table.column(3, { page: 'current' }).data().sum());
- });
-
-
- $.fn.dataTable.ext.type.detect.unshift(
- function(d) {
- return d === 'Low' || d === 'Medium' || d === 'High' ?
- 'salary-grade' :
- null;
- }
- );
-
- $.fn.dataTable.ext.type.order['salary-grade-pre'] = function(d) {
- switch (d) {
- case 'Low':
- return 1;
- case 'Medium':
- return 2;
- case 'High':
- return 3;
- }
- return 0;
- };
- $('#dt-ordering').DataTable();
-
- /* Custom filtering function which will search data in column four between two values */
- $.fn.dataTable.ext.search.push(
- function(settings, data, dataIndex) {
- var min = parseInt($('#min').val(), 10);
- var max = parseInt($('#max').val(), 10);
- var age = parseFloat(data[3]) || 0; // use data for the age column
-
- if ((isNaN(min) && isNaN(max)) ||
- (isNaN(min) && age <= max) ||
- (min <= age && isNaN(max)) ||
- (min <= age && age <= max)) {
- return true;
- }
- return false;
- }
- );
-
- var dtage = $('#dt-range').DataTable();
-
- // Event listener to the two range filtering inputs to redraw on input
- $('#min, #max').keyup(function() {
- dtage.draw();
- });
-
- /* Create an array with the values of all the input boxes in a column */
- $.fn.dataTable.ext.order['dom-text'] = function(settings, col) {
- return this.api().column(col, { order: 'index' }).nodes().map(function(td, i) {
- return $('input', td).val();
- });
- }
-
- /* Create an array with the values of all the input boxes in a column, parsed as numbers */
- $.fn.dataTable.ext.order['dom-text-numeric'] = function(settings, col) {
- return this.api().column(col, { order: 'index' }).nodes().map(function(td, i) {
- return $('input', td).val() * 1;
- });
- }
-
- /* Create an array with the values of all the select options in a column */
- $.fn.dataTable.ext.order['dom-select'] = function(settings, col) {
- return this.api().column(col, { order: 'index' }).nodes().map(function(td, i) {
- return $('select', td).val();
- });
- }
-
- /* Create an array with the values of all the checkboxes in a column */
- $.fn.dataTable.ext.order['dom-checkbox'] = function(settings, col) {
- return this.api().column(col, { order: 'index' }).nodes().map(function(td, i) {
- return $('input', td).prop('checked') ? '1' : '0';
- });
- }
-
- /* Initialise the table with the required column ordering data types */
- $(document).ready(function() {
- $('#dt-live-dom').DataTable({
- "columns": [
- null,
- { "orderDataType": "dom-text-numeric" },
- { "orderDataType": "dom-text", type: 'string' },
- { "orderDataType": "dom-select" }
- ]
- });
- });
-
-
-
-
- // Server side processing Data-table
- $('#dt-server-processing').DataTable({
- "processing": true,
- "serverSide": true,
- "ajax": "dt-json-data/scripts/server-processing.php",
- "columns": [
- { "data": "first_name" },
- { "data": "last_name" },
- { "data": "position" },
- { "data": "office" },
- { "data": "start_date" },
- { "data": "salary" }
- ]
- });
-
- $('#dt-http').DataTable({
- "processing": true,
- "serverSide": true,
- "ajax": {
- url: "dt-json-data/scripts/server-processing.php",
- data: function(d) {
- d.myKey = "myValue";
- // d.custom = $('#myInput').val();
- // etc
- }
- },
- "columns": [
- { "data": "first_name" },
- { "data": "last_name" },
- { "data": "position" },
- { "data": "office" },
- { "data": "start_date" },
- { "data": "salary" }
- ]
- });
-
- $('#dt-post').DataTable({
- "processing": true,
- "serverSide": true,
- "ajax": {
- url: "dt-json-data/scripts/post.php",
- type: "post"
- },
- "columns": [
- { "data": "first_name" },
- { "data": "last_name" },
- { "data": "position" },
- { "data": "office" },
- { "data": "start_date" },
- { "data": "salary" }
- ]
- });
-
- // Data-table ajax
- $('#dt-ajax-array').DataTable({
- "ajax": "dt-json-data/arrays.txt"
- });
- $('#dt-ajax-object').DataTable({
- "ajax": "dt-json-data/objects.txt",
- "columns": [
- { "data": "name" },
- { "data": "position" },
- { "data": "office" },
- { "data": "extn" },
- { "data": "start_date" },
- { "data": "salary" }
- ]
- });
- $('#dt-nested-object').DataTable({
- "processing": true,
- "ajax": "dt-json-data/objects_deep.txt",
- "columns": [
- { "data": "name" },
- { "data": "hr.position" },
- { "data": "contact.0" },
- { "data": "contact.1" },
- { "data": "hr.start_date" },
- { "data": "hr.salary" }
- ]
- });
- $('#dt-orthogonal').DataTable({
- ajax: "dt-json-data/orthogonal.txt",
- columns: [
- { data: "name" },
- { data: "position" },
- { data: "office" },
- { data: "extn" }, {
- data: {
- _: "start_date.display",
- sort: "start_date.timestamp"
- }
- },
- { data: "salary" }
- ]
- });
- var generatetable = $('#dt-generate-content').DataTable({
- "ajax": "dt-json-data/arrays.txt",
- "columnDefs": [{
- "targets": -1,
- "data": null,
- "defaultContent": "<button>Click!</button>"
- }]
- });
-
- $('#dt-generate-content tbody').on('click', 'button', function() {
- var data = generatetable.row($(this).parents('tr')).data();
- alert(data[0] + "'s salary is: " + data[5]);
- });
-
- $('#dt-render').DataTable({
- "ajax": "dt-json-data/arrays.txt",
- "deferRender": true
- });
- // Data source table js start
- $('#dom-table').DataTable();
- $('#ajax-table').DataTable({
- "ajax": 'dt-json-data/ajax-table.json'
- });
-
- // Jsource table start
- var dataSet = [
- ["Tiger Nixon", "System Architect", "Edinburgh", "5421", "2011/04/25", "$320,800"],
- ["Garrett Winters", "Accountant", "Tokyo", "8422", "2011/07/25", "$170,750"],
- ["Ashton Cox", "Junior Technical Author", "San Francisco", "1562", "2009/01/12", "$86,000"],
- ["Cedric Kelly", "Senior Javascript Developer", "Edinburgh", "6224", "2012/03/29", "$433,060"],
- ["Airi Satou", "Accountant", "Tokyo", "5407", "2008/11/28", "$162,700"],
- ["Brielle Williamson", "Integration Specialist", "New York", "4804", "2012/12/02", "$372,000"],
- ["Herrod Chandler", "Sales Assistant", "San Francisco", "9608", "2012/08/06", "$137,500"],
- ["Rhona Davidson", "Integration Specialist", "Tokyo", "6200", "2010/10/14", "$327,900"],
- ["Colleen Hurst", "Javascript Developer", "San Francisco", "2360", "2009/09/15", "$205,500"],
- ["Sonya Frost", "Software Engineer", "Edinburgh", "1667", "2008/12/13", "$103,600"],
- ["Jena Gaines", "Office Manager", "London", "3814", "2008/12/19", "$90,560"],
- ["Quinn Flynn", "Support Lead", "Edinburgh", "9497", "2013/03/03", "$342,000"],
- ["Charde Marshall", "Regional Director", "San Francisco", "6741", "2008/10/16", "$470,600"],
- ["Haley Kennedy", "Senior Marketing Designer", "London", "3597", "2012/12/18", "$313,500"],
- ["Tatyana Fitzpatrick", "Regional Director", "London", "1965", "2010/03/17", "$385,750"],
- ["Michael Silva", "Marketing Designer", "London", "1581", "2012/11/27", "$198,500"],
- ["Paul Byrd", "Chief Financial Officer (CFO)", "New York", "3059", "2010/06/09", "$725,000"],
- ["Gloria Little", "Systems Administrator", "New York", "1721", "2009/04/10", "$237,500"],
- ["Bradley Greer", "Software Engineer", "London", "2558", "2012/10/13", "$132,000"],
- ["Dai Rios", "Personnel Lead", "Edinburgh", "2290", "2012/09/26", "$217,500"],
- ["Jenette Caldwell", "Development Lead", "New York", "1937", "2011/09/03", "$345,000"],
- ["Yuri Berry", "Chief Marketing Officer (CMO)", "New York", "6154", "2009/06/25", "$675,000"],
- ["Caesar Vance", "Pre-Sales Support", "New York", "8330", "2011/12/12", "$106,450"],
- ["Doris Wilder", "Sales Assistant", "Sidney", "3023", "2010/09/20", "$85,600"],
- ["Angelica Ramos", "Chief Executive Officer (CEO)", "London", "5797", "2009/10/09", "$1,200,000"],
- ["Gavin Joyce", "Developer", "Edinburgh", "8822", "2010/12/22", "$92,575"],
- ["Jennifer Chang", "Regional Director", "Singapore", "9239", "2010/11/14", "$357,650"],
- ["Brenden Wagner", "Software Engineer", "San Francisco", "1314", "2011/06/07", "$206,850"],
- ["Fiona Green", "Chief Operating Officer (COO)", "San Francisco", "2947", "2010/03/11", "$850,000"],
- ["Shou Itou", "Regional Marketing", "Tokyo", "8899", "2011/08/14", "$163,000"],
- ["Michelle House", "Integration Specialist", "Sidney", "2769", "2011/06/02", "$95,400"],
- ["Suki Burks", "Developer", "London", "6832", "2009/10/22", "$114,500"],
- ["Prescott Bartlett", "Technical Author", "London", "3606", "2011/05/07", "$145,000"],
- ["Gavin Cortez", "Team Leader", "San Francisco", "2860", "2008/10/26", "$235,500"],
- ["Martena Mccray", "Post-Sales support", "Edinburgh", "8240", "2011/03/09", "$324,050"],
- ["Unity Butler", "Marketing Designer", "San Francisco", "5384", "2009/12/09", "$85,675"]
- ];
- $('#jsource-table').DataTable({
- data: dataSet,
- columns: [
- { title: "Name" },
- { title: "Position" },
- { title: "Office" },
- { title: "Extn." },
- { title: "Start date" },
- { title: "Salary" }
- ]
- });
- // Jsource table end
-
- // Server side script table start
- $('#server-table').DataTable({
- "processing": true,
- "serverSide": true,
- "ajax": "dt-json-data/server-table.php"
- });
- // Server side script table end
- // Data source table js end
-
- // Api table js start
- var t = $('#add-row-table').DataTable();
- var counter = 1;
-
- $('#addRow').on('click', function() {
- t.row.add([
- counter + '.1',
- counter + '.2',
- counter + '.3',
- counter + '.4',
- counter + '.5'
- ]).draw(false);
-
- counter++;
- });
-
- // Automatically add a first row of data
- $('#addRow').click();
-
- // Setup - add a text input to each footer cell
- $('#footer-search tfoot th').each(function() {
- var title = $(this).text();
- $(this).html('<input type="text" class="form-control" placeholder="Search ' + title + '" />');
- });
-
- // DataTable
- var table = $('#footer-search').DataTable();
-
- // Apply the search
- table.columns().every(function() {
- var that = this;
-
- $('input', this.footer()).on('keyup change', function() {
- if (that.search() !== this.value) {
- that
- .search(this.value)
- .draw();
- }
- });
- });
-
- $('#footer-select').DataTable({
- initComplete: function() {
- this.api().columns().every(function() {
- var column = this;
- var select = $('<select class="form-control form-control-sm"><option value=""></option></select>')
- .appendTo($(column.footer()).empty())
- .on('change', function() {
- var val = $.fn.dataTable.util.escapeRegex(
- $(this).val()
- );
-
- column
- .search(val ? '^' + val + '$' : '', true, false)
- .draw();
- });
-
- column.data().unique().sort().each(function(d, j) {
- select.append('<option value="' + d + '">' + d + '</option>')
- });
- });
- }
- });
- // Add Rows start
- var srow = $('#row-select').DataTable();
-
- $('#row-select tbody').on('click', 'tr', function() {
- $(this).toggleClass('selected');
- });
-
- // $('#row-select-btn').on('click',function() {
- // alert(srow.rows('.selected').data().length + ' row(s) selected');
- // });
- // Add Rows end
- // Delete rows start
- var drow = $('#row-delete').DataTable();
-
- $('#row-delete tbody').on('click', 'tr', function() {
- if ($(this).hasClass('selected')) {
- $(this).removeClass('selected');
- } else {
- drow.$('tr.selected').removeClass('selected');
- $(this).addClass('selected');
- }
- });
-
- $('#row-delete-btn').on('click',function() {
- drow.row('.selected').remove().draw(!1);
- });
- // Delete rows end
-
- // /* Formatting function for row details - modify as you need */
- function format(d) {
- // `d` is the original data object for the row
- return '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;">' +
- '<tr>' +
- '<td>Full name:</td>' +
- '<td>' + d.name + '</td>' +
- '</tr>' +
- '<tr>' +
- '<td>Extension number:</td>' +
- '<td>' + d.extn + '</td>' +
- '</tr>' +
- '<tr>' +
- '<td>Extra info:</td>' +
- '<td>And any further details here (images etc)...</td>' +
- '</tr>' +
- '</table>';
- }
-
- var ct = $('#child-table').DataTable({
- "ajax": "dt-json-data/ajax-child-rows.json",
- "columns": [{
- "className": 'details-control',
- "orderable": false,
- "data": null,
- "defaultContent": ''
- },
- { "data": "name" },
- { "data": "position" },
- { "data": "office" },
- { "data": "salary" }
- ],
- "order": [
- [1, 'asc']
- ]
- });
-
- // Add event listener for opening and closing details
- $('#child-table tbody').on('click', 'td.details-control', function() {
- var tr = $(this).closest('tr');
- var row = ct.row(tr);
-
- if (row.child.isShown()) {
- // This row is already open - close it
- row.child.hide();
- tr.removeClass('shown');
- } else {
- // Open this row
- row.child(format(row.data())).show();
- tr.addClass('shown');
- }
- });
-
- // Form input start
- var table = $('#form-input-table').DataTable();
-
- $('#form-input-btn').on('click',function() {
- var data = table.$('input, select').serialize();
- alert(
- "The following data would have been submitted to the server: \n\n" +
- data.substr(0, 120) + '...'
- );
- return false;
- });
- // Form input end
-
- // Show-hide table js start
- var sh = $('#show-hide-table').DataTable({
- "scrollY": "200px",
- "paging": false
- });
-
- $('a.toggle-vis').on('click', function(e) {
- e.preventDefault();
-
- // Get the column API object
- var column = sh.column($(this).attr('data-column'));
-
- // Toggle the visibility
- column.visible(!column.visible());
- });
- // Show-hide table js end
- // Search API start
- function filterGlobal() {
- $('#search-api').DataTable().search(
- $('#global_filter').val(),
- $('#global_regex').prop('checked'),
- $('#global_smart').prop('checked')
- ).draw();
- }
-
- function filterColumn(i) {
- $('#search-api').DataTable().column(i).search(
- $('#col' + i + '_filter').val(),
- $('#col' + i + '_regex').prop('checked'),
- $('#col' + i + '_smart').prop('checked')
- ).draw();
- }
- $('#search-api').DataTable();
-
- $('input.global_filter').on('keyup click', function() {
- filterGlobal();
- });
-
- $('input.column_filter').on('keyup click', function() {
- filterColumn($(this).parents('tr').attr('data-column'));
- });
- // Search API end
- // Api table js end
-
- // Styling js start
- $('#base-style').DataTable();
- $('#no-style').DataTable();
- $('#compact').DataTable();
- $('#table-style-hover').DataTable();
- // Styling js end
-
- setTimeout(function(){
- $('#simpletable').DataTable();
- },350);
-
- $('#order-table').DataTable({
- "order": [
- [3, "desc"]
- ]
- });
-
- $('#multi-colum-dt').DataTable({
- columnDefs: [{
- targets: [0],
- orderData: [0, 1]
- }, {
- targets: [1],
- orderData: [1, 0]
- }, {
- targets: [4],
- orderData: [4, 0]
- }]
- });
-
- $('#complex-dt').DataTable();
-
- $('#DOM-dt').DataTable({
- "dom": '<"top"i>rt<"bottom"flp><"clear">'
- });
-
- $('#alt-pg-dt').DataTable({
- "pagingType": "full_numbers"
- });
-
- $('#scr-vrt-dt').DataTable({
- "scrollY": "200px",
- "scrollCollapse": true,
- "paging": false
- });
-
- $('#scr-vtr-dynamic').DataTable({
- scrollY: '50vh',
- scrollCollapse: true,
- paging: false
- });
-
- $('#lang-dt').DataTable({
- "language": {
- "decimal": ",",
- "thousands": "."
- }
- });
-
- var table = $('#dom-jqry').DataTable();
-
- $('#dom-jqry tbody').on('click', 'tr', function() {
- var data = table.row(this).data();
- alert('You clicked on ' + data[0] + '\'s row');
- });
-
- $('#colum-rendr').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] }
- ]
- });
-
- $('#multi-table').DataTable({
- "dom": '<"top"iflp<"clear">>rt<"bottom"iflp<"clear">>'
- });
-
- $('#complex-header').DataTable({
- "columnDefs": [{
- "visible": false,
- "targets": -1
- }]
- });
-
- $('#lang-file').DataTable({
- "language": {
- "url": "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/German.json"
- }
- });
-
- $.extend(true, $.fn.dataTable.defaults, {
- "searching": false,
- "ordering": false
- });
-
- $('#setting-default').DataTable();
-
- var table = $('#row-grouping').DataTable({
- "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-grouping 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();
- }
- });
-
-
- $('#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)'
- );
- }
- });
-
-
- $('#custm-tool-ele').DataTable({
- "dom": '<"toolbar">frtip'
- });
-
- $("div.toolbar").html('<b>Custom tool bar! Text/images etc.</b>');
-
- $('#row-callback').DataTable({
- "createdRow": function(row, data, index) {
- if (data[5].replace(/[\$,]/g, '') * 1 > 150000) {
- $('td', row).eq(5).addClass('highlight');
- }
- }
- });
- },350);
- });
|