Merge pull request #1044 from nxglabs/raktima-patch-main-2
fix: remove agreement checkbox and remove agreement checkbox tour
@@ -1042,5 +1042,6 @@
|
||||
"vertical": "Vertikal",
|
||||
"horizontal": "Horizontal",
|
||||
"billing": "Abrechnung",
|
||||
"console": "Konsole"
|
||||
"console": "Konsole",
|
||||
"action-prohibited": "Diese Aktion ist für Ihre E-Mail-Domain nicht erlaubt. Bitte wenden Sie sich an Ihren Administrator, um Hilfe zu erhalten."
|
||||
}
|
||||
|
||||
@@ -1042,5 +1042,6 @@
|
||||
"vertical": "Vertical",
|
||||
"horizontal": "Horizontal",
|
||||
"billing": "Billing",
|
||||
"console": "Console"
|
||||
"console": "Console",
|
||||
"action-prohibited": "This action isn't allowed for your email domain. Please contact your administrator for assistance."
|
||||
}
|
||||
@@ -1042,5 +1042,6 @@
|
||||
"vertical": "Vertical",
|
||||
"horizontal": "Horizontal",
|
||||
"billing": "Facturación",
|
||||
"console": "Consola"
|
||||
"console": "Consola",
|
||||
"action-prohibited": "Esta acción no está permitida para su dominio de correo electrónico. Por favor, contacte con su administrador para obtener ayuda."
|
||||
}
|
||||
|
||||
@@ -1042,5 +1042,6 @@
|
||||
"vertical": "Vertical",
|
||||
"horizontal": "Horizontal",
|
||||
"billing": "Facturation",
|
||||
"console": "Console"
|
||||
"console": "Console",
|
||||
"action-prohibited": "Cette action n'est pas autorisée pour votre domaine de messagerie. Veuillez contacter votre administrateur pour obtenir de l'aide."
|
||||
}
|
||||
|
||||
@@ -1042,5 +1042,6 @@
|
||||
"vertical": "वर्टिकल",
|
||||
"horizontal": "हॉरिज़ॉन्टल",
|
||||
"billing": "बिलिंग",
|
||||
"console": "कंसोल"
|
||||
"console": "कंसोल",
|
||||
"action-prohibited": "यह क्रिया आपके ईमेल डोमेन के लिए अनुमत नहीं है। कृपया सहायता के लिए अपने व्यवस्थापक से संपर्क करें।"
|
||||
}
|
||||
|
||||
@@ -1042,5 +1042,6 @@
|
||||
"vertical": "Verticale",
|
||||
"horizontal": "Orizzontale",
|
||||
"billing": "Fatturazione",
|
||||
"console": "Console"
|
||||
"console": "Console",
|
||||
"action-prohibited": "Questa azione non è consentita per il tuo dominio email. Contatta il tuo amministratore per ricevere assistenza."
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 661 B After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 95 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 41 KiB |
@@ -19,6 +19,10 @@ const Header = ({ showSidebar, setIsMenu, isConsole }) => {
|
||||
const { width } = useWindowSize();
|
||||
const username = localStorage.getItem("username") || "";
|
||||
const image = localStorage.getItem("profileImg") || dp;
|
||||
const isAdmin =
|
||||
localStorage.getItem("Extand_Class") &&
|
||||
JSON.parse(localStorage.getItem("Extand_Class"))?.[0]?.UserRole ===
|
||||
"contracts_Admin";
|
||||
const [isOpen, setIsOpen] = useState(false);
|
||||
const [applogo, setAppLogo] = useState("");
|
||||
const [isDarkTheme, setIsDarkTheme] = useState();
|
||||
|
||||
@@ -9,7 +9,6 @@ function AgreementContent(props) {
|
||||
const h2Style = "text-base-content font-medium text-lg";
|
||||
const ulStyle = "list-disc px-4 py-3";
|
||||
const handleOnclick = () => {
|
||||
props.setIsAgreeTour(false);
|
||||
props.setIsAgree(true);
|
||||
props.setIsShowAgreeTerms(false);
|
||||
props.showFirstWidget();
|
||||
|
||||
@@ -4,7 +4,6 @@ import AgreementContent from "./AgreementContent";
|
||||
|
||||
function AgreementSign(props) {
|
||||
const { t } = useTranslation();
|
||||
const [isChecked, setIsChecked] = useState(false);
|
||||
const [isShowAgreeTerms, setIsShowAgreeTerms] = useState(false);
|
||||
|
||||
return (
|
||||
@@ -12,39 +11,12 @@ function AgreementSign(props) {
|
||||
<div className="op-modal op-modal-open absolute z-[448]">
|
||||
<div className="w-[95%] md:w-[60%] lg:w-[40%] op-modal-box overflow-y-auto hide-scrollbar text-sm p-4">
|
||||
<div className="flex flex-row items-center">
|
||||
<label className="inline-flex justify-center items-center cursor-pointer mb-0">
|
||||
{/* 1) This div becomes the “fake” checkbox */}
|
||||
<div
|
||||
data-tut="IsAgree"
|
||||
className={`w-6 h-6 border-2 mr-3 rounded-full flex text-center items-center justify-center ${isChecked ? "op-border-primary" : "border-red-500"}`}
|
||||
>
|
||||
{isChecked ? (
|
||||
<span className="op-text-primary text-sm font-bold">✓</span>
|
||||
) : (
|
||||
<span className="text-red-500 text-sm font-bold">X</span>
|
||||
)}
|
||||
</div>
|
||||
{/* 2) Visually hide the native checkbox but keep it in the DOM */}
|
||||
<input
|
||||
className="sr-only"
|
||||
type="checkbox"
|
||||
checked={isChecked}
|
||||
onChange={(e) => {
|
||||
setIsChecked(e.target.checked);
|
||||
if (e.target.checked) {
|
||||
props.setIsAgreeTour(false);
|
||||
}
|
||||
props.showFirstWidget();
|
||||
}}
|
||||
/>
|
||||
</label>
|
||||
<div className="text-[11px] md:text-base text-base-content">
|
||||
<span>{t("agree-p1")}</span>
|
||||
<span
|
||||
className="font-bold text-blue-600 cursor-pointer"
|
||||
onClick={() => {
|
||||
setIsShowAgreeTerms(true);
|
||||
props.setIsAgreeTour(false);
|
||||
}}
|
||||
>
|
||||
{t("agree-p2")}
|
||||
@@ -52,15 +24,11 @@ function AgreementSign(props) {
|
||||
<span> {t("agree-p3")}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex ml-[35px] mt-3">
|
||||
<div className="flex mt-3">
|
||||
<button
|
||||
onClick={() => {
|
||||
if (isChecked) {
|
||||
props.setIsAgreeTour(false);
|
||||
props.setIsAgree(true);
|
||||
} else {
|
||||
props.setIsAgreeTour(true);
|
||||
}
|
||||
props.setIsAgree(true);
|
||||
props.showFirstWidget()
|
||||
}}
|
||||
className="op-btn op-btn-primary op-btn-sm w-full md:w-auto"
|
||||
>
|
||||
@@ -74,7 +42,6 @@ function AgreementSign(props) {
|
||||
</div>
|
||||
{isShowAgreeTerms && (
|
||||
<AgreementContent
|
||||
setIsAgreeTour={props.setIsAgreeTour}
|
||||
setIsAgree={props.setIsAgree}
|
||||
setIsShowAgreeTerms={setIsShowAgreeTerms}
|
||||
showFirstWidget={props.showFirstWidget}
|
||||
|
||||
@@ -3,43 +3,39 @@ import { useTranslation } from "react-i18next";
|
||||
import { useSelector } from "react-redux";
|
||||
function DefaultSignature(props) {
|
||||
const { t } = useTranslation();
|
||||
const defaultSignImg = useSelector((state) => state.widget.defaultSignImg);
|
||||
const myInitial = useSelector((state) => state.widget.myInitial)
|
||||
const defaultSignImg = useSelector((state) => state.widget.defaultSignImg);
|
||||
const myInitial = useSelector((state) => state.widget.myInitial);
|
||||
const tabName = ["my-signature", "my-initials"];
|
||||
const [activeTab, setActiveTab] = useState(0);
|
||||
const confirmToaddDefaultSign = (type) => {
|
||||
if (!props.isAgree) {
|
||||
props.setIsAgreeTour(true);
|
||||
} else {
|
||||
if (props?.xyPosition.length > 0) {
|
||||
//check signature or initial widgets exist or not for auto signing
|
||||
const getCurrentSignerXY = props?.xyPosition.filter(
|
||||
(data) => data.Id === props.uniqueId
|
||||
);
|
||||
const checkIsSignInitialExist = getCurrentSignerXY?.every(
|
||||
(placeholderObj) =>
|
||||
placeholderObj?.placeHolder?.some((placeholder) =>
|
||||
placeholder?.pos?.some((posItem) => posItem?.type === type)
|
||||
)
|
||||
);
|
||||
if (checkIsSignInitialExist) {
|
||||
props?.setDefaultSignAlert({
|
||||
isShow: true,
|
||||
alertMessage: t("default-sign-alert", { widgetsType: type }),
|
||||
type: type
|
||||
});
|
||||
} else {
|
||||
props?.setDefaultSignAlert({
|
||||
isShow: true,
|
||||
alertMessage: t("defaultSign-alert", { widgetsType: type })
|
||||
});
|
||||
}
|
||||
if (props?.xyPosition.length > 0) {
|
||||
//check signature or initial widgets exist or not for auto signing
|
||||
const getCurrentSignerXY = props?.xyPosition.filter(
|
||||
(data) => data.Id === props.uniqueId
|
||||
);
|
||||
const checkIsSignInitialExist = getCurrentSignerXY?.every(
|
||||
(placeholderObj) =>
|
||||
placeholderObj?.placeHolder?.some((placeholder) =>
|
||||
placeholder?.pos?.some((posItem) => posItem?.type === type)
|
||||
)
|
||||
);
|
||||
if (checkIsSignInitialExist) {
|
||||
props?.setDefaultSignAlert({
|
||||
isShow: true,
|
||||
alertMessage: t("default-sign-alert", { widgetsType: type }),
|
||||
type: type
|
||||
});
|
||||
} else {
|
||||
props?.setDefaultSignAlert({
|
||||
isShow: true,
|
||||
alertMessage: t("please-select-position!")
|
||||
alertMessage: t("defaultSign-alert", { widgetsType: type })
|
||||
});
|
||||
}
|
||||
} else {
|
||||
props?.setDefaultSignAlert({
|
||||
isShow: true,
|
||||
alertMessage: t("please-select-position!")
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -180,13 +180,8 @@ function Placeholder(props) {
|
||||
|
||||
const widgetClickHandler = () => {
|
||||
props.setCurrWidgetsDetails && props.setCurrWidgetsDetails(props.pos);
|
||||
//condition to check in request signing flow user click on agree or not
|
||||
if (props?.data?.signerObjId === props?.signerObjId && !props.isDragging) {
|
||||
if (!props.isAgree && !props.isSelfSign) {
|
||||
props.setIsAgreeTour && props.setIsAgreeTour(true);
|
||||
} else {
|
||||
handleWidgetIdandPopup();
|
||||
}
|
||||
handleWidgetIdandPopup();
|
||||
} //condition for open contact details popup when sign templet from public signing flow
|
||||
else if (props?.uniqueId && props.data?.Id === props?.uniqueId) {
|
||||
handleWidgetIdandPopup();
|
||||
|
||||
@@ -160,8 +160,6 @@ function RenderPdf(props) {
|
||||
ispublicTemplate={props.ispublicTemplate}
|
||||
handleUserDetails={props.handleUserDetails}
|
||||
isResize={props.isResize}
|
||||
setIsAgreeTour={props.setIsAgreeTour}
|
||||
isAgree={props.isAgree}
|
||||
handleTabDrag={props.handleTabDrag}
|
||||
handleStop={props.handleStop}
|
||||
setUniqueId={props.setUniqueId}
|
||||
|
||||
@@ -125,7 +125,11 @@ function Login() {
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error while logging in user", error);
|
||||
showToast("danger", "Invalid username/password or region");
|
||||
if (error?.code === 1001) {
|
||||
showToast("danger", t("action-prohibited"));
|
||||
} else {
|
||||
showToast("danger", "Invalid username/password or region");
|
||||
}
|
||||
}
|
||||
};
|
||||
const handleLoginBtn = async (event) => {
|
||||
|
||||
@@ -144,7 +144,6 @@ function PdfRequestFiles(
|
||||
const [signatureType, setSignatureType] = useState([]);
|
||||
const [pdfBase64Url, setPdfBase64Url] = useState("");
|
||||
const [isAgree, setIsAgree] = useState(false);
|
||||
const [isAgreeTour, setIsAgreeTour] = useState(false);
|
||||
const [redirectTimeLeft, setRedirectTimeLeft] = useState(5);
|
||||
const [isredirectCanceled, setIsredirectCanceled] = useState(true);
|
||||
const [isDragging, setIsDragging] = useState(false);
|
||||
@@ -1378,18 +1377,7 @@ function PdfRequestFiles(
|
||||
setIsUiLoading(false);
|
||||
alert(t("expiry-date-error"));
|
||||
}
|
||||
};
|
||||
const AgreementTour = [
|
||||
{
|
||||
selector: '[data-tut="IsAgree"]',
|
||||
content: () => <p className="p-0">{t("agrrement-alert")}</p>,
|
||||
position: "top",
|
||||
style: { fontSize: "13px" }
|
||||
}
|
||||
];
|
||||
const handleCloseAgreeTour = () => {
|
||||
setIsAgreeTour(false);
|
||||
};
|
||||
};
|
||||
// `handleRedirectCancel` is used to cancel redirecting to redirectUrl
|
||||
const handleRedirectCancel = () => {
|
||||
setIsredirectCanceled(true);
|
||||
@@ -1599,7 +1587,7 @@ function PdfRequestFiles(
|
||||
}
|
||||
}
|
||||
};
|
||||
//function to get first widget and page number to assign currect signer and tour message
|
||||
//function to get first widget id and page number to assign correct signer and show tour message
|
||||
const showFirstWidget = () => {
|
||||
if (!requestSignTour) {
|
||||
const getCurrentUserPlaceholder = signerPos?.find(
|
||||
@@ -1644,21 +1632,9 @@ function PdfRequestFiles(
|
||||
!isDecline?.isDeclined && (
|
||||
<AgreementSign
|
||||
setIsAgree={setIsAgree}
|
||||
setIsAgreeTour={setIsAgreeTour}
|
||||
showFirstWidget={showFirstWidget}
|
||||
/>
|
||||
)}
|
||||
<Tour
|
||||
showNumber={false}
|
||||
showNavigation={false}
|
||||
showNavigationNumber={false}
|
||||
onRequestClose={handleCloseAgreeTour}
|
||||
steps={AgreementTour}
|
||||
isOpen={isAgreeTour}
|
||||
rounded={5}
|
||||
closeWithMask={false}
|
||||
/>
|
||||
|
||||
{isUiLoading && (
|
||||
<div className="absolute h-[100vh] w-full flex flex-col justify-center items-center z-[999] bg-[#e6f2f2] bg-opacity-80">
|
||||
<Loader />
|
||||
@@ -2011,8 +1987,6 @@ function PdfRequestFiles(
|
||||
scale={scale}
|
||||
uniqueId={uniqueId}
|
||||
pdfBase64Url={pdfBase64Url}
|
||||
setIsAgreeTour={setIsAgreeTour}
|
||||
isAgree={isAgree}
|
||||
handleTabDrag={handleTabDrag}
|
||||
handleStop={handleStop}
|
||||
isDragging={isDragging}
|
||||
@@ -2095,8 +2069,6 @@ function PdfRequestFiles(
|
||||
signatureType?.find((x) => x.name === "default")
|
||||
?.enabled || false
|
||||
}
|
||||
isAgree={isAgree}
|
||||
setIsAgreeTour={setIsAgreeTour}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -43,9 +43,9 @@ async function saveUser(userDetails) {
|
||||
}
|
||||
export default async function usersignup(request) {
|
||||
const userDetails = request.params.userDetails;
|
||||
const user = await saveUser(userDetails);
|
||||
|
||||
try {
|
||||
const user = await saveUser(userDetails);
|
||||
const extClass = userDetails.role.split('_')[0];
|
||||
|
||||
const extQuery = new Parse.Query(extClass + '_Users');
|
||||
|
||||
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 5.2 KiB |