|  | @@ -1,8 +1,9 @@
 | 
	
		
			
				|  |  |  import React, { useRef, Component } from 'react';
 | 
	
		
			
				|  |  |  import { useReactToPrint } from "react-to-print";
 | 
	
		
			
				|  |  | -import { Row, Col, Button, Popover, PopoverHeader, PopoverBody, Card, CardBody } from "reactstrap";
 | 
	
		
			
				|  |  | +import { Row, Col, Button, Popover, PopoverHeader, PopoverBody, Card, CardBody, Modal, ModalBody, ModalFooter } from "reactstrap";
 | 
	
		
			
				|  |  |  import Head from 'next/head'
 | 
	
		
			
				|  |  |  import SignatureCanvas from 'react-signature-canvas'
 | 
	
		
			
				|  |  | +import { connect } from "react-redux";
 | 
	
		
			
				|  |  |  import ComponentToPrint from "./SuratBA_A";
 | 
	
		
			
				|  |  |  import ReactToPrint, { PrintContextConsumer } from 'react-to-print';
 | 
	
		
			
				|  |  |  import { getOneLaporan, updateLaporan } from "@/actions/pelaporan";
 | 
	
	
		
			
				|  | @@ -12,6 +13,9 @@ import id from 'date-fns/locale/id';
 | 
	
		
			
				|  |  |  import CopyToClipboard from "react-copy-to-clipboard";
 | 
	
		
			
				|  |  |  import { getAutoSave } from "@/actions/autosave";
 | 
	
		
			
				|  |  |  import ContentEditable from 'react-contenteditable'
 | 
	
		
			
				|  |  | +import { removePesertaPleno } from '../../actions/sanksi';
 | 
	
		
			
				|  |  | +import { ToastContainer, toast } from "react-toastify";
 | 
	
		
			
				|  |  | +import Router from "next/router";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -36,6 +40,8 @@ class BeritaAcara extends Component {
 | 
	
		
			
				|  |  |              copied: false,
 | 
	
		
			
				|  |  |              setmeState: true,
 | 
	
		
			
				|  |  |              descPelanggaran: [],
 | 
	
		
			
				|  |  | +            modalRemovePeserta: false,
 | 
	
		
			
				|  |  | +            selectedPeserta: ""
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -44,7 +50,7 @@ class BeritaAcara extends Component {
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      componentDidMount = async () => {
 | 
	
		
			
				|  |  | -        const { query, dataPelanggaran } = this.props;
 | 
	
		
			
				|  |  | +        const { query, token, dataPelanggaran } = this.props;
 | 
	
		
			
				|  |  |          const { id } = query;
 | 
	
		
			
				|  |  |          const getDataSave = await getAutoSave({ id, laporan: true });
 | 
	
		
			
				|  |  |          const autosaveDataSuratBA = getDataSave.data?.PenetapanSanksi?.dataSuratBA;
 | 
	
	
		
			
				|  | @@ -191,11 +197,46 @@ class BeritaAcara extends Component {
 | 
	
		
			
				|  |  |          }, 1000);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    setModalRemovePeserta = (modalRemovePeserta) => {
 | 
	
		
			
				|  |  | +        this.setState({
 | 
	
		
			
				|  |  | +            modalRemovePeserta: !this.state.modalRemovePeserta
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      render() {
 | 
	
		
			
				|  |  |          const { dataLaporan, dataSuratBA, dataPelanggaran } = this.props
 | 
	
		
			
				|  |  |          const { descPelanggaran, tanggal, setTanggal } = this.state
 | 
	
		
			
				|  |  |          return (
 | 
	
		
			
				|  |  |              <div>
 | 
	
		
			
				|  |  | +                <Modal isOpen={this.state.modalRemovePeserta} >
 | 
	
		
			
				|  |  | +                    <ModalBody>Apakah anda ingin menghapus peserta pleno?</ModalBody>
 | 
	
		
			
				|  |  | +                    <ModalFooter>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                        <Button color className="btn-login"
 | 
	
		
			
				|  |  | +                            onClick={async () => {
 | 
	
		
			
				|  |  | +                                const { query, token } = this.props;
 | 
	
		
			
				|  |  | +                                const { id: laporan_id } = query;
 | 
	
		
			
				|  |  | +                                let update = null;
 | 
	
		
			
				|  |  | +                                const toastid = toast.loading("Please wait...");
 | 
	
		
			
				|  |  | +                                const peserta_id = this.state.selectedPeserta;
 | 
	
		
			
				|  |  | +                                update = await removePesertaPleno(token, { laporan_id, peserta_id });
 | 
	
		
			
				|  |  | +                                if (!update) {
 | 
	
		
			
				|  |  | +                                    toast.update(toastid, { render: "Gagal hapus peserta pleno", type: "error", isLoading: false, autoClose: true, closeButton: true });
 | 
	
		
			
				|  |  | +                                } else {
 | 
	
		
			
				|  |  | +                                    toast.update(toastid, { render: "Berhasil hapus peserta pleno", type: "success", isLoading: false, autoClose: true, closeButton: true });
 | 
	
		
			
				|  |  | +                                    Router.push(`/app/sanksi/proses?id=${laporan_id}`);
 | 
	
		
			
				|  |  | +                                    this.setModalRemovePeserta()
 | 
	
		
			
				|  |  | +                                }
 | 
	
		
			
				|  |  | +                            }}
 | 
	
		
			
				|  |  | +                        >
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                            <span className="font-color-white">Ya</span>
 | 
	
		
			
				|  |  | +                        </Button>
 | 
	
		
			
				|  |  | +                        <Button color className="btn-v2" onClick={this.setModalRemovePeserta}>
 | 
	
		
			
				|  |  | +                            Tidak
 | 
	
		
			
				|  |  | +                        </Button>
 | 
	
		
			
				|  |  | +                    </ModalFooter>
 | 
	
		
			
				|  |  | +                </Modal>
 | 
	
		
			
				|  |  |                  <div className=' content-heading border-radius-login'>
 | 
	
		
			
				|  |  |                      <span className="btn-radius">
 | 
	
		
			
				|  |  |                          <ReactToPrint
 | 
	
	
		
			
				|  | @@ -258,7 +299,7 @@ class BeritaAcara extends Component {
 | 
	
		
			
				|  |  |                                  </span>
 | 
	
		
			
				|  |  |                              }
 | 
	
		
			
				|  |  |                              {this.state?.tempat ?
 | 
	
		
			
				|  |  | -                                <span onClick={this.isEditTempat}  className='hhh'>
 | 
	
		
			
				|  |  | +                                <span onClick={this.isEditTempat} className='hhh'>
 | 
	
		
			
				|  |  |                                       {dataSuratBA?.tempat || this.state?.tempat}
 | 
	
		
			
				|  |  |                                  </span>
 | 
	
		
			
				|  |  |                                  :
 | 
	
	
		
			
				|  | @@ -269,7 +310,17 @@ class BeritaAcara extends Component {
 | 
	
		
			
				|  |  |                              telah dilakukan rapat evaluasi dan pembahasan dugaan pelanggaran penyelenggaraan oleh perguruan tinggi dan/atau badan penyelenggara {dataLaporan.data && (<span>{dataLaporan.data.pt.nama}</span>)}, yang dihadiri oleh:
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                              <ol>
 | 
	
		
			
				|  |  | -                                {dataLaporan.data?.peserta_penetapan_sanksi?.map((value) => <li>{value.nama}</li>)}
 | 
	
		
			
				|  |  | +                                {dataLaporan.data?.peserta_penetapan_sanksi?.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>
 | 
	
	
		
			
				|  | @@ -409,27 +460,27 @@ class BeritaAcara extends Component {
 | 
	
		
			
				|  |  |                              </ol>
 | 
	
		
			
				|  |  |                          </p>
 | 
	
		
			
				|  |  |                          <p>
 | 
	
		
			
				|  |  | -                            Demikian Laporan Evaluasi dan Pembahasan ini dibuat dengan sesungguhnya dan telah dibaca dan dicermati oleh peserta rapat yang hadir. 
 | 
	
		
			
				|  |  | +                            Demikian Laporan Evaluasi dan Pembahasan ini dibuat dengan sesungguhnya dan telah dibaca dan dicermati oleh peserta rapat yang hadir.
 | 
	
		
			
				|  |  |                          </p>
 | 
	
		
			
				|  |  |                          <CopyToClipboard
 | 
	
		
			
				|  |  | -                                text={`https://dev.sidali.kemdikbud.go.id/signature/pleno-sanksi/${dataLaporan.data?._id}`}
 | 
	
		
			
				|  |  | -                                options={{ asHtml: true }}
 | 
	
		
			
				|  |  | -                            >
 | 
	
		
			
				|  |  | -                                <div>
 | 
	
		
			
				|  |  | -                                    <span className="btn-radius">
 | 
	
		
			
				|  |  | -                                        <Button color id="Popover1" className="ml-0 mt-2 mb-2 btn-v1-outline-purple" onClick={() => {
 | 
	
		
			
				|  |  | -                                            this.CloseCopied()
 | 
	
		
			
				|  |  | -                                        }} ><span><em className="fas fa-project-diagram float-left mt-1 mr-1" /> Link Dokumen</span>
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                                            {/* <h5 className="p-0 mt-3 float-right"> <em className="fas fa-project-diagram float-left mt-1" />  Link Dokumen</h5> */}
 | 
	
		
			
				|  |  | -                                        </Button>
 | 
	
		
			
				|  |  | -                                    </span>
 | 
	
		
			
				|  |  | -                                    <Popover placement="bottom" isOpen={this.state.copied} target="Popover1" toggle={this.Copied}>
 | 
	
		
			
				|  |  | -                                        <PopoverHeader>Link Berhasil Disalin</PopoverHeader>
 | 
	
		
			
				|  |  | -                                    </Popover>
 | 
	
		
			
				|  |  | -                                </div>
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                            </CopyToClipboard>
 | 
	
		
			
				|  |  | +                            text={`https://dev.sidali.kemdikbud.go.id/signature/pleno-sanksi/${dataLaporan.data?._id}`}
 | 
	
		
			
				|  |  | +                            options={{ asHtml: true }}
 | 
	
		
			
				|  |  | +                        >
 | 
	
		
			
				|  |  | +                            <div>
 | 
	
		
			
				|  |  | +                                <span className="btn-radius">
 | 
	
		
			
				|  |  | +                                    <Button color id="Popover1" className="ml-0 mt-2 mb-2 btn-v1-outline-purple" onClick={() => {
 | 
	
		
			
				|  |  | +                                        this.CloseCopied()
 | 
	
		
			
				|  |  | +                                    }} ><span><em className="fas fa-project-diagram float-left mt-1 mr-1" /> Link Dokumen</span>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                                        {/* <h5 className="p-0 mt-3 float-right"> <em className="fas fa-project-diagram float-left mt-1" />  Link Dokumen</h5> */}
 | 
	
		
			
				|  |  | +                                    </Button>
 | 
	
		
			
				|  |  | +                                </span>
 | 
	
		
			
				|  |  | +                                <Popover placement="bottom" isOpen={this.state.copied} target="Popover1" toggle={this.Copied}>
 | 
	
		
			
				|  |  | +                                    <PopoverHeader>Link Berhasil Disalin</PopoverHeader>
 | 
	
		
			
				|  |  | +                                </Popover>
 | 
	
		
			
				|  |  | +                            </div>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                        </CopyToClipboard>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                          <div  >
 | 
	
		
			
				|  |  |                              <div className='header-ttd signature-border pt-1 pb-1'>
 | 
	
	
		
			
				|  | @@ -460,4 +511,6 @@ class BeritaAcara extends Component {
 | 
	
		
			
				|  |  |          );
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -export default BeritaAcara
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const mapStateToProps = (state) => ({ user: state.user, token: state.token });
 | 
	
		
			
				|  |  | +export default connect(mapStateToProps)(BeritaAcara)
 |