|
@@ -1,8 +1,9 @@
|
|
|
import React, { useRef, Component } from 'react';
|
|
import React, { useRef, Component } from 'react';
|
|
|
import { useReactToPrint } from "react-to-print";
|
|
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 Head from 'next/head'
|
|
|
import SignatureCanvas from 'react-signature-canvas'
|
|
import SignatureCanvas from 'react-signature-canvas'
|
|
|
|
|
+import { connect } from "react-redux";
|
|
|
import ComponentToPrint from "./SuratBA_A";
|
|
import ComponentToPrint from "./SuratBA_A";
|
|
|
import ReactToPrint, { PrintContextConsumer } from 'react-to-print';
|
|
import ReactToPrint, { PrintContextConsumer } from 'react-to-print';
|
|
|
import { getOneLaporan, updateLaporan } from "@/actions/pelaporan";
|
|
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 CopyToClipboard from "react-copy-to-clipboard";
|
|
|
import { getAutoSave } from "@/actions/autosave";
|
|
import { getAutoSave } from "@/actions/autosave";
|
|
|
import ContentEditable from 'react-contenteditable'
|
|
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,
|
|
copied: false,
|
|
|
setmeState: true,
|
|
setmeState: true,
|
|
|
descPelanggaran: [],
|
|
descPelanggaran: [],
|
|
|
|
|
+ modalRemovePeserta: false,
|
|
|
|
|
+ selectedPeserta: ""
|
|
|
};
|
|
};
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -44,7 +50,7 @@ class BeritaAcara extends Component {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
componentDidMount = async () => {
|
|
componentDidMount = async () => {
|
|
|
- const { query, dataPelanggaran } = this.props;
|
|
|
|
|
|
|
+ const { query, token, dataPelanggaran } = this.props;
|
|
|
const { id } = query;
|
|
const { id } = query;
|
|
|
const getDataSave = await getAutoSave({ id, laporan: true });
|
|
const getDataSave = await getAutoSave({ id, laporan: true });
|
|
|
const autosaveDataSuratBA = getDataSave.data?.PenetapanSanksi?.dataSuratBA;
|
|
const autosaveDataSuratBA = getDataSave.data?.PenetapanSanksi?.dataSuratBA;
|
|
@@ -191,11 +197,46 @@ class BeritaAcara extends Component {
|
|
|
}, 1000);
|
|
}, 1000);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ setModalRemovePeserta = (modalRemovePeserta) => {
|
|
|
|
|
+ this.setState({
|
|
|
|
|
+ modalRemovePeserta: !this.state.modalRemovePeserta
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
render() {
|
|
render() {
|
|
|
const { dataLaporan, dataSuratBA, dataPelanggaran } = this.props
|
|
const { dataLaporan, dataSuratBA, dataPelanggaran } = this.props
|
|
|
const { descPelanggaran, tanggal, setTanggal } = this.state
|
|
const { descPelanggaran, tanggal, setTanggal } = this.state
|
|
|
return (
|
|
return (
|
|
|
<div>
|
|
<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'>
|
|
<div className=' content-heading border-radius-login'>
|
|
|
<span className="btn-radius">
|
|
<span className="btn-radius">
|
|
|
<ReactToPrint
|
|
<ReactToPrint
|
|
@@ -258,7 +299,7 @@ class BeritaAcara extends Component {
|
|
|
</span>
|
|
</span>
|
|
|
}
|
|
}
|
|
|
{this.state?.tempat ?
|
|
{this.state?.tempat ?
|
|
|
- <span onClick={this.isEditTempat} className='hhh'>
|
|
|
|
|
|
|
+ <span onClick={this.isEditTempat} className='hhh'>
|
|
|
{dataSuratBA?.tempat || this.state?.tempat}
|
|
{dataSuratBA?.tempat || this.state?.tempat}
|
|
|
</span>
|
|
</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:
|
|
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>
|
|
<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>
|
|
</ol>
|
|
|
</p>
|
|
</p>
|
|
|
<p>
|
|
<p>
|
|
@@ -409,27 +460,27 @@ class BeritaAcara extends Component {
|
|
|
</ol>
|
|
</ol>
|
|
|
</p>
|
|
</p>
|
|
|
<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>
|
|
</p>
|
|
|
<CopyToClipboard
|
|
<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 >
|
|
|
<div className='header-ttd signature-border pt-1 pb-1'>
|
|
<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)
|