TableLaporan.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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>{data.no_laporan}</td>
  27. <td className="text-nowrap">
  28. <div className="media align-items-center">
  29. <div className="media-body d-flex">
  30. <div>
  31. <h4 className="m-0">{data.pt.nama}</h4>
  32. <p>{data.keterangan.length > 35 ? data.keterangan.substring(0, 35) + "..." : data.keterangan}</p>
  33. </div>
  34. </div>
  35. </div>
  36. </td>
  37. {status ? (
  38. <td>
  39. <div className="badge badge-info">{data.role_data === "dikti" ? "Ditindaklanjuti DIKTI" : "Ditindaklanjuti LLDIKTI"}</div>
  40. </td>
  41. ) : (
  42. ""
  43. )}
  44. <td className="text-nowrap">
  45. <div className="media align-items-center">
  46. <div className="media-body d-flex">
  47. <div>
  48. {!noBy && <h4>{data.user.isPrivate ? "" : data.user.nama}</h4>}
  49. <p>{moment(data.createdAt).format("MM-DD-YYYY")}</p>
  50. </div>
  51. </div>
  52. </div>
  53. </td>
  54. <td>
  55. <div className="ml-auto">
  56. <Link
  57. href={{
  58. pathname: to,
  59. query: { id: data._id },
  60. }}
  61. >
  62. <Button color="primary" size="sm">
  63. {linkName}
  64. </Button>
  65. </Link>
  66. </div>
  67. </td>
  68. </tr>
  69. );
  70. })}
  71. </tbody>
  72. </table>
  73. </Datatable>
  74. )}
  75. </div>
  76. </div>
  77. );
  78. }
  79. export default TableLaporan;