diff --git a/.env b/.env index bd87f0d..6d14436 100644 --- a/.env +++ b/.env @@ -1,4 +1,4 @@ #VITE_REACT_APP_BACKEND_URL="https://sandbox.exampaper.vidh.ai" METABASE_BASE_URL="http://metabase.usln.in/public/question/d8774923-09bb-4cd9-903b-559d417e12cf" -VITE_REACT_APP_BACKEND_URL="https://api.exampaper.vidh.ai" -# VITE_REACT_APP_BACKEND_URL="http://localhost:9999" +# VITE_REACT_APP_BACKEND_URL="https://api.exampaper.vidh.ai" +VITE_REACT_APP_BACKEND_URL="http://localhost:9999" diff --git a/src/Components/AnomolyPartC.jsx b/src/Components/AnomolyPartC.jsx index 4ae9b4b..fba0395 100644 --- a/src/Components/AnomolyPartC.jsx +++ b/src/Components/AnomolyPartC.jsx @@ -24,10 +24,12 @@ import InputLabel from "@mui/material/InputLabel"; import MenuItem from "@mui/material/MenuItem"; import FormControl from "@mui/material/FormControl"; import Select from "@mui/material/Select"; +import { useSearchParams } from "react-router-dom"; const { Content, Header } = Layout; function AnomalyPartC() { + const [searchParams, setSearchParams] = useSearchParams(); const [isLoading, setIsLoading] = useState(false); const [isLoading2, setIsLoading2] = useState(false); const [anomalyData, setAnomalyData] = useState(null); @@ -38,7 +40,7 @@ function AnomalyPartC() { const [totalPages, setTotalPages] = useState(1); const [showSystemNoContainer, setShowSystemNoContainer] = useState(false); const [selectedIndex, setSelectedIndex] = useState(null); - const [selectedDegreeType, setSelectedDegreeType] = useState("0"); + const [selectedDegreeType, setSelectedDegreeType] = useState("2"); const degreeTypes = [ { type: "UG", type_code: "0" }, { type: "PG", type_code: "2" }, @@ -53,6 +55,10 @@ function AnomalyPartC() { } = theme.useToken(); const navigate = useNavigate(); const dispatch = useDispatch(); + const paramsError = searchParams.get("error") + const paramsErrorReason = searchParams.get("error_reason") + const paramsSysNo = searchParams.get("sysNo") + const paramsDegreeType = searchParams.get("degreeType") const evErrorsList = useSelector((state) => state?.partCErrorList); console.log("evErrorsList = ", evErrorsList); @@ -106,9 +112,9 @@ function AnomalyPartC() { }, [evErrors]); useEffect(() => { - dispatch(updatePartCErrorData([])); - setAnomalyData([]); - setEvErrors([]); + // dispatch(updatePartCErrorData([])); + // setAnomalyData([]); + // setEvErrors([]); fetchAnomalyData(); }, [selectedDegreeType]); @@ -164,6 +170,7 @@ function AnomalyPartC() { }; const fetchAnomalyRecords = async (reduxSystemNo) => { + console.log("fetching anomoly records") setIsLoading(true); try { const response = await fetch( @@ -192,7 +199,7 @@ function AnomalyPartC() { setEvErrors(systemRecords); setIsLoading(false); dispatch(updatePartCErrorData(systemRecords)); - + localStorage.setItem("marks_manual_data", JSON.stringify(systemRecords)); updateSystemReservationStatus(systemRecords); } catch (error) { setIsLoading(false); @@ -345,11 +352,11 @@ function AnomalyPartC() { Count: {item["count(*)"]} )} - {item.error_reason && ( + {/* {item.error_reason && ( Reason: {item.error_reason} - )} + )} */} ))} @@ -382,6 +389,10 @@ function AnomalyPartC() { data={data} s3_image_column="s3_path" query="ocr_scanned_part_c_v1" + error={error} + error_reason={errorReason} + reduxSystemNo={reduxSystemNo} + degreeType = {selectedDegreeType} /> )) )} diff --git a/src/Components/QueryCardEditor.jsx b/src/Components/QueryCardEditor.jsx index 4dcf50b..d27aa5d 100644 --- a/src/Components/QueryCardEditor.jsx +++ b/src/Components/QueryCardEditor.jsx @@ -1,6 +1,9 @@ import { useState, useEffect } from "react"; +import { useSelector } from "react-redux"; import { useSearchParams } from "react-router-dom"; import { Box, Button } from "@mui/material"; +import { useNavigate } from "react-router-dom"; +import { useDispatch } from "react-redux"; import AntdesignLayout from "./AntdesignLayout"; import TextInputField from "./TextInputField"; @@ -9,6 +12,9 @@ import LoadingContainer from "./LoadingContainer"; import SimpleDialog from "./SimpleDialog"; import RotateLeftIcon from "@mui/icons-material/RotateLeft"; import RotateRightIcon from "@mui/icons-material/RotateRight"; +import { updatePartCErrorData, updateSystemNo } from "../redux/actions/actions"; +import { updatePartCErrorList } from "../redux/actions/actions"; +import { DiscFullTwoTone } from "@mui/icons-material"; const QueryCardEditor = () => { const [searchParams, setSearchParams] = useSearchParams(); @@ -22,11 +28,23 @@ const QueryCardEditor = () => { const [s3Path, setS3Path] = useState(null); const [showDialog, setShowDialog] = useState(false); const [rotationResults, setRotationResults] = useState([]); - + const [rotateAngle, setRotateAngle] = useState(0); + const evErrorsList = useSelector((state) => state?.partCErrorList); const table = searchParams.get("table"); const image_name = searchParams.get("image_name"); + const paramsError = searchParams.get("error"); + const paramsErrorReason = searchParams.get("error_reason"); + const paramsSysNo = searchParams.get("sysNo"); + const paramsDegreeType = searchParams.get("degreeType"); + const [items, setItems] = useState([]); + const [evErrorsData,setEvErrorsData] = useState([]); + const navigate = useNavigate(); + const dispatch = useDispatch(); + console.log("Ev errors list ==== ", evErrorsList); console.log("table is : ", table); + // const evErrorsData = useSelector((state) => state?.partCErrorData); + // console.log("evErrorData: ", evErrorsData); const fetchPrimaryKeyData = async () => { try { @@ -51,6 +69,25 @@ const QueryCardEditor = () => { } }; + useEffect(() => { + const marksLocalData = localStorage.getItem("marks_manual_data"); + console.log("Marks local data 123 ========= ",marksLocalData) + if (marksLocalData) { + console.log("Into if and updating .......") + console.log("marks local data ==== ",marksLocalData) + setEvErrorsData(JSON.parse(marksLocalData)); + } + }, []); + + useEffect(()=>{ + dispatch(updateSystemNo(paramsSysNo)) + },[paramsSysNo]) + + + useEffect(()=>{ + console.log("Ev error data =============== ",evErrorsData) + },[evErrorsData]) + useEffect(() => { const fetchData = async () => { if (table && image_name) { @@ -79,8 +116,12 @@ const QueryCardEditor = () => { setSubjectCode(recordData?.subject_code); setS3Path(recordData?.s3_path); }, [recordData]); + const updateRecord = async () => { + if(!marks){ + return + } setIsLoading(true); try { const payload = { @@ -91,6 +132,7 @@ const QueryCardEditor = () => { subjectCode, marks, imageName, + rotateAngle }; const response = await fetch( `${import.meta.env.VITE_REACT_APP_BACKEND_URL}/editPartCdata`, @@ -107,6 +149,30 @@ const QueryCardEditor = () => { console.log("response data ========= ", responseData); if (responseData?.status === "success") { toast.success("Record Updated Successfully ..."); + var currentIndex = null; + console.log("Ev errors data before filter ============= ",evErrorsData) + var newRecords = evErrorsData.filter((data, index) => { + if (data?.image_name === imageName) { + currentIndex = index; + return false; + } + return true; + }); + if(!currentIndex){ + currentIndex = 0 + } + console.log("new records ======1 ", newRecords); + console.log("Current Index ===== ", currentIndex); + dispatch(updatePartCErrorData(newRecords)); + if (newRecords.length > 0) { + console.log("Has to navigte 12 ....."); + localStorage.setItem("marks_manual_data", JSON.stringify(newRecords)); + const newUrl = `/sqlPlayground/edit?image_name=${newRecords[currentIndex]?.image_name}&table=ocr_scanned_part_c_v1&error=${paramsError}&error_reason=${paramsErrorReason}°reeType=${paramsDegreeType}&sysNo=${paramsSysNo}`; + console.log("new url ==== ", newUrl); + window.location.href = newUrl; + } else { + navigate("/"); + } } } catch (error) { setIsLoading(false); @@ -114,6 +180,15 @@ const QueryCardEditor = () => { } }; + useEffect(() => { + console.log("Rotate angle changed to ========== ", rotateAngle); + const imageContainer = document.getElementById("img-container"); + console.log("Imge container ===== ", imageContainer); + if (imageContainer) { + imageContainer.style.transform = `rotate(${rotateAngle}deg)`; + } + }, [rotateAngle]); + const initateRotation = async () => { console.log("Rotating initiated ..."); setIsLoading(true); @@ -144,6 +219,35 @@ const QueryCardEditor = () => { } }; +const skipPage = () =>{ + try{ + if(evErrorsData){ + var currentIndex = null + var newRecords = evErrorsData.filter((data, index) => { + if (data?.image_name === imageName) { + currentIndex = index; + return false; + } + return true; + }); + if(!currentIndex){ + currentIndex = 0 + } + console.log("Current Index ===== ", currentIndex); + const newIndex = currentIndex+1 + console.log("new index ===== ",newIndex) + if (newRecords.length > 0) { + console.log("Has to navigte 12 ....."); + const newUrl = `/sqlPlayground/edit?image_name=${evErrorsData[newIndex]?.image_name}&table=ocr_scanned_part_c_v1&error=${paramsError}&error_reason=${paramsErrorReason}°reeType=${paramsDegreeType}&sysNo=${paramsSysNo}`; + console.log("new url ==== ", newUrl); + window.location.href = newUrl; + } + } + }catch(error){ + throw new Error(error) + } +} + return ( @@ -177,23 +281,31 @@ const QueryCardEditor = () => { > Update - {/* + + - */} + - + { +const QueryExecutorCard = ({ data, s3_image_column, query, error, error_reason, reduxSystemNo,degreeType }) => { + // console.log("ERROR ============= ",error) + // console.log("ERROR REASON ============== ",error_reason) + // console.log("REDUX SYSTEM NO ================== ",reduxSystemNo) const navigate = useNavigate() const [dataValue, setDataValue] = useState({}); const [isLoading, setIsLoading] = useState(false); @@ -172,7 +175,7 @@ const QueryExecutorCard = ({ data, s3_image_column, query }) => { <> diff --git a/src/redux/reducers/Reducer.jsx b/src/redux/reducers/Reducer.jsx index 71dae7e..2b4ce00 100644 --- a/src/redux/reducers/Reducer.jsx +++ b/src/redux/reducers/Reducer.jsx @@ -13,6 +13,7 @@ const initialState = { selectedError: null, selectedErrorData: [], selectedErrorJson: {}, + partCDegreeType : null }; const reducer = (state = initialState, action) => { @@ -41,10 +42,12 @@ const initialState = { return { ...state, selectedErrorData:action?.payload} case 'UPDATE_SELECTED_ERROR_JSON': return { ...state, selectedErrorJson:action?.payload} + case 'UPDATE_PART_C_DEGREE_TYPE': + return { ...state, partCDegreeType:action?.payload} default: return state; } - }; + } export default reducer; \ No newline at end of file