Skip to content

Commit 088ec55

Browse files
feat: add enable tour option in request signature and template form
1 parent eda6113 commit 088ec55

24 files changed

+219
-15
lines changed

apps/OpenSign/public/locales/en/translation.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -668,6 +668,12 @@
668668
"download-files":"Download files",
669669
"download-pdf":"Download Pdf",
670670
"pdf-certificate":"Download Pdf + Certificate",
671-
"document-logs":"Document logs"
671+
"document-logs":"Document logs",
672+
"enable-tour":"Enable Tour",
673+
"istourenabled-help":{
674+
"p1":"This will enable a guided tour for signers, providing instructions during the signing process.",
675+
"p2":"This will disable the guided tour, ensuring a faster, uninterrupted signing experience.",
676+
"p3":"Tip: If your signers are familiar with OpenSign and frequently use it, you may want to disable the guided tour for a more seamless experience. Choose the option that best fits your document signing needs."
677+
}
672678

673679
}

apps/OpenSign/public/locales/fr/translation.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -667,6 +667,12 @@
667667
"download-files" :"Télécharger des fichiers",
668668
"download-pdf" :"Télécharger le PDF",
669669
"pdf-certificate" :"Télécharger Pdf + Certificat",
670-
"document-logs":"Journaux de documents"
670+
"document-logs":"Journaux de documents",
671+
"enable-tour": "Activer la visite",
672+
"istourenabled-otp-help":{
673+
"p1": "Cela permettra une visite guidée pour les signataires, fournissant des instructions pendant le processus de signature.",
674+
"p2": "Cela désactivera la visite guidée, garantissant ainsi une expérience de signature plus rapide et ininterrompue.",
675+
"p3": "Conseil : si vos signataires connaissent OpenSign et l'utilisent fréquemment, vous souhaiterez peut-être désactiver la visite guidée pour une expérience plus fluide. Choisissez l'option qui correspond le mieux à vos besoins en matière de signature de documents."
676+
}
671677

672678
}

apps/OpenSign/src/components/pdf/EditTemplate.js

Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@ const EditTemplate = ({ template, onSuccess }) => {
1717
SendinOrder: template?.SendinOrder ? `${template?.SendinOrder}` : "false",
1818
AutomaticReminders: template?.AutomaticReminders || false,
1919
RemindOnceInEvery: template?.RemindOnceInEvery || 5,
20-
IsEnableOTP: template?.IsEnableOTP ? `${template?.IsEnableOTP}` : "false"
20+
IsEnableOTP: template?.IsEnableOTP ? `${template?.IsEnableOTP}` : "false",
21+
IsTourEnabled: template?.IsTourEnabled
22+
? `${template?.IsTourEnabled}`
23+
: "false"
2124
});
2225
const [isSubscribe, setIsSubscribe] = useState(false);
2326
useEffect(() => {
@@ -43,6 +46,7 @@ const EditTemplate = ({ template, onSuccess }) => {
4346
e.preventDefault();
4447
e.stopPropagation();
4548
const isChecked = formData.SendinOrder === "true" ? true : false;
49+
const isTourEnabled = formData?.IsTourEnabled === "false" ? false : true;
4650
const AutoReminder = formData?.AutomaticReminders || false;
4751
const IsEnableOTP = formData.IsEnableOTP === "true" ? true : false;
4852
let reminderDate = {};
@@ -56,6 +60,7 @@ const EditTemplate = ({ template, onSuccess }) => {
5660
...formData,
5761
SendinOrder: isChecked,
5862
IsEnableOTP: IsEnableOTP,
63+
IsTourEnabled: isTourEnabled,
5964
...reminderDate
6065
};
6166
onSuccess(data);
@@ -256,6 +261,59 @@ const EditTemplate = ({ template, onSuccess }) => {
256261
</div>
257262
</div>
258263
)}
264+
265+
<div className="text-xs mt-2">
266+
<label className="block">
267+
<span>
268+
{t("enable-tour")}
269+
<a data-tooltip-id="istourenabled-tooltip" className="ml-1">
270+
<sup>
271+
<i className="fa-light fa-question rounded-full border-[#33bbff] text-[#33bbff] text-[13px] border-[1px] py-[1.5px] px-[4px]"></i>
272+
</sup>
273+
</a>{" "}
274+
</span>
275+
<Tooltip id="istourenabled-tooltip" className="z-50">
276+
<div className="max-w-[200px] md:max-w-[450px]">
277+
<p className="font-bold">{t("enable-tour")}</p>
278+
<p className="p-[5px]">
279+
<ol className="list-disc">
280+
<li>
281+
<span className="font-bold">{t("yes")}: </span>
282+
<span>{t("istourenabled-help.p1")}</span>
283+
</li>
284+
<li>
285+
<span className="font-bold">{t("no")}: </span>
286+
<span>{t("istourenabled-help.p2")}</span>
287+
</li>
288+
</ol>
289+
</p>
290+
<p>{t("istourenabled-help.p3")}</p>
291+
</div>
292+
</Tooltip>
293+
</label>
294+
<div className={` flex items-center gap-2 ml-2 mb-1 `}>
295+
<input
296+
type="radio"
297+
value={"true"}
298+
className="op-radio op-radio-xs"
299+
name="IsTourEnabled"
300+
checked={formData.IsTourEnabled === "true"}
301+
onChange={handleStrInput}
302+
/>
303+
<div className="text-center">{t("yes")}</div>
304+
</div>
305+
<div className={` flex items-center gap-2 ml-2 mb-1 `}>
306+
<input
307+
type="radio"
308+
value={"false"}
309+
name="IsTourEnabled"
310+
className="op-radio op-radio-xs"
311+
checked={formData.IsTourEnabled === "false"}
312+
onChange={handleStrInput}
313+
/>
314+
<div className="text-center">{t("no")}</div>
315+
</div>
316+
</div>
259317
<div className="mt-[1rem] flex justify-start">
260318
<button type="submit" className="op-btn op-btn-primary">
261319
{t("submit")}

apps/OpenSign/src/constant/Utils.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -710,7 +710,8 @@ export const createDocument = async (
710710
SendinOrder: Doc?.SendinOrder || false,
711711
AutomaticReminders: Doc?.AutomaticReminders || false,
712712
RemindOnceInEvery: parseInt(Doc?.RemindOnceInEvery || 5),
713-
IsEnableOTP: Doc?.IsEnableOTP || false
713+
IsEnableOTP: Doc?.IsEnableOTP || false,
714+
IsTourEnabled: Doc?.IsTourEnabled || false
714715
};
715716

716717
try {

apps/OpenSign/src/pages/Form.js

Lines changed: 66 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@ const Forms = (props) => {
6767
file: "",
6868
remindOnceInEvery: 5,
6969
autoreminder: false,
70-
IsEnableOTP: "false"
70+
IsEnableOTP: "false",
71+
IsTourEnabled: "false"
7172
});
7273
const [fileupload, setFileUpload] = useState("");
7374
const [fileload, setfileload] = useState(false);
@@ -418,9 +419,12 @@ const Forms = (props) => {
418419
}
419420
if (props.title !== "Sign Yourself") {
420421
const isChecked = formData.SendinOrder === "false" ? false : true;
422+
const isTourEnabled =
423+
formData?.IsTourEnabled === "false" ? false : true;
421424
object.set("SendinOrder", isChecked);
422425
object.set("AutomaticReminders", formData.autoreminder);
423426
object.set("RemindOnceInEvery", parseInt(formData.remindOnceInEvery));
427+
object.set("IsTourEnabled", isTourEnabled);
424428
if (isEnableSubscription) {
425429
const IsEnableOTP =
426430
formData?.IsEnableOTP === "false" ? false : true;
@@ -464,7 +468,8 @@ const Forms = (props) => {
464468
file: "",
465469
remindOnceInEvery: 5,
466470
autoreminder: false,
467-
IsEnableOTP: "false"
471+
IsEnableOTP: "false",
472+
IsTourEnabled: "true"
468473
});
469474
setFileUpload("");
470475
setpercentage(0);
@@ -514,7 +519,8 @@ const Forms = (props) => {
514519
file: "",
515520
remindOnceInEvery: 5,
516521
autoreminder: false,
517-
IsEnableOTP: "false"
522+
IsEnableOTP: "false",
523+
IsTourEnabled: "true"
518524
});
519525
setFileUpload("");
520526
setpercentage(0);
@@ -985,6 +991,63 @@ const Forms = (props) => {
985991
</div>
986992
</div>
987993
)}
994+
<div className="text-xs mt-2">
995+
<label className="block">
996+
<span>
997+
{t("enable-tour")}
998+
<a
999+
data-tooltip-id="istourenabled-tooltip"
1000+
className="ml-1"
1001+
>
1002+
<sup>
1003+
<i className="fa-light fa-question rounded-full border-[#33bbff] text-[#33bbff] text-[13px] border-[1px] py-[1.5px] px-[4px]"></i>
1004+
</sup>
1005+
</a>{" "}
1006+
</span>
1007+
<Tooltip id="istourenabled-tooltip" className="z-50">
1008+
<div className="max-w-[200px] md:max-w-[450px]">
1009+
<p className="font-bold">{t("enable-tour")}</p>
1010+
<p className="p-[5px]">
1011+
<ol className="list-disc">
1012+
<li>
1013+
<span className="font-bold">
1014+
{t("yes")}:{" "}
1015+
</span>
1016+
<span>{t("istourenabled-help.p1")}</span>
1017+
</li>
1018+
<li>
1019+
<span className="font-bold">{t("no")}: </span>
1020+
<span>{t("istourenabled-help.p2")}</span>
1021+
</li>
1022+
</ol>
1023+
</p>
1024+
<p>{t("istourenabled-help.p3")}</p>
1025+
</div>
1026+
</Tooltip>
1027+
</label>
1028+
<div className={` flex items-center gap-2 ml-2 mb-1 `}>
1029+
<input
1030+
type="radio"
1031+
value={"true"}
1032+
className="op-radio op-radio-xs"
1033+
name="IsTourEnabled"
1034+
checked={formData.IsTourEnabled === "true"}
1035+
onChange={handleStrInput}
1036+
/>
1037+
<div className="text-center">{t("yes")}</div>
1038+
</div>
1039+
<div className={` flex items-center gap-2 ml-2 mb-1 `}>
1040+
<input
1041+
type="radio"
1042+
value={"false"}
1043+
name="IsTourEnabled"
1044+
className="op-radio op-radio-xs"
1045+
checked={formData.IsTourEnabled === "false"}
1046+
onChange={handleStrInput}
1047+
/>
1048+
<div className="text-center">{t("no")}</div>
1049+
</div>
1050+
</div>
9881051
</>
9891052
)}
9901053
</div>

apps/OpenSign/src/pages/PdfRequestFiles.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,8 @@ function PdfRequestFiles(props) {
421421
const expireUpdateDate = new Date(expireDate).getTime();
422422
const currDate = new Date().getTime();
423423
const getSigners = documentData[0].Signers;
424+
const isTourEnabled =
425+
documentData[0]?.IsTourEnabled === true ? true : false;
424426
const getCurrentSigner = getSigners?.find(
425427
(data) => data.UserId.objectId === jsonSender?.objectId
426428
);
@@ -596,7 +598,8 @@ function PdfRequestFiles(props) {
596598
checkAlreadySign ||
597599
!currUserId ||
598600
declined ||
599-
currDate > expireUpdateDate
601+
currDate > expireUpdateDate ||
602+
!isTourEnabled
600603
) {
601604
setRequestSignTour(true);
602605
} else {

apps/OpenSign/src/pages/TemplatePlaceholder.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -781,6 +781,7 @@ const TemplatePlaceholder = () => {
781781
RemindOnceInEvery: parseInt(pdfDetails[0]?.RemindOnceInEvery),
782782
NextReminderDate: pdfDetails[0]?.NextReminderDate,
783783
IsEnableOTP: pdfDetails[0]?.IsEnableOTP === true ? true : false,
784+
IsTourEnabled: pdfDetails[0]?.IsTourEnabled === true ? true : false,
784785
URL: pdfUrl
785786
};
786787
const updateTemplate = new Parse.Object("contracts_Template");

apps/OpenSign/src/primitives/GetReportDisplay.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,8 @@ const ReportTable = (props) => {
273273
SendinOrder: Doc?.SendinOrder || false,
274274
AutomaticReminders: Doc?.AutomaticReminders || false,
275275
RemindOnceInEvery: Doc?.RemindOnceInEvery || 5,
276-
IsEnableOTP: Doc?.IsEnableOTP || false
276+
IsEnableOTP: Doc?.IsEnableOTP || false,
277+
IsTourEnabled: Doc?.IsTourEnabled || false
277278
};
278279
try {
279280
const res = await axios.post(

apps/OpenSign/src/script/locales/en/translation.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -668,5 +668,12 @@
668668
"download-files":"Download files",
669669
"download-pdf":"Download Pdf",
670670
"pdf-certificate":"Download Pdf + Certificate",
671-
"document-logs":"Document logs"
671+
"document-logs":"Document logs",
672+
"enable-tour":"Enable Tour",
673+
"istourenabled-help":{
674+
"p1":"This will enable a guided tour for signers, providing instructions during the signing process.",
675+
"p2":"This will disable the guided tour, ensuring a faster, uninterrupted signing experience.",
676+
"p3":"Tip: If your signers are familiar with OpenSign and frequently use it, you may want to disable the guided tour for a more seamless experience. Choose the option that best fits your document signing needs."
677+
}
678+
672679
}

apps/OpenSign/src/script/locales/fr/translation.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -667,6 +667,12 @@
667667
"download-files" :"Télécharger des fichiers",
668668
"download-pdf" :"Télécharger le PDF",
669669
"pdf-certificate" :"Télécharger Pdf + Certificat",
670-
"document-logs":"Journaux de documents"
670+
"document-logs":"Journaux de documents",
671+
"enable-tour": "Activer la visite",
672+
"istourenabled-otp-help":{
673+
"p1": "Cela permettra une visite guidée pour les signataires, fournissant des instructions pendant le processus de signature.",
674+
"p2": "Cela désactivera la visite guidée, garantissant ainsi une expérience de signature plus rapide et ininterrompue.",
675+
"p3": "Conseil : si vos signataires connaissent OpenSign et l'utilisent fréquemment, vous souhaiterez peut-être désactiver la visite guidée pour une expérience plus fluide. Choisissez l'option qui correspond le mieux à vos besoins en matière de signature de documents."
676+
}
671677

672678
}

0 commit comments

Comments
 (0)