@ -0,0 +1,4 @@ |
|||
# gogame-frontend |
|||
Frontend webapp for https://github.com/arnaucube/gogame |
|||
|
|||
Work in progress |
@ -0,0 +1 @@ |
|||
const url = "http://127.0.0.1:5000"; |
@ -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; |
|||
} |
@ -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; |
|||
} |
@ -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> |
@ -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); |
|||
}); |
@ -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> |
@ -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); |
|||
}); |
|||
} |