diff --git a/public/js/validation.js b/public/js/validation.js new file mode 100644 index 0000000..6a0aafe --- /dev/null +++ b/public/js/validation.js @@ -0,0 +1,90 @@ +// Example starter JavaScript for disabling form submissions if there are invalid fields +(() => { + 'use strict' + + // Fetch all the forms we want to apply custom Bootstrap validation styles to + const forms = document.querySelectorAll('.needs-validation') + + // Loop over them and prevent submission + Array.from(forms).forEach(form => { + form.addEventListener('submit', event => { + if (!form.checkValidity()) { + event.preventDefault() + event.stopPropagation() + } + + form.classList.add('was-validated') + }, false) + }); + + // Password validation script + var passwordInput = document.getElementById('password'); + + passwordInput.addEventListener('input', function () { + var passwordValue = passwordInput.value; + var passwordPattern = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[\W_]).{8,}$/; + + if (passwordPattern.test(passwordValue)) { + passwordInput.setCustomValidity(''); + } else { + passwordInput.setCustomValidity('Invalid'); + } + }); + + // Name validation script + var nameInput = document.getElementById('name'); + + nameInput.addEventListener('input', function () { + var nameValue = nameInput.value; + if (nameValue.length >= 4) { + nameInput.setCustomValidity(''); + } else { + nameInput.setCustomValidity('Invalid'); + } + }); + + // Email validation script + var emailInput = document.getElementById('email'); + + emailInput.addEventListener('input', function () { + var emailValue = emailInput.value; + // Regex pattern to validate email + var emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; + + if (emailPattern.test(emailValue)) { + emailInput.setCustomValidity(''); + } else { + emailInput.setCustomValidity('Invalid'); + } + }); + + // Mobile number validation script + var mobileInput = document.getElementById('mobn'); + // var mobileFeedback = document.getElementById('mobileFeedback'); + + mobileInput.addEventListener('input', function () { + var mobileValue = mobileInput.value; + // Regex pattern to validate mobile number + var mobilePattern = /^\d{3}\d{3}\d{4}$/; + + if (mobilePattern.test(mobileValue)) { + mobileInput.setCustomValidity(''); + } else { + mobileInput.setCustomValidity('Invalid'); + } + }); + + // NGO ID validation script + var NGOIDInput = document.getElementById('ngoid'); + + NGOIDInput.addEventListener('input', function () { + var nameValue = NGOIDInput.value; + if (nameValue.length >= 4) { + NGOIDInput.setCustomValidity(''); + } else { + NGOIDInput.setCustomValidity('Invalid'); + } + }); + + + })() \ No newline at end of file diff --git a/routers/NgoRoutes.js b/routers/NgoRoutes.js index 61706c9..d8da0c7 100644 --- a/routers/NgoRoutes.js +++ b/routers/NgoRoutes.js @@ -104,9 +104,10 @@ router.post("/NGO-Registarion", async (req, res) => { }); console.log("NGO registration request sent for approval"); - res - .status(200) - .json({ message: "NGO registration request sent for approval" }); + // res + // .status(200) + // .json({ message: "NGO registration request sent for approval" }); + res.render("success") } catch (err) { console.error("Error creating NGO:", err); res.status(500).json({ error: "Internal server error" }); diff --git a/views/Admin_Dashboard.ejs b/views/Admin_Dashboard.ejs index 12ca23c..298b847 100644 --- a/views/Admin_Dashboard.ejs +++ b/views/Admin_Dashboard.ejs @@ -473,7 +473,7 @@ - + Admin DashBoard diff --git a/views/Email.template.handlebars b/views/Email.template.handlebars index 2d611bb..7c4cc65 100644 --- a/views/Email.template.handlebars +++ b/views/Email.template.handlebars @@ -4,6 +4,7 @@ Registration Successful + diff --git a/views/NGO-Registration.ejs b/views/NGO-Registration.ejs index 3567b09..daa24d3 100644 --- a/views/NGO-Registration.ejs +++ b/views/NGO-Registration.ejs @@ -97,31 +97,51 @@
NGO Registration Form


-
+
- - + + +
+ Name field looks good! +
+
+ Name should be at least 4 characters long! +
- - + + +
Email field looks good!
+
Please enter a valid email address (e.g., user@example.com).
+
- - + + +
Password field looks good!
+
Password must be at least 8 characters long and include an uppercase letter, a lowercase letter, a digit, and a special symbol.
+
- - + + +
Mobile number looks good!
+
Mobile number should be exactly 10 digits long.
+
- - + + +
NGO ID looks good!
+
NGO ID should be at least 4 characters long!
+
- - + + +
NGO location looks good!
+
Please enter a valid location (e.g., New York, NY).
@@ -155,6 +175,7 @@ + diff --git a/views/Ngo_login.ejs b/views/Ngo_login.ejs index fd343f9..0dd3eab 100644 --- a/views/Ngo_login.ejs +++ b/views/Ngo_login.ejs @@ -45,12 +45,16 @@

We are happy to have you back.

- +
- + +
Email field looks good!
+
Please enter a valid email address (e.g., user@example.com).
+
Password field looks good!
+
Password is required
@@ -103,5 +107,7 @@ }); + + \ No newline at end of file diff --git a/views/UserDashBoard.ejs b/views/UserDashBoard.ejs index 3e9779a..88ee93e 100644 --- a/views/UserDashBoard.ejs +++ b/views/UserDashBoard.ejs @@ -4,7 +4,7 @@ - + + diff --git a/views/forget-password.ejs b/views/forget-password.ejs index e2a37b5..721c857 100644 --- a/views/forget-password.ejs +++ b/views/forget-password.ejs @@ -3,6 +3,7 @@ + -
-

Awesome!

-

You 've been succesfully singned up to Petari, We are tahankful to you are with us !

-
- - +
+
+

Awesome!

+

You've been successfully signed up to Petari. We are thankful to have you with us! + We will Review and Approve your Registration Soon!!! +

+ Go to Homepage +
+
- + diff --git a/views/user_login.ejs b/views/user_login.ejs index c3970b9..d4e5c88 100644 --- a/views/user_login.ejs +++ b/views/user_login.ejs @@ -44,12 +44,16 @@

Hello,Again

We are happy to have you back.

- +
- + +
Email field looks good!
+
Please enter a valid email address (e.g., user@example.com).
+
Password field looks good!
+
Password is required
@@ -110,6 +114,9 @@ + + + \ No newline at end of file