TableLaporan.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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. {listData && (
  10. <Datatable options={{ responsive: false, ordering: true, keys: true }}>
  11. <table className="table w-100" data-order='[[3, "desc"]]'>
  12. <thead>
  13. <tr>
  14. <th>No.Laporan</th>
  15. <th>Deskripsi Laporan</th>
  16. {status && <th>Status</th>}
  17. {!noBy && <th>Dibuat Oleh</th>}
  18. {/* <th>Created</th> */}
  19. <th></th>
  20. </tr>
  21. </thead>
  22. <tbody>
  23. {listData.map((data) => {
  24. return (
  25. <tr key={data._id}>
  26. <td>
  27. {/* <td>{data.no_laporan}</td> */}
  28. <div className="media align-items-center">
  29. <div className="media-body d-flex">
  30. <div>
  31. <h4>{data.no_laporan}</h4>
  32. <p>{moment(data.createdAt).format("MM-DD-YYYY")}</p>
  33. </div>
  34. </div>
  35. </div>
  36. </td>
  37. <td>
  38. <div className="table-desc">
  39. <div className="media align-items-center">
  40. <div className="media-body d-flex">
  41. <div>
  42. <h4 className="m-0">{data.pt.nama.length > 64 ? data.pt.nama.substring(0, 64) + "..." : data.pt.nama}</h4>
  43. {/* <h4 className="m-0">{data.pt.nama}</h4> */}
  44. {/* <p className="w-105">{data.keterangan.length > 150 ? data.keterangan.substring(0, 150) + "..." : data.keterangan}</p> */}
  45. <p className="w-105">{data.keterangan}</p>
  46. </div>
  47. </div>
  48. </div>
  49. </div>
  50. </td>
  51. {status ? (
  52. <td>
  53. <div className="badge badge-info">{data.role_data === "dikti" ? "Ditindaklanjuti DIKTI" : "Ditindaklanjuti LLDIKTI"}</div>
  54. </td>
  55. ) : (
  56. ""
  57. )}
  58. {!noBy && <td>{data.user.isPrivate ? "" : data.user.nama}</td>}
  59. <td>
  60. <div className="ml-auto">
  61. <Link
  62. href={{
  63. pathname: to,
  64. query: { id: data._id },
  65. }}
  66. >
  67. <Button color="primary" size="sm">
  68. {linkName}
  69. </Button>
  70. </Link>
  71. </div>
  72. </td>
  73. </tr>
  74. );
  75. })}
  76. </tbody>
  77. </table>
  78. </Datatable>
  79. )}
  80. </div>
  81. </div>
  82. );
  83. }
  84. export default TableLaporan;