Browse Source

1. menambahkan jumlah pt hasil search, posisi di search result ✅
3. table jumlah status pelaporan bisa di klik dan muncul list pelaporannya ✅
5. validasi di rekomendasi delegasi PT sudah upload rekomendasi perbaikan✅
5. tanggal versi indonesia ✅

andi 3 năm trước cách đây
mục cha
commit
df0466c012

+ 24 - 2
actions/pelaporan.js

@@ -136,12 +136,34 @@ export const getlaporanByPembina = async (token, idPembina, query = {}) => {
 	try {
 		let url = `/laporan/byPembina/${idPembina}`;
 		if (query != null) {
-			const { idPembina } = query;
+			const { idPembina, jadwal, pemeriksaa, sanksi, keberatan, banding, perbaikan, cabutSanksi } = query;
 			url += "?";
 			const parseURL = [];
 			if (idPembina) {
 				parseURL.push(`idPembina=${idPembina}`);
-			}
+			};
+			if (jadwal) {
+				parseURL.push(`jadwal=true`);
+			};
+			if (pemeriksaa) {
+				parseURL.push(`pemeriksaa=true`);
+			};
+			if (sanksi) {
+				parseURL.push(`sanksi=true`);
+			};
+			if (keberatan) {
+				parseURL.push(`keberatan=true`);
+			};
+			if (banding) {
+				parseURL.push(`banding=true`);
+			};
+			if (perbaikan) {
+				parseURL.push(`perbaikan=true`);
+			};
+			if (cabutSanksi) {
+				parseURL.push(`cabutSanksi=true`);
+			};
+
 			url += parseURL.join("&");
 		}
 		const res = await axiosAPI.get(url, { headers: { Authorization: token } });

+ 5 - 1
components/PerpanjanganSanksi/DetailSanksi.js

@@ -1,5 +1,7 @@
 import Scrollable from "@/components/Common/Scrollable";
 import moment from "moment";
+import 'moment/min/locales';
+moment.locale('id');
 import { CardBody, Col, FormGroup, Table, Card } from "reactstrap";
 import { API_URL } from "@/env";
 
@@ -87,7 +89,9 @@ function DetailSanksi({ data, noTitle = false }) {
 					<FormGroup row>
 						<Col md="4">TMT Berlaku:</Col>
 						<Col md="8">
-							<strong>{moment(data.masa_berlaku.from_date).format("D MMMM YYYY")} - {moment(data.masa_berlaku.to_date).format("D MMMM YYYY")} </strong>
+							{/* <strong>{moment(data.masa_berlaku.from_date).format("D MMMM YYYY")} - {moment(data.masa_berlaku.to_date).format("D MMMM YYYY")} </strong> */}
+							{data.masa_berlaku?.to_date ? (<strong>{moment(data.masa_berlaku?.from_date).format("DD-MMMM-YYYY")} - {moment(data.masa_berlaku?.to_date).format("DD-MMMM-YYYY")}</strong>) : (<strong className="m-0">6 Bulan</strong>)}
+
 						</Col>
 					</FormGroup>
 					<FormGroup row>

+ 9 - 11
components/PerpanjanganSanksi/InputTanggal.js

@@ -1,5 +1,4 @@
 import React, { Component } from "react";
-import { insertPemeriksaan } from "@/actions/pemeriksaan";
 import { Row, Col, Card, CardBody, FormGroup, Input, Button, Modal, ModalHeader, ModalBody, ModalFooter, CardHeader, CardTitle } from "reactstrap";
 import { toast } from "react-toastify";
 import { Formik, Form, Field, ErrorMessage } from "formik";
@@ -8,11 +7,12 @@ import { connect } from "react-redux";
 import { getOneSanksi, editTmt } from "@/actions/sanksi";
 import DatePicker from "react-datepicker";
 import "react-datepicker/dist/react-datepicker.css";
-import ms from "ms";
 import { addDays, addMonths } from 'date-fns';
 import id from 'date-fns/locale/id';
-import { addRekomendasiDelegasi } from "../../actions/sanksi";
-import moment from "moment-timezone";
+import moment from "moment";
+import 'moment/min/locales';
+moment.locale('id');
+import Router from "next/router";
 
 
 const selectInstanceId = 1;
@@ -41,9 +41,9 @@ const checkIfFilesAreCorrectType = (files) => {
 };
 
 const rekomendasiSchema = Yup.object().shape({
-    from_date: Yup.date().notRequired("Wajib diisi"),
-    to_date: Yup.date().notRequired("Wajib diisi"),
-    dokumen: Yup.array().min(1).required("Wajib diisi").test("filesize", "Maksimal ukuran dokumen 15mb", checkIfFilesAreTooBig),
+    from_date: Yup.date().required("Wajib diisi"),
+    to_date: Yup.date().required("Wajib diisi"),
+    dokumen: Yup.array().required("Wajib diisi").test("filesize", "Maksimal ukuran dokumen 15mb", checkIfFilesAreTooBig),
 });
 
 let Dropzone = null;
@@ -149,9 +149,7 @@ class InputTanggal extends Component {
             toast.update(toastid, { render: "All is not good", type: "error", isLoading: false, autoClose: true, closeButton: true });
         } else {
             toast.update(toastid, { render: "All is good", type: "success", isLoading: false, autoClose: true, closeButton: true });
-            const sanksi = await getOneSanksi(token, id);
-            this.setState({ sanksi, files: [], from_date: "", to_date: "" });
-            resetForm();
+            Router.push("/app/perpanjangan-sanksi");
 
         }
 
@@ -253,7 +251,7 @@ class InputTanggal extends Component {
                                                                     <div className="dropzone-style-1">
                                                                         <div className="center-ver-hor dropzone-previews flex">{this.state.files.length > 0 ? <Row><span className="text-left">{thumbs}</span></Row> :
                                                                             <div className="text-center fa-2x icon-cloud-upload mr-2 ">
-                                                                                <h5 className="text-center dz-default dz-message">upload dokumen rekomendasi delegasi</h5>
+                                                                                <h5 className="text-center dz-default dz-message">Upload dokumen rekomendasi delegasi</h5>
                                                                             </div>
                                                                         }
                                                                         </div>

+ 3 - 1
components/PerpanjanganSanksi/TableLaporan.js

@@ -2,6 +2,8 @@ import Datatable from "@/components/Tables/Datatable";
 import { Button } from "reactstrap";
 import Link from "next/link";
 import moment from "moment";
+import 'moment/min/locales';
+moment.locale('id');
 
 function TableLaporan({ listData, to, linkName, status = false, noBy = false }) {
 	return (
@@ -51,7 +53,7 @@ function TableLaporan({ listData, to, linkName, status = false, noBy = false })
 
 
 											<td>
-												{data.sanksi.masa_berlaku?.to_date ? (<h4 className="m-0"> {moment(data.sanksi.masa_berlaku?.from_date).format("DD-MMMM-YYYY")} - {moment(data.sanksi.masa_berlaku?.to_date).format("DD-MMMM-YYYY")}</h4>) : (<h4 className="m-0">6 Bulan</h4>)}
+												{data.sanksi.masa_berlaku?.to_date ? (<h4 className="m-0"> {moment(data.sanksi.masa_berlaku?.from_date).format("DD MMMM YYYY")} - {moment(data.sanksi.masa_berlaku?.to_date).format("DD MMMM YYYY")}</h4>) : (<h4 className="m-0">6 Bulan</h4>)}
 												<p className="w-105">{data.sanksi.keterangan}</p>
 											</td>
 											{!noBy && <td>{data.user.isPrivate ? "" : data.user.nama}</td>}

+ 2 - 0
components/RekomendasiDelegasi/DetailLaporan.js

@@ -1,5 +1,7 @@
 import Scrollable from "@/components/Common/Scrollable";
 import moment from "moment";
+import 'moment/min/locales';
+moment.locale('id');
 import { Col, FormGroup } from "reactstrap";
 import { useSelector } from "react-redux";
 

+ 2 - 0
components/RekomendasiDelegasi/DetailSanksi.js

@@ -1,5 +1,7 @@
 import Scrollable from "@/components/Common/Scrollable";
 import moment from "moment";
+import 'moment/min/locales';
+moment.locale('id');
 import { CardBody, Col, FormGroup, Table, Card } from "reactstrap";
 import { API_URL } from "@/env";
 

+ 3 - 0
components/RekomendasiDelegasi/InputRekomendasi.js

@@ -6,6 +6,9 @@ import { Formik, Form, Field, ErrorMessage } from "formik";
 import * as Yup from "yup";
 import { connect } from "react-redux";
 import { getOneSanksi, addRekomendasiDelegasi } from "@/actions/sanksi";
+import moment from "moment";
+import 'moment/min/locales';
+moment.locale('id');
 
 
 const selectInstanceId = 1;

+ 8 - 6
components/RekomendasiDelegasi/TableLaporan.js

@@ -2,6 +2,8 @@ import Datatable from "@/components/Tables/Datatable";
 import { Button } from "reactstrap";
 import Link from "next/link";
 import moment from "moment";
+import 'moment/min/locales';
+moment.locale('id');
 
 function TableLaporan({ listData, to, linkName, status = false, noBy = false }) {
 	return (
@@ -29,7 +31,7 @@ function TableLaporan({ listData, to, linkName, status = false, noBy = false })
 												<div className="media align-items-center">
 													<div className="media-body d-flex">
 														<div>
-															<h4>{data.no_laporan}</h4>
+															<h4>{data.laporan.no_laporan}</h4>
 															<p>{moment(data.createdAt).format("DD-MMMM-YYYY")}</p>
 														</div>
 													</div>
@@ -41,8 +43,8 @@ function TableLaporan({ listData, to, linkName, status = false, noBy = false })
 													<div className="media align-items-center">
 														<div className="media-body d-flex">
 															<div>
-																<h4 className="m-0">{data.pt.nama.length > 64 ? data.pt.nama.substring(0, 64) + "..." : data.pt.nama}</h4>
-																<p className="w-105">{data.keterangan}</p>
+																<h4 className="m-0">{data.laporan.pt.nama.length > 64 ? data.laporan.pt.nama.substring(0, 64) + "..." : data.laporan.pt.nama}</h4>
+																<p className="w-105">{data.laporan.keterangan}</p>
 															</div>
 														</div>
 													</div>
@@ -51,8 +53,8 @@ function TableLaporan({ listData, to, linkName, status = false, noBy = false })
 
 											{status ? (
 												<td>
-													<h4 className="m-0">{data.role_data === "dikti" ? "Ditindaklanjuti DIKTI" : "Delegasi Ke LLDIKTI"}</h4>
-													<p className="w-105">Sanksi Administratif: {data.sanksi.pelanggaran.map((e) => e.label_sanksi)}</p>
+													<h4 className="m-0">{data.laporan.role_data === "dikti" ? "Ditindaklanjuti DIKTI" : "Delegasi Ke LLDIKTI"}</h4>
+													<p className="w-105">Sanksi Administratif: {data.pelanggaran.map((e) => e.label_sanksi)}</p>
 												</td>
 											) : (
 												""
@@ -63,7 +65,7 @@ function TableLaporan({ listData, to, linkName, status = false, noBy = false })
 													<Link
 														href={{
 															pathname: to,
-															query: { id: data.sanksi?._id },
+															query: { id: data._id },
 														}}
 													>
 														<Button className="btn-login" color>

+ 20 - 13
components/RekomendasiDelegasi/TableRiwayat.js

@@ -1,6 +1,9 @@
 import Datatable from "@/components/Tables/Datatable";
+import moment from "moment";
+import 'moment/min/locales';
+moment.locale('id');
 
-function TableRiwayat({ data }) {
+function TableRiwayat({ data, perbaikan }) {
 	return (
 		// <Datatable options={{ responsive: true }}>
 		<div className="card-over">
@@ -15,7 +18,6 @@ function TableRiwayat({ data }) {
 					</tr>
 				</thead>
 				<tbody>
-
 					<tr>
 						<td>{moment(data.createdAt).format("D MMMM YYYY")}</td>
 						<td>{data.keterangan}</td>
@@ -31,17 +33,22 @@ function TableRiwayat({ data }) {
 								</>
 							))}
 						</td>
-						<td>
-							{data.perbaikan.map((e, index) => (
-								<>
-									<em key="index" className="fa-lg far fa-file-code"></em>
-									<a className="text-muted" href={e.path} target="_blank" download={e.judul}>
-										{e.judul}
-									</a>
-									<br />
-								</>
-							))}
-						</td>
+						{perbaikan.length
+							? perbaikan.map((value) => (
+								<tr>
+									<td>
+										{value.dokumen.map((e) => (
+											<>
+												<em className="fa-lg far fa-file-code"></em>
+												<a className="text-muted" href={e.path} target="_blank" download={e.judul}>
+													{e.judul}
+												</a>
+											</>
+										))}
+									</td>
+								</tr>
+							))
+							: ""}
 					</tr>
 				</tbody>
 			</table>

+ 163 - 0
components/Riwayat/TableRadar.js

@@ -0,0 +1,163 @@
+import React, { Component } from 'react';
+import ContentWrapper from '@/components/Layout/ContentWrapper';
+import Link from "next/link";
+import { Row, Col, Card, CardHeader, CardBody, Table, Button } from 'reactstrap';
+import cabutSanksi from '../../pages/app/riwayat/cabutSanksi';
+
+
+function TableRadar({ listData, to, linkName, jadwal, pemeriksaan, sanksi, keberatan, banding, perbaikan, cabutSanksi }) {
+    return (
+        <Card className="card-default">
+            <CardBody>
+                <Table bordered responsive>
+                    <thead>
+                        <tr >
+                            <th>Wilayah LLDikti\Menu</th>
+                            <th style={{
+                                backgroundColor: '#80b1ff',
+                                color: "black",
+                            }}>Penjadwalan Evaluasi</th>
+                            <th style={{
+                                backgroundColor: '#de8383',
+                                color: "black",
+                            }}>Pemeriksaan</th>
+                            <th style={{
+                                backgroundColor: '#fdda80',
+                                color: "black",
+                            }}>Sanksi</th>
+                            <th style={{
+                                backgroundColor: '#cfab80',
+                                color: "black",
+                            }}>Keberatan</th>
+                            <th style={{
+                                backgroundColor: '#ef90df',
+                                color: "black",
+                            }}>Banding</th>
+                            <th style={{
+                                backgroundColor: '#80df89',
+                                color: "black",
+                            }}>Pemantauan perbaikan</th>
+                            <th style={{
+                                backgroundColor: '#a3d4d1',
+                                color: "black",
+                            }}>Pencabutan Sanksi</th>
+                            <th style={{
+                                backgroundColor: '#e8f2f1',
+                                color: "black",
+                            }}>Lihat Laporan</th>
+                        </tr>
+                    </thead>
+                    {listData.map((data) => {
+                        return (
+                            <tr key={data.id}>
+                                <td>{data.pembina.name}</td>
+                                <Link
+                                    href={{
+                                        pathname: jadwal,
+                                        query: { id: data.pembina.id },
+                                    }}
+                                >
+                                    <td style={{
+                                        backgroundColor: '#80b1ff',
+                                        color: "black",
+                                        textAlign: "center",
+                                    }}>{data.jumlah_jadwal_evaluasi}</td>
+                                </Link>
+                                <Link
+                                    href={{
+                                        pathname: pemeriksaan,
+                                        query: { id: data.pembina.id },
+                                    }}
+                                >
+                                    <td style={{
+                                        backgroundColor: '#de8383',
+                                        color: "black",
+                                        textAlign: "center",
+                                    }}>{data.jumlah_pemeriksaan}</td>
+                                </Link>
+                                <Link
+                                    href={{
+                                        pathname: sanksi,
+                                        query: { id: data.pembina.id },
+                                    }}
+                                >
+                                    <td style={{
+                                        backgroundColor: '#fdda80',
+                                        color: "black",
+                                        textAlign: "center",
+                                    }}>{data.jumlah_sanksi}</td>
+                                </Link>
+                                <Link
+                                    href={{
+                                        pathname: keberatan,
+                                        query: { id: data.pembina.id },
+                                    }}
+                                >
+                                    <td style={{
+                                        backgroundColor: '#cfab80',
+                                        color: "black",
+                                        textAlign: "center",
+                                    }}>{data.jumlah_keberatan}</td>
+                                </Link>
+                                <Link
+                                    href={{
+                                        pathname: banding,
+                                        query: { id: data.pembina.id },
+                                    }}
+                                >
+                                    <td style={{
+                                        backgroundColor: '#ef90df',
+                                        color: "black",
+                                        textAlign: "center",
+                                    }}>{data.jumlah_banding}</td>
+                                </Link>
+                                <Link
+                                    href={{
+                                        pathname: perbaikan,
+                                        query: { id: data.pembina.id },
+                                    }}
+                                >
+                                    <td style={{
+                                        backgroundColor: '#80df89',
+                                        color: "black",
+                                        textAlign: "center",
+                                    }}>{data.jumlah_pemantauan_perbaikan}</td>
+                                </Link>
+                                <Link
+                                    href={{
+                                        pathname: cabutSanksi,
+                                        query: { id: data.pembina.id },
+                                    }}
+                                >
+                                    <td style={{
+                                        backgroundColor: '#a3d4d1',
+                                        color: "black",
+                                        textAlign: "center",
+                                    }}>{data.jumlah_pencabutan_sanksi}</td>
+                                </Link>
+                                <td>
+                                    <div className="ml-auto">
+                                        <Link
+                                            href={{
+                                                pathname: to,
+                                                query: { id: data.pembina.id },
+                                            }}
+                                        >
+                                            <Button className="btn-login" color>
+                                                <span className="font-color-white">
+                                                    {linkName}
+                                                </span>
+                                            </Button>
+                                        </Link>
+                                    </div>
+                                </td>
+                            </tr>)
+                    })}
+                </Table>
+            </CardBody>
+        </Card>
+    )
+}
+
+export default TableRadar
+

+ 0 - 92
components/Riwayat/TableRadarr.js

@@ -1,92 +0,0 @@
-import React, { Component } from 'react';
-import ContentWrapper from '@/components/Layout/ContentWrapper';
-import { Row, Col, Card, CardHeader, CardBody, Table } from 'reactstrap';
-
-
-function TableRadarr({ listData }) {
-    return (
-        <Card className="card-default">
-            <CardBody>
-                <Table bordered responsive>
-                    <thead>
-                        <tr >
-                            <th>Wilayah LLDikti\Menu</th>
-                            <th style={{
-                                backgroundColor: '#80b1ff',
-                                color: "black",
-                            }}>Penjadwalan Evaluasi</th>
-                            <th style={{
-                                backgroundColor: '#de8383',
-                                color: "black",
-                            }}>Pemeriksaan</th>
-                            <th style={{
-                                backgroundColor: '#fdda80',
-                                color: "black",
-                            }}>Sanksi</th>
-                            <th style={{
-                                backgroundColor: '#cfab80',
-                                color: "black",
-                            }}>Keberatan</th>
-                            <th style={{
-                                backgroundColor: '#ef90df',
-                                color: "black",
-                            }}>Banding</th>
-                            <th style={{
-                                backgroundColor: '#80df89',
-                                color: "black",
-                            }}>Pemantauan perbaikan</th>
-                            <th style={{
-                                backgroundColor: '#a3d4d1',
-                                color: "black",
-                            }}>Pencabutan Sanksi</th>
-                        </tr>
-                    </thead>
-                    {listData.map((data) => {
-                        return (
-                            <tr key={data.id}>
-                                <td>{data.pembina.name}</td>
-                                <td style={{
-                                    backgroundColor: '#80b1ff',
-                                    color: "black",
-                                    textAlign: "center",
-                                }}>{data.jumlah_jadwal_evaluasi}</td>
-                                <td style={{
-                                    backgroundColor: '#de8383',
-                                    color: "black",
-                                    textAlign: "center",
-                                }}>{data.jumlah_pemeriksaan}</td>
-                                <td style={{
-                                    backgroundColor: '#fdda80',
-                                    color: "black",
-                                    textAlign: "center",
-                                }}>{data.jumlah_sanksi}</td>
-                                <td style={{
-                                    backgroundColor: '#cfab80',
-                                    color: "black",
-                                    textAlign: "center",
-                                }}>{data.jumlah_keberatan}</td>
-                                <td style={{
-                                    backgroundColor: '#ef90df',
-                                    color: "black",
-                                    textAlign: "center",
-                                }}>{data.jumlah_banding}</td>
-                                <td style={{
-                                    backgroundColor: '#80df89',
-                                    color: "black",
-                                    textAlign: "center",
-                                }}>{data.jumlah_pemantauan_perbaikan}</td>
-                                <td style={{
-                                    backgroundColor: '#a3d4d1',
-                                    color: "black",
-                                    textAlign: "center",
-                                }}>{data.jumlah_pencabutan_sanksi}</td>
-                            </tr>)
-                    })}
-                </Table>
-            </CardBody>
-        </Card>
-    )
-}
-
-export default TableRadarr
-

+ 1 - 2
pages/app/pelaporan/search.js

@@ -163,8 +163,7 @@ class Search extends Component {
 							</div>
 						</div>
 						<div className="card card-default">
-							<div className="card-header">Search Results</div>
-							<Table striped bordered hover>
+							{this.state.data.length ? (<div className="card-header">Jumlah Pencarian : {this.state.data.length}</div>) : (<div className="card-header">Search results</div>)}							<Table striped bordered hover>
 								<thead>
 									<tr>
 										<th>No. </th>

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

@@ -148,7 +148,7 @@ class Search extends Component {
 						</div>
 						{/* START card */}
 						<div className="card card-default">
-							<div className="card-header">Search Results</div>
+							{this.state.data.length ? (<div className="card-header">Jumlah Pencarian : {this.state.data.length}</div>) : (<div className="card-header">Search results</div>)}
 							{/* START table-responsive */}
 							<Table striped bordered hover>
 								<thead>

+ 6 - 4
pages/app/rekomendasi-delegasi/detail.js

@@ -18,6 +18,7 @@ class Detail extends Component {
 			files: [],
 			pt: {},
 			data: {},
+			perbaikan: {},
 		};
 	}
 
@@ -30,14 +31,15 @@ class Detail extends Component {
 		const idSanksi = query.id;
 		const sanksi = await getOneSanksi(token, idSanksi, { all: true });
 		const pt = sanksi.data.laporan.pt;
-		this.setState({ sanksi, pt });
-		console.log(sanksi)
+		const perbaikan = sanksi.data.perbaikan.map((e) => e.dokumen)
+		this.setState({ sanksi, pt, perbaikan });
+		console.log(perbaikan)
 
 	};
 
 
 	render() {
-		const { files, sanksi, pt } = this.state;
+		const { files, sanksi, pt, perbaikan } = this.state;
 		const { query, token } = this.props;
 		return (
 			<ContentWrapper unwrap>
@@ -67,7 +69,7 @@ class Detail extends Component {
 										<CardTitle>Riwayat</CardTitle>
 									</CardHeader>
 									<CardBody>
-										<TableRiwayat data={sanksi.data} />
+										<TableRiwayat data={sanksi.data} perbaikan={sanksi.data.perbaikan} />
 									</CardBody>
 								</Card>
 								<InputRekomendasi query={query} token={token} data={sanksi.data} />

+ 2 - 1
pages/app/rekomendasi-delegasi/index.js

@@ -2,6 +2,7 @@ import React, { Component } from "react";
 import ContentWrapper from "@/components/Layout/ContentWrapper";
 import { Row, Col } from "reactstrap";
 import { getPelaporan } from "@/actions/pelaporan";
+import { getSanksi } from "@/actions/sanksi";
 import TableLaporan from "@/components/RekomendasiDelegasi/TableLaporan";
 import { connect } from "react-redux";
 import Loader from "@/components/Common/Loader";
@@ -18,7 +19,7 @@ class RekomendasiDelegasi extends Component {
 
 	componentDidMount = async () => {
 		const { token } = this.props;
-		const pelaporan = await getPelaporan(token, { delegasi: true, sanksi: true });
+		const pelaporan = await getSanksi(token, { delegasi: true, sanksi: true, cabutSanksi: true });
 		this.setState({ pelaporan });
 	};
 

+ 64 - 0
pages/app/riwayat/banding.js

@@ -0,0 +1,64 @@
+import React, { Component } from "react";
+import ContentWrapper from "@/components/Layout/ContentWrapper";
+import Link from "next/link";
+import { Row, Col, Button } from "reactstrap";
+import { connect } from "react-redux";
+import Loader from "@/components/Common/Loader";
+import Router from "next/router";
+import TableRiwayat from "@/components/Riwayat/TableRiwayat";
+import ChartData from "@/components/Riwayat/ChartData";
+import ChartDataBar from "@/components/Riwayat/ChartDataBar";
+import Maps from "@/components/Riwayat/Maps"
+import TableRiwayatt from "../../../components/Riwayat/TableRiwayatt";
+import TableRadar from "../../../components/Riwayat/TableRadar";
+import { getjumlahStatusLaporan } from "../../../actions/graph";
+import { getOneLaporan, getPelaporan, getlaporanByPembina } from "../../../actions/pelaporan";
+import ChartRadarB from "../../../components/Riwayat/ChartRadarB";
+import ChartRadarA from "../../../components/Riwayat/ChartRadarA";
+import TableLaporan from "../../../components/Riwayat/TableLaporan";
+
+
+
+class Banding extends Component {
+    constructor(props) {
+        super(props);
+        this.state = {
+            laporanPembina: {},
+            laporan: {},
+
+        };
+    }
+
+    static getInitialProps = async ({ query }) => {
+        return { query };
+    }
+
+    componentDidMount = async () => {
+        const { token, query } = this.props;
+        const id = query.id;
+        const idPembina = id;
+        const laporanPembina = await getlaporanByPembina(token, idPembina, { banding: true });
+        const laporan = laporanPembina.data.sanksi.map((e) => e.laporan)
+        this.setState({ laporanPembina, laporan });
+    };
+
+    render() {
+        const { laporanPembina, laporan } = this.state;
+        return (
+            <ContentWrapper>
+                <div className="content-heading">
+                    <span className="font-color-white">List Laporan Wilayah</span>
+                </div>
+                <Row>
+                    <Col lg="12">
+                        {laporanPembina.data && < TableLaporan listData={laporan} to="/app/pelaporan/detail" linkName="Detail" />}
+
+
+                    </Col>
+                </Row>
+            </ContentWrapper>
+        );
+    }
+}
+const mapStateToProps = (state) => ({ user: state.user, token: state.token });
+export default connect(mapStateToProps)(Banding);

+ 63 - 0
pages/app/riwayat/cabutSanksi.js

@@ -0,0 +1,63 @@
+import React, { Component } from "react";
+import ContentWrapper from "@/components/Layout/ContentWrapper";
+import Link from "next/link";
+import { Row, Col, Button } from "reactstrap";
+import { connect } from "react-redux";
+import Loader from "@/components/Common/Loader";
+import Router from "next/router";
+import TableRiwayat from "@/components/Riwayat/TableRiwayat";
+import ChartData from "@/components/Riwayat/ChartData";
+import ChartDataBar from "@/components/Riwayat/ChartDataBar";
+import Maps from "@/components/Riwayat/Maps"
+import TableRiwayatt from "../../../components/Riwayat/TableRiwayatt";
+import TableRadar from "../../../components/Riwayat/TableRadar";
+import { getjumlahStatusLaporan } from "../../../actions/graph";
+import { getOneLaporan, getPelaporan, getlaporanByPembina } from "../../../actions/pelaporan";
+import ChartRadarB from "../../../components/Riwayat/ChartRadarB";
+import ChartRadarA from "../../../components/Riwayat/ChartRadarA";
+import TableLaporan from "../../../components/Riwayat/TableLaporan";
+
+
+
+class cabutSanksi extends Component {
+    constructor(props) {
+        super(props);
+        this.state = {
+            laporanPembina: {},
+
+        };
+    }
+
+    static getInitialProps = async ({ query }) => {
+        return { query };
+    }
+
+    componentDidMount = async () => {
+        const { token, query } = this.props;
+        const id = query.id;
+        const idPembina = id;
+        const laporanPembina = await getlaporanByPembina(token, idPembina, { cabutSanksi: true });
+        const laporan = laporanPembina.data.sanksi.map((e) => e.laporan)
+        this.setState({ laporanPembina, laporan });
+    };
+
+    render() {
+        const { laporanPembina, laporan } = this.state;
+        return (
+            <ContentWrapper>
+                <div className="content-heading">
+                    <span className="font-color-white">List Laporan Wilayah</span>
+                </div>
+                <Row>
+                    <Col lg="12">
+                        {laporanPembina.data && < TableLaporan listData={laporan} to="/app/pelaporan/detail" linkName="Detail" />}
+
+
+                    </Col>
+                </Row>
+            </ContentWrapper>
+        );
+    }
+}
+const mapStateToProps = (state) => ({ user: state.user, token: state.token });
+export default connect(mapStateToProps)(cabutSanksi);

+ 4 - 3
pages/app/riwayat/detail.js

@@ -10,7 +10,7 @@ import ChartData from "@/components/Riwayat/ChartData";
 import ChartDataBar from "@/components/Riwayat/ChartDataBar";
 import Maps from "@/components/Riwayat/Maps"
 import TableRiwayatt from "../../../components/Riwayat/TableRiwayatt";
-import TableRadarr from "../../../components/Riwayat/TableRadarr";
+import TableRadar from "../../../components/Riwayat/TableRadar";
 import { getjumlahStatusLaporan } from "../../../actions/graph";
 import { getOneLaporan, getPelaporan, getlaporanByPembina } from "../../../actions/pelaporan";
 import ChartRadarB from "../../../components/Riwayat/ChartRadarB";
@@ -38,7 +38,6 @@ class laporanByPembina extends Component {
         const id = query.id;
         const idPembina = id;
         const laporanPembina = await getlaporanByPembina(token, idPembina);
-        // const pembina = laporanPembina.data.laporan.map((e) => e.pt.pembina)
         this.setState({ laporanPembina });
     };
 
@@ -51,7 +50,9 @@ class laporanByPembina extends Component {
                 </div>
                 <Row>
                     <Col lg="12">
-                        {laporanPembina?.data ? < TableLaporan listData={laporanPembina.data.laporan} to="/app/pelaporan/detail" linkName="Detail" /> : <Loader />}
+                        {laporanPembina.data && < TableLaporan listData={laporanPembina.data.laporan} to="/app/pelaporan/detail" linkName="Detail" />}
+
+
                     </Col>
                 </Row>
             </ContentWrapper>

+ 3 - 109
pages/app/riwayat/index.js

@@ -10,7 +10,7 @@ import ChartData from "@/components/Riwayat/ChartData";
 import ChartDataBar from "@/components/Riwayat/ChartDataBar";
 import Maps from "@/components/Riwayat/Maps"
 import TableRiwayatt from "../../../components/Riwayat/TableRiwayatt";
-import TableRadarr from "../../../components/Riwayat/TableRadarr";
+import TableRadar from "../../../components/Riwayat/TableRadar";
 import { getjumlahStatusLaporan } from "../../../actions/graph";
 import ChartRadarB from "../../../components/Riwayat/ChartRadarB";
 import ChartRadarA from "../../../components/Riwayat/ChartRadarA";
@@ -37,6 +37,7 @@ class Riwayat extends Component {
     const { token } = this.props;
     const jumlahStatusLaporan = await getjumlahStatusLaporan(token);
     this.setState({ jumlahStatusLaporan });
+    console.log(jumlahStatusLaporan)
   };
 
 
@@ -61,116 +62,9 @@ class Riwayat extends Component {
             <ChartRadarB />
           </Col>
           <Col lg="12">
-            {/* {jumlahStatusLaporan?.data ? <TableRadarr listData={jumlahStatusLaporan.data} to="/app/riwayat/detail" /> : <Loader />} */}
-            <Card className="card-default">
-              <CardBody>
-                <Table bordered responsive>
-                  <thead>
-                    <tr >
-                      <th>Wilayah LLDikti\Menu</th>
-                      <th style={{
-                        backgroundColor: '#80b1ff',
-                        color: "black",
-                      }}>Penjadwalan Evaluasi</th>
-                      <th style={{
-                        backgroundColor: '#de8383',
-                        color: "black",
-                      }}>Pemeriksaan</th>
-                      <th style={{
-                        backgroundColor: '#fdda80',
-                        color: "black",
-                      }}>Sanksi</th>
-                      <th style={{
-                        backgroundColor: '#cfab80',
-                        color: "black",
-                      }}>Keberatan</th>
-                      <th style={{
-                        backgroundColor: '#ef90df',
-                        color: "black",
-                      }}>Banding</th>
-                      <th style={{
-                        backgroundColor: '#80df89',
-                        color: "black",
-                      }}>Pemantauan Perbaikan</th>
-                      <th style={{
-                        backgroundColor: '#a3d4d1',
-                        color: "black",
-                      }}>Pencabutan Sanksi</th>
-                      <th style={{
-                        backgroundColor: '#a3d4d1',
-                        color: "black",
-                      }}>Lihat laporan</th>
-                      {/* <th style={{
-                        backgroundColor: '#a3d4d1',
-                        color: "black",
-                      }}>list laporan</th> */}
-                    </tr>
-                  </thead>
-                  {jumlahStatusLaporan.data && jumlahStatusLaporan.data.map((data) => {
-                    return (
-                      <tr key={data.id}>
-                        <td>{data.pembina.name}</td>
-                        <td style={{
-                          backgroundColor: '#80b1ff',
-                          color: "black",
-                          textAlign: "center",
-                        }}>{data.jumlah_jadwal_evaluasi}</td>
-                        <td style={{
-                          backgroundColor: '#de8383',
-                          color: "black",
-                          textAlign: "center",
-                        }}>{data.jumlah_pemeriksaan}</td>
-                        <td style={{
-                          backgroundColor: '#fdda80',
-                          color: "black",
-                          textAlign: "center",
-                        }}>{data.jumlah_sanksi}</td>
-                        <td style={{
-                          backgroundColor: '#cfab80',
-                          color: "black",
-                          textAlign: "center",
-                        }}>{data.jumlah_keberatan}</td>
-                        <td style={{
-                          backgroundColor: '#ef90df',
-                          color: "black",
-                          textAlign: "center",
-                        }}>{data.jumlah_banding}</td>
-                        <td style={{
-                          backgroundColor: '#80df89',
-                          color: "black",
-                          textAlign: "center",
-                        }}>{data.jumlah_pemantauan_perbaikan}</td>
-                        <td style={{
-                          backgroundColor: '#a3d4d1',
-                          color: "black",
-                          textAlign: "center",
-                        }}>{data.jumlah_pencabutan_sanksi}
-                        </td>
-
-                        <td style={{
-                          backgroundColor: '#a3d4d1',
-                          color: "black",
-                          textAlign: "center",
-                        }}><div className="ml-auto">
-                            <Button className="color-3e3a8e" color size="sm" onClick={(e) => this.handleClick(e, data.pembina.id)}>
-                              <span className="font-color-white">
-                                View
-                              </span>
-                            </Button>
-                          </div>
-                        </td>
-
-                      </tr>)
-                  })}
-                </Table>
-              </CardBody>
-            </Card>
+            {jumlahStatusLaporan?.data ? <TableRadar listData={jumlahStatusLaporan.data} to="/app/riwayat/detail" jadwal="/app/riwayat/penjadwalan" pemeriksaan="/app/riwayat/pemeriksaan" sanksi="/app/riwayat/sanksi" keberatan="/app/riwayat/keberatan" banding="/app/riwayat/banding" perbaikan="/app/riwayat/perbaikan" cabutSanksi="/app/riwayat/cabutSanksi" linkName="Lihat" /> : <Loader />}
           </Col>
-          {/* <Col lg="12">
-            {jumlahStatusLaporan?.data ? <TableRadar listData={jumlahStatusLaporan.data} /> : <Loader />}
-          </Col> */}
           <ChartData />
-          {/* <TableRiwayat /> */}
           <Col lg="12">
             <TableRiwayatt />
           </Col>

+ 64 - 0
pages/app/riwayat/keberatan.js

@@ -0,0 +1,64 @@
+import React, { Component } from "react";
+import ContentWrapper from "@/components/Layout/ContentWrapper";
+import Link from "next/link";
+import { Row, Col, Button } from "reactstrap";
+import { connect } from "react-redux";
+import Loader from "@/components/Common/Loader";
+import Router from "next/router";
+import TableRiwayat from "@/components/Riwayat/TableRiwayat";
+import ChartData from "@/components/Riwayat/ChartData";
+import ChartDataBar from "@/components/Riwayat/ChartDataBar";
+import Maps from "@/components/Riwayat/Maps"
+import TableRiwayatt from "../../../components/Riwayat/TableRiwayatt";
+import TableRadar from "../../../components/Riwayat/TableRadar";
+import { getjumlahStatusLaporan } from "../../../actions/graph";
+import { getOneLaporan, getPelaporan, getlaporanByPembina } from "../../../actions/pelaporan";
+import ChartRadarB from "../../../components/Riwayat/ChartRadarB";
+import ChartRadarA from "../../../components/Riwayat/ChartRadarA";
+import TableLaporan from "../../../components/Riwayat/TableLaporan";
+
+
+
+class Keberatan extends Component {
+    constructor(props) {
+        super(props);
+        this.state = {
+            laporanPembina: {},
+            laporan: {},
+
+        };
+    }
+
+    static getInitialProps = async ({ query }) => {
+        return { query };
+    }
+
+    componentDidMount = async () => {
+        const { token, query } = this.props;
+        const id = query.id;
+        const idPembina = id;
+        const laporanPembina = await getlaporanByPembina(token, idPembina, { keberatan: true });
+        const laporan = laporanPembina.data.sanksi.map((e) => e.laporan)
+        this.setState({ laporanPembina, laporan });
+    };
+
+    render() {
+        const { laporanPembina, laporan } = this.state;
+        return (
+            <ContentWrapper>
+                <div className="content-heading">
+                    <span className="font-color-white">List Laporan Wilayah</span>
+                </div>
+                <Row>
+                    <Col lg="12">
+                        {laporanPembina.data && < TableLaporan listData={laporan} to="/app/pelaporan/detail" linkName="Detail" />}
+
+
+                    </Col>
+                </Row>
+            </ContentWrapper>
+        );
+    }
+}
+const mapStateToProps = (state) => ({ user: state.user, token: state.token });
+export default connect(mapStateToProps)(Keberatan);

+ 63 - 0
pages/app/riwayat/pemeriksaan.js

@@ -0,0 +1,63 @@
+import React, { Component } from "react";
+import ContentWrapper from "@/components/Layout/ContentWrapper";
+import Link from "next/link";
+import { Row, Col, Button } from "reactstrap";
+import { connect } from "react-redux";
+import Loader from "@/components/Common/Loader";
+import Router from "next/router";
+import TableRiwayat from "@/components/Riwayat/TableRiwayat";
+import ChartData from "@/components/Riwayat/ChartData";
+import ChartDataBar from "@/components/Riwayat/ChartDataBar";
+import Maps from "@/components/Riwayat/Maps"
+import TableRiwayatt from "../../../components/Riwayat/TableRiwayatt";
+import TableRadar from "../../../components/Riwayat/TableRadar";
+import { getjumlahStatusLaporan } from "../../../actions/graph";
+import { getOneLaporan, getPelaporan, getlaporanByPembina } from "../../../actions/pelaporan";
+import ChartRadarB from "../../../components/Riwayat/ChartRadarB";
+import ChartRadarA from "../../../components/Riwayat/ChartRadarA";
+import TableLaporan from "../../../components/Riwayat/TableLaporan";
+
+
+
+class Pemeriksaan extends Component {
+    constructor(props) {
+        super(props);
+        this.state = {
+            laporanPembina: {},
+
+        };
+    }
+
+    static getInitialProps = async ({ query }) => {
+        return { query };
+    }
+
+    componentDidMount = async () => {
+        const { token, query } = this.props;
+        const id = query.id;
+        const idPembina = id;
+        const laporanPembina = await getlaporanByPembina(token, idPembina, { pemeriksaa: true });
+        // const pembina = laporanPembina.data.laporan.map((e) => e.pt.pembina)
+        this.setState({ laporanPembina, });
+    };
+
+    render() {
+        const { laporanPembina } = this.state;
+        return (
+            <ContentWrapper>
+                <div className="content-heading">
+                    <span className="font-color-white">List Laporan Wilayah</span>
+                </div>
+                <Row>
+                    <Col lg="12">
+                        {laporanPembina.data && < TableLaporan listData={laporanPembina.data.laporan} to="/app/pelaporan/detail" linkName="Detail" />}
+
+
+                    </Col>
+                </Row>
+            </ContentWrapper>
+        );
+    }
+}
+const mapStateToProps = (state) => ({ user: state.user, token: state.token });
+export default connect(mapStateToProps)(Pemeriksaan);

+ 64 - 0
pages/app/riwayat/penjadwalan.js

@@ -0,0 +1,64 @@
+import React, { Component } from "react";
+import ContentWrapper from "@/components/Layout/ContentWrapper";
+import Link from "next/link";
+import { Row, Col, Button } from "reactstrap";
+import { connect } from "react-redux";
+import Loader from "@/components/Common/Loader";
+import Router from "next/router";
+import TableRiwayat from "@/components/Riwayat/TableRiwayat";
+import ChartData from "@/components/Riwayat/ChartData";
+import ChartDataBar from "@/components/Riwayat/ChartDataBar";
+import Maps from "@/components/Riwayat/Maps"
+import TableRiwayatt from "../../../components/Riwayat/TableRiwayatt";
+import TableRadar from "../../../components/Riwayat/TableRadar";
+import { getjumlahStatusLaporan } from "../../../actions/graph";
+import { getOneLaporan, getPelaporan, getlaporanByPembina } from "../../../actions/pelaporan";
+import ChartRadarB from "../../../components/Riwayat/ChartRadarB";
+import ChartRadarA from "../../../components/Riwayat/ChartRadarA";
+import TableLaporan from "../../../components/Riwayat/TableLaporan";
+
+
+
+class Penjadwalan extends Component {
+    constructor(props) {
+        super(props);
+        this.state = {
+            laporanPembina: {},
+
+        };
+    }
+
+    static getInitialProps = async ({ query }) => {
+        return { query };
+    }
+
+    componentDidMount = async () => {
+        const { token, query } = this.props;
+        const id = query.id;
+        const idPembina = id;
+        const laporanPembina = await getlaporanByPembina(token, idPembina, { jadwal: true });
+        // const pembina = laporanPembina.data.laporan.map((e) => e.pt.pembina)
+        this.setState({ laporanPembina, });
+        console.log(laporanPembina)
+    };
+
+    render() {
+        const { laporanPembina } = this.state;
+        return (
+            <ContentWrapper>
+                <div className="content-heading">
+                    <span className="font-color-white">List Laporan Wilayah</span>
+                </div>
+                <Row>
+                    <Col lg="12">
+                        {laporanPembina.data && < TableLaporan listData={laporanPembina.data.laporan} to="/app/pelaporan/detail" linkName="Detail" />}
+
+
+                    </Col>
+                </Row>
+            </ContentWrapper>
+        );
+    }
+}
+const mapStateToProps = (state) => ({ user: state.user, token: state.token });
+export default connect(mapStateToProps)(Penjadwalan);

+ 64 - 0
pages/app/riwayat/perbaikan.js

@@ -0,0 +1,64 @@
+import React, { Component } from "react";
+import ContentWrapper from "@/components/Layout/ContentWrapper";
+import Link from "next/link";
+import { Row, Col, Button } from "reactstrap";
+import { connect } from "react-redux";
+import Loader from "@/components/Common/Loader";
+import Router from "next/router";
+import TableRiwayat from "@/components/Riwayat/TableRiwayat";
+import ChartData from "@/components/Riwayat/ChartData";
+import ChartDataBar from "@/components/Riwayat/ChartDataBar";
+import Maps from "@/components/Riwayat/Maps"
+import TableRiwayatt from "../../../components/Riwayat/TableRiwayatt";
+import TableRadar from "../../../components/Riwayat/TableRadar";
+import { getjumlahStatusLaporan } from "../../../actions/graph";
+import { getOneLaporan, getPelaporan, getlaporanByPembina } from "../../../actions/pelaporan";
+import ChartRadarB from "../../../components/Riwayat/ChartRadarB";
+import ChartRadarA from "../../../components/Riwayat/ChartRadarA";
+import TableLaporan from "../../../components/Riwayat/TableLaporan";
+
+
+
+class Perbaikan extends Component {
+    constructor(props) {
+        super(props);
+        this.state = {
+            laporanPembina: {},
+            laporan: {},
+
+        };
+    }
+
+    static getInitialProps = async ({ query }) => {
+        return { query };
+    }
+
+    componentDidMount = async () => {
+        const { token, query } = this.props;
+        const id = query.id;
+        const idPembina = id;
+        const laporanPembina = await getlaporanByPembina(token, idPembina, { perbaikan: true });
+        const laporan = laporanPembina.data.sanksi.map((e) => e.laporan)
+        this.setState({ laporanPembina, laporan });
+    };
+
+    render() {
+        const { laporanPembina, laporan } = this.state;
+        return (
+            <ContentWrapper>
+                <div className="content-heading">
+                    <span className="font-color-white">List Laporan Wilayah</span>
+                </div>
+                <Row>
+                    <Col lg="12">
+                        {laporanPembina.data && < TableLaporan listData={laporan} to="/app/pelaporan/detail" linkName="Detail" />}
+
+
+                    </Col>
+                </Row>
+            </ContentWrapper>
+        );
+    }
+}
+const mapStateToProps = (state) => ({ user: state.user, token: state.token });
+export default connect(mapStateToProps)(Perbaikan);

+ 64 - 0
pages/app/riwayat/sanksi.js

@@ -0,0 +1,64 @@
+import React, { Component } from "react";
+import ContentWrapper from "@/components/Layout/ContentWrapper";
+import Link from "next/link";
+import { Row, Col, Button } from "reactstrap";
+import { connect } from "react-redux";
+import Loader from "@/components/Common/Loader";
+import Router from "next/router";
+import TableRiwayat from "@/components/Riwayat/TableRiwayat";
+import ChartData from "@/components/Riwayat/ChartData";
+import ChartDataBar from "@/components/Riwayat/ChartDataBar";
+import Maps from "@/components/Riwayat/Maps"
+import TableRiwayatt from "../../../components/Riwayat/TableRiwayatt";
+import TableRadar from "../../../components/Riwayat/TableRadar";
+import { getjumlahStatusLaporan } from "../../../actions/graph";
+import { getOneLaporan, getPelaporan, getlaporanByPembina } from "../../../actions/pelaporan";
+import ChartRadarB from "../../../components/Riwayat/ChartRadarB";
+import ChartRadarA from "../../../components/Riwayat/ChartRadarA";
+import TableLaporan from "../../../components/Riwayat/TableLaporan";
+
+
+
+class sanksi extends Component {
+    constructor(props) {
+        super(props);
+        this.state = {
+            laporanPembina: {},
+            laporan: {},
+
+        };
+    }
+
+    static getInitialProps = async ({ query }) => {
+        return { query };
+    }
+
+    componentDidMount = async () => {
+        const { token, query } = this.props;
+        const id = query.id;
+        const idPembina = id;
+        const laporanPembina = await getlaporanByPembina(token, idPembina, { sanksi: true });
+        const laporan = laporanPembina.data.sanksi.map((e) => e.laporan)
+        this.setState({ laporanPembina, laporan });
+    };
+
+    render() {
+        const { laporanPembina, laporan } = this.state;
+        return (
+            <ContentWrapper>
+                <div className="content-heading">
+                    <span className="font-color-white">List Laporan Wilayah</span>
+                </div>
+                <Row>
+                    <Col lg="12">
+                        {laporanPembina.data && < TableLaporan listData={laporan} to="/app/pelaporan/detail" linkName="Detail" />}
+
+
+                    </Col>
+                </Row>
+            </ContentWrapper>
+        );
+    }
+}
+const mapStateToProps = (state) => ({ user: state.user, token: state.token });
+export default connect(mapStateToProps)(sanksi);