Guest User

Untitled

a guest
Dec 7th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. module dataTable {
  2. export class dataTableClass {
  3. applyTable(tableIdString: string) : void {
  4. (<any>$(tableIdString))
  5. .DataTable({
  6. scrollY: 1000,
  7. scrollX: true,
  8. scrollCollapse: true,
  9. paging: false,
  10. searching: false,
  11. fixedHeader: true,
  12. fixedColumns: {
  13. leftColumns: 1
  14. }
  15. });
  16. }
  17.  
  18. dataTableExists(tableIdString: string): boolean {
  19. return (<any>$.fn.DataTable.isDataTable(tableIdString));
  20. }
  21.  
  22. applyDatatableIfTableExists(retryCount: number, elementId: string): void {
  23. if (!elementId) {
  24. console.warn("table id not defined.");
  25. return;
  26. }
  27.  
  28. if (!retryCount) {
  29. retryCount = 0;
  30. } else if (retryCount > 100) {
  31. console.warn("could not convert table to dataTable.");
  32. return;
  33. }
  34.  
  35. window.setTimeout(() => {
  36. var tableIdString = "#" + elementId;
  37. if ((<any>$(tableIdString)).length <= 0) {
  38. this.applyDatatableIfTableExists(++retryCount, elementId);
  39. } else {
  40. if (this.dataTableExists(tableIdString)) {
  41. debugger;
  42. (<any>$(tableIdString)).DataTable({ retrieve: true }).destroy(); // <-- issue here. it seems to restore old data to the now-datatable-less table
  43. }
  44.  
  45. window.setTimeout(() => {
  46. this.applyTable(tableIdString);
  47. if (!this.dataTableExists(tableIdString)) {
  48. this.applyDatatableIfTableExists(++retryCount, elementId);
  49. }
  50. }, 250);
  51.  
  52. if (!(<any>$(tableIdString)).hasClass(".dataTable")) {
  53. (<any>$(tableIdString)).addClass(".dataTable");
  54. }
  55. }
  56. }, 250);
  57. }
  58.  
  59.  
  60. applyDataTable(id) {
  61. this.applyDatatableIfTableExists(0, id);
  62. }
  63. }
Add Comment
Please, Sign In to add comment