diff --git a/js/csv_to_html_table.js b/js/csv_to_html_table.js index 99e5bbe8..8e6d6184 100644 --- a/js/csv_to_html_table.js +++ b/js/csv_to_html_table.js @@ -1,4 +1,5 @@ var CsvToHtmlTable = CsvToHtmlTable || {}; +var CsvToHtmlTable_DataTable = {}; CsvToHtmlTable = { init: function (options) { @@ -8,6 +9,7 @@ CsvToHtmlTable = { var allow_download = options.allow_download || false; var csv_options = options.csv_options || {}; var datatables_options = options.datatables_options || {}; + var column_filters = options.column_filters || false; var custom_formatting = options.custom_formatting || []; var customTemplates = {}; $.each(custom_formatting, function (i, v) { @@ -29,6 +31,22 @@ CsvToHtmlTable = { for (var headerIdx = 0; headerIdx < csvHeaderRow.length; headerIdx++) { $tableHeadRow.append($("").text(csvHeaderRow[headerIdx])); } + + if (column_filters) { + var $tableHeadRow_filter = $(""); + for (var headerIdx = 0; headerIdx < csvHeaderRow.length; headerIdx++) { + $tableHeadRow_filter.append($("").html( + '')); + $tableHeadRow_filter[0].childNodes[headerIdx].childNodes[0].onchange = function(ee) { + var i = parseInt(ee.target.id.substr(6)); + CsvToHtmlTable_DataTable.column(i).search(this.value).draw(); + } + $tableHeadRow_filter[0].childNodes[headerIdx].childNodes[0].onkeyup = + $tableHeadRow_filter[0].childNodes[headerIdx].childNodes[0].onchange + } + $tableHead.append($tableHeadRow_filter); + } + $tableHead.append($tableHeadRow); $table.append($tableHead); @@ -50,7 +68,7 @@ CsvToHtmlTable = { } $table.append($tableBody); - $table.DataTable(datatables_options); + CsvToHtmlTable_DataTable = $table.DataTable(datatables_options); if (allow_download) { $containerElement.append("

Download as CSV

");