From a90abf24ce0d7df49de7cd5bb3171509f0b3f1fb Mon Sep 17 00:00:00 2001
From: girvandip <girvandip@gmail.com>
Date: Thu, 5 Oct 2017 22:14:33 +0700
Subject: [PATCH] register page redirection done, added toggle button on edit
 profile

---
 controller/edit-profile.php |  2 +-
 controller/register.php     |  9 +++-
 css/edit-profile.css        | 65 +++++++++++++++++++++----
 js/edit-profile.js          | 27 +++++++++++
 js/register.js              | 96 +++++++++++++++++++++++++++++++++++++
 model/user.php              |  2 +-
 view/edit-profile.php       | 12 +++--
 view/register.php           |  2 +-
 8 files changed, 198 insertions(+), 17 deletions(-)

diff --git a/controller/edit-profile.php b/controller/edit-profile.php
index dbadb0b8..357e3117 100644
--- a/controller/edit-profile.php
+++ b/controller/edit-profile.php
@@ -1,6 +1,5 @@
 <?php
 
-//TODO: Refresh page after save, image kalo ga dimasukkin pake yg lama, cek smua input gaboleh salah
 
 /* Model */
 include "../model/user.php";
@@ -41,3 +40,4 @@ if(isset($_POST["submit"])) {
 }
 
 
+
diff --git a/controller/register.php b/controller/register.php
index ac3fc7af..5f3fa7c2 100644
--- a/controller/register.php
+++ b/controller/register.php
@@ -46,7 +46,12 @@ if(isset($_POST["register"])) {
             $isDriver = 1;
         }
     }
+
     $user -> createUser($name,$username,$email,$password,$phone,$isDriver);
-    $userid = $user->getIdByUser($username);
-    header('Location: ../view/dashboard.php?id=' . (integer)$user->getIdByUser($username));
+    $id = 0;
+    $result = $user->getIdByUser($username);
+    while($row = mysqli_fetch_array($result)) {
+        $id = $row['id'];
+    }
+    header('Location: ../view/dashboard.php?id=' . $id);
 }
diff --git a/css/edit-profile.css b/css/edit-profile.css
index fa449b24..7f30f02f 100644
--- a/css/edit-profile.css
+++ b/css/edit-profile.css
@@ -1,6 +1,3 @@
-.container {
-  width : 100%;
-}
 
 .edit-image {
   font-size: 0;
@@ -48,11 +45,63 @@
   text-align: right;
 }
 
-.checkbox input {
-  margin: 0;
-  transform: scale(1.5);
-  -ms-transform: scale(1.5);
-  -webkit-transform: scale(1.5);
+.switch {
+  position: relative;
+  display: inline-block;
+  width: 60px;
+  height: 34px;
+}
+
+.switch input {
+  display: none;
+}
+
+.slider {
+  position: absolute;
+  cursor: pointer;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  background-color: #ccc;
+  -webkit-transition: .4s;
+  transition: .4s;
+}
+
+
+.slider:before {
+  position: absolute;
+  content: "";
+  height: 26px;
+  width: 26px;
+  left: 4px;
+  bottom: 4px;
+  background-color: white;
+  -webkit-transition: .4s;
+  transition: .4s;
+}
+
+input:checked + .slider {
+  background-color: #55D069;
+}
+
+input:focus + .slider {
+  box-shadow: 0 0 1px #2196F3;
+}
+
+input:checked + .slider:before {
+  -webkit-transform: translateX(26px);
+  -ms-transform: translateX(26px);
+  transform: translateX(26px);
+}
+
+
+.slider {
+  border-radius: 34px;
+}
+
+.slider:before {
+  border-radius: 50%;
 }
 
 .back {
diff --git a/js/edit-profile.js b/js/edit-profile.js
index cdcf29c2..d8b29eaf 100644
--- a/js/edit-profile.js
+++ b/js/edit-profile.js
@@ -21,4 +21,31 @@ function getUserProfile() {
     xmlhttp.send();
 }
 
+function checkAllInput() {
+    var name = document.editForm["name"];
+    var phone = document.editForm["phone"];
+
+    //Check name
+    if(name.value == "") {
+        alert("Your name field must be filled!");
+        return false;
+    } else if (name.value.length > 20) {
+        alert("Name must be 1-20 characters long!");
+        return false;
+    }
+
+    //Check Phone
+    var regex = /^08([0-9]){1,}$/;
+    if(phone.value == "") {
+        alert("Phone number field must be filled!");
+        return false;
+    } else if(phone.value.length < 9 || phone.value.length > 12 ) {
+        alert("Phone number must be 9-12 digits!");
+        return false;
+    }
+    if(regex.test(phone.value) === false) {
+        alert("Phone number must be valid");
+        return false;
+    }
+}
 
diff --git a/js/register.js b/js/register.js
index 9d62c1ff..71bfdc4e 100644
--- a/js/register.js
+++ b/js/register.js
@@ -14,6 +14,7 @@ function checkUsername() {
                 if(response == 'no') {
                     document.getElementById("check-icon-username").style.display = 'none';
                     document.getElementById("delete-icon-username").style.display = 'inline-block';
+
                 }
             }
         }
@@ -45,3 +46,98 @@ function checkEmail() {
     }
 }
 
+function checkAllInput() {
+    //Check Name
+    var name = document.registerForm["full-name"];
+    var user = document.registerForm.username;
+    var email = document.registerForm.email;
+    var password = document.registerForm.password;
+    var confirmPassword = document.registerForm["confirm-password"];
+    var phone = document.registerForm.phone;
+    //check Name
+    if(name.value == "") {
+        alert("Your name field must be filled!");
+        return false;
+    } else if (name.value.length > 20) {
+        alert("Name must be 1-20 characters long!");
+        return false;
+    }
+    //Check Username
+    if(user.value == "") {
+        alert("Username field must be filled!");
+        return false;
+    } else if (user.value.length > 20) {
+        alert("Name must be 1-20 characters long!");
+        return false;
+    }
+    //Check email
+    if(email.value == "") {
+        alert("Email field must be filled!");
+        return false;
+    }
+    //Check password
+    if(password.value == "") {
+        alert("Password field must be filled!");
+        return false;
+    }
+    //Check confirmPassword
+    if(confirmPassword.value == "") {
+        alert("Confirm Password field must be filled!");
+        return false;
+    }
+    if(password.value != confirmPassword.value) {
+        alert("Password and Confirm Password field must be the same!");
+        return false;
+    }
+    //Check Phone
+    var regex = /^08([0-9]){1,}$/;
+    if(phone.value == "") {
+        alert("Phone number field must be filled!");
+        return false;
+    } else if(phone.value.length < 9 || phone.value.length > 12 ) {
+        alert("Phone number must be 9-12 digits!");
+        return false;
+    }
+    if(regex.test(phone.value) === false) {
+        alert("Phone number must be valid");
+        return false;
+    }
+
+    // var name = document.forms["form"]["full-name"].value;
+    // if(name == "") {
+    //     alert("Your name field must be filled!");
+    //     return false;
+    // //Check username
+    // var username = document.forms["form"]["username"].value;
+    // if(username == "") {
+    //     alert("Username field must be filled!");
+    //     return false;
+    // /// /Check email
+    // var email = document.forms["form"]["email"].value;
+    // if(email == "") {
+    //     alert("Email field must be filled!");
+    //     return false;
+    // }
+}
+
+function checkName() {
+
+}
+
+function checkPassword() {
+    //Check Password
+    var password = document.forms["form"]["password"].value;
+    var confirmPassword = document.forms["form"]["confirm-password"].value;
+    if(password == "") {
+        alert("Password field must be filled!");
+        return false;
+    } else if(confirmPassword == "") {
+        alert("Confirm Password field must be filled!");
+        return false;
+    }
+}
+
+function checkPhone() {
+    //Check Phone
+    var phone = document.forms["form"]["phone"].value;
+}
\ No newline at end of file
diff --git a/model/user.php b/model/user.php
index 424fa2a4..fb5e18c4 100644
--- a/model/user.php
+++ b/model/user.php
@@ -31,7 +31,7 @@ class User {
     function getIdByUser($username) {
         $con = mysqli_connect('localhost','root','','projekers');
         mysqli_select_db($con, 'projekers');
-        $sql = "SELECT id FROM user WHERE username= '" . $username . "'";
+        $sql = "SELECT id FROM user WHERE username= '" . (string)$username . "'";
         $result = mysqli_query($con, $sql);
         mysqli_close($con);
         return $result;
diff --git a/view/edit-profile.php b/view/edit-profile.php
index a019ad23..df7b8af1 100644
--- a/view/edit-profile.php
+++ b/view/edit-profile.php
@@ -8,10 +8,11 @@
     </script>
     <script src="../js/edit-profile.js"></script>
 </head>
-<body onpageshow="getUserProfile();">
+<body onload="getUserProfile();">
 <div class="container">
     <h1>EDIT PROFILE INFORMATION</h1>
-    <form action="../controller/edit-profile.php?id=<?php echo $_GET['id']?>" method="post" id="form">
+    <form action="../controller/edit-profile.php?id=<?php echo $_GET['id']?>"
+          method="post" id="form" name="editForm" onsubmit="checkAllInput()">
         <input type="hidden" id="userid" value="<?php echo $_GET['id'];?>">
         <div class="edit-image">
           <div class="div-profile-image">
@@ -21,7 +22,7 @@
             <label>Update profile picture</label>
             <br />
             <br />
-            <input type="file" name="image-file" value="browse..">
+            <input type="file" name="image-file" value="browse.." id="image-file">
           </div>
         </div>
         <div>
@@ -36,7 +37,10 @@
           <div class="edit-data">
             <label class="form-label">Status Driver</label>
             <div class="checkbox">
-                <input type="checkbox" name="driver" id="driver">
+                <label class="switch">
+                    <input type="checkbox" name="driver" id="driver">
+                    <span class="slider"></span>
+                </label>
             </div>
           </div>
         </div>
diff --git a/view/register.php b/view/register.php
index 28cce869..06fb4f6a 100644
--- a/view/register.php
+++ b/view/register.php
@@ -16,7 +16,7 @@
             <br>
             <br>
             <div class="form-input">
-                <form action="../controller/register.php" method="post">
+                <form action="../controller/register.php" method="post" name="registerForm" onsubmit="return checkAllInput()">
                     <div class="user-input">
                         <div class="label-input">Your Name</label></div>
                         <div class="text-input"><input type="text" name="full-name" id="full-name"></div>
-- 
GitLab