From 9163107ca43dffb5d0635caca31ae8dbb4c1046a Mon Sep 17 00:00:00 2001 From: pranav514 Date: Mon, 30 Oct 2023 19:53:32 +0530 Subject: [PATCH 1/9] fixed the size of eye icon on the login page --- apps/OpenSign/src/routes/Login.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/OpenSign/src/routes/Login.js b/apps/OpenSign/src/routes/Login.js index ed9b0baeb..fef156472 100644 --- a/apps/OpenSign/src/routes/Login.js +++ b/apps/OpenSign/src/routes/Login.js @@ -956,9 +956,9 @@ function Login(props) { onClick={togglePasswordVisibility} > {state.passwordVisible ? ( - // Close eye icon + // Close eye icon ) : ( - // Open eye icon + // Open eye icon )} From 3e9bff89cd4677ee7d6fbc0ec959e6e81b9f95cf Mon Sep 17 00:00:00 2001 From: prafull-opensignlabs Date: Mon, 30 Oct 2023 20:18:03 +0530 Subject: [PATCH 2/9] resolve file upload not working properly and convert forgotpassword in function component --- .../src/components/fields/FileUpload.js | 6 +- .../src/primitives/sanitizeFileName.js | 5 + apps/OpenSign/src/routes/ForgetPassword.js | 176 +++++++++--------- apps/OpenSign/src/routes/UserProfile.js | 5 +- 4 files changed, 98 insertions(+), 94 deletions(-) create mode 100644 apps/OpenSign/src/primitives/sanitizeFileName.js diff --git a/apps/OpenSign/src/components/fields/FileUpload.js b/apps/OpenSign/src/components/fields/FileUpload.js index bd9c72eec..bfb47baa4 100644 --- a/apps/OpenSign/src/components/fields/FileUpload.js +++ b/apps/OpenSign/src/components/fields/FileUpload.js @@ -1,6 +1,7 @@ import React, { useState, useEffect } from "react"; import { SaveFileSize } from "../../constant/saveFileSize"; import Parse from "parse"; +import sanitizeFileName from "../../primitives/sanitizeFileName"; const FileUpload = (props) => { const [parseBaseUrl] = useState(localStorage.getItem("baseUrl")); @@ -70,10 +71,11 @@ const FileUpload = (props) => { Parse.serverURL = parseBaseUrl; Parse.initialize(parseAppId); const size = file.size; - // console.log("file ", file) + const fileName = file.name; + const name = sanitizeFileName(fileName); setfileload(true); const pdfFile = file; - const parseFile = new Parse.File(pdfFile.name, pdfFile); + const parseFile = new Parse.File(name, pdfFile); try { const response = await parseFile.save(); diff --git a/apps/OpenSign/src/primitives/sanitizeFileName.js b/apps/OpenSign/src/primitives/sanitizeFileName.js new file mode 100644 index 000000000..0d0be1abc --- /dev/null +++ b/apps/OpenSign/src/primitives/sanitizeFileName.js @@ -0,0 +1,5 @@ +function sanitizeFileName(fileName) { + // Remove spaces and invalid characters + return fileName.replace(/[^a-zA-Z0-9._-]/g, ""); +} +export default sanitizeFileName; diff --git a/apps/OpenSign/src/routes/ForgetPassword.js b/apps/OpenSign/src/routes/ForgetPassword.js index 356a35952..86cb9a6a8 100644 --- a/apps/OpenSign/src/routes/ForgetPassword.js +++ b/apps/OpenSign/src/routes/ForgetPassword.js @@ -1,120 +1,114 @@ -import React, { Component } from "react"; +import React, { useEffect, useState } from "react"; import { connect } from "react-redux"; import { fetchAppInfo, forgetPassword } from "../redux/actions"; import Title from "../components/Title"; import { NavLink } from "react-router-dom"; import login_img from "../assets/images/login_img.svg"; -class forgotPassword extends Component { - constructor(props) { - super(props); - this.state = { - email: "", - password: "", - hideNav: "" - }; - } - - handleChange = (event) => { +function ForgotPassword(props) { + const [state, setState] = useState({ + email: "", + password: "", + hideNav: "" + }); + const handleChange = (event) => { const { name, value } = event.target; - this.setState({ [name]: value }); + setState({ ...state, [name]: value }); }; - resize = () => { + const resize = () => { let currentHideNav = window.innerWidth <= 760; - if (currentHideNav !== this.state.hideNav) { - this.setState({ hideNav: currentHideNav }); + if (currentHideNav !== state.hideNav) { + setState({ ...state, hideNav: currentHideNav }); } }; - handleSubmit = (event) => { + const handleSubmit = (event) => { event.preventDefault(); - - localStorage.setItem("appLogo", this.props.appInfo.applogo); - localStorage.setItem("appName", this.props.appInfo.appname); - localStorage.setItem("defaultmenuid", this.props.appInfo.defaultmenuid); - localStorage.setItem("PageLanding", this.props.appInfo.LandingPageId); + localStorage.setItem("appLogo", props.appInfo.applogo); + localStorage.setItem("appName", props.appInfo.appname); + localStorage.setItem("defaultmenuid", props.appInfo.defaultmenuid); + localStorage.setItem("PageLanding", props.appInfo.LandingPageId); localStorage.setItem( "userSettings", - JSON.stringify(this.props.appInfo.settings) + JSON.stringify(props.appInfo.settings) ); - const { email } = this.state; - if (email) { - this.props.forgetPassword(email); + + if (state.email) { + props.forgetPassword(state.email); } }; - componentDidMount() { - this.props.fetchAppInfo(localStorage.getItem("domain")); - window.addEventListener("resize", this.resize.bind(this)); - this.resize(); - } + useEffect(() => { + props.fetchAppInfo(localStorage.getItem("domain")); + resize(); + window.addEventListener("resize", resize); + return () => window.removeEventListener("resize", resize); + // eslint-disable-next-line + }, []); - render() { - const { email } = this.state; - let image = this.props.appInfo.applogo; - return ( -
- - <div> - <div className="md:m-10 lg:m-16 md:p-4 lg:p-10 p-5 bg-[#ffffff] md:border-[1px] md:border-gray-400 "> - <div className="w-[250px] h-[66px] inline-block"> - {this.state.hideNav ? ( - <img src={image} width="100%" alt="" /> - ) : ( - <img src={image} width="100%" alt="" /> - )} - </div> - <div className="grid grid-cols-1 md:grid-cols-2 gap-x-2"> - <div className=""> - <form onSubmit={this.handleSubmit}> - <h2 className="text-[30px] mt-6">Welcome Back !</h2> - <span className="text-[12px] text-[#878787]"> - Reset Your Password - </span> - <div className="shadow-md rounded my-4"> - <div className="px-6 py-4"> - <label className="block text-xs">Email</label> - <input - type="text" - className="px-3 py-2 w-full border-[1px] border-gray-300 rounded focus:outline-none text-xs" - name="email" - value={email} - onChange={this.handleChange} - required - /> - <hr className="my-2 border-none" /> - </div> - </div> - <div className="flex justify-between items-center px-4"> - <button - type="submit" - className="rounded-sm bg-[#3ac9d6] text-white px-4 py-3 text-xs font-semibold shadow uppercase" - > - Submit - </button> - <NavLink - to="/" - className="rounded-sm bg-white border-[1px] border-[#15b4e9] text-[#15b4e9] px-4 py-3 text-xs font-semibold shadow uppercase" - > - Login - </NavLink> - </div> - </form> - </div> - {!this.state.hideNav && ( - <div className="self-center"> - <div className="mx-auto md:w-[300px] lg:w-[500px]"> - <img src={login_img} alt="bisec" width="100%" /> + let image = props.appInfo.applogo; + return ( + <div className="bg-white"> + <Title title="Forgot password page" /> + <div> + <div className="md:m-10 lg:m-16 md:p-4 lg:p-10 p-5 bg-[#ffffff] md:border-[1px] md:border-gray-400 "> + <div className="w-[250px] h-[66px] inline-block"> + {state.hideNav ? ( + <img src={image} width="100%" alt="" /> + ) : ( + <img src={image} width="100%" alt="" /> + )} + </div> + <div className="grid grid-cols-1 md:grid-cols-2 gap-x-2"> + <div className=""> + <form onSubmit={handleSubmit}> + <h2 className="text-[30px] mt-6">Welcome Back !</h2> + <span className="text-[12px] text-[#878787]"> + Reset Your Password + </span> + <div className="shadow-md rounded my-4"> + <div className="px-6 py-4"> + <label className="block text-xs">Email</label> + <input + type="text" + className="px-3 py-2 w-full border-[1px] border-gray-300 rounded focus:outline-none text-xs" + name="email" + value={state.email} + onChange={handleChange} + required + /> + <hr className="my-2 border-none" /> </div> </div> - )} + <div className="flex justify-between items-center px-4"> + <button + type="submit" + className="rounded-sm bg-[#3ac9d6] text-white px-4 py-3 text-xs font-semibold shadow uppercase" + > + Submit + </button> + <NavLink + to="/" + className="rounded-sm bg-white border-[1px] border-[#15b4e9] text-[#15b4e9] px-4 py-3 text-xs font-semibold shadow uppercase" + > + Login + </NavLink> + </div> + </form> </div> + {!state.hideNav && ( + <div className="self-center"> + <div className="mx-auto md:w-[300px] lg:w-[500px]"> + <img src={login_img} alt="bisec" width="100%" /> + </div> + </div> + )} </div> </div> </div> - ); - } + </div> + ); } const mapStateToProps = (state) => { @@ -122,5 +116,5 @@ const mapStateToProps = (state) => { }; export default connect(mapStateToProps, { fetchAppInfo, forgetPassword })( - forgotPassword + ForgotPassword ); diff --git a/apps/OpenSign/src/routes/UserProfile.js b/apps/OpenSign/src/routes/UserProfile.js index ac64efe39..ae86ca1ba 100644 --- a/apps/OpenSign/src/routes/UserProfile.js +++ b/apps/OpenSign/src/routes/UserProfile.js @@ -4,6 +4,7 @@ import Parse from "parse"; import { SaveFileSize } from "../constant/saveFileSize"; import dp from "../assets/images/dp.png"; import Title from "../components/Title"; +import sanitizeFileName from "../primitives/sanitizeFileName"; function UserProfile() { const navigate = useNavigate(); @@ -90,7 +91,9 @@ function UserProfile() { const handleFileUpload = async (file) => { const size = file.size; const pdfFile = file; - const parseFile = new Parse.File(pdfFile.name, pdfFile); + const fileName = file.name; + const name = sanitizeFileName(fileName); + const parseFile = new Parse.File(name, pdfFile); try { const response = await parseFile.save(); From cece20256a286681e1d9c40cd57487d4ba1744f4 Mon Sep 17 00:00:00 2001 From: prafull-opensignlabs <prafull.navkar@nxglabs.com> Date: Mon, 30 Oct 2023 20:20:29 +0530 Subject: [PATCH 3/9] fixed file upload issue --- apps/OpenSign/.eslintrc.json | 3 +-- apps/OpenSign/package-lock.json | 8 ++++---- apps/OpenSign/package.json | 2 +- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/apps/OpenSign/.eslintrc.json b/apps/OpenSign/.eslintrc.json index afdfec072..a01fc2510 100644 --- a/apps/OpenSign/.eslintrc.json +++ b/apps/OpenSign/.eslintrc.json @@ -18,8 +18,7 @@ "plugins": ["react"], "rules": { "react/prop-types": 0, - "no-unused-vars": 1, - "no-undef": 0 + "no-unused-vars": 1 }, "ignorePatterns": ["**/build/**", "**/*.config.js"], "settings": { diff --git a/apps/OpenSign/package-lock.json b/apps/OpenSign/package-lock.json index f39c8b835..4832ae0ee 100644 --- a/apps/OpenSign/package-lock.json +++ b/apps/OpenSign/package-lock.json @@ -36,7 +36,7 @@ "react-router-dom": "^6.16.0", "react-scripts": "5.0.1", "react-select": "^5.7.7", - "reactour": "^1.19.1", + "reactour": "^1.19.2", "redux": "^4.2.1", "redux-thunk": "^2.4.2", "rjsf-conditionals": "github:prafullnavkar-nxg/rjsf-conditionals", @@ -17699,9 +17699,9 @@ } }, "node_modules/reactour": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/reactour/-/reactour-1.19.1.tgz", - "integrity": "sha512-Y6MYZeNsnPQhUxV9U3dw6CU8qWjqOTlTTs64VsEHRXhrePV4+FZEASbiukf3TPC5PmabaF308VkT5hv9SVJNng==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/reactour/-/reactour-1.19.2.tgz", + "integrity": "sha512-gbbUiLn8LbpbDW6k+QlVySkblvOICBd3AWMGRKPQghhmuMlOHNqgjW32JrT406lZHUvVlA8+umYD/2MmCHkNOQ==", "dependencies": { "@rooks/use-mutation-observer": "4.11.2", "classnames": "2.3.1", diff --git a/apps/OpenSign/package.json b/apps/OpenSign/package.json index 1306ba59b..db8651125 100644 --- a/apps/OpenSign/package.json +++ b/apps/OpenSign/package.json @@ -31,7 +31,7 @@ "react-router-dom": "^6.16.0", "react-scripts": "5.0.1", "react-select": "^5.7.7", - "reactour": "^1.19.1", + "reactour": "^1.19.2", "redux": "^4.2.1", "redux-thunk": "^2.4.2", "rjsf-conditionals": "github:prafullnavkar-nxg/rjsf-conditionals", From 4157ae1e4ea3c1f9347a60449edc4d0262a48cc5 Mon Sep 17 00:00:00 2001 From: Nuoxi <ariaqnx@gmail.com> Date: Tue, 31 Oct 2023 02:38:44 +1100 Subject: [PATCH 4/9] Update page titles format --- apps/OpenSign/src/components/Title.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/apps/OpenSign/src/components/Title.js b/apps/OpenSign/src/components/Title.js index 14fbc01c2..a379d1508 100644 --- a/apps/OpenSign/src/components/Title.js +++ b/apps/OpenSign/src/components/Title.js @@ -4,13 +4,18 @@ import { Helmet } from "react-helmet"; function Title(props) { return ( <Helmet> - <title>{`${ - localStorage.getItem("appTitle") ? localStorage.getItem("appTitle") : "" - } - ${props.title}`} + {`${props.title} - OpenSign`} + {/* + {`${localStorage.getItem("appTitle") ? localStorage.getItem("appTitle") : ""} - ${props.title}`} + */} + {/* */} Date: Mon, 30 Oct 2023 15:59:01 +0000 Subject: [PATCH 5/9] docs: update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 89a32de02..f0e1e5dee 100644 --- a/README.md +++ b/README.md @@ -119,6 +119,7 @@ We would like to thank all our contributors and users for their support and feed Hans Fraiponts
Hans Fraiponts

📖 Monil Prajapati
Monil Prajapati

💻 Edogbanya Emmanuel
Edogbanya Emmanuel

🐛 + pranav514
pranav514

💻 From 6818d9eae2835b8898609982456c0d8922cac889 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 15:59:02 +0000 Subject: [PATCH 6/9] docs: update .all-contributorsrc --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index bd57935dc..2cb19fc1b 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -106,6 +106,15 @@ "contributions": [ "bug" ] + }, + { + "login": "pranav514", + "name": "pranav514", + "avatar_url": "https://avatars.githubusercontent.com/u/76992202?v=4", + "profile": "https://github.com/pranav514", + "contributions": [ + "code" + ] } ] } From e6c48cbfb0cf7c7317c0399c1b5e8b2033a513d4 Mon Sep 17 00:00:00 2001 From: Nuoxi Date: Tue, 31 Oct 2023 02:59:51 +1100 Subject: [PATCH 7/9] =?UTF-8?q?Add=20=E2=84=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/OpenSign/src/components/Title.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/OpenSign/src/components/Title.js b/apps/OpenSign/src/components/Title.js index a379d1508..1fd108f55 100644 --- a/apps/OpenSign/src/components/Title.js +++ b/apps/OpenSign/src/components/Title.js @@ -4,13 +4,13 @@ import { Helmet } from "react-helmet"; function Title(props) { return ( - {`${props.title} - OpenSign`} + {`${props.title} - OpenSign™`} {/* {`${localStorage.getItem("appTitle") ? localStorage.getItem("appTitle") : ""} - ${props.title}`} */} {/* Date: Mon, 30 Oct 2023 17:50:21 +0000 Subject: [PATCH 8/9] docs: update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f0e1e5dee..4046d997f 100644 --- a/README.md +++ b/README.md @@ -120,6 +120,7 @@ We would like to thank all our contributors and users for their support and feed Monil Prajapati
Monil Prajapati

💻 Edogbanya Emmanuel
Edogbanya Emmanuel

🐛 pranav514
pranav514

💻 + Aria
Aria

💻 From 55e1da44871d3331a64769adbce0e11aaec4f7a8 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 17:50:22 +0000 Subject: [PATCH 9/9] docs: update .all-contributorsrc --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index 2cb19fc1b..d33cb394d 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -115,6 +115,15 @@ "contributions": [ "code" ] + }, + { + "login": "arianxq", + "name": "Aria", + "avatar_url": "https://avatars.githubusercontent.com/u/122199576?v=4", + "profile": "https://github.com/arianxq", + "contributions": [ + "code" + ] } ] }