diff --git a/apps/OpenSign/src/components/AddSigner.js b/apps/OpenSign/src/components/AddSigner.js
index 4f874669d..315808dc2 100644
--- a/apps/OpenSign/src/components/AddSigner.js
+++ b/apps/OpenSign/src/components/AddSigner.js
@@ -2,6 +2,7 @@ import React, { useState, useEffect } from "react";
import Parse from "parse";
import Loader from "../primitives/Loader";
import { useTranslation } from "react-i18next";
+import { emailRegex } from "../constant/const";
const AddSigner = (props) => {
const { t } = useTranslation();
@@ -47,139 +48,143 @@ const AddSigner = (props) => {
const handleSubmit = async (e) => {
e.preventDefault();
e.stopPropagation();
- setIsLoader(true);
- if (localStorage.getItem("TenantId")) {
- try {
- const user = Parse.User.current();
- const query = new Parse.Query("contracts_Contactbook");
- query.equalTo("CreatedBy", user);
- query.notEqualTo("IsDeleted", true);
- query.equalTo("Email", email);
- const res = await query.first();
- // console.log(res);
- if (!res) {
- const contactQuery = new Parse.Object("contracts_Contactbook");
- contactQuery.set("Name", name);
- if (phone) {
- contactQuery.set("Phone", phone);
- }
- contactQuery.set("Email", email);
- contactQuery.set("UserRole", "contracts_Guest");
-
- contactQuery.set("TenantId", {
- __type: "Pointer",
- className: "partners_Tenant",
- objectId: localStorage.getItem("TenantId")
- });
-
- try {
- const _users = Parse.Object.extend("User");
- const _user = new _users();
- _user.set("name", name);
- _user.set("username", email);
- _user.set("email", email);
- _user.set("password", email);
+ if (!emailRegex.test(email)) {
+ alert("Please enter a valid email address.");
+ } else {
+ setIsLoader(true);
+ if (localStorage.getItem("TenantId")) {
+ try {
+ const user = Parse.User.current();
+ const query = new Parse.Query("contracts_Contactbook");
+ query.equalTo("CreatedBy", user);
+ query.notEqualTo("IsDeleted", true);
+ query.equalTo("Email", email);
+ const res = await query.first();
+ // console.log(res);
+ if (!res) {
+ const contactQuery = new Parse.Object("contracts_Contactbook");
+ contactQuery.set("Name", name);
if (phone) {
- _user.set("phone", phone);
+ contactQuery.set("Phone", phone);
}
- const user = await _user.save();
- if (user) {
- const currentUser = Parse.User.current();
- contactQuery.set(
- "CreatedBy",
- Parse.User.createWithoutData(currentUser.id)
- );
+ contactQuery.set("Email", email);
+ contactQuery.set("UserRole", "contracts_Guest");
- contactQuery.set("UserId", user);
- const acl = new Parse.ACL();
- acl.setPublicReadAccess(true);
- acl.setPublicWriteAccess(true);
- acl.setReadAccess(currentUser.id, true);
- acl.setWriteAccess(currentUser.id, true);
+ contactQuery.set("TenantId", {
+ __type: "Pointer",
+ className: "partners_Tenant",
+ objectId: localStorage.getItem("TenantId")
+ });
- contactQuery.setACL(acl);
+ try {
+ const _users = Parse.Object.extend("User");
+ const _user = new _users();
+ _user.set("name", name);
+ _user.set("username", email);
+ _user.set("email", email);
+ _user.set("password", email);
+ if (phone) {
+ _user.set("phone", phone);
+ }
+ const user = await _user.save();
+ if (user) {
+ const currentUser = Parse.User.current();
+ contactQuery.set(
+ "CreatedBy",
+ Parse.User.createWithoutData(currentUser.id)
+ );
- const res = await contactQuery.save();
+ contactQuery.set("UserId", user);
+ const acl = new Parse.ACL();
+ acl.setPublicReadAccess(true);
+ acl.setPublicWriteAccess(true);
+ acl.setReadAccess(currentUser.id, true);
+ acl.setWriteAccess(currentUser.id, true);
- const parseData = JSON.parse(JSON.stringify(res));
- if (props.details) {
- props.details({
- value: parseData[props.valueKey],
- label: parseData[props.displayKey]
+ contactQuery.setACL(acl);
+
+ const res = await contactQuery.save();
+
+ const parseData = JSON.parse(JSON.stringify(res));
+ 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);
+ setName("");
+ setPhone("");
+ setEmail("");
+ }
+ } catch (err) {
+ console.log("err ", err);
+ if (err.code === 202) {
+ const params = { email: email };
+ const userRes = await Parse.Cloud.run("getUserId", params);
+ const currentUser = Parse.User.current();
+ contactQuery.set(
+ "CreatedBy",
+ Parse.User.createWithoutData(currentUser.id)
+ );
+
+ contactQuery.set("UserId", {
+ __type: "Pointer",
+ className: "_User",
+ objectId: userRes.id
});
- }
- if (props.closePopup) {
- props.closePopup();
- }
- if (props.handleUserData) {
- props.handleUserData(parseData);
- }
+ const acl = new Parse.ACL();
+ acl.setPublicReadAccess(true);
+ acl.setPublicWriteAccess(true);
+ acl.setReadAccess(currentUser.id, true);
+ acl.setWriteAccess(currentUser.id, true);
- setIsLoader(false);
- // Reset the form fields
- setAddYourself(false);
- setName("");
- setPhone("");
- setEmail("");
- }
- } catch (err) {
- console.log("err ", err);
- if (err.code === 202) {
- const params = { email: email };
- const userRes = await Parse.Cloud.run("getUserId", params);
- const currentUser = Parse.User.current();
- contactQuery.set(
- "CreatedBy",
- Parse.User.createWithoutData(currentUser.id)
- );
-
- contactQuery.set("UserId", {
- __type: "Pointer",
- className: "_User",
- objectId: userRes.id
- });
- const acl = new Parse.ACL();
- acl.setPublicReadAccess(true);
- acl.setPublicWriteAccess(true);
- acl.setReadAccess(currentUser.id, true);
- acl.setWriteAccess(currentUser.id, true);
-
- contactQuery.setACL(acl);
- const res = await contactQuery.save();
-
- const parseData = JSON.parse(JSON.stringify(res));
- 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);
- setName("");
- setPhone("");
- setEmail("");
+ contactQuery.setACL(acl);
+ const res = await contactQuery.save();
+
+ const parseData = JSON.parse(JSON.stringify(res));
+ 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);
+ setName("");
+ setPhone("");
+ setEmail("");
+ }
}
+ } else {
+ alert(t("add-signer-alert"));
+ setIsLoader(false);
}
- } else {
- alert(t("add-signer-alert"));
+ } catch (err) {
+ console.log("err in fetch contact", err);
setIsLoader(false);
+ alert(t("something-went-wrong-mssg"));
}
- } catch (err) {
- console.log("err in fetch contact", err);
+ } else {
setIsLoader(false);
alert(t("something-went-wrong-mssg"));
}
- } else {
- setIsLoader(false);
- alert(t("something-went-wrong-mssg"));
}
};
diff --git a/apps/OpenSign/src/components/AddUser.js b/apps/OpenSign/src/components/AddUser.js
index c20e8fc4f..b19048d88 100644
--- a/apps/OpenSign/src/components/AddUser.js
+++ b/apps/OpenSign/src/components/AddUser.js
@@ -3,7 +3,7 @@ import Parse from "parse";
import Title from "./Title";
import Loader from "../primitives/Loader";
import { copytoData, fetchSubscriptionInfo } from "../constant/Utils";
-import { isEnableSubscription } from "../constant/const";
+import { emailRegex, isEnableSubscription } from "../constant/const";
import { useTranslation } from "react-i18next";
function generatePassword(length) {
const characters =
@@ -115,149 +115,172 @@ const AddUser = (props) => {
const handleSubmit = async (e) => {
e.preventDefault();
e.stopPropagation();
- const localUser = JSON.parse(localStorage.getItem("Extand_Class"))?.[0];
- setIsFormLoader(true);
- const res = await checkUserExist();
- if (res) {
- props.setIsAlert({ type: "danger", msg: t("user-already-exist") });
- setIsFormLoader(false);
- setTimeout(() => props.setIsAlert({ type: "success", msg: "" }), 1000);
+ if (!emailRegex.test(formdata.email)) {
+ alert("Please enter a valid email address.");
} else {
- try {
- const extUser = new Parse.Object("contracts_Users");
- extUser.set("Name", formdata.name);
- if (formdata.phone) {
- extUser.set("Phone", formdata.phone);
- }
- extUser.set("Email", formdata.email);
- extUser.set("UserRole", `contracts_${formdata.role}`);
- if (formdata?.team) {
- extUser.set("TeamIds", [
- {
- __type: "Pointer",
- className: "contracts_Teams",
- objectId: formdata.team
- }
- ]);
- }
- if (localUser && localUser.OrganizationId) {
- extUser.set("OrganizationId", {
- __type: "Pointer",
- className: "contracts_Organizations",
- objectId: localUser.OrganizationId.objectId
- });
- }
- if (localUser && localUser.Company) {
- extUser.set("Company", localUser.Company);
- }
-
- if (localStorage.getItem("TenantId")) {
- extUser.set("TenantId", {
- __type: "Pointer",
- className: "partners_Tenant",
- objectId: localStorage.getItem("TenantId")
- });
- }
-
+ const localUser = JSON.parse(localStorage.getItem("Extand_Class"))?.[0];
+ setIsFormLoader(true);
+ const res = await checkUserExist();
+ if (res) {
+ props.setIsAlert({ type: "danger", msg: t("user-already-exist") });
+ setIsFormLoader(false);
+ setTimeout(() => props.setIsAlert({ type: "success", msg: "" }), 1000);
+ } else {
try {
- const _users = Parse.Object.extend("User");
- const _user = new _users();
- _user.set("name", formdata.name);
- _user.set("username", formdata.email);
- _user.set("email", formdata.email);
- _user.set("password", formdata.password);
+ const extUser = new Parse.Object("contracts_Users");
+ extUser.set("Name", formdata.name);
if (formdata.phone) {
- _user.set("phone", formdata.phone);
+ extUser.set("Phone", formdata.phone);
+ }
+ extUser.set("Email", formdata.email);
+ extUser.set("UserRole", `contracts_${formdata.role}`);
+ if (formdata?.team) {
+ extUser.set("TeamIds", [
+ {
+ __type: "Pointer",
+ className: "contracts_Teams",
+ objectId: formdata.team
+ }
+ ]);
+ }
+ if (localUser && localUser.OrganizationId) {
+ extUser.set("OrganizationId", {
+ __type: "Pointer",
+ className: "contracts_Organizations",
+ objectId: localUser.OrganizationId.objectId
+ });
+ }
+ if (localUser && localUser.Company) {
+ extUser.set("Company", localUser.Company);
}
- const user = await _user.save();
- if (user) {
- const currentUser = Parse.User.current();
- extUser.set(
- "CreatedBy",
- Parse.User.createWithoutData(currentUser.id)
- );
+ if (localStorage.getItem("TenantId")) {
+ extUser.set("TenantId", {
+ __type: "Pointer",
+ className: "partners_Tenant",
+ objectId: localStorage.getItem("TenantId")
+ });
+ }
- extUser.set("UserId", user);
- const acl = new Parse.ACL();
- acl.setPublicReadAccess(true);
- acl.setPublicWriteAccess(true);
- acl.setReadAccess(currentUser.id, true);
- acl.setWriteAccess(currentUser.id, true);
-
- extUser.setACL(acl);
-
- const res = await extUser.save();
-
- const parseData = JSON.parse(JSON.stringify(res));
-
- if (props.closePopup) {
- props.closePopup();
+ try {
+ const _users = Parse.Object.extend("User");
+ const _user = new _users();
+ _user.set("name", formdata.name);
+ _user.set("username", formdata.email);
+ _user.set("email", formdata.email);
+ _user.set("password", formdata.password);
+ if (formdata.phone) {
+ _user.set("phone", formdata.phone);
}
- if (props.handleUserData) {
- if (formdata?.team) {
- const team = teamList.find((x) => x.objectId === formdata.team);
- parseData.TeamIds = parseData.TeamIds.map((y) =>
- y.objectId === team.objectId ? team : y
- );
+
+ const user = await _user.save();
+ if (user) {
+ const currentUser = Parse.User.current();
+ extUser.set(
+ "CreatedBy",
+ Parse.User.createWithoutData(currentUser.id)
+ );
+
+ extUser.set("UserId", user);
+ const acl = new Parse.ACL();
+ acl.setPublicReadAccess(true);
+ acl.setPublicWriteAccess(true);
+ acl.setReadAccess(currentUser.id, true);
+ acl.setWriteAccess(currentUser.id, true);
+
+ extUser.setACL(acl);
+
+ const res = await extUser.save();
+
+ const parseData = JSON.parse(JSON.stringify(res));
+
+ if (props.closePopup) {
+ props.closePopup();
+ }
+ if (props.handleUserData) {
+ if (formdata?.team) {
+ const team = teamList.find(
+ (x) => x.objectId === formdata.team
+ );
+ parseData.TeamIds = parseData.TeamIds.map((y) =>
+ y.objectId === team.objectId ? team : y
+ );
+ }
+ props.handleUserData(parseData);
}
- props.handleUserData(parseData);
- }
- setIsFormLoader(false);
- setFormdata({ name: "", email: "", phone: "", team: "", role: "" });
+ setIsFormLoader(false);
+ setFormdata({
+ name: "",
+ email: "",
+ phone: "",
+ team: "",
+ role: ""
+ });
+ }
+ } catch (err) {
+ console.log("err ", err);
+ if (err.code === 202) {
+ const params = { email: formdata.email };
+ const userRes = await Parse.Cloud.run("getUserId", params);
+ const currentUser = Parse.User.current();
+ extUser.set(
+ "CreatedBy",
+ Parse.User.createWithoutData(currentUser.id)
+ );
+
+ extUser.set("UserId", {
+ __type: "Pointer",
+ className: "_User",
+ objectId: userRes.id
+ });
+ const acl = new Parse.ACL();
+ acl.setPublicReadAccess(true);
+ acl.setPublicWriteAccess(true);
+ acl.setReadAccess(currentUser.id, true);
+ acl.setWriteAccess(currentUser.id, true);
+
+ extUser.setACL(acl);
+ const res = await extUser.save();
+
+ const parseData = JSON.parse(JSON.stringify(res));
+ if (props.closePopup) {
+ props.closePopup();
+ }
+ if (props.handleUserData) {
+ if (formdata?.team) {
+ const team = teamList.find(
+ (x) => x.objectId === formdata.team
+ );
+ parseData.TeamIds = parseData.TeamIds.map((y) =>
+ y.objectId === team.objectId ? team : y
+ );
+ }
+ props.handleUserData(parseData);
+ }
+ setIsFormLoader(false);
+ setFormdata({
+ name: "",
+ email: "",
+ phone: "",
+ team: "",
+ role: ""
+ });
+ }
}
} catch (err) {
- console.log("err ", err);
- if (err.code === 202) {
- const params = { email: formdata.email };
- const userRes = await Parse.Cloud.run("getUserId", params);
- const currentUser = Parse.User.current();
- extUser.set(
- "CreatedBy",
- Parse.User.createWithoutData(currentUser.id)
- );
-
- extUser.set("UserId", {
- __type: "Pointer",
- className: "_User",
- objectId: userRes.id
- });
- const acl = new Parse.ACL();
- acl.setPublicReadAccess(true);
- acl.setPublicWriteAccess(true);
- acl.setReadAccess(currentUser.id, true);
- acl.setWriteAccess(currentUser.id, true);
-
- extUser.setACL(acl);
- const res = await extUser.save();
-
- const parseData = JSON.parse(JSON.stringify(res));
- if (props.closePopup) {
- props.closePopup();
- }
- if (props.handleUserData) {
- if (formdata?.team) {
- const team = teamList.find((x) => x.objectId === formdata.team);
- parseData.TeamIds = parseData.TeamIds.map((y) =>
- y.objectId === team.objectId ? team : y
- );
- }
- props.handleUserData(parseData);
- }
- setIsFormLoader(false);
- setFormdata({ name: "", email: "", phone: "", team: "", role: "" });
- }
+ console.log("err", err);
+ setIsFormLoader(false);
+ props.setIsAlert({
+ type: "danger",
+ msg: t("something-went-wrong-mssg")
+ });
+ } finally {
+ setTimeout(
+ () => props.setIsAlert({ type: "success", msg: "" }),
+ 1500
+ );
}
- } catch (err) {
- console.log("err", err);
- setIsFormLoader(false);
- props.setIsAlert({
- type: "danger",
- msg: t("something-went-wrong-mssg")
- });
- } finally {
- setTimeout(() => props.setIsAlert({ type: "success", msg: "" }), 1500);
}
}
};
diff --git a/apps/OpenSign/src/components/pdf/SelectLanguage.js b/apps/OpenSign/src/components/pdf/SelectLanguage.js
index ff9846e66..7faf86c3d 100644
--- a/apps/OpenSign/src/components/pdf/SelectLanguage.js
+++ b/apps/OpenSign/src/components/pdf/SelectLanguage.js
@@ -9,15 +9,13 @@ function SelectLanguage(props) {
{ value: "es", text: "Española" },
{ value: "fr", text: "Français" }
];
- const [lang, setLang] = useState(i18next.language || "en");
+ const defaultLanguage = i18next.language || "en";
+ const [lang, setLang] = useState(defaultLanguage);
// This function put query that helps to change the language
const handleChangeLang = (e) => {
setLang(e.target.value);
i18n.changeLanguage(e.target.value);
- props?.updateExtUser &&
- props.updateExtUser({
- language: e.target.value
- });
+ props?.updateExtUser && props.updateExtUser({ language: e.target.value });
};
return (
-
+
{languages.map((item) => {
return (