From 9e07969190dc6d9a38812adb0053e38143bbb00c Mon Sep 17 00:00:00 2001 From: Kenneth Jannette Date: Sat, 2 Mar 2024 13:52:37 -0600 Subject: [PATCH 01/10] more --- src/Components/Modals/UploadModal.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Components/Modals/UploadModal.js b/src/Components/Modals/UploadModal.js index dc55f97..75bf395 100644 --- a/src/Components/Modals/UploadModal.js +++ b/src/Components/Modals/UploadModal.js @@ -103,7 +103,7 @@ const UploadModal = (props) => { console.log("-------------------------------->res in uploadFile", res); return res; } else { - const response = await fetch(`${apiUrl}/parseNewDoc`, { + const response = await fetch(`${apiUrl}/v1/parse-new-req-doc`, { method: "POST", body: file, }); From be299018bca8ca81e643c3dad8697240d9089798 Mon Sep 17 00:00:00 2001 From: Kenneth Jannette Date: Sat, 2 Mar 2024 14:03:33 -0600 Subject: [PATCH 02/10] more --- src/Components/Document/ReqEditPage.js | 237 ++++++++++++++++++++++++- 1 file changed, 231 insertions(+), 6 deletions(-) diff --git a/src/Components/Document/ReqEditPage.js b/src/Components/Document/ReqEditPage.js index ff1464d..0ad82ba 100644 --- a/src/Components/Document/ReqEditPage.js +++ b/src/Components/Document/ReqEditPage.js @@ -4,6 +4,9 @@ import { useParams } from "react-router-dom"; import { Link, useNavigate } from "react-router-dom"; import { AppContext } from "../../Hooks/useContext/appContext"; import EditElement from "../../pageElements/EditElement"; +import { docEditCopy } from "../../Constants/Copy/docEditCopy.js"; +import ConfirmModal from "../Modals/ConfirmModal"; +import Button from "../../pageElements/Button"; import { db } from "../../firebase"; import { collection, @@ -34,7 +37,7 @@ const RequestEditPage = () => { const [isReport, setIsReport] = useState(false); const [issueText, setIssueText] = useState(""); const [showErrorModal, setShowErrorModal] = useState(false); - + const [isBusy, setIsBusy] = useState(false); const state = group.state[0] ? group.state[0].code : "ny"; const lawFirm = group ? group?.firm : null; const streetAdd = group ? group?.streetAddress : null; @@ -85,14 +88,11 @@ const RequestEditPage = () => { } getOutgoingRequests(documentId) .then((data) => { - console.log("data in getOutgoingRequests", data); - /* const resp = data[0].responses.map((item, index) => { // NEVER CHANGE THIS: return { showInputEle: false, resp: item.text, index: index }; }); - */ - setResponses(); + setResponses(resp); }) .catch((err) => console.log(err)); }, [documentId]); @@ -126,6 +126,20 @@ const RequestEditPage = () => { return req; } + async function createAndReturnDocx() { + window.scrollTo({ top: 0 }); + setIsBusy(true); + const response = await handleCreateDocx(); + if (response.status === 200) { + setTimeout(getDocx, 5000); + setTimeout(cleanUpDocx, 10000); + } else { + setShowErrorModal(true); + } + } + + const postEditedResponses = () => {}; + const onScrollClick = () => { const bottom = window.document.scrollingElement.scrollHeight; const place = window.scrollY; @@ -136,11 +150,222 @@ const RequestEditPage = () => { } }; + const handleBlur = (e, i) => { + const newSelectedResponses = responses?.map((r) => { + if (r.index === i) { + return { + ...r, + showInputEle: !showInputEle, + }; + } + return r; + }); + setResponses(newSelectedResponses); + }; + + const handleFocus = (arg, i) => { + const newSelectedResponses = responses?.map((r) => { + if (r.index === i) { + return { + ...r, + showInputEle: !showInputEle, + }; + } + return r; + }); + setResponses(newSelectedResponses); + }; + + const handleEditValue = (e, i) => { + const editingRes = responses?.map((r) => { + if (r.index === i) { + return { + ...r, + resp: e.target.value, + }; + } + return r; + }); + setResponses(editingRes); + }; + + const handleBack = () => { + navigate(`/documents`); + }; + + const handleCancelSave = () => { + setShowSaveModal(false); + }; + + const handleSave = () => { + postEditedResponses(); + setShowSaveModal(false); + }; + + const handleConfirmReport = () => { + setShowSaveModal(true); + setIsReport(true); + }; + + const numberingContent = (i) => { + let numText; + if (documentType === "interrogatories") { + numText = "INTERROGATORY NO.."; + } else if (documentType === "admissions") { + numText = "REQUEST FOR ADMISSION NO."; + } else if (documentType === "production") { + numText = "REQUEST FOR PRODUCTION NO."; + } else { + numText = "REQUEST NO."; + } + return
{`${numText}${i + 1} `}
; + }; + + const respondent = + fetchedCase?.clientPosition == "Defendant" + ? fetchedCase?.defendantParties + : fetchedCase?.plaintiffParties; + + const displayCopy = + state === "ny" + ? docEditCopy.NewYork + : state === "nj" + ? docEditCopy.NewJersey + : docEditCopy.NewYork; + + const servingParty = + fetchedCase?.clientPosition === "Defendant" + ? fetchedCase?.plaintiffParties + : fetchedCase?.defendantParties; + + const editingContent = () => { + return ( + <> +
{headerPicker()}
+
+
{headerString}
+
+ {displayCopy.prelimaryStatement( + documentType, + respondent, + servingParty + )} +
+
+ {parsedRogs?.map((rog, i) => ( +
+
+ {numberingContent(i)} + {rog?.text} +
+
+ 2 + ? // NEVER CHANGE THIS + responses[i].resp + : null + } + setShowInputEle={setShowInputEle} + showInputEle={ + responses && responses.length > 2 + ? responses[i].showInputEle + : null + } + handleFocus={handleFocus} + handleEditValue={handleEditValue} + handleBlur={handleBlur} + i={i} + /> +
+
+ ))} +
handleConfirmReport()} + > +
Report an issue
+
+
+
+ {/* TODO: add tooltip: "This will save the document and create a .docx file that will (be downloaded? saved somewhere?" */} +
+
+
+
+
+
+
+
+
+
+ {showSaveModal && !isReport && documentId !== null ? ( + + ) : null} + {showSaveModal && isReport && documentId !== null ? ( + + ) : null} + {showErrorModal ? ( + setShowErrorModal(false)} + onConfirm={() => setShowErrorModal(false)} + buttonLabelText="Confirm" + modalText={ + "There was a problem. Support was notified and will respond within 24 hours." + } + /> + ) : null} + + ); + }; + + const readyToEdit = fetchedCase && responses.length > 1; + return (
-
{headerPicker(state, fetchedCase, onScrollClick)}
+
); }; export default RequestEditPage; + +/* + +{headerPicker(state, fetchedCase, onScrollClick)} +*/ From a0eca1c6fed803a8e4b85eba9cc1be75c165690a Mon Sep 17 00:00:00 2001 From: Kenneth Jannette Date: Sat, 2 Mar 2024 14:08:07 -0600 Subject: [PATCH 03/10] more --- src/Components/Document/ReqEditPage.js | 91 ++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/src/Components/Document/ReqEditPage.js b/src/Components/Document/ReqEditPage.js index 0ad82ba..69c787d 100644 --- a/src/Components/Document/ReqEditPage.js +++ b/src/Components/Document/ReqEditPage.js @@ -126,6 +126,36 @@ const RequestEditPage = () => { return req; } + async function getDocx() { + const docId = documentId; + const reqType = documentType; + fetch(`${apiUrl}/getDocx/${docId}/${reqType}`, { + method: "GET", + }).then((response) => { + response.blob().then((blob) => { + let url = window.URL.createObjectURL(blob); + let a = window.document.createElement("a"); + a.href = url; + a.download = `${reqType}-repsonse.docx`; + a.click(); + }); + }); + } + + async function cleanUpDocx() { + const docId = documentId; + const reqType = documentType; + fetch(`${apiUrl}/cleanUpDocx/${docId}/${reqType}`, { + method: "GET", + }) + .then((response) => { + setIsBusy(false); + }) + .catch((err) => { + console.log(err); + }); + } + async function createAndReturnDocx() { window.scrollTo({ top: 0 }); setIsBusy(true); @@ -150,6 +180,58 @@ const RequestEditPage = () => { } }; + async function handleCreateDocx() { + // TODO: compare to see if any changes made before gen, save those + const docId = documentId; + const leadAttorneys = fetchedCase?.leadAttorneys + ? fetchedCase?.leadAttorneys + : null; + const reqType = documentType; + const captionOne = fetchedCase.caption; + const captionTwo = fetchedCase.captionTwo; + const caseNum = fetchedCase.caseNumber; + const plaintiffs = fetchedCase.plaintiffParties; + const defendants = fetchedCase.defendantParties; + const venued = fetchedCase.venue; + const juris = fetchedCase.jurisdiction; + const judge = fetchedCase.judge; + const clientPosition = fetchedCase?.clientPosition + ? fetchedCase?.clientPosition + : null; + + try { + const response = await fetch(`${apiUrl}/genDocx/${docId}/${reqType}`, { + method: "POST", + headers: { + Accept: "application/json", + "Content-Type": "application/json", + }, + body: JSON.stringify({ + caseCaption1: captionOne, + caseCaption2: captionTwo, + caseNumber: caseNum, + clientPosition: clientPosition, + defendant: defendants, + firm: lawFirm, + firmCity: city, + firmState: usState.code, + firmStreetAddress: streetAdd, + firmZip: zipCode, + judge: judge, + jurisdiction: juris, + leadAttorneys: leadAttorneys, + plaintiff: plaintiffs, + state: state, + tel: telephone, + venue: venued, + }), + }); + return response; + } catch (error) { + console.error("Error sending responses to the server:", error); + } + } + const handleBlur = (e, i) => { const newSelectedResponses = responses?.map((r) => { if (r.index === i) { @@ -202,6 +284,15 @@ const RequestEditPage = () => { setShowSaveModal(false); }; + const handleReport = () => { + setShowSaveModal(false); + setIsReport(false); + }; + + const handleConfirmSave = () => { + setShowSaveModal(true); + }; + const handleConfirmReport = () => { setShowSaveModal(true); setIsReport(true); From 3ad9aa806365a97579bd78e3823e16710af48f78 Mon Sep 17 00:00:00 2001 From: Kenneth Jannette Date: Sat, 2 Mar 2024 14:14:42 -0600 Subject: [PATCH 04/10] more --- src/Components/Document/ReqEditPage.js | 35 +++++++++++++------------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/src/Components/Document/ReqEditPage.js b/src/Components/Document/ReqEditPage.js index 69c787d..2df94e5 100644 --- a/src/Components/Document/ReqEditPage.js +++ b/src/Components/Document/ReqEditPage.js @@ -24,8 +24,7 @@ const RequestEditPage = () => { const { appState } = useContext(AppContext); const { group } = appState; const navigate = useNavigate(); - const [parsedRogs, setParsedRogs] = useState(); - const [responses, setResponses] = useState([1]); + const [requests, setRequests] = useState([1]); const [fetchedCase, setFetchedCase] = useState(); const [showInputEle, setShowInputEle] = useState(true); const [document, setDocument] = useState(null); @@ -88,11 +87,11 @@ const RequestEditPage = () => { } getOutgoingRequests(documentId) .then((data) => { - const resp = data[0].responses.map((item, index) => { + const resp = data[0].requests.map((item, index) => { // NEVER CHANGE THIS: return { showInputEle: false, resp: item.text, index: index }; }); - setResponses(resp); + setRequests(resp); }) .catch((err) => console.log(err)); }, [documentId]); @@ -168,7 +167,7 @@ const RequestEditPage = () => { } } - const postEditedResponses = () => {}; + const postEditedrequests = () => {}; const onScrollClick = () => { const bottom = window.document.scrollingElement.scrollHeight; @@ -228,12 +227,12 @@ const RequestEditPage = () => { }); return response; } catch (error) { - console.error("Error sending responses to the server:", error); + console.error("Error sending requests to the server:", error); } } const handleBlur = (e, i) => { - const newSelectedResponses = responses?.map((r) => { + const newSelectedrequests = requests?.map((r) => { if (r.index === i) { return { ...r, @@ -242,11 +241,11 @@ const RequestEditPage = () => { } return r; }); - setResponses(newSelectedResponses); + setRequests(newSelectedrequests); }; const handleFocus = (arg, i) => { - const newSelectedResponses = responses?.map((r) => { + const newSelectedrequests = requests?.map((r) => { if (r.index === i) { return { ...r, @@ -255,11 +254,11 @@ const RequestEditPage = () => { } return r; }); - setResponses(newSelectedResponses); + setRequests(newSelectedrequests); }; const handleEditValue = (e, i) => { - const editingRes = responses?.map((r) => { + const editingRes = requests?.map((r) => { if (r.index === i) { return { ...r, @@ -268,7 +267,7 @@ const RequestEditPage = () => { } return r; }); - setResponses(editingRes); + setRequests(editingRes); }; const handleBack = () => { @@ -280,7 +279,7 @@ const RequestEditPage = () => { }; const handleSave = () => { - postEditedResponses(); + postEditedrequests(); setShowSaveModal(false); }; @@ -352,15 +351,15 @@ const RequestEditPage = () => {
2 + requests && requests.length > 2 ? // NEVER CHANGE THIS - responses[i].resp + requests[i].resp : null } setShowInputEle={setShowInputEle} showInputEle={ - responses && responses.length > 2 - ? responses[i].showInputEle + requests && requests.length > 2 + ? requests[i].showInputEle : null } handleFocus={handleFocus} @@ -445,7 +444,7 @@ const RequestEditPage = () => { ); }; - const readyToEdit = fetchedCase && responses.length > 1; + const readyToEdit = fetchedCase && requests.length > 1; return (
From 745d00f86fbe0a8d7c6c651b0d156b8d0609e248 Mon Sep 17 00:00:00 2001 From: Kenneth Jannette Date: Sat, 2 Mar 2024 14:16:15 -0600 Subject: [PATCH 05/10] More --- src/Components/Document/ReqEditPage.js | 44 +++++++++++++------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/Components/Document/ReqEditPage.js b/src/Components/Document/ReqEditPage.js index 2df94e5..1f0dea6 100644 --- a/src/Components/Document/ReqEditPage.js +++ b/src/Components/Document/ReqEditPage.js @@ -342,31 +342,11 @@ const RequestEditPage = () => { )}
- {parsedRogs?.map((rog, i) => ( + {requests?.map((req, i) => (
{numberingContent(i)} - {rog?.text} -
-
- 2 - ? // NEVER CHANGE THIS - requests[i].resp - : null - } - setShowInputEle={setShowInputEle} - showInputEle={ - requests && requests.length > 2 - ? requests[i].showInputEle - : null - } - handleFocus={handleFocus} - handleEditValue={handleEditValue} - handleBlur={handleBlur} - i={i} - /> + {req?.text}
))} @@ -458,4 +438,24 @@ export default RequestEditPage; /* {headerPicker(state, fetchedCase, onScrollClick)} + + 2 + ? // NEVER CHANGE THIS + requests[i].resp + : null + } + setShowInputEle={setShowInputEle} + showInputEle={ + requests && requests.length > 2 + ? requests[i].showInputEle + : null + } + handleFocus={handleFocus} + handleEditValue={handleEditValue} + handleBlur={handleBlur} + i={i} + /> + */ From 84e73ee81802aba95c5d72d3f6675c3606bd4f7b Mon Sep 17 00:00:00 2001 From: Kenneth Jannette Date: Sat, 2 Mar 2024 14:19:31 -0600 Subject: [PATCH 06/10] more --- src/Components/Document/ReqEditPage.js | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/Components/Document/ReqEditPage.js b/src/Components/Document/ReqEditPage.js index 1f0dea6..b3117af 100644 --- a/src/Components/Document/ReqEditPage.js +++ b/src/Components/Document/ReqEditPage.js @@ -4,6 +4,7 @@ import { useParams } from "react-router-dom"; import { Link, useNavigate } from "react-router-dom"; import { AppContext } from "../../Hooks/useContext/appContext"; import EditElement from "../../pageElements/EditElement"; +import LoadingSpinner from "../../pageElements/LoadingSpinner"; import { docEditCopy } from "../../Constants/Copy/docEditCopy.js"; import ConfirmModal from "../Modals/ConfirmModal"; import Button from "../../pageElements/Button"; @@ -358,7 +359,6 @@ const RequestEditPage = () => {
- {/* TODO: add tooltip: "This will save the document and create a .docx file that will (be downloaded? saved somewhere?" */}
-
-
-
-
-
-
-
- {showSaveModal && !isReport && documentId !== null ? ( - - ) : null} - {showSaveModal && isReport && documentId !== null ? ( - - ) : null} - {showErrorModal ? ( - setShowErrorModal(false)} - onConfirm={() => setShowErrorModal(false)} - buttonLabelText="Confirm" - modalText={ - "There was a problem. Support was notified and will respond within 24 hours." - } - /> - ) : null} ); }; - const readyToEdit = fetchedCase && requests.length > 1; + //const readyToEdit = fetchedCase && requests.length > 1; + const readyToEdit = true; const messages = [ "Generating responses. Please be patient, this may take several minutes.", ]; @@ -451,6 +383,17 @@ export default RequestEditPage; /* +
+ {displayCopy.prelimaryStatement( + documentType, + respondent, + servingParty + )} +
+ + + console.log("reqwuests in useEffect", requests); + {headerPicker(state, fetchedCase, onScrollClick)} Date: Sat, 2 Mar 2024 16:18:03 -0600 Subject: [PATCH 09/10] more --- src/Components/Document/ReqEditPage.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Components/Document/ReqEditPage.js b/src/Components/Document/ReqEditPage.js index 0b10b4a..4ddb587 100644 --- a/src/Components/Document/ReqEditPage.js +++ b/src/Components/Document/ReqEditPage.js @@ -91,7 +91,7 @@ const RequestEditPage = () => { console.log("data in useEffect", data); const resp = data[0].requests.map((item, index) => { // NEVER CHANGE THIS: - return { showInputEle: false, req: item.text, index: index }; + return { showInputEle: false, text: item.text, index: index }; }); setRequests(resp); }) From 2654fd1813d3fdf07232e908f54e3ba4a510b389 Mon Sep 17 00:00:00 2001 From: Kenneth Jannette Date: Sat, 2 Mar 2024 17:00:26 -0600 Subject: [PATCH 10/10] more --- src/Components/Case/CaseDetailsPage.js | 2 +- src/Components/Modals/UploadModal.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Components/Case/CaseDetailsPage.js b/src/Components/Case/CaseDetailsPage.js index 0487d5f..6c37722 100644 --- a/src/Components/Case/CaseDetailsPage.js +++ b/src/Components/Case/CaseDetailsPage.js @@ -149,7 +149,7 @@ const CaseDetailsPage = () => { if (!group) { return null; } - + console.log("-----------------------------------------subCase", subCase); const HeadingContent = () => { return (
diff --git a/src/Components/Modals/UploadModal.js b/src/Components/Modals/UploadModal.js index 75bf395..9ffb777 100644 --- a/src/Components/Modals/UploadModal.js +++ b/src/Components/Modals/UploadModal.js @@ -39,6 +39,7 @@ const UploadModal = (props) => { const [docError, setShowDocError] = useState(""); const fileTypes = ["PDF"]; const fileName = fileToParse ? fileToParse.name : undefined; + let docType; const apiUrl = process.env.NODE_ENV === "development" @@ -100,7 +101,6 @@ const UploadModal = (props) => { body: file, }); const res = response; - console.log("-------------------------------->res in uploadFile", res); return res; } else { const response = await fetch(`${apiUrl}/v1/parse-new-req-doc`, {