Major improvements incl. CSS

This commit is contained in:
Henri
2020-11-26 23:21:14 +01:00
parent 3cde7d371d
commit 16ce040ab9
14 changed files with 642 additions and 145 deletions

View File

@@ -1,15 +1,20 @@
<html>
<head>
<meta http-equiv='content-type' content='text/html; charset=utf-8' />
<title>Towalink WireGuard Frontend</title>
<link rel='stylesheet' media='screen' href='/static/layout.css' />
</head>
<body>
<div class='container'>
<div class='header'>
{% include 'part_header.html' %}
</div>
<div class='content'>{% block content %}{% endblock %}</div>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Towalink WireGuard Frontend</title>
<link rel="stylesheet" media="screen" href="/static/styles.css" />
</head>
<body>
{% include 'part_header.html' %}
<section>
<div class="content">
{%- block content %}{% endblock %}
</div>
</body>
</section>
<footer>
<a href="https://github.com/towalink/wgfrontend/" target="_blank">Powered by the open source &quot;Towalink WireGuard Frontend&quot;</a>
</footer>
</body>
</html>

View File

@@ -1,24 +1,29 @@
{% extends 'base.html' %}
{% block content %}
<h3>Client Config</h3>
<div class='instructions'>
<a href='https://www.wireguard.com/install/' target="_blank">WireGuard client installation instructions</a>
</div>
<div class='span-18 last'>
<form method="get" action="download">
<table>
<tr>
<td>
{{ peerdata['Description'] }}<br>
{{ peerdata['Address'] }}
</td>
<td>
<img src="/configs/{{ peerdata['Id'] }}.png" alt="QR Code">
<button type="submit" name="id" value="{{ peerdata['Id'] }}">Download Config</button>
<button type="submit" formaction=".." }}">Return</button>
</td>
</tr>
</table>
</form>
</div>
<h3>Client Config</h3>
<div class='form'>
<form method="get" action="download">
<div class="buttonrow">
<button class="button buttonhighlight" type="submit" name="action" value="list" formaction="..">Return to List</button>
</div>
<div class="table">
<div class="table-row">
<div class="table-cell bordertop">
{{ peerdata['Description'] }}<br>
<small>{{ peerdata['Address'] }}</small><br>
</div>
<div class="table-cell twobuttoncell bordertop2">
<button class="button" type="submit" name="id" value="{{ peerdata['Id'] }}" formaction="edit">Edit Client</button>
<button class="button" type="submit" name="id" value="{{ peerdata['Id'] }}" formaction="download">Download Config</button>
</div>
</div>
<div class="table-row" style="text-align: center;">
<img class="qrcode" src="/configs/{{ peerdata['Id'] }}.png" alt="QR Code">
</div>
</div>
</form>
</div>
<div class='instructions'>
See the <a href='https://www.wireguard.com/install/' target="_blank">WireGuard client installation instructions</a>.
</div>
{% endblock %}

View File

@@ -1,22 +1,28 @@
{% extends 'base.html' %}
{% block content %}
<h3>Configured Clients</h3>
<div class='span-18 last'>
<form method="get" action="edit">
<table>
<tr>
<td>
<input type="hidden" name="id" value="{{ peerdata['Id'] }}" />
<input type="text" name="description" value="{{ peerdata['Description'] }}" size="40" /><br>
{{ peerdata['Address'] }}
</td>
<td>
<button type="submit" name="action" value="save">Save Data</button>
<button type="submit" name="action" value="delete" formaction="/" onclick="return confirm('Do you really want to delete this client?')">Delete Client</button>
<button type="submit" formaction="/">Return to List</button>
</td>
</tr>
</table>
</form>
</div>
<h3>{% if peerdata['Id'] %}Edit{% else %}New{% endif %} Client</h3>
<div class='form'>
<form method="get" action="..">
<div class="buttonrow">
<button class="button buttonhighlight" type="submit" name="action" value="list">Return to List</button>
</div>
<div class="table">
<div class="table-row">
<div class="table-cell bordertop">
<input type="hidden" name="id" value="{{ peerdata['Id'] }}" />
<input class="inputtext" type="text" name="description" value="{{ peerdata['Description'] }}" size="40" /><br>
<small>{{ peerdata['Address'] }}</small>
</div>
<div class="table-cell twobuttoncell bordertop2">
<button class="button" type="submit" name="action" value="save" formaction="config">{% if peerdata['Id'] %}Save Changes{% else %}Save{%endif %}</button>
{%- if peerdata['Id'] %}
<button class="button" type="submit" name="action" value="delete" onclick="return confirm('Do you really want to delete this client?')">Delete Client</button>
{%- else %}
<button class="button" type="submit" name="action" value="list")">Cancel</button>
{%- endif %}
</div>
</div>
</div>
</form>
</div>
{% endblock %}

View File

@@ -1,23 +1,35 @@
{% extends 'base.html' %}
{% block content %}
<h3>Configured Clients</h3>
<div class='span-18 last'>
<form method="get" action="edit">
<button type="submit" name="action" value="new">Add Client</button>
<table>
{%- for peer, peerdata in peers.items()|sort(attribute='1.Description') %}
<tr>
<td>
{{ peerdata['Description'] }}<br>
{{ peerdata['Address'] }}
</td>
<td>
<button type="submit" name="id" value="{{ peerdata['Id'] }}">Edit Client</button>
<button type="submit" name="id" value="{{ peerdata['Id'] }}" formaction="config">Get Config</button>
</td>
</tr>
{%- endfor %}
</table>
</form>
</div>
{% endblock %}
<h3>Configured Clients</h3>
<div class='form'>
<form method="get" action="edit">
<div class="buttonrow">
<button class="button buttonhighlight" type="submit" name="action" value="new">Add Client</button>
</div>
<div class="table">
{%- for peer, peerdata in peers.items()|sort(attribute='1.Description') %}
<div class="line"></div>
<div class="table-row">
<div class="table-cell bordertop">
{{ peerdata['Description'] }}<br>
<small>{{ peerdata['Address'] }}</small>
</div>
<div class="table-cell twobuttoncell bordertop2">
<button class="button" type="submit" name="id" value="{{ peerdata['Id'] }}">Edit Client</button>
<button class="button" type="submit" name="id" value="{{ peerdata['Id'] }}" formaction="config">Get Config</button>
</div>
</div>
{%- endfor %}
{% if not peers %}
<div class="table">
<div class="line"></div>
<div class="table-row">
<div class="table-cell bordertop">
There is no client configured up to now.
</div>
</div>
{% endif %}
</div>
</form>
</div>
{% endblock %}

39
src/templates/login.html Normal file
View File

@@ -0,0 +1,39 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Towalink WireGuard Frontend - Login</title>
<link rel="stylesheet" media="screen" href="/static/styles.css" />
</head>
<body>
<div class="loginform">
<form method="post" action="do_login">
<div class=loginerror>{{ error_msg }}</div>
<table>
<tr>
<td>
User:
</td>
<td>
<input class="logininput" type="text" name="username" value="{{ username }}" size="40" />
</td>
<tr>
<td>
Password:&nbsp;&nbsp;
</td>
<td>
<input class="logininput" type="password" name="password" size="40" />
<input type="hidden" name="from_page" value="{{ from_page }}" />
</td>
</tr>
<tr>
<td colspan=2 align=right>
<input class="button loginmargin" type="submit" value="Login" />
</td>
</tr>
</table>
</form>
</div>
</body>
</html>

View File

@@ -1,3 +1,9 @@
<div class='heading'>
<h2><a href='/'>Towalink WireGuard Frontend</a></h2>
</div>
<header>
<h2><a href="/"><img src="static/logo.svg" alt="Towalink logo"><span>Towalink WireGuard Frontend</span></a></h2>
<div class="user">
<p>{% if sessiondata['username'] %}{{ sessiondata['username'] }}{% else %}not logged in{%endif %}</p>
<form action="/logout">
<input class="button" type="submit" value="Logout" />
</form>
</div>
</header>