WIP
This commit is contained in:
@@ -1,20 +0,0 @@
|
||||
{{define "body" -}}
|
||||
<h2>Config</h2>
|
||||
|
||||
<form method="POST">
|
||||
<input type="hidden" name="CSRF" value="{{.Session.CSRF}}">
|
||||
<p>
|
||||
<label>Hub Address</label><br>
|
||||
<input type="url" name="HubAddress" value="{{.Config.HubAddress}}">
|
||||
</p>
|
||||
<p>
|
||||
<label>VPN Network</label><br>
|
||||
<input type="text" name="VPNNetwork" value="{{ipToString .Config.VPNNetwork}}">
|
||||
</p>
|
||||
<p>
|
||||
<button type="submit">Save</button>
|
||||
<a href="/admin/config/">Cancel</a>
|
||||
</p>
|
||||
</form>
|
||||
|
||||
{{- end}}
|
||||
19
hub/templates/admin-network-create.html
Normal file
19
hub/templates/admin-network-create.html
Normal file
@@ -0,0 +1,19 @@
|
||||
{{define "body" -}}
|
||||
<h2>Create Network</h2>
|
||||
|
||||
<form method="POST">
|
||||
<input type="hidden" name="CSRF" value="{{.Session.CSRF}}">
|
||||
<p>
|
||||
<label>Name</label><br>
|
||||
<input type="text" name="Name">
|
||||
</p>
|
||||
<p>
|
||||
<label>Network /24</label><br>
|
||||
<input type="text" name="Network">
|
||||
</p>
|
||||
<p>
|
||||
<button type="submit">Save</button>
|
||||
<a href="/admin/network/list/">Cancel</a>
|
||||
</p>
|
||||
</form>
|
||||
{{- end}}
|
||||
38
hub/templates/admin-network-list.html
Normal file
38
hub/templates/admin-network-list.html
Normal file
@@ -0,0 +1,38 @@
|
||||
{{define "body" -}}
|
||||
<h2>Networks</h2>
|
||||
|
||||
<p>
|
||||
<a href="/admin/network/create/">Create</a>
|
||||
</p>
|
||||
|
||||
{{if .Networks -}}
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Network</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{range .Networks -}}
|
||||
<tr>
|
||||
<td>
|
||||
<a href="/admin/network/view/?NetworkID={{.NetworkID}}">
|
||||
{{.Name}}
|
||||
</a>
|
||||
</td>
|
||||
<td>{{ipToString .Network}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
{{- end}}
|
||||
</table>
|
||||
{{- else}}
|
||||
<p>No networks.</p>
|
||||
{{- end}}
|
||||
|
||||
<h3>Settings</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="/admin/password/edit/">Password</a></li>
|
||||
</ul>
|
||||
{{- end}}
|
||||
@@ -1,36 +0,0 @@
|
||||
{{define "body" -}}
|
||||
<h2>Delete Peer</h2>
|
||||
|
||||
{{with .Peer -}}
|
||||
<form method="POST">
|
||||
<input type="hidden" name="CSRF" value="{{$.Session.CSRF}}">
|
||||
<p>
|
||||
<label>Peer IP</label><br>
|
||||
<input type="number" name="PeerIP" value="{{.PeerIP}}" disabled>
|
||||
</p>
|
||||
<p>
|
||||
<label>Name</label><br>
|
||||
<input type="text" value="{{.Name}}" disabled>
|
||||
</p>
|
||||
<p>
|
||||
<label>Public IP</label><br>
|
||||
<input type="text" value="{{ipToString .PublicIP}}" disabled>
|
||||
</p>
|
||||
<p>
|
||||
<label>Port</label><br>
|
||||
<input type="number" value="{{.Port}}" disabled>
|
||||
</p>
|
||||
<p>
|
||||
<label>
|
||||
<input type="checkbox" {{if .Relay}}checked{{end}} disabled>
|
||||
Relay
|
||||
</label>
|
||||
</p>
|
||||
<p>
|
||||
<button type="submit">Delete</button>
|
||||
<a href="/admin/peer/view/?PeerIP={{.PeerIP}}">Cancel</a>
|
||||
</p>
|
||||
</form>
|
||||
{{- end}}
|
||||
|
||||
{{- end}}
|
||||
@@ -1,13 +0,0 @@
|
||||
{{define "body" -}}
|
||||
<h2>Initialize Peer</h2>
|
||||
|
||||
<p>
|
||||
Configure the peer with the following URL:
|
||||
</p>
|
||||
<pre>
|
||||
{{.HubAddress}}/peer/init/?Code={{.Code}}
|
||||
</pre>
|
||||
<p>
|
||||
<a href="/admin/config/">Done</a>
|
||||
</p>
|
||||
{{- end}}
|
||||
@@ -1,13 +0,0 @@
|
||||
{{define "body" -}}
|
||||
<h2>Create Peer</h2>
|
||||
|
||||
<p>
|
||||
Configure the peer with the following URL:
|
||||
</p>
|
||||
<pre>
|
||||
{{.HubAddress}}/peer/create/?Code={{.Code}}
|
||||
</pre>
|
||||
<p>
|
||||
<a href="/admin/config/">Done</a>
|
||||
</p>
|
||||
{{- end}}
|
||||
@@ -5,7 +5,7 @@
|
||||
<input type="hidden" name="CSRF" value="{{.Session.CSRF}}">
|
||||
<p>
|
||||
<button type="submit">Sign Out</button>
|
||||
<a href="/admin/config/">Cancel</a>
|
||||
<a href="/">Cancel</a>
|
||||
</p>
|
||||
</form>
|
||||
{{- end}}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<h1>VPPN</h1>
|
||||
<nav>
|
||||
{{if .Session.SignedIn -}}
|
||||
<a href="/admin/config/">Home</a> /
|
||||
<a href="/admin/networks/list/">Home</a> /
|
||||
<a href="/admin/sign-out/">Sign out</a>
|
||||
{{- end}}
|
||||
</nav>
|
||||
|
||||
25
hub/templates/network/base.html
Normal file
25
hub/templates/network/base.html
Normal file
@@ -0,0 +1,25 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>VPPN Hub</title>
|
||||
<link rel="stylesheet" href="/static/new.min.css">
|
||||
<link rel="stylesheet" href="/static/custom.css">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h1>VPPN</h1>
|
||||
<nav>
|
||||
{{if .Session.SignedIn -}}
|
||||
<a href="/admin/networks/list/">Home</a> /
|
||||
<a href="/admin/sign-out/">Sign out</a>
|
||||
{{- end}}
|
||||
</nav>
|
||||
</header>
|
||||
<h2>
|
||||
Network:
|
||||
<a href="/admin/network/view/?NetworkID={{.Network.NetworkID}}">{{.Network.Name}}</a>
|
||||
</h2>
|
||||
|
||||
{{block "body" .}}There's nothing here.{{end}}
|
||||
</body>
|
||||
</html>
|
||||
16
hub/templates/network/network-delete.html
Normal file
16
hub/templates/network/network-delete.html
Normal file
@@ -0,0 +1,16 @@
|
||||
{{define "body" -}}
|
||||
<h3>Delete</h3>
|
||||
|
||||
{{if .Peers -}}
|
||||
<p>You must first delete all peers.</p>
|
||||
{{- else -}}
|
||||
<form method="POST">
|
||||
<input type="hidden" name="CSRF" value="{{.Session.CSRF}}">
|
||||
<input type="hidden" name="NetworkID" value="{{.Network.NetworkID}}">
|
||||
<p>
|
||||
<button type="submit">Delete</button>
|
||||
<a href="/admin/network/view/?NetworkID={{.Network.NetworkID}}">Cancel</a>
|
||||
</p>
|
||||
</form>
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
@@ -1,27 +1,20 @@
|
||||
{{define "body" -}}
|
||||
<h2>Config</h2>
|
||||
|
||||
<p>
|
||||
<a href="/admin/config/edit/">Edit</a> /
|
||||
<a href="/admin/password/edit/">Change Password</a>
|
||||
<a href="/admin/network/delete/?NetworkID={{.Network.NetworkID}}">Delete</a> /
|
||||
<a href="/admin/network/hosts/?NetworkID={{.Network.NetworkID}}">Hosts</a>
|
||||
</p>
|
||||
|
||||
<table class="def-list">
|
||||
<tr>
|
||||
<td>Hub Address</td>
|
||||
<td>{{.Config.HubAddress}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>VPN Network</td>
|
||||
<td>{{ipToString .Config.VPNNetwork}}</td>
|
||||
<td>Network</td>
|
||||
<td>{{ipToString .Network.Network}}/24</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h2>Peers</h2>
|
||||
<h3>Peers</h3>
|
||||
|
||||
<p>
|
||||
<a href="/admin/peer/create/">Add Peer</a> /
|
||||
<a href="/admin/peer/hosts/">Hosts</a>
|
||||
<a href="/admin/peer/create/?NetworkID={{.Network.NetworkID}}">Create</a>
|
||||
</p>
|
||||
|
||||
{{if .Peers -}}
|
||||
@@ -39,7 +32,7 @@
|
||||
{{range .Peers -}}
|
||||
<tr>
|
||||
<td>
|
||||
<a href="/admin/peer/view/?PeerIP={{.PeerIP}}">
|
||||
<a href="/admin/peer/view/?NetworkID={{$.Network.NetworkID}}&PeerIP={{.PeerIP}}">
|
||||
{{.PeerIP}}
|
||||
</a>
|
||||
</td>
|
||||
@@ -1,8 +1,9 @@
|
||||
{{define "body" -}}
|
||||
<h2>New Peer</h2>
|
||||
<h3>New Peer</h3>
|
||||
|
||||
<form method="POST">
|
||||
<input type="hidden" name="CSRF" value="{{.Session.CSRF}}">
|
||||
<input type="hidden" name="NetworkID" value="{{.Network.NetworkID}}">
|
||||
<p>
|
||||
<label>IP</label><br>
|
||||
<input type="number" name="IP" min="1" max="255" value="0">
|
||||
@@ -27,7 +28,7 @@
|
||||
</p>
|
||||
<p>
|
||||
<button type="submit">Save</button>
|
||||
<a href="/admin/config/">Cancel</a>
|
||||
<a href="/admin/network/view/?NetworkID={{.Network.NetworkID}}">Cancel</a>
|
||||
</p>
|
||||
</form>
|
||||
|
||||
15
hub/templates/network/peer-delete.html
Normal file
15
hub/templates/network/peer-delete.html
Normal file
@@ -0,0 +1,15 @@
|
||||
{{define "body" -}}
|
||||
<h3>Delete {{.Peer.Name}}</h3>
|
||||
|
||||
{{with .Peer -}}
|
||||
<form method="POST">
|
||||
<input type="hidden" name="CSRF" value="{{$.Session.CSRF}}">
|
||||
<input type="hidden" name="NetworkID" value="{{.NetworkID}}">
|
||||
<input type="hidden" name="NetworkID" value="{{.PeerIP}}">
|
||||
<p>
|
||||
<button type="submit">Delete</button>
|
||||
<a href="/admin/peer/view/?PeerIP={{.PeerIP}}&NetworkID={{.NetworkID}}">Cancel</a>
|
||||
</p>
|
||||
</form>
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
@@ -6,7 +6,7 @@
|
||||
<input type="hidden" name="CSRF" value="{{$.Session.CSRF}}">
|
||||
<p>
|
||||
<label>Peer IP</label><br>
|
||||
<input type="number" name="PeerIP" value="{{.PeerIP}}" disabled>
|
||||
<input type="text" value="{{.PeerIP}}" disabled>
|
||||
</p>
|
||||
<p>
|
||||
<label>Name</label><br>
|
||||
@@ -28,9 +28,8 @@
|
||||
</p>
|
||||
<p>
|
||||
<button type="submit">Save</button>
|
||||
<a href="/admin/peer/view/?PeerIP={{.PeerIP}}">Cancel</a>
|
||||
<a href="/admin/peer/view/?NetworkID={{$.Network.NetworkID}}&PeerIP={{.PeerIP}}">Cancel</a>
|
||||
</p>
|
||||
</form>
|
||||
{{- end}}
|
||||
|
||||
{{- end}}
|
||||
@@ -1,20 +1,25 @@
|
||||
{{define "body" -}}
|
||||
<h2>Peer</h2>
|
||||
|
||||
<h3>{{.Peer.Name}}</h3>
|
||||
<p>
|
||||
<a href="/admin/peer/edit/?PeerIP={{.Peer.PeerIP}}">Edit</a> /
|
||||
<a href="/admin/peer/delete/?PeerIP={{.Peer.PeerIP}}">Delete</a>
|
||||
<a href="/admin/peer/edit/?NetworkID={{.Network.NetworkID}}&PeerIP={{.Peer.PeerIP}}">Edit</a> /
|
||||
<a href="/admin/peer/delete/?NetworkID={{.Network.NetworkID}}&PeerIP={{.Peer.PeerIP}}">Delete</a>
|
||||
</p>
|
||||
|
||||
{{with .Peer -}}
|
||||
<table class="def-list">
|
||||
<tr><td>Peer IP</td><td>{{.PeerIP}}</td></tr>
|
||||
<tr><td>Name</td><td>{{.Name}}</td></tr>
|
||||
<tr><td>Public IP</td><td>{{ipToString .PublicIP}}</td></tr>
|
||||
<tr><td>Port</td><td>{{.Port}}</td></tr>
|
||||
<tr><td>Relay</td><td>{{if .Relay}}T{{else}}F{{end}}</td></tr>
|
||||
<tr><td>API Key</td><td>{{.APIKey}}</td></tr>
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
<details>
|
||||
<summary>API Key</summary>
|
||||
<p>{{.APIKey}}</p>
|
||||
</details>
|
||||
|
||||
|
||||
{{- end}}
|
||||
|
||||
{{- end}}
|
||||
Reference in New Issue
Block a user