From 3ceb4ad16c273245a197953b1f9845428b9bd091 Mon Sep 17 00:00:00 2001
From: Fadhil Imam Kurnia <fadhilimamk@gmail.com>
Date: Thu, 5 Oct 2017 14:34:44 +0700
Subject: [PATCH] Create edit profil page

---
 .htaccess                           |   1 +
 public/img/ic_edit.jpg              | Bin 0 -> 1561 bytes
 public/style.css                    |  13 ++++++
 src/app.php                         |   1 +
 src/controller/ProfilController.php |  31 +++++++++++++-
 src/route.php                       |   4 ++
 src/view/profil.php                 |   8 ++--
 src/view/profil_edit.php            |  64 ++++++++++++++++++++++++++++
 8 files changed, 116 insertions(+), 6 deletions(-)
 create mode 100755 public/img/ic_edit.jpg
 create mode 100644 src/view/profil_edit.php

diff --git a/.htaccess b/.htaccess
index f97815c..4cd7a26 100644
--- a/.htaccess
+++ b/.htaccess
@@ -1,4 +1,5 @@
 Options -MultiViews
 RewriteEngine On
 RewriteCond %{REQUEST_FILENAME} !-f
+RewriteCond %{REQUEST_URI} !=/img/ic_edit.jpg
 RewriteRule ^ public/index.php [QSA,L]
\ No newline at end of file
diff --git a/public/img/ic_edit.jpg b/public/img/ic_edit.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..450061c79dfaa2d5ddb6b6e310d35ba6ff2413ba
GIT binary patch
literal 1561
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
LNkvXXu0mjfBFgN~

literal 0
HcmV?d00001

diff --git a/public/style.css b/public/style.css
index 13b8dbd..dc8acf1 100644
--- a/public/style.css
+++ b/public/style.css
@@ -121,4 +121,17 @@ body {
 
 .profil>p {
     line-height: 50%;
+}
+
+.edit:after {
+    background-image: url('/img/ic_edit.jpg');
+    background-size: 45px 45px;
+    display: inline-block;
+    width: 45px;
+    height: 45px;
+    content:"";
+}
+
+a.edit:after {
+    margin: 15px;
 }
\ No newline at end of file
diff --git a/src/app.php b/src/app.php
index 0bdcc30..0066635 100644
--- a/src/app.php
+++ b/src/app.php
@@ -56,6 +56,7 @@ class DagoJek {
         if (array_key_exists ($base_url, $this->routingTable)) {
             $this->routingTable[$base_url]();
         } else {
+
             die ("404 Page not Found");
         }
     }
diff --git a/src/controller/ProfilController.php b/src/controller/ProfilController.php
index d5a5b9c..194a90d 100644
--- a/src/controller/ProfilController.php
+++ b/src/controller/ProfilController.php
@@ -13,8 +13,10 @@ class ProfilController {
             return;
         }
 
+        $id = $_GET['u'];
+
         // Decrypt user id
-        $uid = simpleCrypt($_GET['u'], 'd');
+        $uid = simpleCrypt($id, 'd');
 
         // Getting driver profile
         $dbconn = DB::getInstance();
@@ -30,7 +32,32 @@ class ProfilController {
     }
 
     public static function EditHandler() {
-        echo "TBD";
+
+        // Getting user id from url
+        if (!isset($_GET['u']) || $_GET['u'] == "") {
+            echo "Invalid parameter!";
+            return;
+        }
+
+        $id = $_GET['u'];
+
+        // Decrypt user id
+        $uid = simpleCrypt($id, 'd');
+
+        // Getting driver profile
+        $dbconn = DB::getInstance();
+        $user = Driver::Create($uid, $dbconn);
+
+        if (!$user) {
+            echo "User not found!";
+            return;
+        }
+
+        require __DIR__.'/../view/profil_edit.php';
+    }
+
+    public static function SaveProfil() {
+        var_dump($_POST);
     }
 
 }
\ No newline at end of file
diff --git a/src/route.php b/src/route.php
index 76edc5e..f471205 100644
--- a/src/route.php
+++ b/src/route.php
@@ -7,9 +7,13 @@ $AppInstance = Dagojek::Instance();
 $AppInstance->addRoute("/",                     'MainController::LoginHandler');
 $AppInstance->addRoute("/login",                'MainController::LoginHandler');
 $AppInstance->addRoute("/register",             'MainController::DefaultHandler');
+
 $AppInstance->addRoute("/main/profil",          'ProfilController::ProfilHandler');
 $AppInstance->addRoute("/main/profil/edit",     'ProfilController::EditHandler');
+$AppInstance->addRoute("/main/profil/edit/save",     'ProfilController::SaveProfil');
+
 $AppInstance->addRoute("/main/history",         'MainController::DefaultHandler');
 $AppInstance->addRoute("/main/order/",          'MainController::DefaultHandler');
 $AppInstance->addRoute("/main/order/select",    'MainController::DefaultHandler');
 $AppInstance->addRoute("/main/order/finish",    'MainController::DefaultHandler');
+
diff --git a/src/view/profil.php b/src/view/profil.php
index d0c5788..f052b24 100644
--- a/src/view/profil.php
+++ b/src/view/profil.php
@@ -10,7 +10,7 @@
             <div class="col-3 text-right">
                 <p>
                     Hi, <b><?=$user->username?></b> !<br>
-                    <a href="#">Logout</a>
+                    <a href="/">Logout</a>
                 </p>
             </div> 
         </div> 
@@ -21,14 +21,14 @@
         </div>
         <div class="row">
             <div class="col-5"><h1>MY PROFILE</h1></div>
-            <div class="col-1 text-right">edit</div>
+            <div class="col-1 text-right"><a class="edit" href="/main/profil/edit?u=<?=$id?>"></a></div>
         </div> 
         <div class="text-center profil">
             <img class="img-circle" src="<?=$user->photo?>"/><br>
             <h2>@<?=$user->username?></h2>
             <p><?=$user->name?></p>
             <?php if ($user->isDriver) : ?>
-                <p>Driver | <span class="text-orange"><i class="icon icon-star"></i> <?=$user->rating?></span> (<?=$user->sumOrder?> vote<?=($user->sumOrder>1)?'s':''?>)</p>
+                <p>Driver | <span class="text-orange"><b><i class="icon icon-star"></i> <?=$user->rating?></b></span> (<?=$user->sumOrder?> vote<?=($user->sumOrder>1)?'s':''?>)</p>
             <?php else : ?>
                 <p>Non Driver</p>
             <?php endif; ?>
@@ -37,7 +37,7 @@
         </div> 
         <div class="row">
             <div class="col-5"><h2>PREFERED LOCATIONS</h2></div>
-            <div class="col-1 text-right">edit</div>
+            <div class="col-1 text-right"><a class="edit" href="/main/profil/edit"></a></div>
         </div> 
         <div class="row">
             <ul>
diff --git a/src/view/profil_edit.php b/src/view/profil_edit.php
new file mode 100644
index 0000000..3ab9ac7
--- /dev/null
+++ b/src/view/profil_edit.php
@@ -0,0 +1,64 @@
+<html>
+<head>
+    <title>DAGO-JEK | Profil</title>
+    <link rel="stylesheet" type="text/css" href="/style.css">
+</head>
+<body>
+<div class="container">
+    <div class="row">
+        <div class="col-3"><span class="logo"></span></div>
+        <div class="col-3 text-right">
+            <p>
+                Hi, <b>fadhilimamk</b> !<br>
+                <a href="/">Logout</a>
+            </p>
+        </div>
+    </div>
+    <div class="row">
+        <form action="/main/profil/edit/save" method="post">
+            <div class="container">
+                <div class="row">
+                    <div class="col-6">
+                        <h1>EDIT PROFILE INFORMATION</h1>
+                    </div>
+                </div>
+                <div class="row">
+                    <div class="col-2">
+                        <img src="<?=$user->photo?>" style="width: 180px;height: 180px; outline: 1px solid black">
+                    </div>
+                    <div class="col-4">
+                        <h3>Update profile picture</h3>
+                        <form action="#">
+                            <input type="file" name="photo" accept="image/*">
+                        </form>
+                    </div>
+                </div>
+                <br>
+                <div class="row">
+                    <div class="col-2">
+                        Your Name:<br>
+                        Phone:<br>
+                        Driver Status
+                    </div>
+                    <div class="col-4">
+                            <input type="text" name="name" value="<?=$user->name?>"><br>
+                            <input type="text" name="phone" value="<?=$user->phone?>"><br>
+                            <input type="radio" name="isDriver" value="yes" <?=$user->isDriver? 'checked':''?>>Yes
+                            <input type="radio" name="isDriver" value="no" <?=$user->isDriver? '':'checked'?>>No<br>
+                    </div>
+                </div>
+                <br>
+                <div class="row">
+                    <div class="col-3">
+                        <a href="/main/profil?u=<?=$id?>"><button type="button">BACK</button></a>
+                    </div>
+                    <div class="col-3 text-right">
+                        <input type="submit" value="SAVE">
+                    </div>
+                </div>
+            </div>
+        </form>
+    </div>
+</div>
+</body>
+</html>
\ No newline at end of file
-- 
GitLab