yazid138 3 gadi atpakaļ
vecāks
revīzija
46e8cca37d

+ 20 - 0
actions/pengunjung.js

@@ -28,3 +28,23 @@ export const getPengunjung = async (token) => {
 		return false;
 	}
 };
+
+export const getPengunjungPublic = async ({ bulan, tahun }) => {
+	try {
+		let url = "/public/pengunjung";
+		if (bulan || tahun) {
+			url += "?";
+			if (bulan) {
+				url += `bulan=${bulan}`;
+			}
+			if (tahun) {
+				url += `bulan=${tahun}`;
+			}
+		}
+		const res = await axios.get(url);
+		return res.data;
+	} catch (error) {
+		console.log("error", error);
+		return false;
+	}
+};

+ 93 - 93
components/Layout/Menu.js

@@ -1,97 +1,97 @@
 const Menu = [
-  {
-    heading: "Main Navigation",
-    translate: "sidebar.heading.HEADER",
-  },
-  {
-    name: "Pemantauan",
-    path: "/app/pemantauan",
-    icon: "icon-speedometer",
-    translate: "sidebar.nav.PEMANTAUAN",
-  },
-  {
-    name: "Laporan Delegasi",
-    path: "/app/laporan-delegasi",
-    icon: "icon-notebook",
-    translate: "sidebar.nav.LAPORAN_DELEGASI",
-  },
-  {
-    name: "Pelaporan",
-    path: "/app/pelaporan",
-    icon: "icon-note",
-    translate: "sidebar.nav.PELAPORAN",
-  },
-  // {
-  // 	name: "Pelaporan",
-  // 	icon: "icon-notebook",
-  // 	translate: "sidebar.nav.LAPORAN",
-  // 	submenu: [
-  // 		{
-  // 			name: "List Laporan",
-  // 			path: "/app/pelaporan",
-  // 		},
-  // 		{
-  // 			name: "Laporan ditutup",
-  // 			path: "/app/laporan-ditutup",
-  // 		},
-  // 	],
-  // },
-  {
-    name: "Penjadwalan Evaluasi",
-    path: "/app/penjadwalan",
-    icon: "icon-event",
-    translate: "sidebar.nav.PENJADWALAN",
-  },
-  {
-    name: "Pemeriksaan",
-    path: "/app/pemeriksaan",
-    icon: "icon-book-open",
-    translate: "sidebar.nav.PEMERIKSAAN",
-  },
-  {
-    name: "Sanksi",
-    path: "/app/sanksi",
-    icon: "icon-social-steam",
-    translate: "sidebar.nav.SANKSI",
-  },
-  {
-    heading: "Dikti Ristek/LLDIKTI",
-    translate: "sidebar.heading.DIKTI_RISTEK",
-  },
-  {
-    name: "Keberatan",
-    path: "/app/keberatan",
-    icon: "icon-hourglass",
-    translate: "sidebar.nav.KEBERATAN",
-  },
-  {
-    name: "Banding",
-    path: "/app/banding",
-    icon: "icon-directions",
-    translate: "sidebar.nav.BANDING",
-  },
-  {
-    name: "Pencabutan Sanksi",
-    path: "/app/pencabutan-sanksi",
-    icon: "icon-shield",
-    translate: "sidebar.nav.PENCABUTAN_SANKSI",
-  },
-  {
-    name: "Pemantauan Perbaikan",
-    path: "/app/pemantauan-perbaikan",
-    icon: "icon-graph",
-    translate: "sidebar.nav.PEMANTAUAN_PERBAIKAN",
-  },
-  {
-    heading: "Analytics Report",
-    translate: "sidebar.heading.ANALYTICS_REPORT",
-  },
-  {
-    name: "Riwayat",
-    path: "/app/riwayat",
-    icon: "icon-graph",
-    translate: "sidebar.nav.PEMANTAUAN_PERBAIKAN",
-  },
+	{
+		heading: "Main Navigation",
+		translate: "sidebar.heading.HEADER",
+	},
+	{
+		name: "Pemantauan",
+		path: "/app/pemantauan",
+		icon: "icon-speedometer",
+		translate: "sidebar.nav.PEMANTAUAN",
+	},
+	{
+		name: "Laporan Delegasi",
+		path: "/app/laporan-delegasi",
+		icon: "icon-notebook",
+		translate: "sidebar.nav.LAPORAN_DELEGASI",
+	},
+	{
+		name: "Pelaporan",
+		path: "/app/pelaporan",
+		icon: "icon-note",
+		translate: "sidebar.nav.PELAPORAN",
+	},
+	// {
+	// 	name: "Pelaporan",
+	// 	icon: "icon-notebook",
+	// 	translate: "sidebar.nav.LAPORAN",
+	// 	submenu: [
+	// 		{
+	// 			name: "List Laporan",
+	// 			path: "/app/pelaporan",
+	// 		},
+	// 		{
+	// 			name: "Laporan ditutup",
+	// 			path: "/app/laporan-ditutup",
+	// 		},
+	// 	],
+	// },
+	{
+		name: "Penjadwalan Evaluasi",
+		path: "/app/penjadwalan",
+		icon: "icon-event",
+		translate: "sidebar.nav.PENJADWALAN",
+	},
+	{
+		name: "Pemeriksaan",
+		path: "/app/pemeriksaan",
+		icon: "icon-book-open",
+		translate: "sidebar.nav.PEMERIKSAAN",
+	},
+	{
+		name: "Sanksi",
+		path: "/app/sanksi",
+		icon: "icon-social-steam",
+		translate: "sidebar.nav.SANKSI",
+	},
+	{
+		heading: "Dikti Ristek/LLDIKTI",
+		translate: "sidebar.heading.DIKTI_RISTEK",
+	},
+	{
+		name: "Keberatan",
+		path: "/app/keberatan",
+		icon: "icon-hourglass",
+		translate: "sidebar.nav.KEBERATAN",
+	},
+	{
+		name: "Banding",
+		path: "/app/banding",
+		icon: "icon-directions",
+		translate: "sidebar.nav.BANDING",
+	},
+	{
+		name: "Pencabutan Sanksi",
+		path: "/app/pencabutan-sanksi",
+		icon: "icon-shield",
+		translate: "sidebar.nav.PENCABUTAN_SANKSI",
+	},
+	{
+		name: "Pemantauan Perbaikan",
+		path: "/app/pemantauan-perbaikan",
+		icon: "icon-graph",
+		translate: "sidebar.nav.PEMANTAUAN_PERBAIKAN",
+	},
+	{
+		name: "Riwayat",
+		path: "/app/riwayat",
+		icon: "icon-graph",
+		translate: "sidebar.nav.PEMANTAUAN_PERBAIKAN",
+	},
+	{
+		heading: "Analytics Report",
+		translate: "sidebar.heading.ANALYTICS_REPORT",
+	},
 ];
 
 export default Menu;

+ 6 - 6
components/Layout/MenuLLDIKTI.js

@@ -64,18 +64,18 @@ const Menu = [
 		icon: "icon-hourglass",
 		translate: "sidebar.nav.KEBERATAN",
 	},
-	{
-		name: "Pencabutan Sanksi",
-		path: "/app/pencabutan-sanksi",
-		icon: "icon-shield",
-		translate: "sidebar.nav.PENCABUTAN_SANKSI",
-	},
 	{
 		name: "Pemantauan Perbaikan",
 		path: "/app/pemantauan-perbaikan",
 		icon: "icon-graph",
 		translate: "sidebar.nav.PEMANTAUAN_PERBAIKAN",
 	},
+	{
+		name: "Pencabutan Sanksi",
+		path: "/app/pencabutan-sanksi",
+		icon: "icon-shield",
+		translate: "sidebar.nav.PENCABUTAN_SANKSI",
+	},
 ];
 
 export default Menu;

+ 6 - 6
components/Layout/MenuPT.js

@@ -28,6 +28,12 @@ const MenuPT = [
 			},
 		],
 	},
+	{
+		name: "Dokumen Perbaikan",
+		path: "/pt/dokumen-perbaikan",
+		icon: "icon-graph",
+		translate: "sidebar.nav.PT_DOKUMEN_PERBAIKAN",
+	},
 	{
 		name: "Pencabutan Sanksi",
 		icon: "icon-shield",
@@ -43,12 +49,6 @@ const MenuPT = [
 			},
 		],
 	},
-	{
-		name: "Dokumen Perbaikan",
-		path: "/pt/dokumen-perbaikan",
-		icon: "icon-graph",
-		translate: "sidebar.nav.PT_DOKUMEN_PERBAIKAN",
-	},
 ];
 
 export default MenuPT;

+ 120 - 84
components/Main/ChartdataHome.js

@@ -4,93 +4,129 @@ import { Container, Row, Col, Card, CardHeader, CardBody } from "reactstrap";
 
 import Sparkline from "@/components/Common/Sparklines.js";
 import FlotChart from "@/components/Charts/Flot.js";
-import { connect } from "react-redux";
-import { getPengunjung } from "@/actions/pengunjung";
+import { getPengunjungPublic } from "@/actions/pengunjung";
 class ChartdataHome extends Component {
-  constructor(props) {
-    super(props);
-    this.state = {
-      dataPengunjung: [],
-    };
-  }
+	constructor(props) {
+		super(props);
+		this.state = {
+			dataPengunjung: [],
+			dataChart: this.ChartSpline,
+		};
+	}
 
-  ChartSpline = {
-    data: [
-      {
-        // label: "Uniques",
-        color: "#3e3a8e",
-        data: [
-          ["1", 20],
-          ["10", 90],
-          ["20", 40],
-          ["30", 60],
-        ],
-      },
-    ],
+	componentDidMount = async () => {
+		const dataPengunjung = await getPengunjungPublic({ bulan: new Date().getMonth() + 1, tahun: new Date().getFullYear() });
+		this.setState({ dataPengunjung: dataPengunjung.data.map((e) => [e._id.tanggal, e.jumlah_pengunjung]) });
+		this.setState((prevState) => ({ dataChart: { ...prevState.dataChart, data: [{ ...prevState.dataChart.data[0], data: prevState.dataPengunjung }] } }));
+	};
 
-    options: {
-      series: {
-        lines: {
-          show: false,
-        },
-        points: {
-          show: true,
-          radius: 4,
-        },
-        splines: {
-          show: true,
-          tension: 0.4,
-          lineWidth: 1,
-          fill: 0.5,
-        },
-      },
-      grid: {
-        borderColor: "#eee",
-        borderWidth: 1,
-        hoverable: true,
-        backgroundColor: "#fcfcfc",
-      },
-      tooltip: true,
-      tooltipOpts: {
-        content: (label, x, y) => x + " : " + y,
-      },
-      xaxis: {
-        tickColor: "#fcfcfc",
-        mode: "categories",
-      },
-      yaxis: {
-        min: 0,
-        max: 150, // optional: use it for a clear represetation
-        tickColor: "#eee",
-        //position: 'right' or 'left',
-        tickFormatter: (v) => v /* + ' visitors'*/,
-      },
-      shadowSize: 0,
-    },
-  };
+	ChartSpline = {
+		data: [
+			{
+				// label: "Uniques",
+				color: "#3e3a8e",
+				data: [],
+			},
+		],
 
-  render() {
-    console.log(this.state.dataPengunjung);
-    return (
-      <Col lg={12}>
-        <Card>
-          <CardBody>
-            <FlotChart
-              options={this.ChartSpline.options}
-              data={this.ChartSpline.data}
-              className="flot-chart"
-              height="150px"
-              width="350px"
-            />
-          </CardBody>
-          <div align="center">
-            <h5 className="font-weight-bold">Data Statistik Pengunjung Bulan<span> Juli</span></h5>
-          </div>
-        </Card>
-      </Col>
-    );
-  }
+		options: {
+			series: {
+				lines: {
+					show: false,
+				},
+				points: {
+					show: true,
+					radius: 4,
+				},
+				splines: {
+					show: true,
+					tension: 0.4,
+					lineWidth: 1,
+					fill: 0.5,
+				},
+			},
+			grid: {
+				borderColor: "#eee",
+				borderWidth: 1,
+				hoverable: true,
+				backgroundColor: "#fcfcfc",
+			},
+			tooltip: true,
+			tooltipOpts: {
+				content: (label, x, y) => x + " : " + y,
+			},
+			xaxis: {
+				tickColor: "#fcfcfc",
+				mode: "categories",
+			},
+			yaxis: {
+				min: 0,
+				max: 150, // optional: use it for a clear represetation
+				tickColor: "#eee",
+				//position: 'right' or 'left',
+				tickFormatter: (v) => v /* + ' visitors'*/,
+			},
+			shadowSize: 0,
+		},
+	};
+
+	convertMonth = (int) => {
+		switch (int) {
+			case 1:
+				return "Januari";
+				break;
+			case 2:
+				return "Februari";
+				break;
+			case 3:
+				return "Maret";
+				break;
+			case 4:
+				return "April";
+				break;
+			case 5:
+				return "Mei";
+				break;
+			case 6:
+				return "Juni";
+				break;
+			case 7:
+				return "Juli";
+				break;
+			case 8:
+				return "Agustus";
+				break;
+			case 9:
+				return "September";
+				break;
+			case 10:
+				return "Oktober";
+				break;
+			case 11:
+				return "November";
+				break;
+			case 12:
+				return "Desember";
+				break;
+			default:
+				break;
+		}
+	};
+
+	render() {
+		return (
+			<Col lg={12}>
+				<Card>
+					<CardBody>
+						<FlotChart options={this.ChartSpline.options} data={this.state.dataChart.data} className="flot-chart" height="150px" width="350px" />
+					</CardBody>
+					<div align="center">
+						<h5 className="font-weight-bold">Data Statistik Pengunjung Bulan {`${this.convertMonth(new Date().getMonth() + 1)} ${new Date().getFullYear()}`}</h5>
+					</div>
+				</Card>
+			</Col>
+		);
+	}
 }
 
-const mapStateToProps = (state) => ({ token: state.token });
-export default connect(mapStateToProps)(ChartdataHome);
+export default ChartdataHome;

+ 0 - 1
components/PT/CabutSanksi/Riwayat.js

@@ -5,7 +5,6 @@ import { API_URL } from "@/env";
 
 function Riwayat({ data }) {
 	const { cabut_sanksi } = data.sanksi;
-	console.log(data);
 	return (
 		<Card className="card-default">
 			<CardHeader>

+ 0 - 2
components/Pelaporan/CaseProgress.js

@@ -7,7 +7,6 @@ import Datatable from "@/components/Tables/Datatable";
 import { useState, useEffect } from "react";
 
 function CaseProgress({ data, nextButton, prevButton, tahun, newLaporan, excel }) {
-
 	const laporan_pertahun = data.laporan_perTahun;
 
 	const [chartData, setChartData] = useState([
@@ -20,7 +19,6 @@ function CaseProgress({ data, nextButton, prevButton, tahun, newLaporan, excel }
 
 	useEffect(() => {
 		laporan_pertahun.forEach((e) => {
-			console.log(data);
 			chartData[0].data.push([convertMonth(e._id.bulan), e.jumlah_laporan]);
 		});
 	}, []);

+ 49 - 18
components/Riwayat/ChartData.js

@@ -11,13 +11,15 @@ class ChartData extends Component {
 		super(props);
 		this.state = {
 			dataPengunjung: [],
+			dataChart: this.ChartSpline,
 		};
 	}
 
 	async componentDidMount() {
 		const { token } = this.props;
 		const dataPengunjung = await getPengunjung(token);
-		this.setState({ dataPengunjung: dataPengunjung.data.map((e) => [e._id.bulan, e.jumlah_pengunjung]) });
+		this.setState({ dataPengunjung: dataPengunjung.data.map((e) => [this.convertMonth(e._id.bulan), e.jumlah_pengunjung]) });
+		this.setState((prevState) => ({ dataChart: { ...prevState.dataChart, data: [{ ...prevState.dataChart.data[0], data: prevState.dataPengunjung }] } }));
 	}
 
 	ChartSpline = {
@@ -25,20 +27,7 @@ class ChartData extends Component {
 			{
 				// label: "Uniques",
 				color: "#3e3a8e",
-				data: [
-					["Jan", 20],
-					["Feb", 90],
-					["Mar", 40],
-					["Apr", 85],
-					["Mei", 59],
-					["Jun", 93],
-					["Jul", 66],
-					["Agu", 86],
-					["Sep", 60],
-					["Okt", 70],
-					["Nov", 60],
-					["Des", 30],
-				],
+				data: [],
 			},
 		],
 
@@ -83,16 +72,58 @@ class ChartData extends Component {
 		},
 	};
 
+	convertMonth = (int) => {
+		switch (int) {
+			case 1:
+				return "Januari";
+				break;
+			case 2:
+				return "Februari";
+				break;
+			case 3:
+				return "Maret";
+				break;
+			case 4:
+				return "April";
+				break;
+			case 5:
+				return "Mei";
+				break;
+			case 6:
+				return "Juni";
+				break;
+			case 7:
+				return "Juli";
+				break;
+			case 8:
+				return "Agustus";
+				break;
+			case 9:
+				return "September";
+				break;
+			case 10:
+				return "Oktober";
+				break;
+			case 11:
+				return "November";
+				break;
+			case 12:
+				return "Desember";
+				break;
+			default:
+				break;
+		}
+	};
+
 	render() {
-		console.log(this.state.dataPengunjung);
 		return (
 			<Col lg={12}>
 				<Card className="card-default">
 					<CardBody>
-						<FlotChart options={this.ChartSpline.options} data={this.ChartSpline.data} className="flot-chart" height="250px" />
+						<FlotChart options={this.ChartSpline.options} data={this.state.dataChart.data} className="flot-chart" height="250px" />
 					</CardBody>
 					<div align="center">
-						<span>Data Statistik Pengunjung Tahun 2022</span>
+						<span>Data Statistik Pengunjung Tahun {new Date().getFullYear()}</span>
 					</div>
 				</Card>
 			</Col>

+ 0 - 1
pages/app/pemantauan/timeline.js

@@ -49,7 +49,6 @@ class Pemantauan extends Component {
 
 	render() {
 		const { detailLaporanPt, log, pt, pelaporan } = this.state;
-		console.log(pelaporan)
 		return (
 			<ContentWrapper unwrap>
 				<div className="p-3">

+ 0 - 1
pages/app/pencabutan-sanksi/detail.js

@@ -131,7 +131,6 @@ class JawabanPencabutanSanksi extends Component {
 
 	handleSimpan = async () => {
 		const { data } = this.state;
-		console.log(data);
 		const { token, query } = this.props;
 		const formdata = new FormData();
 		formdata.append("status", data.status);

+ 0 - 1
pages/app/pt/jawaban-pencabutan-sanksi/detail.js

@@ -26,7 +26,6 @@ class DetailJawabanPencabutanSanksi extends Component {
 		const { user } = this.props;
 		const { noSanksi } = this.props.query;
 		const sanksi = await getSanksi({ noSanksi, ptId: user.peran[0].organisasi.id });
-		console.log(sanksi);
 		this.setState({ sanksi });
 	};