aboutsummaryrefslogtreecommitdiffstats
path: root/templates
diff options
context:
space:
mode:
Diffstat (limited to 'templates')
-rw-r--r--templates/base.html12
-rw-r--r--templates/home.html96
-rw-r--r--templates/lan.html32
-rw-r--r--templates/lib.html65
-rw-r--r--templates/processes.html6
-rw-r--r--templates/tor.html19
-rw-r--r--templates/wan.html35
-rw-r--r--templates/wifi.html38
8 files changed, 250 insertions, 53 deletions
diff --git a/templates/base.html b/templates/base.html
index a2c1407..4c15c73 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -37,13 +37,12 @@
<li {% if path == request.path %}class="active"{% endif %}><a href="{{path}}">{{name}}</a></li>
{%- endmacro %}
{{ pagelink("/", "Status") }}
- {{ pagelink("/admin/", "Administration") }}
{{ pagelink("/reboot/", "Reboot...") }}
<li class="nav-header">Configuration</li>
- {{ pagelink("/wan/", "Upstream") }}
- {{ pagelink("/lan/", "Local") }}
- {{ pagelink("/wireless/", "Wireless") }}
- {{ pagelink("/tor/", "Tor") }}
+ {{ pagelink("/wan/", "Upstream Ethernet") }}
+ {{ pagelink("/lan/", "Local Ethernet") }}
+ {{ pagelink("/wifi/", "WiFi") }}
+ {{ pagelink("/tor/", "Tor Network") }}
<li class="nav-header">Monitoring</li>
{{ pagelink("/logs/", "Logs") }}
{{ pagelink("/processes/", "Processes") }}
@@ -51,8 +50,8 @@
</div><!--/.well -->
</div><!--/span-->
<div class="span9">
- {% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
+ {{ mesages }}
{% for category, message in messages %}
<div class="alert alert-{{ category }}">
<button type="button" class="close" data-dismiss="alert">×</button>
@@ -63,7 +62,6 @@
</div>
{% endfor %}
{% endif %}
- {% endwith %}
{% block body %}{% endblock %}
</div><!--/span-->
</div><!--/row-->
diff --git a/templates/home.html b/templates/home.html
index 30c328e..fa2ed2b 100644
--- a/templates/home.html
+++ b/templates/home.html
@@ -1,39 +1,71 @@
{% import "lib.html" as lib %}
{% extends "base.html" %}
{% block body %}
-<h3>System</h3>
-<table class="table table-condensed">
- <tr>
- <th>Host Name
- <td><code>{{ status.system.hostname }}</code>
- <tr>
- <th>Current Time
- <td><code>{{ status.system.current_time }}</code>
- <tr>
- <th>System Uptime
- <td><code>{{ status.system.uptime }}</code>
-</table>
-<h3>WAN</h3>
-{% if not status.wan %}
-Upstream ethernet interface hardware not detected at all!
-{% else %}
-{{ lib.ifstatus(status.wan) }}
-{% endif %}
-
-<h3>LAN</h3>
-{% if not status.lan %}
-Local network ethernet interface hardware not detected at all!
-{% else %}
-{{ lib.ifstatus(status.lan) }}
-{% endif %}
-
-<h3>Wireless</h3>
-{% if not status.wireless %}
-Wireless interface hardware not detected at all!
-{% else %}
-{{ lib.ifstatus(status.wireless) }}
-{% endif %}
+<div class="row-fluid">
+ <div class="span6">
+ <h3>System</h3>
+ <table class="table table-condensed">
+ <tr>
+ <th>Host Name
+ <td><span style="font-family:monospace;">{{ status.system.hostname }}</span>
+ <tr>
+ <th>Current Time
+ <td><span style="font-family:monospace;">{{ status.system.current_time }}</span>
+ <tr>
+ <th>System Uptime
+ <td><span style="font-family:monospace;">{{ status.system.uptime }}</span>
+ </table>
+ </div>
+ <div class="span6">
+ <h3>Resources</h3>
+ <ul class="unstyled">
+ <li>
+ CPU Load<span class="pull-right strong">{{status.resources.cpu_load}} / {{status.resources.cpu_cores}} cores</span>
+ <div class="progress progress-striped ">
+ <div class="bar" style="width: {{status.resources.cpu_percent}}%;"></div>
+ </div>
+ </li>
+ <li>RAM Usage<span class="pull-right strong">{{status.resources.ram_used}} / {{status.resources.ram_avail}}</span>
+ <div class="progress progress-success progress-striped ">
+ <div class="bar" style="width: {{ status.resources.ram_percent }}%;"></div>
+ </div>
+ </li>
+ <li>Primary Disk Space<span class="pull-right strong">{{status.resources.disk_used}} / {{status.resources.disk_avail}}</span>
+ <div class="progress progress-warning progress-striped ">
+ <div class="bar" style="width: {{ status.resources.disk_percent }}%;"></div>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div>
+<div class="row-fluid">
+ <div class="span6">
+ <h3>WAN</h3>
+ {{ lib.ifstatus(status.wan) }}
+ </div>
+ <div class="span6">
+ <h3>LAN</h3>
+ {{ lib.ifstatus(status.lan) }}
+ </div>
+</div>
+<div class="row-fluid">
+ <div class="span6">
+ <h3>WiFi</h3>
+ {{ lib.ifstatus(status.wifi) }}
+ </div>
+ <div class="span6">
+ <h3>Tor</h3>
+ <table class="table table-condensed {% if status.tor.state in ["DISABLED"] %}muted{% endif %}">
+ <tr>
+ <th>Status
+ <td><span style="font-weight: bold;" class="label
+ {% if status.tor.state == 'RUNNING' %}label-success{% elif status.tor.state == 'STARTING' %}label-info{% else %}label-important{% endif %}">
+ {{ status.tor.state }}
+ </span>
+ </table>
+ </div>
+</div>
{% endblock %}
diff --git a/templates/lan.html b/templates/lan.html
new file mode 100644
index 0000000..09bcf0a
--- /dev/null
+++ b/templates/lan.html
@@ -0,0 +1,32 @@
+{% import "lib.html" as lib %}
+{% extends "base.html" %}
+{% block body %}
+
+<form action="/lan/" method="POST" class="form-horizontal">
+<legend>Local Ethernet Configuration</legend>
+
+{% if not status.lan %}
+<span class="text-error">Could not find the local ethernet hardware device!</span>
+{% else %}
+
+{{ lib.formcheckbox(form, formerr, 'ipv4enable', 'Enable this interface', 'true') }}
+
+<legend>Address Configuration</legend>
+{{ lib.forminput(form, formerr, 'ipv4addr', 'IPv4 Address', '0.0.0.0') }}
+{{ lib.forminput(form, formerr, 'ipv4netmask', 'Netmask', '255.255.0.0') }}
+{{ lib.forminput(form, formerr, 'ipv4gateway', 'Gateway IP Address', '0.0.0.0') }}
+
+<legend>DHCP Configuration</legend>
+{{ lib.forminput(form, formerr, 'dhcpbase', 'DHCP Range Base', '192.168.1.100') }}
+{{ lib.forminput(form, formerr, 'dhcptop', 'DHCP Range Top', '192.168.1.200') }}
+{{ lib.forminput(form, formerr, 'dhcptime', 'Lease Time', '12h') }}
+
+<div class="pull-right">
+<a href="."><button class="btn" type="button">Reset</button></a>
+<button type="submit" class="btn btn-primary" type="button">
+Save</button>
+</div>
+</form>
+{% endif %}
+
+{% endblock %}
diff --git a/templates/lib.html b/templates/lib.html
index 33534da..6ac5e12 100644
--- a/templates/lib.html
+++ b/templates/lib.html
@@ -1,41 +1,84 @@
+
{% macro ifstatus(ifstatus) -%}
-<table class="table table-condensed">
+{% if not ifstatus %}
+<span class="text-error">
+Network hardware not detected at all!
+</span>
+{% else %}
+<table class="table table-condensed {% if ifstatus.state in ["DOWN", "DISCONNECTED"] %}muted{% endif %}">
<tr>
<th>Interface Name
- <td><code>{{ ifstatus.ifname }}</code>
+ <td><span style="font-family:monospace;">{{ ifstatus.ifname }}</span>
<tr>
<th>Status
- <td><span style="font-weight: bold; color:
- {% if ifstatus.state == 'UP' %}green{% else %}red{% endif %};">
+ <td><span style="font-weight: bold;" class="label
+ {% if ifstatus.state == 'RUNNING' %}label-success{% elif ifstatus.state == 'up' %}label-info{% else %}label-important{% endif %}">
{{ ifstatus.state }}
</span>
<tr>
<th>MAC Address
- <td><code>{{ ifstatus.mac }}</code>
+ <td><span style="font-family:monospace;">{{ ifstatus.mac }}</span>
<tr>
<th>IPv4 Addresses
- <td><code>
+ <td><span style="font-family:monospace;">
{% for addr in ifstatus.ipv4addrs %}
{{ addr.addr }}/{{ addr.prefix}} ({{ addr.scope }})<br>
- {% endfor %}</code>
+ {% endfor %}</span>
<tr>
<th>IPv6 Addresses
- <td><code>
+ <td><span style="font-family:monospace;">
{% for addr in ifstatus.ipv6addrs %}
{{ addr.addr }}/{{ addr.prefix}} ({{ addr.scope }})<br>
- {% endfor %}</code>
+ {% endfor %}</span>
+ {% if ifstatus.radio_state %}
+ <tr>
+ <th>Radio State
+ <td><span style="font-family:monospace;">{{ ifstatus.radio_state }}</span>
+ <tr>
+ <th>SSID
+ <td><span style="font-family:monospace;">{{ ifstatus.ssid }}</span>
+ <tr>
+ <th>Frequency
+ <td><span style="font-family:monospace;">{{ ifstatus.freq }}</span>
+ <tr>
+ <th>Signal Strength
+ <td><span style="font-family:monospace;">{{ ifstatus.signal_dbm }}</span>
+ {% endif %}
</table>
+{% endif %}
{%- endmacro %}
+
{% macro logbox(name, contents) -%}
<h3>{{name}}</h3>
{% if contents == None %}
<span class="text-error">Access to {{name}} was denied, or file did not exist.</span>
{% else %}
-
-<pre style="height: 18em; width 40em; overflow: auto;">
+<div style="height: 18em; width: 60em;">
+<pre style="height: 18em; width 60em; overflow: auto;">
{{ contents }}
</pre>
+</div>
{% endif%}
{%- endmacro %}
+
+
+{% macro forminput(form, formerr, name, title, placeholder) -%}
+<div class="control-group {% if formerr[name] %}error{% endif %}">
+ <label class="control-label" for="{{name}}">{{ title }}</label>
+ <div class="controls">
+ <input type="text" name="{{name}}" placeholder="{{placeholder}}" {% if form[name] %}value="{{ form[name] }}"{% endif %}>
+ {% if formerr[name] %}
+ <span class="help-inline">{{ formerr[name] }}</span>
+ {% endif %}
+ </div>
+</div>
+{%- endmacro %}
+
+{% macro formcheckbox(form, formerr, name, title, value) -%}
+ <label class="checkbox">
+ <input type="checkbox" name="{{name}}" id="{{name}}" value="{{value}}" {% if form[name] == value %}checked{% endif %}>
+ <h4>{{title}}</h4>
+ </label>
+{% endmacro %}
diff --git a/templates/processes.html b/templates/processes.html
index c911b0a..2e35162 100644
--- a/templates/processes.html
+++ b/templates/processes.html
@@ -8,12 +8,12 @@
<th>PID
<th>%CPU
<th>%MEM
- <th>Status Code
+ <th>Status
<th>Started
<th>Time
<th>Command
{% for proc in process_list %}
- <tr>
+ <tr style="font-family: monospace;">
<td>{{ proc.user }}
<td>{{ proc.pid}}
<td>{{ proc.perc_cpu }}
@@ -21,7 +21,7 @@
<td>{{ proc.status_code }}
<td>{{ proc.started }}
<td>{{ proc.time }}
- <td>{{ proc.command }}
+ <td><div style="height: 1.5em; overflow:hidden;">{{ proc.command }}</div>
{% endfor %}
</table>
diff --git a/templates/tor.html b/templates/tor.html
new file mode 100644
index 0000000..a1f30dc
--- /dev/null
+++ b/templates/tor.html
@@ -0,0 +1,19 @@
+{% import "lib.html" as lib %}
+{% extends "base.html" %}
+{% block body %}
+
+<form action="/tor/" method="POST" class="form-horizontal">
+<legend>Tor Network Configuration</legend>
+
+{{ lib.formcheckbox(form, formerr, 'torenable', 'Enable Tor daemon', 'true') }}
+{{ lib.formcheckbox(form, formerr, 'torrelayenable', 'Enable Tor Relay', 'true') }}
+{{ lib.formcheckbox(form, formerr, 'torbridgeenable', 'Enable Tor Bridge', 'true') }}
+
+<div class="pull-right">
+<a href="."><button class="btn" type="button">Reset</button></a>
+<button type="submit" class="btn btn-primary" type="button">
+Save</button>
+</div>
+</form>
+
+{% endblock %}
diff --git a/templates/wan.html b/templates/wan.html
index e69de29..2da2733 100644
--- a/templates/wan.html
+++ b/templates/wan.html
@@ -0,0 +1,35 @@
+{% import "lib.html" as lib %}
+{% extends "base.html" %}
+{% block body %}
+
+<form action="/wan/" method="POST" class="form-horizontal">
+<legend>Upstream Ethernet Configuration</legend>
+
+<label class="radio">
+ <input type="radio" name="ipv4method" id="ipv4methoddhcp" value="dhcp" {% if form.ipv4method == "dhcp" %}checked{% endif %}>
+ <h4>Automatic DHCP Addressing</h4>
+</label>
+
+<label class="radio">
+ <input type="radio" name="ipv4method" id="ipv4methodstatic" value="static" {% if form.ipv4method == "static" %}checked{% endif %}>
+ <h4>Manual Addressing</h4>
+</label>
+
+{{ lib.forminput(form, formerr, 'ipv4addr', 'IPv4 Address', '0.0.0.0') }}
+{{ lib.forminput(form, formerr, 'ipv4netmask', 'Netmask', '255.255.255.0') }}
+{{ lib.forminput(form, formerr, 'ipv4gateway', 'Gateway IP Address', '0.0.0.0') }}
+
+<label class="radio">
+ <input type="radio" name="ipv4method" id="ipv4methoddisabled" value="disabled" {% if form.ipv4method == "disabled" %}checked{% endif %}>
+ <h4>Disable Interface</h4>
+</label>
+
+<div class="pull-right">
+<a href="."><button class="btn" type="button">Reset</button></a>
+<button type="submit" class="btn btn-primary" type="button">
+Save</button>
+</div>
+</form>
+
+
+{% endblock %}
diff --git a/templates/wifi.html b/templates/wifi.html
new file mode 100644
index 0000000..3e41788
--- /dev/null
+++ b/templates/wifi.html
@@ -0,0 +1,38 @@
+{% import "lib.html" as lib %}
+{% extends "base.html" %}
+{% block body %}
+
+<form action="/wifi/" method="POST" class="form-horizontal">
+<legend>WiFi Configuration</legend>
+
+{% if not status.wifi %}
+<span class="text-error">Could not find the WiFi hardware device!</span>
+{% else %}
+
+{{ lib.formcheckbox(form, formerr, 'wifienable', 'Enable the radio', 'true') }}
+{{ lib.formcheckbox(form, formerr, 'torifylanenable', 'Transparently "Tor-ify" this network interface', 'true') }}
+
+<legend>Radio</legend>
+{{ lib.forminput(form, formerr, 'wifissid', 'SSID name', 'internet') }}
+{{ lib.forminput(form, formerr, 'wifipower', 'Transmit Power', 'high, low') }}
+{{ lib.forminput(form, formerr, 'wifichannel', 'Channel', '11') }}
+
+<legend>Network Address</legend>
+{{ lib.forminput(form, formerr, 'ipv4addr', 'IPv4 Address', '0.0.0.0') }}
+{{ lib.forminput(form, formerr, 'ipv4netmask', 'Netmask', '255.255.0.0') }}
+{{ lib.forminput(form, formerr, 'ipv4gateway', 'Gateway IP Address', '0.0.0.0') }}
+
+<legend>DHCP Server</legend>
+{{ lib.forminput(form, formerr, 'dhcpbase', 'DHCP Range Base', '192.168.1.100') }}
+{{ lib.forminput(form, formerr, 'dhcptop', 'DHCP Range Top', '192.168.1.200') }}
+{{ lib.forminput(form, formerr, 'dhcptime', 'Lease Time', '12h') }}
+
+<div class="pull-right">
+<a href="."><button class="btn" type="button">Reset</button></a>
+<button type="submit" class="btn btn-primary" type="button">
+Save</button>
+</div>
+</form>
+{% endif %}
+
+{% endblock %}