From 7a12f54587d2df01031ebbf1be5fe97b2a60a65f Mon Sep 17 00:00:00 2001 From: prafull-opensignlabs Date: Wed, 27 Dec 2023 17:41:51 +0530 Subject: [PATCH] add contactbook form in contactbook report --- .../src/components/AppendFormInForm.js | 26 ++- .../src/components/fields/CreateFolder.js | 2 +- .../src/components/fields/SelectFolder.js | 150 +++++++++--------- apps/OpenSign/src/json/FormJson.js | 2 +- apps/OpenSign/src/json/ReportJson.js | 3 +- .../src/primitives/GetReportDisplay.js | 46 ++++-- apps/OpenSign/src/primitives/ModalUi.js | 2 +- apps/OpenSign/src/routes/Report.js | 3 + 8 files changed, 140 insertions(+), 94 deletions(-) diff --git a/apps/OpenSign/src/components/AppendFormInForm.js b/apps/OpenSign/src/components/AppendFormInForm.js index f5c1d51c2..47679d033 100644 --- a/apps/OpenSign/src/components/AppendFormInForm.js +++ b/apps/OpenSign/src/components/AppendFormInForm.js @@ -106,13 +106,18 @@ const AppendFormInForm = (props) => { const res = await contactQuery.save(); const parseData = JSON.parse(JSON.stringify(res)); - props.details({ - value: parseData[props.valueKey], - label: parseData[props.displayKey] - }); + if (props.details) { + props.details({ + value: parseData[props.valueKey], + label: parseData[props.displayKey] + }); + } if (props.closePopup) { props.closePopup(); } + if (props.handleUserData) { + props.handleUserData(parseData); + } setIsLoader(false); // Reset the form fields @@ -159,13 +164,18 @@ const AppendFormInForm = (props) => { const res = await contactQuery.save(); const parseData = JSON.parse(JSON.stringify(res)); - props.details({ - value: parseData[props.valueKey], - label: parseData[props.displayKey] - }); + if (props.details) { + props.details({ + value: parseData[props.valueKey], + label: parseData[props.displayKey] + }); + } if (props.closePopup) { props.closePopup(); } + if (props.handleUserData) { + props.handleUserData(parseData); + } setIsLoader(false); // Reset the form fields setAddYourself(false); diff --git a/apps/OpenSign/src/components/fields/CreateFolder.js b/apps/OpenSign/src/components/fields/CreateFolder.js index 18c30feea..1f921e904 100644 --- a/apps/OpenSign/src/components/fields/CreateFolder.js +++ b/apps/OpenSign/src/components/fields/CreateFolder.js @@ -133,7 +133,7 @@ const CreateFolder = ({ parentFolderId, onSuccess, folderCls }) => {
- -
-
- removeTabListItem(e)} - > - Root /{" "} - - {tabList && - tabList.map((tab, i) => ( - - removeTabListItem(e, i)} - > - {tab.Name} - - {" / "} - - ))} -
-
-
- {!isAdd && - folderList.length > 0 && - folderList.map((folder) => ( -
handleSelect(folder)} + +
+
+ removeTabListItem(e)} + > + Root /{" "} + + {tabList && + tabList.map((tab, i) => ( + + removeTabListItem(e, i)} > -
- - {folder.Name} -
+ {tab.Name} +
+ {" / "} +
+ ))} +
+
+
+ {!isAdd && + folderList.length > 0 && + folderList.map((folder) => ( +
handleSelect(folder)} + > +
+ + {folder.Name}
- ))} - {isAdd && ( - - )} - {isLoader && ( -
-
- )} -
+ ))} + {isAdd && ( + + )} + {isLoader && ( +
+ +
+ )}
-
-
-
- {isAdd ? ( - - ) : ( - - )} -
-
- -
+
+
+
+
+ {isAdd ? ( + + ) : ( + + )}
+
+ +
+
{/* {isOpen && (
{ }); formData = { jsonSchema: { - title: "New Document", + title: "Request signatures", description: "", type: "object", required: ["URL", "Name", "Note", "TimeToCompleteDays", "Signers"], diff --git a/apps/OpenSign/src/json/ReportJson.js b/apps/OpenSign/src/json/ReportJson.js index c65926b05..093d23d7d 100644 --- a/apps/OpenSign/src/json/ReportJson.js +++ b/apps/OpenSign/src/json/ReportJson.js @@ -161,7 +161,8 @@ export default function reportJson(id) { textColor: "white", btnIcon: "fa-solid fa-trash" } - ] + ], + form:"ContactBook" }; // template report case "6TeaPr321t": diff --git a/apps/OpenSign/src/primitives/GetReportDisplay.js b/apps/OpenSign/src/primitives/GetReportDisplay.js index c12583115..fed2f1d48 100644 --- a/apps/OpenSign/src/primitives/GetReportDisplay.js +++ b/apps/OpenSign/src/primitives/GetReportDisplay.js @@ -3,6 +3,8 @@ import pad from "../assets/images/pad.svg"; import { useNavigate } from "react-router-dom"; import axios from "axios"; import "../styles/report.css"; +import ModalUi from "./ModalUi"; +import AppendFormInForm from "../components/AppendFormInForm"; const ReportTable = ({ ReportName, List, @@ -11,13 +13,15 @@ const ReportTable = ({ heading, setIsNextRecord, isMoreDocs, - docPerPage + docPerPage, + form }) => { const navigate = useNavigate(); const [currentPage, setCurrentPage] = useState(1); const [actLoader, setActLoader] = useState({}); const [isAlert, setIsAlert] = useState(false); const [isErr, setIsErr] = useState(false); + const [isPopup, setIsPopup] = useState(false); // For loop is used to calculate page numbers visible below table // Initialize pageNumbers using useMemo to avoid unnecessary re-creation const pageNumbers = useMemo(() => { @@ -57,9 +61,9 @@ const ReportTable = ({ // `handlemicroapp` is used to open microapp const handlemicroapp = async (item, url, btnLabel) => { if (ReportName === "Templates") { - if(btnLabel === "Edit"){ + if (btnLabel === "Edit") { navigate(`/asmf/${url}/${item.objectId}`); - }else{ + } else { setActLoader({ [item.objectId]: true }); try { const params = { @@ -76,13 +80,13 @@ const ReportTable = ({ } } ); - + // console.log("templateDeatils.data ", templateDeatils.data); const templateData = templateDeatils.data && templateDeatils.data.result; if (!templateData.error) { const Doc = templateData; - + let placeholdersArr = []; if (Doc.Placeholders?.length > 0) { placeholdersArr = Doc.Placeholders; @@ -119,7 +123,7 @@ const ReportTable = ({ }, Signers: signers }; - + const res = await axios.post( `${localStorage.getItem("baseUrl")}classes/${localStorage.getItem( "_appName" @@ -133,7 +137,7 @@ const ReportTable = ({ } } ); - + // console.log("Res ", res.data); if (res.data && res.data.objectId) { setActLoader({}); @@ -200,6 +204,13 @@ const ReportTable = ({ const paginateFront = () => setCurrentPage(currentPage + 1); const paginateBack = () => setCurrentPage(currentPage - 1); + const handlePopup = () => { + setIsPopup(!isPopup); + }; + + const handleUserData = (data) => { + setList((prevData) => [data, ...prevData]); + }; return (
{isAlert && ( @@ -214,7 +225,14 @@ const ReportTable = ({
)} -

{ReportName}

+
+
{ReportName}
+ {form && ( +
handlePopup()}> + +
+ )} +
@@ -316,7 +334,11 @@ const ReportTable = ({ key={index} onClick={() => act?.redirectUrl - ? handlemicroapp(item, act.redirectUrl, act.btnLabel) + ? handlemicroapp( + item, + act.redirectUrl, + act.btnLabel + ) : handlebtn(item) } className={`flex justify-center items-center w-full gap-1 px-2 py-1 rounded shadow`} @@ -399,6 +421,12 @@ const ReportTable = ({
No Data Available
)} + + + ); }; diff --git a/apps/OpenSign/src/primitives/ModalUi.js b/apps/OpenSign/src/primitives/ModalUi.js index a732273dc..f5926e081 100644 --- a/apps/OpenSign/src/primitives/ModalUi.js +++ b/apps/OpenSign/src/primitives/ModalUi.js @@ -5,7 +5,7 @@ const ModalUi = ({ children, title, isOpen, handleClose }) => { <> {isOpen && (
-
+
{title}
{ const [heading, setHeading] = useState([]); const [isNextRecord, setIsNextRecord] = useState(false); const [isMoreDocs, setIsMoreDocs] = useState(true); + const [form, setForm]= useState("") const abortController = new AbortController(); const docPerPage = 10; @@ -50,6 +51,7 @@ const Report = () => { setActions(json.actions); setHeading(json.heading); setReportName(json.reportName); + setForm(json.form) Parse.serverURL = localStorage.getItem("BaseUrl12"); Parse.initialize(localStorage.getItem("AppID12")); const currentUser = Parse.User.current().id; @@ -154,6 +156,7 @@ const Report = () => { setIsNextRecord={setIsNextRecord} isMoreDocs={isMoreDocs} docPerPage={docPerPage} + form={form} /> ) : (