Add login functionality

This commit is contained in:
2020-11-12 13:23:25 -08:00
parent 7e8a6d6590
commit 43bdf9a746
12 changed files with 144 additions and 53 deletions

View File

@@ -14,13 +14,15 @@
<div class="container">
<div class="d-flex">
<a class="header-brand" href="/">#(config.title)</a>
#if(config.showSourceBtn):
<div class="d-flex order-lg-2 ml-auto">
<div class="nav-item d-none d-md-flex">
<a href="https://gitea.arsenm.dev/Arsen6331/statusboard" class="btn btn-sm btn-outline-primary" target="_blank">Source code</a>
</div>
<div class="d-flex order-lg-2 ml-auto">
<div class="nav-item d-none d-md-flex">
#if(loggedIn):
<a href="/logout" class="btn btn-sm btn-outline-primary" target="_self">Log Out</a>
#else:
<a href="/login" class="btn btn-sm btn-outline-primary" target="_self">Log In</a>
#endif
</div>
#endif
</div>
</div>
</div>
</div>

43
Resources/Views/card.leaf Normal file
View File

@@ -0,0 +1,43 @@
<div class="col">
<div class="card">
<div class="card-header">
<h3 class="card-title">#(service["name"])</h3>
<div class="card-options">
<span class="tag #if(service["url"]): btn-loading #endif">
Status
<span id="#(service["name"])Status" class="tag-addon">Unavailable</span>
</span>
</div>
</div>
<div class="card-body">
#(service["description"])
</div>
#if(service["url"]):
<div class="card-footer">
URL: <a href="#(service["url"])">#(service["url"])</a>
</div>
#endif
</div>
#if(service["url"]):
<script>
fullURL = '#(service["url"])'
var url = fullURL.replace("https://", "")
url = url.replace("http://", "")
var request = new XMLHttpRequest()
request.open('GET', "/status/" + url, true)
request.onload = function () {
var data = JSON.parse(this.response)
if (data.down === "true" || parseInt(data.code) > 500 && parseInt(data.code) < 600 ) {
document.getElementById('#(service["name"])Status').classList.add("tag-danger")
document.getElementById('#(service["name"])Status').parentElement.classList.remove("btn-loading")
document.getElementById('#(service["name"])Status').innerHTML = "Offline"
} else {
document.getElementById('#(service["name"])Status').classList.add("tag-success")
document.getElementById('#(service["name"])Status').parentElement.classList.remove("btn-loading")
document.getElementById('#(service["name"])Status').innerHTML = "Online"
}
}
request.send()
</script>
#endif
</div>

View File

@@ -7,49 +7,13 @@
<h6>#(node)</h6>
<div class="row row-cards row-deck">
#for(service in services):
<div class="col">
<div class="card">
<div class="card-header">
<h3 class="card-title">#(service["name"])</h3>
<div class="card-options">
<span class="tag #if(service["url"]): btn-loading #endif">
Status
<span id="#(service["name"])Status" class="tag-addon">Unavailable</span>
</span>
</div>
</div>
<div class="card-body">
#(service["description"])
</div>
#if(service["url"]):
<div class="card-footer">
URL: <a href="#(service["url"])">#(service["url"])</a>
</div>
#endif
</div>
#if(service["url"]):
<script>
fullURL = '#(service["url"])'
var url = fullURL.replace("https://", "")
url = url.replace("http://", "")
var request = new XMLHttpRequest()
request.open('GET', "/status/" + url, true)
request.onload = function () {
var data = JSON.parse(this.response)
if (data.down === "true" || parseInt(data.code) > 500 && parseInt(data.code) < 600 ) {
document.getElementById('#(service["name"])Status').classList.add("tag-danger")
document.getElementById('#(service["name"])Status').parentElement.classList.remove("btn-loading")
document.getElementById('#(service["name"])Status').innerHTML = "Offline"
} else {
document.getElementById('#(service["name"])Status').classList.add("tag-success")
document.getElementById('#(service["name"])Status').parentElement.classList.remove("btn-loading")
document.getElementById('#(service["name"])Status').innerHTML = "Online"
}
}
request.send()
</script>
#if(!service["private"] == "true"):
#inline("card")
#else:
#if(loggedIn):
#inline("card")
#endif
</div>
#endif
#endfor
</div>
#endfor

View File

@@ -0,0 +1,30 @@
#define(body):
<div class="page">
<div class="page-single">
<div class="container">
<div class="row">
<div class="col col-login mx-auto">
<div class="text-center mb-6">
<img src="" class="h-6" alt="">
</div>
<form class="card" action="/login" method="post">
<div class="card-body p-6">
<div class="card-title">Login to #(config.title)</div>
<div class="form-group">
<label class="form-label">
Password
</label>
<input type="password" class="form-control" id="passwordInput" name="password" value="password" placeholder="Password">
</div>
<div class="form-footer">
<button type="submit" class="btn btn-primary btn-block">Sign in</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
#enddefine
#inline("base")