TableLaporan.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. import Datatable from "@/components/Tables/Datatable";
  2. import { Button } from "reactstrap";
  3. import Link from "next/link";
  4. import moment from "moment";
  5. function TableLaporan({ listData, to, linkName, status = false, noBy = false }) {
  6. return (
  7. <div className="card b ">
  8. <div className="card-body card-over">
  9. <div className="margin-left-auto">
  10. <Link href="/app/pelaporan/search">
  11. <Button className="btn-login" color>
  12. <span className="font-color-white">
  13. Laporan baru
  14. </span>
  15. <img className="icon-laporan-baru" src="/static/img/icon-laporan-baru.png"></img>
  16. </Button>
  17. </Link>
  18. </div>
  19. {listData && (
  20. <Datatable options={{
  21. responsive: false, ordering: true,
  22. // paging: false,
  23. // searching:false,
  24. // ordering: false,
  25. // info: false,
  26. }}>
  27. <table className="table w-100" data-order='[[0, "desc"]]'>
  28. <thead>
  29. <tr>
  30. <th>No.Laporan</th>
  31. <th>Deskripsi Laporan</th>
  32. {status && <th>Status</th>}
  33. {!noBy && <th>Dibuat Oleh</th>}
  34. {/* <th>Created</th> */}
  35. <th></th>
  36. </tr>
  37. </thead>
  38. <tbody>
  39. {listData.map((data) => {
  40. return (
  41. <tr key={data._id}>
  42. <td>
  43. {/* <td>{data.no_laporan}</td> */}
  44. <div className="media align-items-center">
  45. <div className="media-body d-flex">
  46. <div>
  47. <p style={{ display: "none" }}>{data.createdAt}</p>
  48. <h4>{data.no_laporan}</h4>
  49. <p>{moment(data.createdAt).format("DD-MM-YYYY")}</p>
  50. </div>
  51. </div>
  52. </div>
  53. </td>
  54. <td>
  55. <div className="table-desc">
  56. <div className="media align-items-center">
  57. <div className="media-body d-flex">
  58. <div>
  59. <h4 className="m-0">{data.pt.nama.length > 64 ? data.pt.nama.substring(0, 64) + "..." : data.pt.nama}</h4>
  60. {/* <h4 className="m-0">{data.pt.nama}</h4> */}
  61. {/* <p className="w-105">{data.keterangan.length > 150 ? data.keterangan.substring(0, 150) + "..." : data.keterangan}</p> */}
  62. <p className="w-105">{data.keterangan}</p>
  63. </div>
  64. </div>
  65. </div>
  66. </div>
  67. </td>
  68. {status ? (
  69. <td>
  70. <div className="badge badge-info">{data.role_data === "dikti" ? "Ditindaklanjuti DIKTI" : "Ditindaklanjuti LLDIKTI"}</div>
  71. </td>
  72. ) : (
  73. ""
  74. )}
  75. {<td>{data.user?.isPrivate === true ? "" : data.user?.nama}</td>}
  76. <td>
  77. <div className="ml-auto">
  78. <Link
  79. href={{
  80. pathname: to,
  81. query: { id: data._id },
  82. }}
  83. >
  84. <Button className="btn-login loader" color>
  85. <span className="font-color-white">
  86. {linkName}
  87. </span>
  88. </Button>
  89. </Link>
  90. </div>
  91. </td>
  92. </tr>
  93. );
  94. })}
  95. </tbody>
  96. </table>
  97. </Datatable>
  98. )}
  99. </div>
  100. </div>
  101. );
  102. }
  103. export default TableLaporan;