diff options
Diffstat (limited to 'templates')
-rw-r--r-- | templates/base.html | 12 | ||||
-rw-r--r-- | templates/home.html | 96 | ||||
-rw-r--r-- | templates/lan.html | 32 | ||||
-rw-r--r-- | templates/lib.html | 65 | ||||
-rw-r--r-- | templates/processes.html | 6 | ||||
-rw-r--r-- | templates/tor.html | 19 | ||||
-rw-r--r-- | templates/wan.html | 35 | ||||
-rw-r--r-- | templates/wifi.html | 38 |
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 %} |