diff --git a/apps/OpenSign/src/json/ReportJson.js b/apps/OpenSign/src/json/ReportJson.js index d3d6148ba..c65926b05 100644 --- a/apps/OpenSign/src/json/ReportJson.js +++ b/apps/OpenSign/src/json/ReportJson.js @@ -164,16 +164,26 @@ export default function reportJson(id) { ] }; // template report - case "23jk45slhj": + case "6TeaPr321t": return { reportName: "Templates", - heading: contactbook, + heading: head, actions: [ { - btnLabel: "", - btnColor: "#f55a42", + btnLabel: "Use", + btnColor: "#4bd396", textColor: "white", - btnIcon: "fa-solid fa-trash" + btnIcon: "fa fa-plus", + redirectUrl: + "remoteUrl=aHR0cHM6Ly9xaWstYWktb3JnLmdpdGh1Yi5pby9TaWduLU1pY3JvYXBwVjIvcmVtb3RlRW50cnkuanM=&moduleToLoad=AppRoutes&remoteName=signmicroapp/placeHolderSign" + }, + { + btnLabel: "Edit", + btnColor: "#00c9d5", + textColor: "white", + btnIcon: "fa fa-plus", + redirectUrl: + "remoteUrl=aHR0cHM6Ly9xaWstYWktb3JnLmdpdGh1Yi5pby9TaWduLU1pY3JvYXBwVjIvcmVtb3RlRW50cnkuanM=&moduleToLoad=AppRoutes&remoteName=signmicroapp/template" } ] }; diff --git a/apps/OpenSign/src/primitives/GetReportDisplay.js b/apps/OpenSign/src/primitives/GetReportDisplay.js index 6c603d76d..f54f719aa 100644 --- a/apps/OpenSign/src/primitives/GetReportDisplay.js +++ b/apps/OpenSign/src/primitives/GetReportDisplay.js @@ -55,10 +55,109 @@ const ReportTable = ({ }, [isMoreDocs, pageNumbers, currentPage, setIsNextRecord]); // `handlemicroapp` is used to open microapp - const handlemicroapp = (item, url) => { - localStorage.removeItem("rowlevel"); - navigate("/rpmf/" + url); - localStorage.setItem("rowlevel", JSON.stringify(item)); + const handlemicroapp = async (item, url, btnLabel) => { + if (ReportName === "Templates") { + if(btnLabel === "Edit"){ + navigate(`/asmf/${url}/${item.objectId}`); + }else{ + setActLoader({ [item.objectId]: true }); + try { + const params = { + templateId: item.objectId + }; + const templateDeatils = await axios.post( + `${localStorage.getItem("baseUrl")}functions/getTemplate`, + params, + { + headers: { + "Content-Type": "application/json", + "X-Parse-Application-Id": localStorage.getItem("parseAppId"), + sessionToken: localStorage.getItem("accesstoken") + } + } + ); + + 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; + } + let signers = []; + if (Doc.Signers?.length > 0) { + Doc.Signers?.forEach((x) => { + if (x.objectId) { + const obj = { + __type: "Pointer", + className: "contracts_Contactbook", + objectId: x.objectId + }; + signers.push(obj); + } + }); + } + const data = { + Name: Doc.Name, + URL: Doc.URL, + SignedUrl: Doc.SignedUrl, + Description: Doc.Description, + Note: Doc.Note, + Placeholders: placeholdersArr, + ExtUserPtr: { + __type: "Pointer", + className: "contracts_Users", + objectId: Doc.ExtUserPtr.objectId + }, + CreatedBy: { + __type: "Pointer", + className: "_User", + objectId: Doc.CreatedBy.objectId + }, + Signers: signers + }; + + const res = await axios.post( + `${localStorage.getItem("baseUrl")}classes/${localStorage.getItem( + "_appName" + )}_Document`, + data, + { + headers: { + "Content-Type": "application/json", + "X-Parse-Application-Id": localStorage.getItem("parseAppId"), + "X-Parse-Session-Token": localStorage.getItem("accesstoken") + } + } + ); + + // console.log("Res ", res.data); + if (res.data && res.data.objectId) { + setActLoader({}); + setIsAlert(true); + navigate(`/asmf/${url}/${res.data.objectId}`); + } + } else { + setIsAlert(true); + setIsErr(true); + setActLoader({}); + } + } catch (err) { + console.log("err", err); + setIsAlert(true); + setIsErr(true); + setActLoader({}); + } + } + } else { + localStorage.removeItem("rowlevel"); + navigate("/rpmf/" + url); + localStorage.setItem("rowlevel", JSON.stringify(item)); + } + // localStorage.setItem("rowlevelMicro"); }; const handlebtn = async (item) => { @@ -217,7 +316,7 @@ const ReportTable = ({ key={index} onClick={() => act?.redirectUrl - ? handlemicroapp(item, act.redirectUrl) + ? handlemicroapp(item, act.redirectUrl, act.btnLabel) : handlebtn(item) } className={`flex justify-center items-center w-full gap-1 px-2 py-1 rounded shadow`} diff --git a/apps/OpenSign/src/primitives/TemplateForm.js b/apps/OpenSign/src/primitives/TemplateForm.js index d478f670b..05f8d7d6f 100644 --- a/apps/OpenSign/src/primitives/TemplateForm.js +++ b/apps/OpenSign/src/primitives/TemplateForm.js @@ -7,16 +7,16 @@ import SelectFolder from "../components/fields/SelectFolder"; // import SignersInput from "../components/fields/SignersInput"; import Title from "../components/Title"; import { useNavigate } from "react-router-dom"; -import { templateCls } from '../constant/const' - +import { templateCls } from "../constant/const"; + const TemplateForm = () => { - const navigate = useNavigate() + const navigate = useNavigate(); const [signers, setSigners] = useState([]); const [folder, setFolder] = useState({ ObjectId: "", Name: "" }); const [formData, setFormData] = useState({ - Name: "Please review and sign this document", + Name: "", Description: "", - Note: "" + Note: "Please review and sign this document" }); const [fileupload, setFileUpload] = useState([]); const [fileload, setfileload] = useState(false); @@ -168,7 +168,10 @@ const TemplateForm = () => { }); setFileUpload([]); setpercentage(0); - navigate('/asmf/remoteUrl=aHR0cHM6Ly9xaWstYWktb3JnLmdpdGh1Yi5pby9TaWduLU1pY3JvYXBwVjIvcmVtb3RlRW50cnkuanM=&moduleToLoad=AppRoutes&remoteName=signmicroapp/template/' +res.id) + navigate( + "/asmf/remoteUrl=aHR0cHM6Ly9xaWstYWktb3JnLmdpdGh1Yi5pby9TaWduLU1pY3JvYXBwVjIvcmVtb3RlRW50cnkuanM=&moduleToLoad=AppRoutes&remoteName=signmicroapp/template/" + + res.id + ); } } catch (err) { console.log("err ", err); @@ -275,7 +278,9 @@ const TemplateForm = () => { />
- + { />
{/* */} - +