|
@@ -2,7 +2,7 @@ import React, { Component } from "react";
|
|
|
import Router from "next/router";
|
|
import Router from "next/router";
|
|
|
import { connect } from "react-redux";
|
|
import { connect } from "react-redux";
|
|
|
import ContentWrapper from "@/components/Layout/ContentWrapper";
|
|
import ContentWrapper from "@/components/Layout/ContentWrapper";
|
|
|
-import { Row, Col, Card, CardHeader, CardBody, Button, FormGroup, Popover, PopoverHeader } from "reactstrap";
|
|
|
|
|
|
|
+import { Row, Col, Card, CardHeader, CardBody, Button, FormGroup, Popover, PopoverHeader, Modal, ModalBody, ModalFooter, ModalHeader } from "reactstrap";
|
|
|
// import { Editor } from 'react-draft-wysiwyg';
|
|
// import { Editor } from 'react-draft-wysiwyg';
|
|
|
import 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';
|
|
import 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';
|
|
|
import { EditorState, ContentState, convertFromHTML, convertToRaw, convertFromRaw } from 'draft-js';
|
|
import { EditorState, ContentState, convertFromHTML, convertToRaw, convertFromRaw } from 'draft-js';
|
|
@@ -16,13 +16,13 @@ import pdfMake from "pdfmake/build/pdfmake";
|
|
|
import StateToPdfMake from "draft-js-export-pdfmake";
|
|
import StateToPdfMake from "draft-js-export-pdfmake";
|
|
|
import pdfFonts from "pdfmake/build/vfs_fonts";
|
|
import pdfFonts from "pdfmake/build/vfs_fonts";
|
|
|
import { toast } from "react-toastify";
|
|
import { toast } from "react-toastify";
|
|
|
-import { addCatatan, getOneCatatan, updateCatatan } from "../../../actions/catatan";
|
|
|
|
|
|
|
+import { addCatatan, deletePeserta, getOneCatatan, updateCatatan } from "../../../actions/catatan";
|
|
|
import { getCsrf } from "../../../actions/security";
|
|
import { getCsrf } from "../../../actions/security";
|
|
|
pdfMake.vfs = pdfFonts.pdfMake.vfs;
|
|
pdfMake.vfs = pdfFonts.pdfMake.vfs;
|
|
|
import { ENV } from '../../../env.js';
|
|
import { ENV } from '../../../env.js';
|
|
|
import CopyToClipboard from "react-copy-to-clipboard";
|
|
import CopyToClipboard from "react-copy-to-clipboard";
|
|
|
import ReactToPrint from "react-to-print";
|
|
import ReactToPrint from "react-to-print";
|
|
|
-import ComponentToPrint from "../../../components/PerpanjanganSanksi/presensi_print.js";
|
|
|
|
|
|
|
+import ComponentToPrint from "../../../components/Main/presensi_print.js";
|
|
|
import htmlToPdfmake from "html-to-pdfmake"
|
|
import htmlToPdfmake from "html-to-pdfmake"
|
|
|
// import htmlToDraft from 'html-to-draftjs';
|
|
// import htmlToDraft from 'html-to-draftjs';
|
|
|
import SummerNote from "../../../components/Extras/summernote";
|
|
import SummerNote from "../../../components/Extras/summernote";
|
|
@@ -38,11 +38,13 @@ class EditFile extends Component {
|
|
|
super(props);
|
|
super(props);
|
|
|
this.state = {
|
|
this.state = {
|
|
|
tanggal: "",
|
|
tanggal: "",
|
|
|
|
|
+ modalRemovePeserta: false,
|
|
|
setTanggal: false,
|
|
setTanggal: false,
|
|
|
isEditTanggal: false,
|
|
isEditTanggal: false,
|
|
|
isEditTempat: false,
|
|
isEditTempat: false,
|
|
|
simpulan: " ",
|
|
simpulan: " ",
|
|
|
rekomendasi: " ",
|
|
rekomendasi: " ",
|
|
|
|
|
+ selectedPeserta: "",
|
|
|
isi: [
|
|
isi: [
|
|
|
{
|
|
{
|
|
|
Aspek_Perbaikan: "",
|
|
Aspek_Perbaikan: "",
|
|
@@ -68,16 +70,15 @@ class EditFile extends Component {
|
|
|
const catatan = getCatatan.data
|
|
const catatan = getCatatan.data
|
|
|
const judul = getCatatan.data.judul
|
|
const judul = getCatatan.data.judul
|
|
|
|
|
|
|
|
- const tempat=catatan.isi.tempat
|
|
|
|
|
- const setTanggal=catatan.isi.setTanggal
|
|
|
|
|
- const isi=catatan.isi.isi
|
|
|
|
|
- const tanggal=catatan.isi.tanggal
|
|
|
|
|
- const isEditTanggal=catatan.isi.isEditTanggal
|
|
|
|
|
- const isEditTempat=catatan.isi.isEditTempat
|
|
|
|
|
- const simpulan=catatan.isi.simpulan
|
|
|
|
|
- const rekomendasi=catatan.isi.rekomendasi
|
|
|
|
|
-
|
|
|
|
|
- this.setState({ isi,catatan, judul, pt ,tanggal, tempat, isEditTanggal, isEditTempat, simpulan, rekomendasi,setTanggal});
|
|
|
|
|
|
|
+ const tempat = catatan.isi.tempat
|
|
|
|
|
+ const setTanggal = catatan.isi.setTanggal
|
|
|
|
|
+ const isi = catatan.isi.isi
|
|
|
|
|
+ const tanggal = catatan.isi.tanggal
|
|
|
|
|
+ const isEditTanggal = catatan.isi.isEditTanggal
|
|
|
|
|
+ const isEditTempat = catatan.isi.isEditTempat
|
|
|
|
|
+ const simpulan = catatan.isi.simpulan
|
|
|
|
|
+ const rekomendasi = catatan.isi.rekomendasi
|
|
|
|
|
+ this.setState({ isi, catatan, judul, pt, tanggal, tempat, isEditTanggal, isEditTempat, simpulan, rekomendasi, setTanggal });
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -168,11 +169,50 @@ class EditFile extends Component {
|
|
|
setDataCatatan = (data) => {
|
|
setDataCatatan = (data) => {
|
|
|
this.setState({ dataCatatan: data });
|
|
this.setState({ dataCatatan: data });
|
|
|
}
|
|
}
|
|
|
|
|
+ removeRow = (index) => {
|
|
|
|
|
+ this.setState(prevState => ({
|
|
|
|
|
+ isi: prevState.isi.filter((_, i) => i !== index)
|
|
|
|
|
+ }));
|
|
|
|
|
+ };
|
|
|
|
|
+ setModalRemovePeserta = (modalRemovePeserta) => {
|
|
|
|
|
+ this.setState({
|
|
|
|
|
+ modalRemovePeserta: !this.state.modalRemovePeserta
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
render() {
|
|
render() {
|
|
|
- const { catatan, pt, isEditTanggal,tanggal } = this.state;
|
|
|
|
|
|
|
+ const { catatan, pt, isEditTanggal, tanggal } = this.state;
|
|
|
return (
|
|
return (
|
|
|
<ContentWrapper>
|
|
<ContentWrapper>
|
|
|
|
|
+ <Modal isOpen={this.state.modalRemovePeserta} >
|
|
|
|
|
+ <ModalBody>Apakah anda ingin menghapus peserta?</ModalBody>
|
|
|
|
|
+ <ModalFooter>
|
|
|
|
|
+
|
|
|
|
|
+ <Button color className="btn-login"
|
|
|
|
|
+ onClick={async () => {
|
|
|
|
|
+ const { token } = this.props;
|
|
|
|
|
+ let update = null;
|
|
|
|
|
+ const toastid = toast.loading("Please wait...");
|
|
|
|
|
+ const id_catatan = catatan._id
|
|
|
|
|
+ const peserta = this.state.selectedPeserta
|
|
|
|
|
+ update = await deletePeserta(token, { "peserta_id": peserta }, id_catatan);
|
|
|
|
|
+ if (!update) {
|
|
|
|
|
+ toast.update(toastid, { render: "Gagal hapus peserta", type: "error", isLoading: false, autoClose: true, closeButton: true });
|
|
|
|
|
+ } else {
|
|
|
|
|
+ toast.update(toastid, { render: "Berhasil hapus peserta", type: "success", isLoading: false, autoClose: true, closeButton: true });
|
|
|
|
|
+ Router.push(`/app/perpanjangan-sanksi/edit_catatan?id=${catatan._id}`);
|
|
|
|
|
+ this.setModalRemovePeserta()
|
|
|
|
|
+ }
|
|
|
|
|
+ }}
|
|
|
|
|
+ >
|
|
|
|
|
+
|
|
|
|
|
+ <span className="font-color-white">Ya</span>
|
|
|
|
|
+ </Button>
|
|
|
|
|
+ <Button color className="btn-v2" onClick={this.setModalRemovePeserta}>
|
|
|
|
|
+ Tidak
|
|
|
|
|
+ </Button>
|
|
|
|
|
+ </ModalFooter>
|
|
|
|
|
+ </Modal>
|
|
|
<Row>
|
|
<Row>
|
|
|
<Col lg={12}>
|
|
<Col lg={12}>
|
|
|
<Card body className="card-default">
|
|
<Card body className="card-default">
|
|
@@ -193,11 +233,9 @@ class EditFile extends Component {
|
|
|
<span className=" d-inline-flex">
|
|
<span className=" d-inline-flex">
|
|
|
<ReactToPrint
|
|
<ReactToPrint
|
|
|
trigger={() => {
|
|
trigger={() => {
|
|
|
- return <span>
|
|
|
|
|
- <Button color className="btn-login">
|
|
|
|
|
- <span className="font-color-white">
|
|
|
|
|
- Print Dokumen
|
|
|
|
|
- </span>
|
|
|
|
|
|
|
+ return <span className="btn-radius">
|
|
|
|
|
+
|
|
|
|
|
+ <Button color className="ml-0 btn-v1-outline-purple"> Print Dokumen
|
|
|
</Button>
|
|
</Button>
|
|
|
</span>
|
|
</span>
|
|
|
}}
|
|
}}
|
|
@@ -265,20 +303,20 @@ class EditFile extends Component {
|
|
|
|
|
|
|
|
,
|
|
,
|
|
|
telah dilakukan rapat Verifikasi dan Validasi Dokumen Usul Pencabutan Sanksi Administratif {pt && (<span>{pt.nama}</span>)}, yang dihadiri oleh:
|
|
telah dilakukan rapat Verifikasi dan Validasi Dokumen Usul Pencabutan Sanksi Administratif {pt && (<span>{pt.nama}</span>)}, yang dihadiri oleh:
|
|
|
-
|
|
|
|
|
- <ol>
|
|
|
|
|
- {catatan?.daftar_kehadiran_peserta?.map((value) =>
|
|
|
|
|
- <li>
|
|
|
|
|
- {value.nama}
|
|
|
|
|
- {/* <button className="bg-transparent button-transparent border-0 fas fa-trash text-danger float-right"
|
|
|
|
|
- onClick={() => {
|
|
|
|
|
- this.setState({
|
|
|
|
|
- selectedPeserta: value._id
|
|
|
|
|
- })
|
|
|
|
|
- this.setModalRemovePeserta()
|
|
|
|
|
- }} /> */}
|
|
|
|
|
- </li>)}
|
|
|
|
|
- </ol>
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <ol>
|
|
|
|
|
+ {catatan?.daftar_kehadiran_peserta?.map((value) =>
|
|
|
|
|
+ <li>
|
|
|
|
|
+ {value.nama}
|
|
|
|
|
+ <button className="bg-transparent button-transparent border-0 fas fa-trash text-danger float-right"
|
|
|
|
|
+ onClick={() => {
|
|
|
|
|
+ this.setState({
|
|
|
|
|
+ selectedPeserta: value._id
|
|
|
|
|
+ })
|
|
|
|
|
+ this.setModalRemovePeserta()
|
|
|
|
|
+ }} />
|
|
|
|
|
+ </li>)}
|
|
|
|
|
+ </ol>
|
|
|
</p>
|
|
</p>
|
|
|
<div className='table-a my-4 pl-5 pr-5' >
|
|
<div className='table-a my-4 pl-5 pr-5' >
|
|
|
<div className=' d-inline-block'>
|
|
<div className=' d-inline-block'>
|
|
@@ -322,6 +360,9 @@ class EditFile extends Component {
|
|
|
|
|
|
|
|
/>
|
|
/>
|
|
|
</td>
|
|
</td>
|
|
|
|
|
+ <td style={{ border: "transparent" }}>
|
|
|
|
|
+ <button onClick={() => this.removeRow(index)} className="bg-transparent button-transparent border-0 fas fa-trash text-danger float-right" />
|
|
|
|
|
+ </td>
|
|
|
</tr>
|
|
</tr>
|
|
|
))}
|
|
))}
|
|
|
</tbody>
|
|
</tbody>
|
|
@@ -329,7 +370,7 @@ class EditFile extends Component {
|
|
|
</div>
|
|
</div>
|
|
|
<div className='table-b my-4 pl-4 pr-5' >
|
|
<div className='table-b my-4 pl-4 pr-5' >
|
|
|
<tr>
|
|
<tr>
|
|
|
- <td style={{ width: "8%" }}>Simpulan :</td>
|
|
|
|
|
|
|
+ <td style={{ width: "8%" }}>Simpulan :</td>
|
|
|
<td >
|
|
<td >
|
|
|
<ContentEditable
|
|
<ContentEditable
|
|
|
html={this.state.simpulan}
|
|
html={this.state.simpulan}
|
|
@@ -337,13 +378,15 @@ class EditFile extends Component {
|
|
|
onChange={(e) => {
|
|
onChange={(e) => {
|
|
|
this.setState({ simpulan: e.target.value });
|
|
this.setState({ simpulan: e.target.value });
|
|
|
}}
|
|
}}
|
|
|
|
|
+ tagName="text"
|
|
|
|
|
+
|
|
|
/>
|
|
/>
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
</div>
|
|
</div>
|
|
|
<div className='table-b my-4 pl-4 pr-5' >
|
|
<div className='table-b my-4 pl-4 pr-5' >
|
|
|
<tr>
|
|
<tr>
|
|
|
- <td style={{ width: "8%" }}>Rekomendasi :</td>
|
|
|
|
|
|
|
+ <td style={{ width: "8%" }}>Rekomendasi :</td>
|
|
|
<td >
|
|
<td >
|
|
|
<ContentEditable
|
|
<ContentEditable
|
|
|
html={this.state.rekomendasi}
|
|
html={this.state.rekomendasi}
|
|
@@ -351,43 +394,40 @@ class EditFile extends Component {
|
|
|
onChange={(e) => {
|
|
onChange={(e) => {
|
|
|
this.setState({ rekomendasi: e.target.value });
|
|
this.setState({ rekomendasi: e.target.value });
|
|
|
}}
|
|
}}
|
|
|
- // tagName="span"
|
|
|
|
|
|
|
+ tagName="text"
|
|
|
/>
|
|
/>
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<Row>
|
|
<Row>
|
|
|
- <Col xl={{ size: 8, offset: 2 }}>
|
|
|
|
|
- <div className="mt-5" >
|
|
|
|
|
- <div className='header-ttd signature-border pt-1 pb-1'>
|
|
|
|
|
- <text className='header-ttd font-weight-bold '>PESERTA RAPAT</text>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div id="ttd">
|
|
|
|
|
- {catatan
|
|
|
|
|
- ? catatan.daftar_kehadiran_peserta?.map((value) => (
|
|
|
|
|
- <div className='ttd-div'>
|
|
|
|
|
- <div className='sign-ttd'>
|
|
|
|
|
- <img
|
|
|
|
|
- className='sign-ttd'
|
|
|
|
|
- src={value.ttd.path} />
|
|
|
|
|
- </div>
|
|
|
|
|
- <div className='sign-nama'>
|
|
|
|
|
- <text>
|
|
|
|
|
- {value.nama}
|
|
|
|
|
- </text>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
- )) : ""}
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </Col>
|
|
|
|
|
- </Row>
|
|
|
|
|
|
|
+ <Col xl={{ size: 8, offset: 2 }}>
|
|
|
|
|
+ <div className="mt-5" >
|
|
|
|
|
+ <div className='header-ttd signature-border pt-1 pb-1'>
|
|
|
|
|
+ <text className='header-ttd font-weight-bold '>PESERTA RAPAT</text>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div id="ttd">
|
|
|
|
|
+ {catatan
|
|
|
|
|
+ ? catatan.daftar_kehadiran_peserta?.map((value) => (
|
|
|
|
|
+ <div className='ttd-div'>
|
|
|
|
|
+ <div className='sign-ttd'>
|
|
|
|
|
+ <img
|
|
|
|
|
+ className='sign-ttd'
|
|
|
|
|
+ src={value?.ttd?.path} />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div className='sign-nama'>
|
|
|
|
|
+ <text>
|
|
|
|
|
+ {value.nama}
|
|
|
|
|
+ </text>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ )) : ""}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </Col>
|
|
|
|
|
+ </Row>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
<Row>
|
|
<Row>
|
|
|
<Col>
|
|
<Col>
|
|
|
{ENV === "local" &&
|
|
{ENV === "local" &&
|
|
@@ -399,9 +439,9 @@ class EditFile extends Component {
|
|
|
<span className="btn-radius">
|
|
<span className="btn-radius">
|
|
|
<Button color id="Popover1" className="ml-0 mb-2 btn-v1-outline-purple" onClick={() => {
|
|
<Button color id="Popover1" className="ml-0 mb-2 btn-v1-outline-purple" onClick={() => {
|
|
|
this.CloseCopiedd()
|
|
this.CloseCopiedd()
|
|
|
- }} ><span><em className="fas fa-project-diagram float-left mt-1 mr-1" /> Link Dokumen</span>
|
|
|
|
|
|
|
+ }} ><span><em className="fas fa-project-diagram float-left mt-1 mr-1" /> Link Dokumen Berita Acara</span>
|
|
|
|
|
|
|
|
- {/* <h5 className="p-0 mt-3 float-right"> <em className="fas fa-project-diagram float-left mt-1" /> Link Dokumen</h5> */}
|
|
|
|
|
|
|
+ {/* <h5 className="p-0 mt-3 float-right"> <em className="fas fa-project-diagram float-left mt-1" /> Link Dokumen Berita Acara</h5> */}
|
|
|
</Button>
|
|
</Button>
|
|
|
</span>
|
|
</span>
|
|
|
<Popover placement="bottom" isOpen={this.state.copiedd} target="Popover1" toggle={this.Copiedd}>
|
|
<Popover placement="bottom" isOpen={this.state.copiedd} target="Popover1" toggle={this.Copiedd}>
|
|
@@ -420,9 +460,9 @@ class EditFile extends Component {
|
|
|
<span className="btn-radius">
|
|
<span className="btn-radius">
|
|
|
<Button color id="Popover1" className="ml-0 mt-2 mb-2 btn-v1-outline-purple" onClick={() => {
|
|
<Button color id="Popover1" className="ml-0 mt-2 mb-2 btn-v1-outline-purple" onClick={() => {
|
|
|
this.CloseCopiedd()
|
|
this.CloseCopiedd()
|
|
|
- }} ><span><em className="fas fa-project-diagram float-left mt-1 mr-1" /> Link Dokumen</span>
|
|
|
|
|
|
|
+ }} ><span><em className="fas fa-project-diagram float-left mt-1 mr-1" /> Link Dokumen Berita Acara</span>
|
|
|
|
|
|
|
|
- {/* <h5 className="p-0 mt-3 float-right"> <em className="fas fa-project-diagram float-left mt-1" /> Link Dokumen</h5> */}
|
|
|
|
|
|
|
+ {/* <h5 className="p-0 mt-3 float-right"> <em className="fas fa-project-diagram float-left mt-1" /> Link Dokumen Berita Acara</h5> */}
|
|
|
</Button>
|
|
</Button>
|
|
|
</span>
|
|
</span>
|
|
|
<Popover placement="bottom" isOpen={this.state.copiedd} target="Popover1" toggle={this.Copiedd}>
|
|
<Popover placement="bottom" isOpen={this.state.copiedd} target="Popover1" toggle={this.Copiedd}>
|
|
@@ -441,9 +481,9 @@ class EditFile extends Component {
|
|
|
<span className="btn-radius">
|
|
<span className="btn-radius">
|
|
|
<Button color id="Popover1" className="ml-0 mt-2 mb-2 btn-v1-outline-purple" onClick={() => {
|
|
<Button color id="Popover1" className="ml-0 mt-2 mb-2 btn-v1-outline-purple" onClick={() => {
|
|
|
this.CloseCopiedd()
|
|
this.CloseCopiedd()
|
|
|
- }} ><span><em className="fas fa-project-diagram float-left mt-1 mr-1" /> Link Dokumen</span>
|
|
|
|
|
|
|
+ }} ><span><em className="fas fa-project-diagram float-left mt-1 mr-1" /> Link Dokumen Berita Acara</span>
|
|
|
|
|
|
|
|
- {/* <h5 className="p-0 mt-3 float-right"> <em className="fas fa-project-diagram float-left mt-1" /> Link Dokumen</h5> */}
|
|
|
|
|
|
|
+ {/* <h5 className="p-0 mt-3 float-right"> <em className="fas fa-project-diagram float-left mt-1" /> Link Dokumen Berita Acara</h5> */}
|
|
|
</Button>
|
|
</Button>
|
|
|
</span>
|
|
</span>
|
|
|
<Popover placement="bottom" isOpen={this.state.copiedd} target="Popover1" toggle={this.Copiedd}>
|
|
<Popover placement="bottom" isOpen={this.state.copiedd} target="Popover1" toggle={this.Copiedd}>
|
|
@@ -457,7 +497,7 @@ class EditFile extends Component {
|
|
|
</Col>
|
|
</Col>
|
|
|
<Col>
|
|
<Col>
|
|
|
<div>
|
|
<div>
|
|
|
- <Button color className="btn-login float-right" onClick={this.handelSimpan} >
|
|
|
|
|
|
|
+ <Button color className="btn-login float-right" onClick={this.handelSimpan} disabled={this.state.judul === ""} >
|
|
|
<span className="font-color-white">
|
|
<span className="font-color-white">
|
|
|
Simpan Catatan
|
|
Simpan Catatan
|
|
|
</span>
|
|
</span>
|