TableRiwayatCatatan.js 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. import Datatable from "@/components/Tables/Datatable";
  2. import {
  3. Button, Dropdown,
  4. DropdownToggle,
  5. DropdownMenu,
  6. DropdownItem,
  7. } from "reactstrap";
  8. import Link from "next/link";
  9. import moment from "moment";
  10. import { ENV } from '../../env.js';
  11. import CopyToClipboard from "react-copy-to-clipboard";
  12. import { useState } from "react";
  13. import { EditorState, ContentState, convertFromHTML, convertToRaw, convertFromRaw } from 'draft-js';
  14. import ReactToPrint from "react-to-print";
  15. import ComponentToPrint from "./presensi_print";
  16. import { deleteCatatan } from "../../actions/catatan.js";
  17. import { toast } from "react-toastify";
  18. function TableRiwayatCatatan({ listData, query, editFilePage, newFilePage, readOnly }) {
  19. const [dropdownState, setDropdownState] = useState(false);
  20. const toggleDD = (dd) => {
  21. setDropdownState(prevState => ({
  22. ...prevState,
  23. [dd]: !prevState[dd]
  24. }));
  25. };
  26. // const deletedcatatan = async(id)=>{
  27. // const toastid = toast.loading("Please wait...");
  28. // const added = await deleteCatatan(id);
  29. // if (!added) {
  30. // toast.update(toastid, { render: "Error", type: "error", isLoading: false, autoClose: true, closeButton: true });
  31. // } else {
  32. // toast.update(toastid, { render: "Success", type: "success", isLoading: false, autoClose: true, closeButton: true });
  33. // // Router.push(`/app/perpanjangan-sanksi/detail?id=${this.state.catatan.sanksi_id}`);
  34. // }
  35. // }
  36. return (
  37. <div className="card b ">
  38. <div className=" card-header">
  39. <div className=" card-title">Riwayat Catatan</div>
  40. </div>
  41. <div className=" card-body">
  42. <div className="margin-right-auto float-right">
  43. <Link
  44. href={{
  45. pathname: newFilePage,
  46. query: { id: query?.id },
  47. }}
  48. >
  49. <Button className="btn-login" color>
  50. <img className="icon-laporan-baru" src="/static/img/icon-laporan-baru.png"></img>
  51. <span className="font-color-white m-2">
  52. Tambah Catatan
  53. </span>
  54. </Button>
  55. </Link>
  56. </div>
  57. <Datatable options={{
  58. responsive: false, ordering: true,
  59. // paging: false,
  60. searching: false,
  61. // ordering: false,
  62. // info: false,
  63. }}>
  64. <table className="table w-100" data-order='[[0, "desc"]]'>
  65. <thead>
  66. <tr>
  67. <th>Tanggal dibuat</th>
  68. <th>Nama File</th>
  69. <th>Terakhir Diedit</th>
  70. <th>Aksi</th>
  71. </tr>
  72. </thead>
  73. <tbody>
  74. {listData?.length
  75. ? listData.map((data, i) => (
  76. <tr>
  77. <td>{moment(data.createdAt).format("D MMMM YYYY")}</td>
  78. <td>
  79. {data.judul}
  80. </td>
  81. <td>{moment(data.updatedAt).format("D MMMM YYYY")}</td>
  82. <td
  83. // style={{ width: "40%" }}
  84. >
  85. {/* <span className=" float-left d-flex mr-2">
  86. <Button className="btn-v3" color >
  87. <span className="font-color-black">
  88. Hapus
  89. </span>
  90. </Button>
  91. </span>
  92. <span className=" d-flex">
  93. <Button className="btn-v3" color>
  94. <span className="font-color-black">
  95. Lihat
  96. </span>
  97. </Button>
  98. </span>
  99. <span className=" float-none d-flex">
  100. <Button className="btn-v3" color>
  101. <span className="font-color-black">
  102. Edit
  103. </span>
  104. </Button>
  105. </span> */}
  106. <span className=" float-right mt-2">
  107. <Dropdown isOpen={dropdownState[`ddSplit${i}`]}
  108. toggle={() => toggleDD(`ddSplit${i}`)} >
  109. <DropdownToggle
  110. data-toggle="dropdown"
  111. tag="span"
  112. >
  113. <em className="fas fa-ellipsis-v" />
  114. </DropdownToggle>
  115. <DropdownMenu>
  116. {ENV === "local" &&
  117. <CopyToClipboard
  118. text={`http://localhost:3000/signature/letter/${data?._id}`}
  119. options={{ asHtml: true }}
  120. ><DropdownItem>
  121. Link Dokumen
  122. </DropdownItem>
  123. </CopyToClipboard>
  124. }
  125. <Link
  126. href={{
  127. pathname: readOnly,
  128. query: { id: data?._id },
  129. }}
  130. >
  131. <DropdownItem>
  132. <span className=" font-color-black">Lihat</span>
  133. </DropdownItem>
  134. </Link>
  135. <Link
  136. href={{
  137. pathname: editFilePage,
  138. query: { id: data?._id },
  139. }}
  140. ><DropdownItem>
  141. <span className=" font-color-black">Edit</span>
  142. </DropdownItem>
  143. </Link>
  144. <DropdownItem >
  145. Hapus
  146. </DropdownItem>
  147. </DropdownMenu>
  148. </Dropdown>
  149. </span>
  150. </td>
  151. </tr>
  152. )) : (
  153. ""
  154. )}
  155. </tbody>
  156. </table>
  157. </Datatable>
  158. </div>
  159. </div>
  160. )
  161. }
  162. export default TableRiwayatCatatan