You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

96 lines
3.0 KiB

3 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
  1. // DataTables, for more examples you can check out https://www.datatables.net/
  2. class pageTablesDatatables {
  3. /*
  4. * Init DataTables functionality
  5. *
  6. */
  7. static initDataTables() {
  8. // Override a few default classes
  9. jQuery.extend(jQuery.fn.dataTable.ext.classes, {
  10. sWrapper: "dataTables_wrapper dt-bootstrap5",
  11. sFilterInput: "form-control",
  12. sLengthSelect: "form-select"
  13. });
  14. // Override a few defaults
  15. jQuery.extend(true, jQuery.fn.dataTable.defaults, {
  16. language: {
  17. lengthMenu: "_MENU_",
  18. search: "_INPUT_",
  19. searchPlaceholder: "Search..",
  20. info: "Page <strong>_PAGE_</strong> of <strong>_PAGES_</strong>",
  21. paginate: {
  22. first: '<i class="fa fa-angle-double-left"></i>',
  23. previous: '<i class="fa fa-angle-left"></i>',
  24. next: '<i class="fa fa-angle-right"></i>',
  25. last: '<i class="fa fa-angle-double-right"></i>'
  26. }
  27. }
  28. });
  29. // Override buttons default classes
  30. jQuery.extend(true, jQuery.fn.DataTable.Buttons.defaults, {
  31. dom: {
  32. button: {
  33. className: 'btn btn-sm btn-primary'
  34. },
  35. }
  36. });
  37. // Init full DataTable
  38. jQuery('.js-dataTable-full').DataTable({
  39. pageLength: 50,
  40. lengthMenu: [[5, 10, 20, 30, 40, 50, 100, 150, 200, 500, 1000], [5, 10, 20, 30, 40, 50, 100, 150, 200, 500, 1000]],
  41. autoWidth: false
  42. });
  43. // Init DataTable with Buttons
  44. jQuery('.js-dataTable-buttons').DataTable({
  45. pagingType: "full_numbers",
  46. pageLength: 50,
  47. lengthMenu: [[5, 10, 20, 30, 40, 50, 100, 150, 200, 500, 1000], [5, 10, 20, 30, 40, 50, 100, 150, 200, 500, 1000]],
  48. autoWidth: false,
  49. buttons: ['copy', 'csv', 'excel', 'pdf', 'print'],
  50. dom: "<'row'<'col-sm-12'<'text-center bg-body-light py-2 mb-2'B>>>" +
  51. "<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>"
  52. });
  53. // Init full extra DataTable
  54. jQuery('.js-dataTable-full-pagination').DataTable({
  55. pagingType: "full_numbers",
  56. pageLength: 50,
  57. lengthMenu: [[5, 10, 20, 30, 40, 50, 100, 150, 200, 500, 1000], [5, 10, 20, 30, 40, 50, 100, 150, 200, 500, 1000]],
  58. autoWidth: false
  59. });
  60. // Init simple DataTable
  61. jQuery('.js-dataTable-simple').DataTable({
  62. pageLength: 50,
  63. lengthMenu: false,
  64. searching: false,
  65. autoWidth: false,
  66. dom: "<'row'<'col-sm-12'tr>>" +
  67. "<'row'<'col-sm-6'i><'col-sm-6'p>>"
  68. });
  69. // Init responsive DataTable
  70. jQuery('.js-dataTable-responsive').DataTable({
  71. pagingType: "full_numbers",
  72. pageLength: 50,
  73. lengthMenu: [[5, 10, 20, 30, 40, 50, 100, 150, 200, 500, 1000], [5, 10, 20, 30, 40, 50, 100, 150, 200, 500, 1000]],
  74. autoWidth: false,
  75. responsive: true
  76. });
  77. }
  78. /*
  79. * Init functionality
  80. *
  81. */
  82. static init() {
  83. this.initDataTables();
  84. }
  85. }
  86. // Initialize when page loads
  87. Dashmix.onLoad(() => pageTablesDatatables.init());