andi 1 rok temu
rodzic
commit
0d852300da

+ 43 - 10
components/Main/DetailPT.js

@@ -3,7 +3,7 @@ import ContentWrapper from "@/components/Layout/ContentWrapper";
 import Header from "@/components/Main/Header";
 import { getLogPT } from "@/actions/log";
 import { getPT } from "@/actions/PT";
-import { Row, Col, ModalHeader, ModalBody, ModalFooter, Modal, FormFeedback, Button } from "reactstrap";
+import { Row, Col, ModalHeader, ModalBody, ModalFooter, Modal, FormFeedback, Button, Alert } from "reactstrap";
 import Timeline from "@/components/Main/Timeline";
 import { connect } from "react-redux";
 import Loader from "@/components/Common/Loader";
@@ -21,7 +21,10 @@ class DetailPT extends Component {
 		ddselected: false,
 		modalOTP: false,
 		loadingProses: false,
-		otp: ""
+		otp: "",
+		sendingOTP: false,
+		newphone: "",
+
 	}
 
 
@@ -41,18 +44,34 @@ class DetailPT extends Component {
 	handleSubmitTelepon = async () => {
 		this.setState({ loadingProses: true })
 		const { token } = this.props
-		await createotp({ no_hp: this.state.phone }, token)
+
+		if (this.state.newphone.length) {
+			await createotp({ no_hp: this.state.newphone }, token)
+		} else {
+			await createotp({ no_hp: this.state.phone }, token)
+		}
+
 
 
 		this.setState({ modalPhone: false, modalOTP: true })
 	}
+	handleOTPagain = async () => {
+		this.setState({ sendingOTP: true })
+		const { token } = this.props
+		await createotp({ no_hp: this.state.newphone }, token)
+		this.setState({ modalPhone: false, modalOTP: true })
+		setTimeout(() => {
+			this.setState({
+				sendingOTP: !this.state.sendingOTP
+			});
+		}, 5000);
+	}
 	otpClose = () => {
 		this.setState({ modalOTP: false, ddselected: false, loadingProses: false, otp: "" })
-		// localStorage.setItem("closeverif", "true");
 	}
 	handleSubmitOtp = async () => {
 		const { token } = this.props
-		const create = await createkontak({ otp: this.state.otp, no_hp: this.state.phone }, token)
+		const create = await createkontak({ otp: this.state.otp, no_hp: this.state.newphone }, token)
 		if (create.error) {
 			swal.fire({
 				title: create.error.message,
@@ -66,7 +85,9 @@ class DetailPT extends Component {
 				icon: "success",
 				confirmButtonColor: "#3e3a8e",
 			});
+
 			this.setState({ ddselected: false, modalOTP: false, loadingProses: false, otp: "" })
+			window.location.reload(false);
 		}
 
 	}
@@ -92,8 +113,8 @@ class DetailPT extends Component {
 							<div className="border-2">
 								<PhoneInput
 									country={'id'}
-									value={this.state.kontakPT?.data.map((data) => (data.no_hp)) || this.state.phone}
-									onChange={phone => this.setState({ phone })} />
+									value={this.state.phone || this.state.newphone}
+									onChange={newphone => this.setState({ newphone })} />
 							</div>
 						</div>
 						<div className="">
@@ -125,6 +146,7 @@ class DetailPT extends Component {
 				</Modal>
 				<Modal isOpen={this.state.modalOTP} style={{ width: '400px' }} >
 					<ModalBody>
+
 						<div className="modalLoginPT-a">
 							<img
 								className="icon-triangle-onModalPT mt-auto mb-auto"
@@ -133,6 +155,13 @@ class DetailPT extends Component {
 
 							<h3 className=" font-color-black">Masukan Kode OTP</h3>
 						</div>
+						{this.state.sendingOTP === true &&
+							<div>
+								<Alert color="warning">
+									Berhasil Kirim Kode OTP
+								</Alert>
+							</div>
+						}
 
 						{/* <div className="modalLoginPT-b"> */}
 
@@ -145,8 +174,12 @@ class DetailPT extends Component {
 								renderSeparator={<span className=" font-color-black font-weight-bold mr-2 ml-2">-</span>}
 								renderInput={(props) => <input {...props} style={{ width: "50px", height: "50px", textAlign: "center", marginLeft: "auto", marginRight: "auto", borderRadius: "7px", fontSize: "30px" }} />}
 
-							/>   <p className="  mt-3">
-								*Kode OTP terkirim ke nomor WA {this.state.phone}
+							/>
+							<p className="  mt-3">
+								*Kode OTP terkirim ke nomor WA {this.state.newphone || this.state.phone}
+							</p>
+							<p className="  mt-3 ">
+								Jika Anda belum menerima kode OTP, <span className=" btn-link" onClick={this.handleOTPagain}>kirimkan ulang kode OTP</span>
 							</p>
 							<FormFeedback invalid={this.state.error}>
 								Kode verifikasi harus diisi
@@ -162,7 +195,7 @@ class DetailPT extends Component {
 							<Button className="btn-login float-right mr-4" style={{ width: "40%" }} color onClick={this.handleSubmitOtp}
 							>
 								<span className=" font-color-white">
-									Kirim
+									Simpan
 								</span>
 							</Button>
 						</div>

+ 1 - 1
components/Main/Timeline.js

@@ -30,7 +30,7 @@ function Timeline({ data, noFile = false, noJadwal = false }) {
 													/>
 													<p className="m-0">
 														<strong>
-															{!data.user?.isPrivate && data.user?.nama ? data.user?.nama : "Rahasia"}  {data.user?.isPublic ? "Umum" : data.user?.role?.nama}
+															{!data.user?.isPrivate && data.user?.nama ? data.user?.nama : "Sistem"}  {data.user?.isPublic ? "Umum" : data.user?.role?.nama}
 														</strong>
 														<br />
 														{data.keterangan}

+ 25 - 14
components/Riwayat/TableRiwayat.js

@@ -13,8 +13,8 @@ class TableRiwayat extends Component {
     constructor(props) {
         super(props);
         this.state = {
-            dataRiwayat: "",
-            dataRiwayatsort:"",
+            dataRiwayat: [],
+            dataRiwayatsort: "",
             fromDate: "",
             toDate: "",
             updateTable: false
@@ -23,29 +23,39 @@ class TableRiwayat extends Component {
     componentDidMount = async () => {
         const { token } = this.props;
 
-        const dataRiwayat = await getLog2(this.props.token)
-        this.setState({ dataRiwayat });
+        // const dataRiwayat = await getLog2(this.props.token)
+        // this.setState({ dataRiwayat });
     }
     onFilter = async () => {
-        const date1 = moment(this.state.fromDate).format("YYYY-MM-DD")
-        const date2 = moment(this.state.toDate).format("YYYY-MM-DD")
-        const dataRiwayat = await getLog2(this.props.token, { fromDate: date1, toDate: date2 })
-        this.setState({ dataRiwayat });
+        // const date1 = moment(this.state.fromDate).format("YYYY-MM-DD")
+        // const date2 = moment(this.state.toDate).format("YYYY-MM-DD")
+        // const dataRiwayat = await getLog2(this.props.token, { fromDate: date1, toDate: date2 })
+        // this.setState({ dataRiwayat });
         this.setState({ updateTable: true });
         setTimeout(() => {
             this.setState({ updateTable: false });
         }, 1);
 
     }
-    componentDidUpdate = async () => {
-        const dataRiwayatsort = this.state
-        if (this.state.updateTable === true) {
+    componentDidUpdate = async (prevProps, prevState) => {
+        const { dataRiwayat } = this.state
+        if (prevState.toDate != this.state.toDate) {
+            console.log(dataRiwayat)
             const date1 = moment(this.state.fromDate).format("YYYY-MM-DD")
             const date2 = moment(this.state.toDate).format("YYYY-MM-DD")
             const dataRiwayat = await getLog2(this.props.token, { fromDate: date1, toDate: date2 })
-            this.setState({ dataRiwayatsort });
-            // this.setState({ dataRiwayat });
+            this.setState({ dataRiwayat });
         }
+        // const dataRiwayatsort = this.state
+        // if (this.state.updateTable === true) {
+        //     const date1 = moment(this.state.fromDate).format("YYYY-MM-DD")
+        //     const date2 = moment(this.state.toDate).format("YYYY-MM-DD")
+        //     const dataRiwayat = await getLog2(this.props.token, { fromDate: date1, toDate: date2 })
+        //     this.setState({ dataRiwayatsort });
+        //     // this.setState({ dataRiwayat });
+        // }
+
+
     }
 
 
@@ -82,9 +92,10 @@ class TableRiwayat extends Component {
                         <Button color="info" className=" mt-4" onClick={this.onFilter}>Filter</Button>
 
                     </span>
+                    
                     {this.state.dataRiwayat && (
                         <Datatable options={{
-                            searching: true, 
+                            searching: true,
                             aLengthMenu: [500],
                             paging: false,
                             scrollX: true, scrollY: "370px",

+ 2 - 2
components/Sanksi/Ringkasan.js

@@ -219,7 +219,7 @@ export class Ringkasan extends Component {
 															</td>
 															<td>
 																<a className="text-muted" href={e.preview} download={e.name}>
-																	{e.name}
+																	{e.path}
 																</a>
 															</td>
 														</tr>
@@ -277,7 +277,7 @@ export class Ringkasan extends Component {
 															</td>
 															<td>
 																<a className="text-muted" href={e.preview} download={e.name}>
-																	{e.name}
+																	{e.path}
 																</a>
 															</td>
 														</tr>

+ 5 - 1
components/Sanksi/UploadSurat.js

@@ -337,7 +337,8 @@ export class UploadSurat extends Component {
 						<p className="mrgn-top-5 font-color-black">Ukuran setiap dokumen maksimal 15mb</p>
 					</div>
 				</FormGroup>
-				<FormGroup row className="mt-3">
+				{!this.state.tidakPerluTMTCheck&&(
+<FormGroup row className="mt-3">
 					<label className="col-md-4 col-form-label">Tanggal Terima Surat Sanksi<span className="text-danger">*</span></label>
 					<span className="col-sm-8 float-left">
 						<Datetime
@@ -357,6 +358,9 @@ export class UploadSurat extends Component {
 						/>
 					</span>
 				</FormGroup>
+
+				)}
+				
 				<FormGroup row>
 					<label className="col-md-4 col-form-label">
 						Dokumen Tanda Terima Surat Sanksi<span className="text-danger">*</span>

+ 2 - 0
env.js

@@ -2,3 +2,5 @@
 export const API_URL = "http://localhost:5000/v1";
 export const ENV = "development"
 //export const API_URL = "https://dev.api.sidali.kemdikbud.go.id/v1";
+//sexport const API_URL = "https://api.sidali.kemdikbud.go.id/v1";
+

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

@@ -116,7 +116,7 @@ class Pemeriksaan extends Component {
 			<ContentWrapper>
 				<div className="content-heading">
 					<span className="font-color-white">
-						Evaluasi
+						Pemeriksaan
 					</span>
 					<div className="ml-auto">
 						<Link href="/app/penjadwalan">

+ 24 - 0
pages/app/riwayat/index.js

@@ -4,6 +4,8 @@ import { Row, Col, Button, Card, CardBody, Table } from "reactstrap";
 import { connect } from "react-redux";
 import TableRiwayat from "@/components/Riwayat/TableRiwayat";
 import ChartData from "@/components/Riwayat/ChartData";
+import { getLog2 } from "@/actions/log";
+
 
 
 
@@ -12,8 +14,30 @@ class Riwayat extends Component {
     constructor(props) {
         super(props);
         this.state = {
+            dataRiwayat: []
         };
     }
+    componentDidMount = async () => {
+        const { token } = this.props;
+
+        const data = await getLog2(this.props.token)
+        const dataRiwayat = data.data
+        this.setState({ dataRiwayat })  
+    }
+    setDateFilter = (data) => {
+        this.setState({ dataFilter: data })
+    }
+    componentDidUpdate = async () => {
+        if (this.state.dataFilter?.updateTable === true) {
+            const dataRiwayat = {}
+            const date1 = moment(this.state.dataFilter.fromDate).format("YYYY-MM-DD")
+            const date2 = moment(this.state.dataFilter.toDate).format("YYYY-MM-DD")
+            const data = await getLog2(this.props.token, { fromDate: date1, toDate: date2 })
+            // const dataRiwayat = data.data
+
+            this.setState({ dataRiwayat });
+        }
+    }
 
 
     render() {

+ 4 - 1
pages/app/sanksi/proses.js

@@ -61,9 +61,11 @@ class ProsesSanksi extends Component {
 		const { data: listSanksi } = await getPelanggaranSanksi(token)
 		const getDataSave = await getAutoSave({ id, laporan: true });
 		const autoSaveDataPelanggaran = getDataSave.data?.PenetapanSanksi?.dataPelanggaran;
+		const dataform = getDataSave.data?.PenetapanSanksi?.dataUpload
 		const activeStep = getDataSave.data?.PenetapanSanksi?.activeStep
 		this.setState({ pelaporan, listSanksi, activeStep: activeStep || "1" });
-		this.setState({ dataPelanggaran: autoSaveDataPelanggaran })
+		this.setState({ dataPelanggaran: autoSaveDataPelanggaran, dataUpload:dataform })
+	
 	};
 
 
@@ -452,6 +454,7 @@ class ProsesSanksi extends Component {
 
 	render() {
 		const { dataUpload, dataPelanggaran, pelaporan, dataSuratBA, thisclose } = this.state
+		console.log(dataPelanggaran, this.state.dataPelanggaran)
 		return (
 			<ContentWrapper unwrap>
 				{/* <Header /> */}

+ 26 - 16
pages/pt/pemantauan.js

@@ -58,28 +58,33 @@ class Pemantauan extends Component {
 
 		this.setState({ modalPhone: false, modalOTP: true })
 	}
+	handleOTPagain = async () => {
+		const { token } = this.props
+		await createotp({ no_hp: this.state.phone }, token)
+		this.setState({ modalPhone: false, modalOTP: true })
+	}
 	handleSubmitOtp = async () => {
 		const { token } = this.props
 		const create = await createkontak({ otp: this.state.otp, no_hp: this.state.phone }, token)
 		if (create.error) {
 			swal.fire({
-			  title: create.error.message,
-			  icon: "error",
-			  content: create.error.message,
-			  confirmButtonColor: "#3e3a8e",
+				title: create.error.message,
+				icon: "error",
+				content: create.error.message,
+				confirmButtonColor: "#3e3a8e",
 			});
-		  } else {
+		} else {
 			swal.fire({
-			  title: "Data berhasil dikirim",
-			  icon: "success",
-			  confirmButtonColor: "#3e3a8e",
+				title: "Data berhasil dikirim",
+				icon: "success",
+				confirmButtonColor: "#3e3a8e",
 			});
-				this.setState({ modalPhone: false, modalOTP: false })
-		  }
-	
+			this.setState({ modalPhone: false, modalOTP: false })
+		}
+
 	}
 	render() {
-		const { log, pt } = this.state; 
+		const { log, pt } = this.state;
 
 		return (
 			<ContentWrapper unwrap>
@@ -127,7 +132,7 @@ class Pemantauan extends Component {
 											</div>
 										) : (
 											<span className="font-color-white">
-												Kirim
+												Simpan
 											</span>
 										)}
 								</Button>
@@ -158,9 +163,14 @@ class Pemantauan extends Component {
 								renderSeparator={<span className=" font-color-black font-weight-bold mr-2 ml-2">-</span>}
 								renderInput={(props) => <input {...props} style={{ width: "50px", height: "50px", textAlign: "center", marginLeft: "auto", marginRight: "auto", borderRadius: "7px", fontSize: "30px" }} />}
 
-							/>   <p className="  mt-3">
+							/>
+							<p className="  mt-3">
 								*Kode OTP terkirim ke nomor WA {this.state.phone}
 							</p>
+							<p className="  mt-3 ">
+								Jika Anda belum menerima kode OTP, <span className=" btn-link" onClick={this.handleOTPagain}>kirimkan ulang kode OTP</span>
+							</p>
+
 							<FormFeedback invalid={this.state.error}>
 								Kode verifikasi harus diisi
 							</FormFeedback>
@@ -175,7 +185,7 @@ class Pemantauan extends Component {
 							<Button className="btn-login float-right mr-4" style={{ width: "40%" }} color onClick={this.handleSubmitOtp}
 							>
 								<span className=" font-color-white">
-									Kirim
+									Simpan
 								</span>
 							</Button>
 						</div>
@@ -194,7 +204,7 @@ class Pemantauan extends Component {
 						) : (
 							<Loader />
 						)}
-						<Col xl="3">{pt.data && <DetailPT data={pt.data}  />}</Col>
+						<Col xl="3">{pt.data && <DetailPT data={pt.data} />}</Col>
 					</Row>
 				</div>
 			</ContentWrapper>