yazid138 3 年 前
コミット
2169611989

+ 7 - 3
actions/pelaporan.js

@@ -3,9 +3,13 @@ import { addLog } from "./log";
 export const getPelaporan = async (query = {}) => {
 	try {
 		let url = "http://localhost:5000/pelaporan";
-		if (query.ptId && query.number) url += `?number=${query.number}&ptId=${query.ptId}`;
-		if (query.penjadwalan) url += "?penjadwalan=true";
-		if (query.pemeriksaan) url += "?pemeriksaan=true";
+		if (query.ptId && query.number) {
+			url += `?number=${query.number}&ptId=${query.ptId}`;
+		} else if (query.penjadwalan) {
+			url += "?penjadwalan=true";
+		} else if (query.pemeriksaan) {
+			url += "?pemeriksaan=true";
+		}
 		const res = await fetch(url);
 		return await res.json();
 	} catch (error) {

+ 13 - 1
actions/sanksi.js

@@ -20,7 +20,19 @@ export const createSanksi = async ({ number, ptId }, data) => {
 export const getSanksi = async (query = {}) => {
 	try {
 		let url = "http://localhost:5000/sanksi";
-		if (query.ptId && query.noSanksi) url += `?noSanksi=${query.noSanksi}&ptId=${query.ptId}`;
+
+		if (query.ptId && query.noSanksi) {
+			url += `?noSanksi=${query.noSanksi}&ptId=${query.ptId}`; // Detail
+		} else if (query.ptId && query.keberatan && query.jawaban) {
+			url += `?ptId=${query.ptId}&keberatan=true&jawaban=true`; // untuk PT Jawaban Keberatan
+		} else if (query.ptId && query.keberatan) {
+			url += `?ptId=${query.ptId}&keberatan=true`; // untuk PT Keberatan & Detail
+		} else if (query.keberatan) {
+			url += `?keberatan=true`;
+		} else if (query.ptId) {
+			url += `?ptId=${query.ptId}`; // Untuk LLDIKTI
+		}
+
 		const res = await fetch(url);
 		return await res.json();
 	} catch (error) {

+ 2 - 2
components/Layout/Menu.js

@@ -34,8 +34,8 @@ const Menu = [
 		translate: "sidebar.nav.SANKSI",
 	},
 	{
-		heading: "Bukan PT",
-		translate: "sidebar.heading.BUKAN_PT",
+		heading: "Dikti Ristek",
+		translate: "sidebar.heading.DIKTI_RISTEK",
 	},
 	{
 		name: "Pemantauan",

+ 4 - 6
components/Main/DetailLaporan.js

@@ -22,13 +22,11 @@ function DetailLaporan({ data, noTitle = false }) {
 				<FormGroup row>
 					<Col md="4">Jenis Pelanggaran:</Col>
 					<Col md="8">
-						<Scrollable height="75px" className="list-group">
+						<Scrollable height="125px" className="list-group">
 							<ul>
-								<li>Lorem ipsum dolor sit.</li>
-								<li>Lorem ipsum dolor sit.</li>
-								{/* {data.pelanggaran.map((e) => (
-									<li>{e.data}</li>
-								))} */}
+								{data.pelanggaran.map((e) => (
+									<li>{e.pelanggaran}</li>
+								))}
 							</ul>
 						</Scrollable>
 					</Col>

+ 1 - 5
components/Penjadwalan/DetailLaporan.js

@@ -72,11 +72,7 @@ export class DetailLaporan extends Component {
 								</td>
 								<td>
 									<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>
+										<ul>{data.pelanggaran ? data.pelanggaran.map((e) => <li>{e.pelanggaran}</li>) : ""}</ul>
 									</Scrollable>
 								</td>
 							</tr>

+ 4 - 4
components/Sanksi/Ringkasan.js

@@ -24,11 +24,11 @@ function Ringkasan({ dataLaporan, dataSanksi, dataUpload }) {
 						<FormGroup row>
 							<Col md="4">Jenis Pelanggaran:</Col>
 							<Col md="8">
-								<Scrollable height="75px" className="list-group">
+								<Scrollable height="125px" className="list-group">
 									<ul>
-										<li>Lorem ipsum dolor sit amet.</li>
-										<li>Lorem, ipsum dolor.</li>
-										<li>Lorem ipsum dolor sit.</li>
+										{dataLaporan.pelanggaran.map((e) => (
+											<li>{e.pelanggaran}</li>
+										))}
 									</ul>
 								</Scrollable>
 							</Col>

+ 1 - 1
pages/app/keberatan/index.js

@@ -11,7 +11,7 @@ class Keberatan extends Component {
 	}
 
 	static getInitialProps = async () => {
-		const sanksi = await getSanksi();
+		const sanksi = await getSanksi({keberatan: true});
 		return { sanksi };
 	};
 

+ 8 - 145
pages/app/pt/jawaban-keberatan/index.js

@@ -1,12 +1,8 @@
 import React, { Component } from "react";
-import Router from "next/router";
 import ContentWrapper from "@/components/Layout/ContentWrapper";
-import { Row, Col, Progress, Button } from "reactstrap";
-import { getPelaporan } from "../../../../actions/pelaporan";
-
-import Sparkline from "@/components/Common/Sparklines";
-import Datatable from "@/components/Tables/Datatable";
-import moment from "moment";
+import { Row, Col } from "reactstrap";
+import { getSanksi } from "@/actions/sanksi";
+import TableSanksi from "@/components/PT/TableSanksi";
 
 class JawabanKeberatan extends Component {
 	constructor(props) {
@@ -14,151 +10,18 @@ class JawabanKeberatan extends Component {
 	}
 
 	static getInitialProps = async () => {
-		const pelaporan = await getPelaporan();
-		return { pelaporan };
-	};
-
-	newReportClick = (e) => {
-		e.preventDefault();
-		Router.push({
-			pathname: "/app/pelaporan/search",
-		});
-	};
-
-	detailJawabanKeberatanClick = (e, ptId, number) => {
-		e.preventDefault();
-		Router.push({
-			pathname: "/app/pt/jawaban-keberatan/detail",
-			// query: { ptId, number },
-		});
+		const sanksi = await getSanksi({ keberatan: true, jawaban: true, ptId: "0BCE4DB7-B207-445D-8D03-0C54B7688252" });
+		return { sanksi };
 	};
 
 	render() {
-		const { pelaporan } = this.props;
+		const { sanksi } = this.props;
+		console.log(sanksi);
 		return (
 			<ContentWrapper>
 				<div className="content-heading">Jawaban Atas Permohonan Keberatan</div>
 				<Row>
-					{/* <Col lg="4">
-						<div className="card b">
-							<div className="card-body bb">
-								<p>Overvall progress</p>
-								<div className="d-flex align-items-center mb-2">
-									<div className="w-100">
-										<Progress className="progress-xs m0" color="info" value={20} />
-									</div>
-									<div className="ml-auto">
-										<div className="col wd-xxs text-right">
-											<div className="text-bold text-muted">20%</div>
-										</div>
-									</div>
-								</div>
-							</div>
-							<div className="card-body">
-								<p>Metrics</p>
-								<div className="row text-center">
-									<div className="col-6 col-lg-6 col-xl-6">
-										<Sparkline
-											values={[20, 80]}
-											options={{
-												type: "pie",
-												height: "50",
-												sliceColors: ["#edf1f2", "#23b7e5"],
-											}}
-											className="sparkline"
-										/>
-										<p className="mt-3">Open Case</p>
-									</div>
-									<div className="col-6 col-lg-6 col-xl-6">
-										<Sparkline
-											values={[80, 20]}
-											options={{
-												type: "pie",
-												height: "50",
-												sliceColors: ["#edf1f2", "#27c24c"],
-											}}
-											className="sparkline"
-										/>
-										<p className="mt-3">Close Case</p>
-									</div>
-								</div>
-							</div>
-							<table className="table bb">
-								<tbody>
-									<tr>
-										<td>
-											<strong>Open Case</strong>
-										</td>
-										<td>80</td>
-									</tr>
-									<tr>
-										<td>
-											<strong>Close Case</strong>
-										</td>
-										<td>20</td>
-									</tr>
-									<tr>
-										<td>
-											<strong>Performance</strong>
-										</td>
-										<td>
-											<em className="far fa-smile fa-lg text-warning"></em>
-										</td>
-									</tr>
-									<tr>
-										<td>
-											<strong>Last Case Closed</strong>
-										</td>
-										<td>BI:1107 - 12/01/2016</td>
-									</tr>
-								</tbody>
-							</table>
-						</div>
-					</Col> */}
-					<Col lg={12}>
-						<div className="card b">
-							<div className="card-body">
-								<Datatable options={{ responsive: true }}>
-									<table className="table w-100">
-										<thead>
-											<tr>
-												<th>#ID</th>
-												<th>Description</th>
-												<th>Created</th>
-												<th>Status</th>
-											</tr>
-										</thead>
-										<tbody>
-											{/* {pelaporan.data.map((value) => {
-											return ( */}
-											<tr key={1}>
-												<td>BI:BI:408066447929</td>
-												<td className="text-nowrap">
-													<div className="media align-items-center">
-														<img className="img-fluid rounded thumb64" src="/static/img/dummy-search.png" alt="Dummy" />
-														<div className="media-body d-flex">
-															<div>
-																<h4 className="m-0">Universitas Satyagama</h4>
-																<small className="text-muted">0742/O/1990 - www.satyagama.ac.id - info@satyagama.ac.id</small>
-																<p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Quis, dolorum?</p>
-															</div>
-														</div>
-													</div>
-												</td>
-												<td>{moment().fromNow()}</td>
-												<td>
-													<Button color="primary" onClick={(e) => this.detailJawabanKeberatanClick(e)}>
-														Detail
-													</Button>
-												</td>
-											</tr>
-											{/* ); })} */}
-										</tbody>
-									</table>
-								</Datatable>
-							</div>
-						</div>
-					</Col>
+					<Col lg={12}>{sanksi.data.length > 0 ? <TableSanksi listData={sanksi.data} to="/app/pt/jawaban-keberatan/detail" linkName="Detail" /> : ""} </Col>
 				</Row>
 			</ContentWrapper>
 		);

+ 2 - 4
pages/app/pt/keberatan/index.js

@@ -10,7 +10,7 @@ class Keberatan extends Component {
 	}
 
 	static getInitialProps = async () => {
-		const sanksi = await getSanksi();
+		const sanksi = await getSanksi({ ptId: "0BCE4DB7-B207-445D-8D03-0C54B7688252" });
 		return { sanksi };
 	};
 
@@ -20,9 +20,7 @@ class Keberatan extends Component {
 			<ContentWrapper>
 				<div className="content-heading">Permohonan Keberatan</div>
 				<Row>
-					<Col lg={12}>
-						<TableSanksi listData={sanksi.data} to="/app/pt/keberatan/detail" linkName="Detail" />
-					</Col>
+					<Col lg={12}>{sanksi.data.length > 0 ? <TableSanksi listData={sanksi.data} to="/app/pt/keberatan/detail" linkName="Detail" /> : ""}</Col>
 				</Row>
 			</ContentWrapper>
 		);