From 875584bbf29315589ad6f017e8b716ab01038e55 Mon Sep 17 00:00:00 2001 From: Cess Date: Tue, 6 Oct 2020 22:35:41 +0300 Subject: [PATCH] revert signup validation commits --- app/assets/javascripts/validation.js | 43 ++++++++++++++++++--------- app/views/users/_create_form.html.erb | 4 +-- 2 files changed, 31 insertions(+), 16 deletions(-) diff --git a/app/assets/javascripts/validation.js b/app/assets/javascripts/validation.js index cc1f153363..36e834d455 100644 --- a/app/assets/javascripts/validation.js +++ b/app/assets/javascripts/validation.js @@ -37,15 +37,21 @@ $(document).ready(function() { $(document).ready(function() { // The two forms have the same ID var signUpForms = document.querySelectorAll("#create-form"); + var signUpErrorMessages = document.querySelector("#error-message"); // Sign up modal form signUpForms[0].classList.add("signup-modal-form"); var signUpModalForm = new SignUpFormValidator(".signup-modal-form"); - // publiclab.org/register form if (signUpForms[1]) { signUpForms[1].classList.add("signup-register-form"); var signUpRegisterForm = new SignUpFormValidator(".signup-register-form"); + signUpRegisterForm.validateForm() + + if (signUpErrorMessages.innerHTML.includes("Email")) { + signUpRegisterForm.updateUI(signUpRegisterForm.emailElement, false, "Email already exists"); + } + signUpRegisterForm.isFormValid() } // The same goes for login forms @@ -133,39 +139,40 @@ function SignUpFormValidator(formClass) { if (!signUpForm) return; this.validationTracker = {}; - this.submitBtn = document.querySelector(formClass + ' [type="submit"'); + + this.submitBtn = document.querySelector(formClass + ' [type="submit"]'); this.isFormValid(); - var usernameElement = document.querySelector( + this.usernameElement = document.querySelector( formClass + " [name='user[username]']" ); - var emailElement = document.querySelector( + this.emailElement = document.querySelector( formClass + " [name='user[email]']" ); - var passwordElement = document.querySelector( + this.passwordElement = document.querySelector( formClass + " [name='user[password]']" ); - var confirmPasswordElement = document.querySelector( + this.confirmPasswordElement = document.querySelector( formClass + " [name='user[password_confirmation]']" ); // Every time user types something, corresponding event listener are triggered - usernameElement.addEventListener( + this.usernameElement.addEventListener( "input", - validateUsername.bind(usernameElement, this) + validateUsername.bind(this.usernameElement, this) ); - emailElement.addEventListener( + this.emailElement.addEventListener( "input", - validateEmail.bind(emailElement, this) + validateEmail.bind(this.emailElement, this) ); - passwordElement.addEventListener( + this.passwordElement.addEventListener( "input", - validatePassword.bind(passwordElement, confirmPasswordElement, this) + validatePassword.bind(this.passwordElement, this.confirmPasswordElement, this) ); - confirmPasswordElement.addEventListener( + this.confirmPasswordElement.addEventListener( "input", - validateConfirmPassword.bind(confirmPasswordElement, passwordElement, this) + validateConfirmPassword.bind(this.confirmPasswordElement, this.passwordElement, this) ); } @@ -195,6 +202,13 @@ SignUpFormValidator.prototype.enableSubmitBtn = function() { this.submitBtn.removeAttribute("disabled"); }; +SignUpFormValidator.prototype.validateForm = function() { + validateUsername.call(this.usernameElement, this) + validateEmail.call(this.emailElement, this) + validatePassword.call(this.passwordElement, this.confirmPasswordElement, this) + validateConfirmPassword.call(this.confirmPasswordElement, this.passwordElement, this) +}; + SignUpFormValidator.prototype.isFormValid = function() { // Form is valid if all elements have passsed validation successfully var isValidForm = @@ -242,6 +256,7 @@ function validateEmail(obj) { } function validatePassword(confirmPasswordElement, obj) { + var password = this.value.trim(); if (password.length === 0) { diff --git a/app/views/users/_create_form.html.erb b/app/views/users/_create_form.html.erb index 03bd9c52f3..f824a3ba21 100644 --- a/app/views/users/_create_form.html.erb +++ b/app/views/users/_create_form.html.erb @@ -1,6 +1,6 @@
<%= form_for :user, :as => :user, :url => "/register", :html => {:class => "container", :id => "create-form", :'data-toggle' => "validator"} do |f| %> - <% if f.error_messages != "" %>
<%= f.error_messages %>
<% end %> + <% if f.error_messages != "" %>
<%= f.error_messages %>
<% end %> @@ -110,7 +110,7 @@
- + or <%= translation('users._form.log_in') %>