From dc40b04a18590306f6ed049833d9cf912b71dfac Mon Sep 17 00:00:00 2001 From: prafull-opensignlabs Date: Thu, 28 Dec 2023 14:39:52 +0530 Subject: [PATCH] fix: minor bug fix in template compoent --- .../src/Component/TemplatePlaceholder.js | 128 ++++++++++-------- .../Component/component/fieldsComponent.js | 10 +- .../src/Component/component/renderPdf.js | 47 ++++--- .../Component/component/signerListPlace.js | 2 +- .../src/Component/placeHolderSign.js | 4 + .../SignDocuments/src/css/ModalUi.css | 1 + .../src/premitives/SelectSigners.js | 17 ++- 7 files changed, 121 insertions(+), 88 deletions(-) diff --git a/microfrontends/SignDocuments/src/Component/TemplatePlaceholder.js b/microfrontends/SignDocuments/src/Component/TemplatePlaceholder.js index 35b588bbe..2eb0e8cf7 100644 --- a/microfrontends/SignDocuments/src/Component/TemplatePlaceholder.js +++ b/microfrontends/SignDocuments/src/Component/TemplatePlaceholder.js @@ -341,7 +341,6 @@ const TemplatePlaceholder = () => { // `getSignerPos` is used to get placeholder position when user place it and save it in array const getSignerPos = (item, monitor) => { const singer = signersdata.find((x) => x.Id === uniqueId); - if (singer) { const posZIndex = zIndex + 1; setZIndex(posZIndex); @@ -710,59 +709,64 @@ const TemplatePlaceholder = () => { } }; const handleSaveTemplate = async () => { - const loadObj = { - isLoad: true, - message: "This might take some time" - }; - setIsLoading(loadObj); - setIsSendAlert(false); - let signers = []; - if (signersdata?.length > 0) { - signersdata.forEach((x) => { - if (x.objectId) { - const obj = { - __type: "Pointer", - className: "contracts_Contactbook", - objectId: x.objectId - }; - signers.push(obj); - } - }); - } - try { - const data = { - Placeholders: signerPos, - SignedUrl: pdfDetails[0].URL, - Signers: signers + const singer = signersdata.find((x) => x.Id === uniqueId); + if (singer) { + const loadObj = { + isLoad: true, + message: "This might take some time" }; - - await axios - .put( - `${localStorage.getItem("baseUrl")}classes/${localStorage.getItem( - "_appName" - )}_Template/${templateId}`, - data, - { - headers: { - "Content-Type": "application/json", - "X-Parse-Application-Id": localStorage.getItem("parseAppId"), - "X-Parse-Session-Token": localStorage.getItem("accesstoken") - } + setIsLoading(loadObj); + setIsSendAlert(false); + let signers = []; + if (signersdata?.length > 0) { + signersdata.forEach((x) => { + if (x.objectId) { + const obj = { + __type: "Pointer", + className: "contracts_Contactbook", + objectId: x.objectId + }; + signers.push(obj); } - ) - .then((result) => { - setIsCreateDocModal(true); - setIsMailSend(true); - const loadObj = { - isLoad: false - }; - setIsLoading(loadObj); - }) - .catch((err) => { - console.log("axois err ", err); }); - } catch (e) { - console.log("error", e); + } + try { + const data = { + Placeholders: signerPos, + SignedUrl: pdfDetails[0].URL, + Signers: signers + }; + + await axios + .put( + `${localStorage.getItem("baseUrl")}classes/${localStorage.getItem( + "_appName" + )}_Template/${templateId}`, + data, + { + headers: { + "Content-Type": "application/json", + "X-Parse-Application-Id": localStorage.getItem("parseAppId"), + "X-Parse-Session-Token": localStorage.getItem("accesstoken") + } + } + ) + .then((result) => { + setIsCreateDocModal(true); + setIsMailSend(true); + const loadObj = { + isLoad: false + }; + setIsLoading(loadObj); + }) + .catch((err) => { + console.log("axois err ", err); + }); + } catch (e) { + console.log("error", e); + } + } else { + setIsReceipent(false); } }; //here you can add your messages in content and selector is key of particular steps @@ -770,7 +774,7 @@ const TemplatePlaceholder = () => { const tourConfig = [ { selector: '[data-tut="reactourAddbtn"]', - content: `Clicking "Add" button will show you popup of Add Role, fill role name or it will take by default name and create new receipent.`, + content: `Clicking "Add role" button will allow you to add various signer roles. You can attach users to each role in subsequent steps.`, position: "top", observe: '[data-tut="reactourAddbtn--observe"]', style: { fontSize: "13px" } @@ -873,7 +877,7 @@ const TemplatePlaceholder = () => { e.preventDefault(); const count = signersdata.length > 0 ? signersdata.length + 1 : 1; const Id = randomId(); - const index = signersdata?.length || 0; + const index = signersdata.length; const obj = { Role: roleName || "User " + count, Id: Id, @@ -889,13 +893,19 @@ const TemplatePlaceholder = () => { // `handleDeleteUser` function is used to delete record and placeholder when user click on delete which is place next user name in recipients list const handleDeleteUser = (Id) => { const updateSigner = signersdata - .filter((x) => x.Id !== Id) - .map((x, i) => ({ ...x, blockColor: color[i] })); + .filter((x) => x.Id !== Id) + .map((x, i) => ({ ...x, blockColor: color[i] })); setSignersData(updateSigner); const updatePlaceholderUser = signerPos - .filter((x) => x.Id !== Id) - .map((x, i) => ({ ...x, blockColor: color[i] })); + .filter((x) => x.Id !== Id) + .map((x, i) => ({ ...x, blockColor: color[i] })); // console.log("removePlaceholderUser ", removePlaceholderUser) + + const index = signersdata.findIndex((x)=> x.Id === Id) + setUniqueId(updateSigner[index]?.Id ||""); + // setIsSelectId(index === -1 ? 0: index); + setIsSelectId(0); + setSignerPos(updatePlaceholderUser); setIsMailSend(false); }; @@ -1051,7 +1061,7 @@ const TemplatePlaceholder = () => { handleClose={() => setIsCreateDocModal(false)} >
-

Do you want to create document right now ?

+

Do you want to create a document using the template you just created ?

{ setSelectedEmail={setSelectedEmail} selectedEmail={selectedEmail} handleAddSigner={handleAddSigner} + setUniqueId={setUniqueId} + setRoleName={setRoleName} />
) : ( diff --git a/microfrontends/SignDocuments/src/Component/component/fieldsComponent.js b/microfrontends/SignDocuments/src/Component/component/fieldsComponent.js index 3554b1477..d785ad886 100644 --- a/microfrontends/SignDocuments/src/Component/component/fieldsComponent.js +++ b/microfrontends/SignDocuments/src/Component/component/fieldsComponent.js @@ -32,7 +32,9 @@ function FieldsComponent({ isMailSend, selectedEmail, setSelectedEmail, - handleAddSigner + handleAddSigner, + setUniqueId, + setRoleName }) { const signStyle = pdfUrl ? "disableSign" : "signatureBtn"; @@ -104,6 +106,8 @@ function FieldsComponent({ setIsSelectId(selectedKey); setContractName(parseData.className); setSelectedEmail(true); + setUniqueId(parseData.Id); + setRoleName(parseData.Role); }} > - {obj.Role ? obj.Role : obj.Email} + {obj.Email ? obj.Email : obj.Role } ); })} @@ -193,7 +197,7 @@ function FieldsComponent({ onClick={() => handleAddSigner()} > - Add + Add role
)}
sign.objectId === signerId ); if (checkSign.length > 0) { - return

{checkSign[0].Name}

; + return

{checkSign[0].Name}

; } else { - return

{Role}

; + return

{Role}

; } } else { - return

{Role}

; + return

{Role}

; } }; return ( @@ -619,6 +619,11 @@ function RenderPdf({ > { + e.stopPropagation(); + handleLinkUser(data.Id); + setUniqueId(data.Id); + }} onClick={(e) => { e.stopPropagation(); handleLinkUser(data.Id); @@ -635,11 +640,14 @@ function RenderPdf({ setIsPageCopy(true); setSignKey(pos.key); setSignerObjId(data.signerObjId); + setUniqueId(data.Id) }} onClick={(e) => { e.stopPropagation(); setIsPageCopy(true); setSignKey(pos.key); + setSignerObjId(data.signerObjId); + setUniqueId(data.Id) }} style={{ color: "#188ae2" @@ -647,7 +655,15 @@ function RenderPdf({ > { + onTouchEnd={(e) => { + e.stopPropagation(); + handleDeleteSign( + pos.key, + data.Id + ); + // data.signerObjId + }} + onClick={(e) => { e.stopPropagation(); handleDeleteSign( pos.key, @@ -662,9 +678,9 @@ function RenderPdf({
@@ -772,17 +788,6 @@ function RenderPdf({ } }} > - { - e.stopPropagation(); - handleLinkUser(data.Id); - setUniqueId(data.Id); - }} - style={{ - color: "#188ae2" - }} - > { @@ -828,7 +833,7 @@ function RenderPdf({ ) : (
handleAddSigner()}> - Add + Add role
)}
diff --git a/microfrontends/SignDocuments/src/Component/placeHolderSign.js b/microfrontends/SignDocuments/src/Component/placeHolderSign.js index 502d5e718..32e1f3607 100644 --- a/microfrontends/SignDocuments/src/Component/placeHolderSign.js +++ b/microfrontends/SignDocuments/src/Component/placeHolderSign.js @@ -912,6 +912,7 @@ function PlaceHolderSign() { setIsAddUser({ [id]: true }); }; const handleAddUser = (data) => { + if(data && data.objectId){ const signerPtr = { __type: "Pointer", className: "contracts_Contactbook", @@ -935,6 +936,7 @@ function PlaceHolderSign() { // console.log("updateSigner ", updateSigner); setSignersData(updateSigner); + } }; const closePopup = () => { @@ -1206,6 +1208,8 @@ function PlaceHolderSign() { isMailSend={isMailSend} setSelectedEmail={setSelectedEmail} selectedEmail={selectedEmail} + setUniqueId={setUniqueId} + setRoleName={setRoleName} />
) : ( diff --git a/microfrontends/SignDocuments/src/css/ModalUi.css b/microfrontends/SignDocuments/src/css/ModalUi.css index 68ba3ae79..6364ef60f 100644 --- a/microfrontends/SignDocuments/src/css/ModalUi.css +++ b/microfrontends/SignDocuments/src/css/ModalUi.css @@ -66,6 +66,7 @@ box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); z-index: 1000; max-height: 80%; + min-width: 90%; overflow-y: auto; } } \ No newline at end of file diff --git a/microfrontends/SignDocuments/src/premitives/SelectSigners.js b/microfrontends/SignDocuments/src/premitives/SelectSigners.js index 86683de0e..11eb5c053 100644 --- a/microfrontends/SignDocuments/src/premitives/SelectSigners.js +++ b/microfrontends/SignDocuments/src/premitives/SelectSigners.js @@ -17,6 +17,7 @@ const SelectSigners = (props) => { const [userList, setUserList] = useState([]); const [selected, setSelected] = useState(); const [userData, setUserData] = useState({}); + const [isError, setIsError]= useState(false) const parseBaseUrl = localStorage.getItem("baseUrl"); const parseAppId = localStorage.getItem("parseAppId"); Parse.serverURL = parseBaseUrl; @@ -31,9 +32,14 @@ const SelectSigners = (props) => { } }; const handleAdd = () => { - props.details(userData); - if (props.closePopup) { - props.closePopup(); + if(userData && userData.objectId){ + props.details(userData); + if (props.closePopup) { + props.closePopup(); + } + }else{ + setIsError(true) + setTimeout(()=> setIsError(false), 1000) } }; @@ -67,7 +73,7 @@ const SelectSigners = (props) => { return (
-
+
{ styles={customStyles} />
+ {isError ?

Please select signer

:

.

} -
+