register & login working
arnaucube arnaucube@gmail.com
Sat, 15 Jun 2019 13:55:29 +0200
8 files changed,
286 insertions(+),
0 deletions(-)
A
README.md
@@ -0,0 +1,4 @@
+# gogame-frontend +Frontend webapp for https://github.com/arnaucube/gogame + +Work in progress
A
css/dark-theme.css
@@ -0,0 +1,20 @@
+.dark-theme { + background: #232729; + color: #d9d9d9; +} +.dark-theme + .card, + .list-group-item, + input, + .nav-link { + background: none!important; + border-color: #3b4145; +} +.dark-theme input { + color: #00ffd8; +} +.dark-theme input:focus { + color: #00ffd8; + box-shadow: 0px 0px 5px #00ffd8!important; + border: none; +}
A
css/style.css
@@ -0,0 +1,32 @@
+ +/* a, a:link, a:visited, a:hover { + color: #5ae1cd!important; + text-decoration: none!important; +} +a:hover { + color: #5ae1cd!important; + text-decoration: none!important; +} */ + +.btn { + cursor: pointer; +} + +hr { + height: 2px!important; + + /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#00cee6+0,5ae1cd+98 */ + background: #00cee6; /* Old browsers */ + background: -moz-linear-gradient(left, #00cee6 0%, #5ae1cd 98%); /* FF3.6-15 */ + background: -webkit-linear-gradient(left, #00cee6 0%,#5ae1cd 98%); /* Chrome10-25,Safari5.1-6 */ + background: linear-gradient(to right, #00cee6 0%,#5ae1cd 98%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00cee6', endColorstr='#5ae1cd',GradientType=1 ); /* IE6-9 */ +} + + +.resourcesTable>thead>tr>th, .resourcesTable>tbody>tr>td{ + padding-left: 5px; + padding-right: 5px; + text-align: center; + border:1px solid #ffffff; +}
A
dashboard.html
@@ -0,0 +1,64 @@
+<!doctype html> +<html lang="en"> + +<head> + <!-- Required meta tags --> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> + + <!-- Bootstrap CSS --> + <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous"> + <link rel="stylesheet" href="css/style.css"> + <link rel="stylesheet" href="css/dark-theme.css"> + + <title>gogame</title> +</head> + +<body class="dark-theme"> + <div class="container"> + + <h3>Dashboard</h3> + User Name: <span id="name"></span> + + <br><br> + <table class="resourcesTable"> + <thead> + <tr> + <th scope="col">Metal</th> + <th scope="col">Crystal</th> + <th scope="col">Detuerium</th> + <th scope="col">Energy</th> + </tr> + </thead> + <tbody> + <tr> + <td id="metal"></td> + <td id="crystal"></td> + <td id="deuterium"></td> + <td id="energy"></td> + </tr> + </tbody> + </table> + + <br><br><br><br><br> + <div onclick="logout()" class="btn btn-primary">Logout</div> + </div> + </div> + </div> + + + <!-- Optional JavaScript --> + <!-- jQuery first, then Popper.js, then Bootstrap JS --> + <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> + <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script> + <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script> + + <script src="https://unpkg.com/axios/dist/axios.min.js"></script> + + + <script src="constants.js"></script> + <script src="dashboard.js"></script> + +</body> + +</html>
A
dashboard.js
@@ -0,0 +1,36 @@
+const token = localStorage.getItem("token"); +console.log(token); + +if (localStorage.getItem("token")===null) { + // redirect to dashboard + window.location.href = "/index.html"; +} +function logout() { + localStorage.removeItem("token"); + window.location.href = "/index.html"; +} + +let config = { + "crossdomain": true, + headers: { + "Content-Type": "application/json", + "Authorization": "Bearer " + token + } +}; + +let user = {}; +// get user data +axios.get(url + "/", config) + .then(function (res) { + console.log(res.data); + user = res.data.user; + console.log(user); + document.getElementById("name").innerHTML = user.Name; + document.getElementById("metal").innerHTML = user.Resources.Metal; + document.getElementById("crystal").innerHTML = user.Resources.Crystal; + document.getElementById("deuterium").innerHTML = user.Resources.Deuterium; + document.getElementById("energy").innerHTML = user.Resources.Energy; +}) +.catch(function (error) { + console.log(error); +});
A
index.html
@@ -0,0 +1,87 @@
+<!doctype html> +<html lang="en"> + +<head> + <!-- Required meta tags --> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> + + <!-- Bootstrap CSS --> + <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous"> + <link rel="stylesheet" href="css/style.css"> + <link rel="stylesheet" href="css/dark-theme.css"> + + <title>gogame</title> +</head> + +<body class="dark-theme"> + <div class="container"> + <div class="row" style="margin-top:20%;"> + <div class="col-lg-4"></div> + <div class="col-lg-4"> + + <h3>gogame</h3> + <div class="card"> + <ul class="nav nav-tabs" id="myTab" role="tablist"> + <li class="nav-item"> + <a class="nav-link active" id="login-tab" data-toggle="tab" href="#login" role="tab" aria-controls="login" aria-selected="true">Login</a> + </li> + <li class="nav-item"> + <a class="nav-link" id="register-tab" data-toggle="tab" href="#register" role="tab" aria-controls="register" aria-selected="false">Register</a> + </li> + </ul> + + <div class="card-body"> + + <div class="tab-content" id="myTabContent"> + <div class="tab-pane fade show active" id="login" role="tabpanel" aria-labelledby="login-tab"> + <h5 class="card-title">Login</h5> + <hr> + <p class="card-text"> + <label for="exampleInputEmail1">Email address</label> + <input type="email" class="form-control" id="loginEmail" placeholder="Enter email"> + <br> + <label for="exampleInputPassword1">Password</label> + <input type="password" class="form-control" id="loginPassword" placeholder="Password"> + <div onclick="login()" class="btn btn-primary float-right">Login</div> + </p> + </div> + <div class="tab-pane fade" id="register" role="tabpanel" aria-labelledby="register-tab"> + <h5 class="card-title">Register</h5> + <hr> + <p class="card-text"> + <label for="email">Email address</label> + <input type="email" class="form-control" id="registerEmail" placeholder="Enter email"> + <br> + <label for="name">Name</label> + <input type="text" class="form-control" id="registerName" placeholder="Name"> + <br> + <label for="password">Password</label> + <input type="password" class="form-control" id="registerPassword" placeholder="Password"> + <div onclick="register()" class="btn btn-primary float-right">Register</div> + </p> + </div> + </div> + + </div> + </div> + + </div> + </div> + </div> + + + <!-- Optional JavaScript --> + <!-- jQuery first, then Popper.js, then Bootstrap JS --> + <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> + <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script> + <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script> + + <script src="https://unpkg.com/axios/dist/axios.min.js"></script> + + + <script src="constants.js"></script> + <script src="index.js"></script> + +</body> +</html>
A
index.js
@@ -0,0 +1,42 @@
+if (localStorage.getItem("token")!==null) { + // redirect to dashboard + window.location.href = "/dashboard.html"; +} + +function register() { + let email = document.getElementById("registerEmail").value; + let name = document.getElementById("registerName").value; + let password = document.getElementById("registerPassword").value; + + let data = { + email: email, + name: name, + password: password + }; + axios.post(url + "/register", data) + .then(function (res) { + console.log(res.data); + }) + .catch(function (error) { + console.log(error); + }); +} + +function login() { + let email = document.getElementById("loginEmail").value; + let password = document.getElementById("loginPassword").value; + + let data = { + email: email, + password: password + }; + axios.post(url + "/login", data) + .then(function (res) { + console.log(res.data); + localStorage.setItem("token", res.data.token); + window.location.href = "/dashboard.html"; + }) + .catch(function (error) { + console.log(error); + }); +}