TableLaporan.js 2.7 KB

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