Forráskód Böngészése

perubahan pada buat laporan public, drop priority

yazid138 3 éve
szülő
commit
ab1677721a

+ 2 - 2
components/Main/DetailLaporan.js

@@ -127,10 +127,10 @@ function DetailLaporan({ data, noTitle = false, noStatus = false }) {
 				) : (
 					""
 				)}
-				<FormGroup row>
+				{/* <FormGroup row>
 					<Col md="4">Prioritas:</Col>
 					<Col md="8">{data.level == 3 ? <div className="badge badge-success">Tinggi</div> : data.level == 2 ? <div className="badge badge-info">Sedang</div> : <div className="badge badge-warning">Rendah</div>}</Col>
-				</FormGroup>
+				</FormGroup> */}
 				<FormGroup row>
 					<Col md="4">Dokumen Pendukung:</Col>
 					<Col md="8">

+ 14 - 5
components/Main/Login.js

@@ -72,7 +72,7 @@ class Login extends Component {
 				} else if ([2020, 2021].includes(auth.data.user.role.id)) {
 					Router.push({ pathname: "/app/pemantauan" });
 				} else {
-					this.setState({ error: "Akun tidak ada" })
+					this.setState({ error: "Akun tidak ada" });
 				}
 			}
 		} catch (error) {
@@ -91,16 +91,23 @@ class Login extends Component {
 				<img className="img-login-1" src="/static/img/logo-login.png" alt="Logo" />
 				<CardBody className="card-body">
 					{" "}
-					<h5 className="card-title text-left py-2 bg-gray border-radius-login"><img className="icon-triangle" src="/static/img/icon-caution.png"></img><b>Login Menggunakan Akun PDDIKTI </b></h5>
+					<h5 className="card-title text-left py-2 bg-gray border-radius-login">
+						<img className="icon-triangle" src="/static/img/icon-caution.png"></img>
+						<b>Login Menggunakan Akun PDDIKTI </b>
+					</h5>
 					{this.state.error}
 					<form onSubmit={this.onSubmit} method="post" name="formLogin">
 						<div className="form-group">
-							<label className="col-form-label">Username <span className="star-color">*</span></label>
+							<label className="col-form-label">
+								Username<span className="text-warning">*</span>
+							</label>
 							<Input type="text" name="username" invalid={this.hasError("formLogin", "username", "required")} onChange={this.validateOnChange} data-validate='["required"]' value={this.state.formLogin.username} />
 							{this.hasError("formLogin", "username", "required") && <span className="invalid-feedback">Field is required</span>}
 						</div>
 						<div className="form-group">
-							<label className="col-form-label">Password <span className="star-color">*</span></label>
+							<label className="col-form-label">
+								Password<span className="text-warning">*</span>
+							</label>
 							<Input
 								type="password"
 								id="id-password"
@@ -115,7 +122,9 @@ class Login extends Component {
 						{/* <div className="required">* Required fields</div>
 						<span>Login Menggunakan Akun PDDIKTI</span> */}
 						<Button color="info" type="submit" block className=" mt-3 btn-login">
-							<text className="text-login"><b>Login</b></text>
+							<text className="text-login">
+								<b>Login</b>
+							</text>
 						</Button>
 					</form>
 				</CardBody>

+ 1 - 1
components/Pemeriksaan/TableLaporan.js

@@ -36,7 +36,7 @@ function TableLaporan({ listData, to, linkName }) {
 											</td>
 
 											<td>
-												{data.level == 3 ? <div className="badge badge-success">Tinggi</div> : data.level == 2 ? <div className="badge badge-info">Sedang</div> : <div className="badge badge-warning">Rendah</div>}
+												{/* {data.level == 3 ? <div className="badge badge-success">Tinggi</div> : data.level == 2 ? <div className="badge badge-info">Sedang</div> : <div className="badge badge-warning">Rendah</div>} */}
 												{data.evaluasi?.length ? <div className="badge badge-info">Sudah diperiksa</div> : <div className="badge badge-danger">Belum diperiksa</div>}
 											</td>
 

+ 1 - 1
components/Penjadwalan/TableLaporan.js

@@ -36,7 +36,7 @@ function TableLaporan({ listData, to, linkName }) {
 											</td>
 
 											<td>
-												{data.level == 3 ? <div className="badge badge-success">Tinggi</div> : data.level == 2 ? <div className="badge badge-info">Sedang</div> : <div className="badge badge-warning">Rendah</div>}
+												{/* {data.level == 3 ? <div className="badge badge-success">Tinggi</div> : data.level == 2 ? <div className="badge badge-info">Sedang</div> : <div className="badge badge-warning">Rendah</div>} */}
 												{data.jadwal ? <div className="badge badge-info">Ada Jadwal</div> : <div className="badge badge-danger">Tidak ada jadwal</div>}
 											</td>
 

+ 3 - 4
pages/app/index.js

@@ -5,7 +5,6 @@ import ContentWrapper from "@/components/Layout/ContentWrapper";
 import Link from "next/link";
 import Login from "@/components/Main/Login";
 
-
 const menu = [
 	{
 		title: "Home",
@@ -86,9 +85,9 @@ class App extends Component {
 										</Button>
 									</Link>
 								</p>
-								<p>
-									<img className="ditbaga-logo" src="/static/img/ditbaga-logo.png" alt="applogo"></img>
-								</p>
+								<div>
+									<img className="ditbaga-logo" src="/static/img/ditbaga-logo.png" alt="applogo" />
+								</div>
 							</Col>
 							<Col>
 								<Login />

+ 8 - 1
pages/app/pelaporan/index.js

@@ -25,7 +25,14 @@ class Pelaporan extends Component {
 		const { pelaporan } = this.state;
 		return (
 			<ContentWrapper>
-				<div className="content-heading">Pelaporan</div>
+				<div className="content-heading">
+					<div>Pelaporan</div>
+					<div className="ml-auto">
+						<Link href="/app/penjadwalan">
+							<button className="btn btn-sm btn-secondary text-sm">next &gt;</button>
+						</Link>
+					</div>
+				</div>
 				<Row>
 					<Col lg="4">
 						<CaseProgress />

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

@@ -6,6 +6,7 @@ import CaseProgress from "@/components/Main/CaseProgress";
 import TableLaporan from "@/components/Pemeriksaan/TableLaporan";
 import { connect } from "react-redux";
 import Loader from "@/components/Common/Loader";
+import Link from "next/link";
 
 class Pemeriksaan extends Component {
 	constructor(props) {
@@ -25,7 +26,17 @@ class Pemeriksaan extends Component {
 		const { pelaporan } = this.state;
 		return (
 			<ContentWrapper>
-				<div className="content-heading">Evaluasi</div>
+				<div className="content-heading">
+					<div>Evaluasi</div>
+					<div className="ml-auto">
+						<Link href="/app/penjadwalan">
+							<button className="btn btn-sm btn-secondary text-sm">&lt; back</button>
+						</Link>
+						<Link href="/app/sanksi">
+							<button className="btn btn-sm btn-secondary text-sm">next &gt;</button>
+						</Link>
+					</div>
+				</div>
 				<Row>
 					<Col lg="4">
 						<CaseProgress />

+ 12 - 1
pages/app/penjadwalan/index.js

@@ -6,6 +6,7 @@ import CaseProgress from "@/components/Main/CaseProgress";
 import TableLaporan from "@/components/Penjadwalan/TableLaporan";
 import { connect } from "react-redux";
 import Loader from "@/components/Common/Loader";
+import Link from "next/link";
 
 class Penjadwalan extends Component {
 	constructor(props) {
@@ -25,7 +26,17 @@ class Penjadwalan extends Component {
 		const { pelaporan } = this.state;
 		return (
 			<ContentWrapper>
-				<div className="content-heading">Penjadwalan Evaluasi</div>
+				<div className="content-heading">
+					<div>Penjadwalan Evaluasi</div>
+					<div className="ml-auto">
+						<Link href="/app/pelaporan">
+							<button className="btn btn-sm btn-secondary text-sm">&lt; back</button>
+						</Link>
+						<Link href="/app/pemeriksaan">
+							<button className="btn btn-sm btn-secondary text-sm">next &gt;</button>
+						</Link>
+					</div>
+				</div>
 				<Row>
 					<Col lg="4">
 						<CaseProgress />

+ 9 - 1
pages/app/sanksi/index.js

@@ -6,6 +6,7 @@ import CaseProgress from "@/components/Main/CaseProgress";
 import TableLaporan from "@/components/Sanksi/TableLaporan";
 import { connect } from "react-redux";
 import Loader from "@/components/Common/Loader";
+import Link from "next/link";
 
 class Sanksi extends Component {
 	constructor(props) {
@@ -25,7 +26,14 @@ class Sanksi extends Component {
 		const { pelaporan } = this.state;
 		return (
 			<ContentWrapper>
-				<div className="content-heading">Sanksi</div>
+				<div className="content-heading">
+					<div>Sanksi</div>
+					<div className="ml-auto">
+						<Link href="/app/pemeriksaan">
+							<button className="btn btn-sm btn-secondary text-sm">&lt; back</button>
+						</Link>
+					</div>
+				</div>
 				<Row>
 					<Col lg="4">
 						<CaseProgress />

+ 27 - 24
pages/laporan/new/index.js

@@ -46,14 +46,14 @@ const laporanSchema = Yup.object().shape({
 	no_laporan: Yup.string().required("Harap Diisi"),
 	no_hp: Yup.number().required("Harap Diisi"),
 	nama: Yup.string().notRequired(),
-	setuju: Yup.boolean().isTrue(),
+	setuju: Yup.boolean().isTrue("Harap diceklis"),
 	alamat: Yup.string().min(3).max(200).notRequired(),
 	keterangan: Yup.string().min(3).max(200).required("Harap Diisi"),
 	email: Yup.string().email().notRequired(),
 	pelanggaran_id: Yup.array().min(1).required("Harap Diisi"),
 	pt_id: Yup.string().required("Harap Diisi"),
 	foto: Yup.array().notRequired().test("filesize", "Maksimal ukuran foto 15mb", checkIfFilesAreTooBig).test("type", "harus jpeg/png", checkIfFilesAreCorrectType),
-	dokumen: Yup.array().nullable().notRequired().test("filesize", "Maksimal ukuran dokumen 15mb", checkIfFilesAreTooBig),
+	dokumen: Yup.array().min(1, "Minimal terdapat 1 dokumen").required().test("filesize", "Maksimal ukuran dokumen 15mb", checkIfFilesAreTooBig),
 	is_private: Yup.boolean().notRequired(),
 });
 
@@ -170,7 +170,7 @@ class App extends Component {
 		}
 	};
 
-	createLaporan = async (token, kode = "", toastid = null) => {
+	createLaporan = async (token, kode = "") => {
 		const data = this.state.data;
 		const formdata = new FormData();
 		formdata.append("pt_id", data.pt_id);
@@ -185,14 +185,13 @@ class App extends Component {
 			});
 		}
 
-		let toastid2 = toastid;
-		if (!toastid) toastid2 = toast.loading("Please wait...");
+		const toastid = toast.loading("Please wait...");
 		const success = await createLaporanPublic(token, formdata);
 		if (!success) {
-			toast.update(toastid2, { render: "All is not good", type: "error", isLoading: false, autoClose: true, closeButton: true });
+			toast.update(toastid, { render: "All is not good", type: "error", isLoading: false, autoClose: true, closeButton: true });
 			this.setState({ error: "Kode verifikasi tidak valid" });
 		} else {
-			toast.update(toastid2, { render: "All is good", type: "success", isLoading: false, autoClose: true, closeButton: true });
+			toast.update(toastid, { render: "All is good", type: "success", isLoading: false, autoClose: true, closeButton: true });
 			this.toggleModal();
 			Router.push("/laporan/new");
 		}
@@ -256,17 +255,11 @@ class App extends Component {
 										}}
 										validationSchema={laporanSchema}
 										onSubmit={async (data) => {
+											this.toggleModal();
 											this.setState({ data, no_hp: data.no_hp });
-											const toastid = toast.loading("Please wait...");
 											const user = await this.createUser(data);
 											const token = user.data.token;
 											this.setState({ user, token });
-											if (user.data.no_hp_aktif) {
-												toast.update(toastid, { render: "All is good", type: "success", isLoading: false, autoClose: true, closeButton: true });
-												this.toggleModal();
-											} else {
-												await this.createLaporan(token, null, toastid);
-											}
 										}}
 									>
 										<Form className="form-horizontal">
@@ -282,7 +275,9 @@ class App extends Component {
 												</div>
 											</FormGroup>
 											<FormGroup row>
-												<label className="col-md-2 col-form-label">Nomor Aktif</label>
+												<label className="col-md-2 col-form-label">
+													Nomor Aktif<span className="text-warning">*</span>
+												</label>
 												<div className="col-md-10">
 													<Field name="no_hp">{({ field, form }) => <Input type="tel" {...field} />}</Field>
 													<ErrorMessage name="no_hp" component="div" className="form-text text-danger" />
@@ -313,7 +308,7 @@ class App extends Component {
 														<label>
 															<Field name="is_private">{({ field }) => <Input type="checkbox" {...field} />}</Field>
 															<span className="fa fa-check"></span>
-															<text>*</text>Klik jika ingin merahasiakan identitas anda
+															<text>Klik jika ingin merahasiakan identitas anda</text>
 														</label>
 													</div>
 												</div>
@@ -330,7 +325,9 @@ class App extends Component {
 												</div>
 											</FormGroup>
 											<FormGroup row>
-												<label className="col-md-2 col-form-label">Perguruan Tinggi yang Dilaporkan</label>
+												<label className="col-md-2 col-form-label">
+													Perguruan Tinggi yang Dilaporkan<span className="text-warning">*</span>
+												</label>
 												<div className="col-md-10">
 													<Field name="pt_id">
 														{({ field, form }) => (
@@ -350,7 +347,9 @@ class App extends Component {
 												</div>
 											</FormGroup>
 											<FormGroup row>
-												<label className="col-md-2 col-form-label">Jenis Pelanggaran</label>
+												<label className="col-md-2 col-form-label">
+													Jenis Pelanggaran<span className="text-warning">*</span>
+												</label>
 												<div className="col-md-10">
 													<Field name="pelanggaran_id">
 														{({ field, form }) => (
@@ -374,16 +373,21 @@ class App extends Component {
 												</div>
 											</FormGroup>
 											<FormGroup row>
-												<label className="col-md-2 col-form-label">Keterangan Laporan</label>
+												<label className="col-md-2 col-form-label">
+													Keterangan Laporan<span className="text-warning">*</span>
+												</label>
 												<div className="col-md-10">
 													<Field name="keterangan">{({ field }) => <Input type="textarea" {...field} />}</Field>
 													<ErrorMessage name="keterangan" component="div" className="form-text text-danger" />
 												</div>
 											</FormGroup>
 											<FormGroup row>
-												<label className="col-md-2 col-form-label">File Pendukung</label>
+												<label className="col-md-2 col-form-label">
+													File Pendukung<span className="text-warning">*</span>
+												</label>
 												<div className="col-md-10">
 													<Field name="dokumen">{({ field, form }) => <Input type="file" multiple onChange={(e) => form.setFieldValue(field.name, Array.from(e.currentTarget.files))} />}</Field>
+													<p>Ukuran maksimal tiap-tiap dokumen adalah 15mb</p>
 													<ErrorMessage name="dokumen" component="div" className="form-text text-danger" />
 												</div>
 											</FormGroup>
@@ -393,7 +397,7 @@ class App extends Component {
 														<label>
 															<Field name="setuju">{({ field }) => <Input type="checkbox" {...field} />}</Field>
 															<span className="fa fa-check"></span>
-															<text>*</text>Klik jika data yang anda laporkan sudah benar
+															<text>Klik jika data yang anda laporkan sudah benar</text>
 															<ErrorMessage name="setuju" component="div" className="form-text text-danger" />
 														</label>
 													</div>
@@ -428,11 +432,10 @@ class App extends Component {
 								<Button
 									color="info"
 									onClick={async () => {
-										this.toggleModal();
-										this.setState({ error: "", kode: "" });
+										await this.createLaporan(this.state.token);
 									}}
 								>
-									Kembali
+									Buat Laporan Tanpa Kode Verifikasi
 								</Button>
 								<Button
 									color="primary"