diff --git a/client.css b/client.css index 14e6e60756c89997cd821b3bb6ea18f7a8687e2d..857198a00711bd8ff627d61ed75d86640d5622ee 100644 --- a/client.css +++ b/client.css @@ -16,4 +16,8 @@ display: flex; justify-content: space-between; gap: 10px; +} + +input[type=text]:focus { + background-color: white; } \ No newline at end of file diff --git a/client.html b/client.html index a799d1ffeb1bfbf03afb5bec517a246d0ee8d05c..08ac7006d782420e2b6024e19ad5ad05de3e1267 100644 --- a/client.html +++ b/client.html @@ -8,18 +8,19 @@ <div class="welcome"> <img src="wimage.png" alt="logo and slogan"> <div class="form-elements" id="login"> - <form id="loginform" onsubmit="return inputValidation()"> + <form id="loginform"> <div class="form-input"> <label for="email">Email</label> <input type="text" id="email" name="email" size="18"> </div> <div class="form-input"> <label for="password">Password</label> - <input type="text" id="password" name="password" size="18"> + <input type="password" id="password" name="password" size="18"> </div> <input type="submit" value="Login"> + <div id="message"></div> </form> - <form id="signupform" onsubmit="return inputValidation()"> + <form id="signupform"> <h2>Sign up here</h2> <div class="form-input"> <label for="fname">First name</label> @@ -52,19 +53,23 @@ </div> <div class="form-input"> <label for="password">Password</label> - <input type="text" id="password" name="password" size="18"> + <input type="password" id="password" name="password" size="18"> </div> <div class="form-input"> <label for="password2">Repeat PSW</label> - <input type="text" id="password2" name="password2" size="18"> + <input type="password" id="password2" name="password2" size="18"> </div> <div class="form-input"> <input type="submit" value="Sign Up"> </div> + <div id="message"></div> </form> </div> </div> </script> + <script type="text/view" id="profileview"> + <h1>lOGIN SIDA</h1> + </script> </head> <body style="background-color: antiquewhite;"> <div id="pagecontent"> diff --git a/client.js b/client.js index 162bf88999834785f2134fcd68d53f2a958eeea5..d19ba73010b9a55679569c2a03789f8bee9b6ebf 100644 --- a/client.js +++ b/client.js @@ -1,3 +1,16 @@ + +class SignUp { + constructor(email, password, fname, lname, gender, city, country) { + this.email = email; + this.password = password; + this.firstname = fname; + this.familyname = lname; + this.gender = gender; + this.city = city; + this.country = country; + } +} + displayView = function() { // the code required to display a view }; @@ -7,38 +20,95 @@ window.onload = function() { // window alert() is not allowed to be used in your implementation. //window.alert("Hello TDDD97!"); document.getElementById("pagecontent").innerHTML = document.getElementById("welcomeview").innerText; - var signupform = document.forms["signupform"] + var loginform = document.forms["loginform"]; + var signupform = document.forms["signupform"]; signupform.addEventListener("submit", function(event) { event.preventDefault(); - inputValidation(event); + if(inputValidation("signupform")) { + var signupObject = new SignUp(signupform["email"].value, + signupform["password"].value, + signupform["fname"].value, + signupform["lname"].value, + signupform["gender"].value, + signupform["city"].value, + signupform["country"].value); + var message = serverstub.signUp(signupObject); + console.log(message); + if (!message.success) { + signupform["email"].value = ""; + signupform["email"].setAttribute("placeholder", message.message); + } else { + document.getElementById("pagecontent").innerHTML = ""; + document.getElementById("pagecontent").innerText = ""; + document.getElementById("pagecontent").innerHTML = document.getElementById("profileview").innerText; + } + } }) -}; - -inputValidation = function(event) { - let allInputs = document.forms["signupform"].elements; - for(elem in allInputs) { - if(element.type === "text" && element.value === "") { - console.log("hejejeheh"); - return false; + + loginform.addEventListener("submit", function(event) { + event.preventDefault(); + if (inputValidation("loginform")) { + var message = serverstub.signIn(loginform["email"].value, loginform["password"].value); + console.log(message); + if(!message.success) { + loginform["email"].value = ""; + loginform["password"].value = ""; + loginform["email"].setAttribute("placeholder", message.message); + } else { + document.getElementById("pagecontent").innerHTML = ""; + document.getElementById("pagecontent").innerText = ""; + document.getElementById("pagecontent").innerHTML = document.getElementById("profileview").innerText; + } } - } - let emailText = document.forms["loginform"]["email"].value; - if (!validateEmail(emailText)) { - return false; - } + }) +}; +inputValidation = function(formID) { + var form = document.forms[formID]; + let allInputs = form.querySelectorAll("input"); + var valid = true; + allInputs.forEach(function(elem) { + if(elem.type === "text" && elem.value === "") { + elem.setAttribute("placeholder", "Don't leave blank"); + valid = false; + } }) + if (!validateEmail(form)) { + valid = false; + } + valid = validatePassword(form, formID); + return valid; } -function validateEmail(input) { + +function validateEmail(form) { var validRegex = /\w+@\w+\.\w+/ - if (input.value.match(validRegex)) { - alert("Valid email address!"); - document.form1.text1.focus(); - return true; - } else { - alert("Invalid email address!"); - document.form1.text1.focus(); + var email = form["email"]; + if (!email.value.match(validRegex)) { + email.value = ""; + email.setAttribute("placeholder", "Invalid email"); return false; - } + } + return true; +} +function validatePassword(form, formID) { + if(formID == "signupform" && form["password"].value != form["password2"].value) { + form["password"].value = ""; + form["password2"].value = ""; + form["password"].setAttribute("placeholder", "Passwords must match"); + form["password2"].setAttribute("placeholder", "Passwords must match"); + return false; + } + if(formID == "signupform" && form["password"].value.length < 8) { + form["password"].value = ""; + form["password2"].value = ""; + form["password"].setAttribute("placeholder", "Password must be 8 characters or longer"); + return false; + } + if(formID == "loginform" && form["password"].value.length < 8) { + form["password"].value = ""; + form["password"].setAttribute("placeholder", "Wrong password"); + return false; + } + return true; } \ No newline at end of file