yazid138 3 years ago
parent
commit
ea2c347887

+ 34 - 1
components/PT/Riwayat.js

@@ -19,7 +19,23 @@ function Riwayat({ data }) {
 							</tr>
 						</thead>
 						<tbody>
-							{data ? (
+							{data.length ? (
+								data.map((value) => (
+									<tr>
+										<td>{moment(value.createAt).format("DD MMMM YYYY")}</td>
+										<td>
+											{value.files.map((e) => (
+												<>
+													<em className="fa-lg far fa-file-code"></em>
+													<a className="text-muted" href={`data:${e.type};base64, ${Buffer.from(e.data).toString("base64")}`} download={e.name}>
+														{e.name}
+													</a>
+												</>
+											))}
+										</td>
+									</tr>
+								))
+							) : data ? (
 								<tr>
 									<td>{moment(data.createAt).format("DD MMMM YYYY")}</td>
 									<td>
@@ -36,6 +52,23 @@ function Riwayat({ data }) {
 							) : (
 								""
 							)}
+							{/* {data ? (
+								<tr>
+									<td>{moment(data.createAt).format("DD MMMM YYYY")}</td>
+									<td>
+										{data.files.map((e) => (
+											<>
+												<em className="fa-lg far fa-file-code"></em>
+												<a className="text-muted" href={`data:${e.type};base64, ${Buffer.from(e.data).toString("base64")}`} download={e.name}>
+													{e.name}
+												</a>
+											</>
+										))}
+									</td>
+								</tr>
+							) : (
+								""
+							)} */}
 						</tbody>
 					</table>
 				</Datatable>

+ 45 - 198
pages/app/pt/dokumen-perbaikan/detail.js

@@ -1,33 +1,14 @@
 import React, { Component } from "react";
 import Router from "next/router";
+import { getSanksi } from "@/actions/sanksi";
+import { addDocPerbaikan } from "@/actions/docPerbaikan";
 import Link from "next/link";
-import Select from "react-select";
-import Datatable from "@/components/Tables/Datatable";
-import Scrollable from "@/components/Common/Scrollable";
-
+import Header from "@/components/Main/Header";
+import DetailPT from "@/components/Main/DetailPT";
+import DetailSanksi from "@/components/Main/DetailSanksi";
+import Riwayat from "@/components/PT/Riwayat";
 import ContentWrapper from "@/components/Layout/ContentWrapper";
-import {
-	Row,
-	Col,
-	Card,
-	CardHeader,
-	CardBody,
-	CardTitle,
-	FormGroup,
-	FormFeedback,
-	FormText,
-	Label,
-	InputGroup,
-	InputGroupAddon,
-	InputGroupButtonDropdown,
-	InputGroupText,
-	Input,
-	Button,
-	DropdownToggle,
-	DropdownMenu,
-	CustomInput,
-	DropdownItem,
-} from "reactstrap";
+import { Row, Col, Card, CardBody, FormGroup, Button } from "reactstrap";
 
 let Dropzone = null;
 class DropzoneWrapper extends Component {
@@ -43,24 +24,19 @@ class DropzoneWrapper extends Component {
 	}
 }
 
-const styleHeaderText = {
-	color: "brown",
-};
-
-const selectInstanceId = 1;
-
-class UploadKeberatan extends Component {
+class DetailPerbaikanDoc extends Component {
 	constructor(props) {
 		super(props);
 		this.state = {
-			selectedOption: null,
 			files: [],
 		};
 	}
 
-	handleChangeSelect = (selectedOption) => {
-		this.setState({ selectedOption });
-	};
+	static async getInitialProps({ query }) {
+		const { noSanksi } = query;
+		const sanksi = await getSanksi({ noSanksi, ptId: "0BCE4DB7-B207-445D-8D03-0C54B7688252" });
+		return { query, sanksi };
+	}
 
 	onDrop = (files) => {
 		this.setState({
@@ -92,8 +68,26 @@ class UploadKeberatan extends Component {
 		});
 	};
 
+	handleKirim = async (e) => {
+		e.preventDefault();
+		const { noSanksi } = this.props.query;
+		const formdata = new FormData();
+		if (this.state.files.length > 0) {
+			this.state.files.forEach((e) => {
+				formdata.append("files", e);
+			});
+			const added = await addDocPerbaikan({ noSanksi, ptId: "0BCE4DB7-B207-445D-8D03-0C54B7688252" }, formdata);
+			if (added) {
+				Router.push({
+					pathname: "/app/pt/dokumen-perbaikan",
+				});
+			}
+		}
+	};
+
 	render() {
 		const { files } = this.state;
+		const { sanksi } = this.props;
 
 		const thumbs = files.map((file, index) => (
 			<Col md={3} key={index}>
@@ -103,22 +97,12 @@ class UploadKeberatan extends Component {
 
 		return (
 			<ContentWrapper unwrap>
-				<div className="bg-cover" style={{ backgroundImage: "url(/static/img/profile-bg.png)" }}>
-					<div className="p-4 text-center" style={styleHeaderText}>
-						<img className="img-thumbnail rounded-circle thumb128" src="/static/img/univ-avatar.png" alt="Avatar" />
-						<h3 className="m-0">Universitas Satyagama</h3>
-						<p>0742/O/1990</p>
-						<p>Jalan Kamal Raya No 2-A Cengkareng</p>
-					</div>
-				</div>
+				<Header />
 				<div className="p-3">
 					<div className="content-heading">
-						<div>
-							Dokumen Perbaikan
-							{/* <small>Form pembuatan laporan baru v.0.1</small> */}
-						</div>
+						<div>Dokumen Perbaikan</div>
 						<div className="ml-auto">
-							<Link href="/app/pt/keberatan">
+							<Link href="/app/pt/dokumen-perbaikan">
 								<button className="btn btn-sm btn-secondary text-sm">&lt; back</button>
 							</Link>
 						</div>
@@ -126,135 +110,10 @@ class UploadKeberatan extends Component {
 					<Row>
 						<Col xl="9">
 							<Card className="card-default">
-								{/* <CardHeader>
-									<label>Informasi Dokumen</label>
-								</CardHeader> */}
 								<CardBody>
 									<Row>
-										<Col lg="6">
-											<p className="lead bb">Detail Laporan</p>
-											<form className="form-horizontal">
-												<FormGroup row>
-													<Col md="4">Nomor Laporan:</Col>
-													<Col md="8">
-														<strong>987654</strong>
-													</Col>
-												</FormGroup>
-												<FormGroup row>
-													<Col md="4">Nama Perguruan Tinggi:</Col>
-													<Col md="8">
-														<strong>Universitas Satyagama</strong>
-													</Col>
-												</FormGroup>
-												<FormGroup row>
-													<Col md="4">Jenis Pelanggaran:</Col>
-													<Col md="8">
-														<Scrollable height="75px" className="list-group">
-															<ul>
-																<li>Lorem ipsum dolor sit amet.</li>
-																<li>Lorem, ipsum dolor.</li>
-																<li>Lorem ipsum dolor sit.</li>
-															</ul>
-														</Scrollable>
-													</Col>
-												</FormGroup>
-												<FormGroup row>
-													<Col md="4">Keterangan Laporan:</Col>
-													<Col md="8">
-														<Scrollable height="100px" className="list-group">
-															<p>
-																Lorem ipsum dolor sit, amet consectetur adipisicing elit. Amet dicta placeat enim illo aspernatur adipisci neque repellendus itaque blanditiis fugit. Quam obcaecati sed
-																perferendis facere.
-															</p>
-														</Scrollable>
-													</Col>
-												</FormGroup>
-												<FormGroup row>
-													<Col md="4">Dibuat Pada:</Col>
-													<Col md="8">
-														<strong>23 Januari 2022</strong>
-													</Col>
-												</FormGroup>
-												<FormGroup row>
-													<Col md="4">Status</Col>
-													<Col md="8">
-														<div className="badge badge-info">Ditindaklanjuti</div>
-													</Col>
-												</FormGroup>
-												<FormGroup row>
-													<Col md="4">File Pendukung</Col>
-													<Col md="8">
-														<Scrollable height="120px" className="list-group">
-															<table className="table table-bordered bg-transparent">
-																<tbody>
-																	<tr>
-																		<td>
-																			<em className="fa-lg far fa-file-code"></em>
-																		</td>
-																		<td>
-																			<a className="text-muted" href="">
-																				database.controller.js
-																			</a>
-																		</td>
-																	</tr>
-																	<tr>
-																		<td>
-																			<em className="fa-lg far fa-file-image"></em>
-																		</td>
-																		<td>
-																			<a className="text-muted" href="">
-																				baground-lg.png
-																			</a>
-																		</td>
-																	</tr>
-																	<tr>
-																		<td>
-																			<em className="fa-lg far fa-file-code"></em>
-																		</td>
-																		<td>
-																			<a className="text-muted" href="">
-																				picture.controller.js
-																			</a>
-																		</td>
-																	</tr>
-																	<tr>
-																		<td>
-																			<em className="fa-lg far fa-file-word"></em>
-																		</td>
-																		<td>
-																			<a className="text-muted" href="">
-																				applicat-diagrams.docx
-																			</a>
-																		</td>
-																	</tr>
-																	<tr>
-																		<td>
-																			<em className="fa-lg far fa-file-code"></em>
-																		</td>
-																		<td>
-																			<a className="text-muted" href="">
-																				database.controller.js
-																			</a>
-																		</td>
-																	</tr>
-																	<tr>
-																		<td>
-																			<em className="fa-lg far fa-file-code"></em>
-																		</td>
-																		<td>
-																			<a className="text-muted" href="">
-																				database.controller.js
-																			</a>
-																		</td>
-																	</tr>
-																</tbody>
-															</table>
-														</Scrollable>
-													</Col>
-												</FormGroup>
-											</form>
-										</Col>
-										<Col lg={6}>
+										<Col lg={12}>
+											<DetailSanksi data={sanksi.data[0]} />
 											<p className="lead bb">Dokumen Perbaikan</p>
 											<form className="form-horizontal" method="get" action="/" onSubmit={this.onSubmit}>
 												<FormGroup>
@@ -283,9 +142,9 @@ class UploadKeberatan extends Component {
 												</FormGroup>
 												<FormGroup>
 													<div className="row-xl-10">
-														<button className="btn btn-sm btn-primary" type="submit">
+														<Button color="primary" onClick={this.handleKirim} type="submit">
 															Kirim
-														</button>
+														</Button>
 													</div>
 												</FormGroup>
 											</form>
@@ -293,26 +152,14 @@ class UploadKeberatan extends Component {
 									</Row>
 								</CardBody>
 							</Card>
-							{/* END card */}
 						</Col>
 						<Col xl="3">
-							<div className="card card-default">
-								<div className="card-body">
-									<div className="text-center">
-										<h3 className="mt-0">Universitas Satyagama</h3>
-										<p>0742/O/1990</p>
-									</div>
-									<hr />
-									<ul className="list-unstyled px-4">
-										<li>
-											<em className="fa fa-globe fa-fw mr-3"></em>www.satyagama.ac.id
-										</li>
-										<li>
-											<em className="fa fa-graduation-cap fa-fw mr-3"></em>Status Pelanggaran : Tidak Ada
-										</li>
-									</ul>
-								</div>
-							</div>
+							<DetailPT />
+						</Col>
+					</Row>
+					<Row>
+						<Col>
+							<Riwayat data={sanksi.data[0].sanksi.doc_perbaikan} />
 						</Col>
 					</Row>
 				</div>
@@ -321,4 +168,4 @@ class UploadKeberatan extends Component {
 	}
 }
 
-export default UploadKeberatan;
+export default DetailPerbaikanDoc;

+ 4 - 2
pages/app/pt/dokumen-perbaikan/index.js

@@ -10,7 +10,7 @@ class Pelaporan extends Component {
 	}
 
 	static getInitialProps = async () => {
-		const sanksi = await getSanksi({ ptId: "0BCE4DB7-B207-445D-8D03-0C54B7688252", docPerbaikan: true });
+		const sanksi = await getSanksi({ ptId: "0BCE4DB7-B207-445D-8D03-0C54B7688252" });
 		return { sanksi };
 	};
 
@@ -22,7 +22,9 @@ class Pelaporan extends Component {
 			<ContentWrapper>
 				<div className="content-heading">Dokumen Perbaikan</div>
 				<Row>
-					<Col lg={12}>{/* <TableSanksi listData={} to="/app/pt/dokumen-perbaikan/detail" linkName="Detail" /> */}</Col>
+					<Col lg={12}>
+						<TableSanksi listData={sanksi.data} to="/app/pt/dokumen-perbaikan/detail" linkName="Detail" />
+					</Col>
 				</Row>
 			</ContentWrapper>
 		);