$(document).ready(function () { // Initialize DataTable var table = $('#oc-file-det-tbl').DataTable({ paging: true, searching: true, ordering: true, lengthChange: true, pageLength: 10, language: { emptyTable: "No data available", lengthMenu: "Display _MENU_ records per page", info: "Showing _START_ to _END_ of _TOTAL_ entries", infoEmpty: "No records to show", infoFiltered: "(filtered from _MAX_ total records)" }, columnDefs: [ { orderable: false, targets: [0, 5] // S.No and OC File columns } ], buttons: [ { extend: 'excelHtml5', title: "OC File Details", filename: "OC File Details", exportOptions: { columns: ':visible:not(:eq(5))', // exclude OC File column format: { body: function (data, row, column, node) { if (column === 0) { return row + 1; } return $('
').html(data).text().trim(); } } } }, 'pdfHtml5' ] }); // --- SEQUENTIAL S.NO FIX --- table.on('order.dt search.dt draw.dt', function () { var pageInfo = table.page.info(); table.column(0, { page: 'current' }).nodes().each(function (cell, i) { cell.innerHTML = pageInfo.start + i + 1; }); }).draw(); // Move DataTable controls to custom containers $('#custom-pagination').html($('.dataTables_paginate')); $('#custom-info').html($('.dataTables_info')); $('#custom-length').html($('.dataTables_length')); $('.dataTables_filter').hide(); // hide default search // Custom search / filtering on the datatable $('#export-excel').on('click', function () { table.button('.buttons-excel').trigger(); }); $('#export-pdf').on('click', function () { var originalLength = table.page.len(); table.one('draw', function () { var tableClone = $('#oc-file-det-tbl').clone(); tableClone.removeClass('dataTable'); tableClone.find('thead, tbody, tfoot').removeAttr('style'); // Remove "OC File" column (6th col = index 5) tableClone.find('tr').each(function () { $(this).find('th:eq(5), td:eq(5)').remove(); }); var pdfContainer = $('#pdf-print-container'); if (!pdfContainer.length) { $('body').append(''); pdfContainer = $('#pdf-print-container'); } pdfContainer.html('

OC File Details

'); pdfContainer.append(tableClone).css({ display: 'block', padding: '20px' }); tableClone.css({ width: '100%', borderCollapse: 'collapse' }); tableClone.find('th, td').css({ border: '1px solid #ccc', padding: '5px', fontSize: '10px', textAlign: 'left', verticalAlign: 'top' }); tableClone.find('tr').css({ pageBreakInside: 'avoid', breakInside: 'avoid', webkitBreakInside: 'avoid' }); html2pdf().set({ margin: 0.5, filename: 'OC File Details.pdf', image: { type: 'jpeg', quality: 0.98 }, html2canvas: { scale: 2, useCORS: true }, jsPDF: { unit: 'in', format: 'a3', orientation: 'landscape' } }).from(pdfContainer[0]).save().then(function () { table.page.len(originalLength).draw(); pdfContainer.hide(); }); }); table.page.len(-1).draw(); // show all rows for PDF }); function populateFilters() { var numSet = {}, vendSet = {}; table.rows().every(function () { var data = this.data(); var fileNum = data[1] ? $('
').html(data[1]).text().trim() : ''; var vendName = data[2] ? $('
').html(data[2]).text().trim() : ''; if (fileNum) numSet[fileNum] = true; if (vendName) vendSet[vendName] = true; }); Object.keys(numSet).sort().forEach(val => $('#file-num-list').append(`