function getDatatablesSelector(module) { return '#' + module + '-table'; } function getDataTables(options,route,module, nobuttons) { var params = { ajax: { url: route, data: function ( d ) { d.where = $('#where').val(); } }, buttons: (!nobuttons) ? getDatatablesButtons() : [], responsive: false, keys: false, autoWidth: true, processing: true, serverSide: true, lengthChange: true, lengthMenu: [ [ 10, 25, 50, 100, -1], [ '10 lignes', '25 lignes', '50 lignes', '100 lignes', 'Tous'] ], deferRender: true, stateSave: false, sDom: options['dom'] ? options['dom'] : getDatatablesDomDefault(), fixedHeader: false, fixedColumns: options['fixedColumns'], colReorder: false, scrollX: true, scrollY: "70vh", scrollCollapse: true, searchDelay: 300, select: false, columns: options['columns'], language: datatables_lang, rowId: 'id', }; /* // DOM Position key index // l - Length changing (dropdown) f - Filtering input (search) t - The Table! (datatable) i - Information (records) p - Pagination (paging) r - pRocessing < and > - div elements <"#id" and > - div with an id <"class" and > - div with a class <"#id.class" and > - div with an id and class Also see: http://legacy.datatables.net/usage/features */ if (options['order']) { params.order = options['order']; } // console.log(params); var Table = $('#'+module+'-table').DataTable(params); handleDataTablesFilter(Table,module); // Table.buttons().container().appendTo( $('.col-sm-6:eq(0)')); return Table; } function handleDataTablesFilter(Table) { $(Table.table().container()).on('change keyup', 'thead input', function() { Table.column( $(this).parent().index()+':visible' ).search( this.value ).draw(); }); $(Table.table().container()).on('change', 'thead select', function() { Table.column( $(this).parent().index()+':visible' ).search( this.value ).draw(); }); $('[data-toggle="popover"]').popover({html: true}); }; function getDatatablesButtons() { return ['pageLength', { extend: 'copyHtml5', exportOptions: { columns: ':visible' }, text: '', titleAttr: 'Copier', className: 'hidden-xs', }, { extend: 'excelHtml5', exportOptions: { columns: ':visible' }, text: '', titleAttr: 'Excel', className: 'hidden-xs', }, { extend: 'pdfHtml5', orientation: 'landscape', pageSize: 'A4', exportOptions: { columns: ':visible' }, text: '', titleAttr: 'PDF', className: 'hidden-xs', }, { extend: 'print', text: '', titleAttr: 'Imprimer', className: 'hidden-xs', }, { extend: 'colvis', text: '', titleAttr: 'Colonnes', columns: ':not(.fixed)' } ]; } function getDatatablesDomDefault(nobuttons) { dom = (!nobuttons) ? getDatatablesHeaderDefault() : ''; dom += "t"; dom += getDatatablesFooterDefault(); return dom; } function getDatatablesHeaderDefault() { return "<' row dt-toolbar-header'<'col-md-4 tool'B><'col-md-4'<'toolbar'>><'col-md-4 text-right add'>r>"; } function getDatatablesFooterDefault() { return "<'row dt-toolbar-footer'<'col-md-6'i><'col-md-6'p>>"; } function getDatatableLang() { return "/assets/plugins/datatables_lang/" + getLang() + '.json'; }