mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-01-21 07:55:00 +00:00
Internationalize strings in template files
This commit is contained in:
parent
139db064a9
commit
02cd89b60d
@ -18,16 +18,26 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>Services and Applications</h2>
|
||||
<h2>{% trans "Services and Applications" %}</h2>
|
||||
|
||||
<p>You can install and run various services and applications on your
|
||||
{{ cfg.box_name }}.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
You can install and run various services and applications on
|
||||
your {{ cfg.box_name }}.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>This box can be your photo sharing site, your instant
|
||||
messaging site, your social networking site, your news site. Remember
|
||||
web portals? We can be one of those too. Many of the services you
|
||||
use on the web could soon be on site and under your control!</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
This box can be your photo sharing site, your instant messaging
|
||||
site, your social networking site, your news site. Remember web
|
||||
portals? We can be one of those too. Many of the services you
|
||||
use on the web could soon be on site and under your control!
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -19,36 +19,45 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>Service Discovery</h2>
|
||||
<h2>{% trans "Service Discovery" %}</h2>
|
||||
|
||||
<p>Service discovery allows other machines on the network to discover
|
||||
your FreedomBox and services running on it. It also allows
|
||||
FreedomBox to discover other machines and services running on your
|
||||
local network. Service discovery is not essential and works only on
|
||||
internal networks. It may be disabled to improve security
|
||||
especially when connecting to a hostile local network.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
Service discovery allows other machines on the network to
|
||||
discover your FreedomBox and services running on it. It also
|
||||
allows FreedomBox to discover other machines and services
|
||||
running on your local network. Service discovery is not
|
||||
essential and works only on internal networks. It may be
|
||||
disabled to improve security especially when connecting to a
|
||||
hostile local network.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<h3>Status</h3>
|
||||
<h3>{% trans "Status" %}</h3>
|
||||
|
||||
<p class="running-status-parent">
|
||||
{% if status.is_running %}
|
||||
<span class="running-status active"></span> Service discovery server is running
|
||||
{% else %}
|
||||
<span class="running-status inactive"></span> Service discovery server is not running
|
||||
{% endif %}
|
||||
</p>
|
||||
<p class="running-status-parent">
|
||||
{% if status.is_running %}
|
||||
<span class="running-status active"></span>
|
||||
{% trans "Service discovery server is running" %}
|
||||
{% else %}
|
||||
<span class="running-status inactive"></span>
|
||||
{% trans "Service discovery server is not running" %}
|
||||
{% endif %}
|
||||
</p>
|
||||
|
||||
<h3>Configuration</h3>
|
||||
<h3>{% trans "Configuration" %}</h3>
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
{{ form|bootstrap }}
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Update setup"/>
|
||||
</form>
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Update setup" %}"/>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
@ -27,8 +28,8 @@
|
||||
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Submit"/>
|
||||
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Submit" %}"/>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -19,32 +19,41 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>Date & Time</h2>
|
||||
<h2>{% trans "Date & Time" %}</h2>
|
||||
|
||||
<p>Network time server is a program that maintians the system time in synchronization with servers on the Internet.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
Network time server is a program that maintians the system time
|
||||
in synchronization with servers on the Internet.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<h3>Status</h3>
|
||||
<h3>{% trans "Status" %}</h3>
|
||||
|
||||
<p class="running-status-parent">
|
||||
{% if status.is_running %}
|
||||
<span class="running-status active"></span> Network time server is running
|
||||
{% else %}
|
||||
<span class="running-status inactive"></span> Network time server is not running
|
||||
{% endif %}
|
||||
</p>
|
||||
{% include "diagnostics_button.html" with module="datetime" %}
|
||||
<p class="running-status-parent">
|
||||
{% if status.is_running %}
|
||||
<span class="running-status active"></span>
|
||||
{% trans "Network time server is running" %}
|
||||
{% else %}
|
||||
<span class="running-status inactive"></span>
|
||||
{% trans "Network time server is not running" %}
|
||||
{% endif %}
|
||||
</p>
|
||||
{% include "diagnostics_button.html" with module="datetime" %}
|
||||
|
||||
<h3>Configuration</h3>
|
||||
<h3>{% trans "Configuration" %}</h3>
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
{{ form|bootstrap }}
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Update setup"/>
|
||||
</form>
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Update setup" %}"/>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -19,37 +19,46 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>BitTorrent Web Client (Deluge)</h2>
|
||||
<h2>{% trans "BitTorrent Web Client (Deluge)" %}</h2>
|
||||
|
||||
<p>Deluge is a BitTorrent client that features a Web UI.</p>
|
||||
<p>{% trans "Deluge is a BitTorrent client that features a Web UI." %}</p>
|
||||
|
||||
<p>When enabled, the Deluge web client will be available from
|
||||
<a href="/deluge">/deluge</a> path on the web server. The default
|
||||
password is 'deluge', but you should log in and change it immediately after
|
||||
enabling this service.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
When enabled, the Deluge web client will be available from
|
||||
<a href="/deluge">/deluge</a> path on the web server. The
|
||||
default password is 'deluge', but you should log in and change
|
||||
it immediately after enabling this service.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<h3>Status</h3>
|
||||
<h3>{% trans "Status" %}</h3>
|
||||
|
||||
<p class="running-status-parent">
|
||||
{% if status.is_running %}
|
||||
<span class="running-status active"></span> deluge-web is running
|
||||
{% else %}
|
||||
<span class="running-status inactive"></span> deluge-web is not running
|
||||
{% endif %}
|
||||
</p>
|
||||
{% include "diagnostics_button.html" with module="deluge" %}
|
||||
<p class="running-status-parent">
|
||||
{% if status.is_running %}
|
||||
<span class="running-status active"></span>
|
||||
{% trans "deluge-web is running" %}
|
||||
{% else %}
|
||||
<span class="running-status inactive"></span>
|
||||
{% trans "deluge-web is not running" %}
|
||||
{% endif %}
|
||||
</p>
|
||||
|
||||
<h3>Configuration</h3>
|
||||
{% include "diagnostics_button.html" with module="deluge" %}
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
<h3>{% trans "Configuration" %}</h3>
|
||||
|
||||
{{ form|bootstrap }}
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Update setup"/>
|
||||
</form>
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Update setup" %}"/>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -18,6 +18,7 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% block page_head %}
|
||||
|
||||
@ -30,49 +31,55 @@
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>{{ title }}</h2>
|
||||
<h2>{{ title }}</h2>
|
||||
|
||||
<p>The system diagnostic test will run a number of checks on your
|
||||
system to confirm that applications and services are working as expected.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
The system diagnostic test will run a number of checks on your
|
||||
system to confirm that applications and services are working as
|
||||
expected.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
{% if not is_running %}
|
||||
<form class="form form-diagnostics-button" method="post"
|
||||
action="{% url 'diagnostics:index' %}">
|
||||
{% csrf_token %}
|
||||
{% if not is_running %}
|
||||
<form class="form form-diagnostics-button" method="post"
|
||||
action="{% url 'diagnostics:index' %}">
|
||||
{% csrf_token %}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Run Diagnostics"/>
|
||||
</form>
|
||||
{% else %}
|
||||
<p>Diagnotics test is currently running</p>
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-striped active"
|
||||
role="progressbar" aria-valuemin="0" aria-valuemax="100"
|
||||
aria-valuenow="{{ results.progress_percentage }}"
|
||||
style="width: {{ results.progress_percentage }}%">
|
||||
{{ results.progress_percentage }}%
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% if results %}
|
||||
<h3>Results</h3>
|
||||
{% if results.error %}
|
||||
<div class="alert alert-danger alert-dismissable">
|
||||
<a class="close" data-dismiss="alert">×</a>
|
||||
{{ results.error }}
|
||||
</div>
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Run Diagnostics" %}"/>
|
||||
</form>
|
||||
{% else %}
|
||||
{% for module, module_results in results.results.items %}
|
||||
<h4>Module: {{ module }}</h4>
|
||||
<p>{% trans "Diagnotics test is currently running" %}</p>
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-striped active"
|
||||
role="progressbar" aria-valuemin="0" aria-valuemax="100"
|
||||
aria-valuenow="{{ results.progress_percentage }}"
|
||||
style="width: {{ results.progress_percentage }}%">
|
||||
{{ results.progress_percentage }}%
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if module_results %}
|
||||
{% include "diagnostics_results.html" with results=module_results %}
|
||||
{% else %}
|
||||
<p><span class="glyphicon glyphicon-hourglass"></span></p>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% if results %}
|
||||
<h3>{% trans "Results" %}</h3>
|
||||
{% if results.error %}
|
||||
<div class="alert alert-danger alert-dismissable">
|
||||
<a class="close" data-dismiss="alert">×</a>
|
||||
{{ results.error }}
|
||||
</div>
|
||||
{% else %}
|
||||
{% for module, module_results in results.results.items %}
|
||||
<h4>{% blocktrans %}Module: {{ module }}{% endblocktrans %}</h4>
|
||||
|
||||
{% if module_results %}
|
||||
{% include "diagnostics_results.html" with results=module_results %}
|
||||
{% else %}
|
||||
<p><span class="glyphicon glyphicon-hourglass"></span></p>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -17,9 +17,12 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
<form class="form form-diagnostics-button" method="post"
|
||||
action="{% url 'diagnostics:module' module %}">
|
||||
{% csrf_token %}
|
||||
|
||||
<input type="submit" class="btn btn-default" value="Run Diagnostics"/>
|
||||
<input type="submit" class="btn btn-default"
|
||||
value="{% trans "Run Diagnostics" %}"/>
|
||||
</form>
|
||||
|
||||
@ -18,16 +18,18 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>Diagnostic Results</h2>
|
||||
<h2>{% trans "Diagnostic Results" %}</h2>
|
||||
|
||||
<h3>Module: {{ module_name }}</h3>
|
||||
<h3>{% blocktrans %}Module: {{ module_name }}{% endblocktrans %}</h3>
|
||||
|
||||
{% if results %}
|
||||
{% include "diagnostics_results.html" with results=results %}
|
||||
{% else %}
|
||||
<p>This module does not support diagnostics</p>
|
||||
{% endif %}
|
||||
{% if results %}
|
||||
{% include "diagnostics_results.html" with results=results %}
|
||||
{% else %}
|
||||
<p>{% trans "This module does not support diagnostics" %}</p>
|
||||
{% endif %}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -17,31 +17,33 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-5">
|
||||
<table class="table table-bordered table-striped diagnostics-results">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="diagnostic-test">Test</th>
|
||||
<th class="diagnostics-result">Result</th>
|
||||
<th class="diagnostic-test">{% trans "Test" %}</th>
|
||||
<th class="diagnostics-result">{% trans "Result" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for test, result in results %}
|
||||
<tr>
|
||||
<td>{{ test }}</td>
|
||||
<td>
|
||||
{% if result == 'passed' %}
|
||||
<span class="label label-success">{{ result }}</span>
|
||||
{% elif result == 'failed' %}
|
||||
<span class="label label-danger">{{ result }}</span>
|
||||
{% elif result == 'error' %}
|
||||
<span class="label label-warning">{{ result }}</span>
|
||||
{% else %}
|
||||
{{ result }}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ test }}</td>
|
||||
<td>
|
||||
{% if result == 'passed' %}
|
||||
<span class="label label-success">{{ result }}</span>
|
||||
{% elif result == 'failed' %}
|
||||
<span class="label label-danger">{{ result }}</span>
|
||||
{% elif result == 'error' %}
|
||||
<span class="label label-warning">{{ result }}</span>
|
||||
{% else %}
|
||||
{{ result }}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@ -18,29 +18,50 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
<h2>DynamicDNS client</h2>
|
||||
<p>If your internet provider changes your IP address periodic (i.e. every 24h)
|
||||
it may be hard for others to find you in the WEB. And for this reason nobody
|
||||
may find the services which are provided by FreedomBox (like your ownCloud).
|
||||
</br> </br>
|
||||
The solution is to assign a DNS name to your IP address and update the DNS
|
||||
name every time your IP is changed by your Internet provider. Dynamic DNS
|
||||
allows you to push your current public IP address to an
|
||||
<a href='http://gnudip2.sourceforge.net/' target='_blank'> gnudip </a>
|
||||
server. Afterwards the Server will assign your DNS name with the new IP
|
||||
and if someone from the internet asks for your DNS name he will get your
|
||||
current IP answered.
|
||||
</br> </br>
|
||||
If you are looking for a free dynamic DNS account, you may find a free
|
||||
GnuDIP service at <a href='http://gnudip.datasystems24.net'
|
||||
target='_blank'>gnudip.datasystems24.net</a> or you may find free update
|
||||
URL based services on
|
||||
<a href='http://freedns.afraid.org/' target='_blank'>
|
||||
freedns.afraid.org</a>
|
||||
</br> </br>
|
||||
If your freedombox is connected behind some NAT router, don't forget
|
||||
to add portforwarding (i.e. forward some standard ports like 80 and 443)
|
||||
to your freedombox device.
|
||||
</p>
|
||||
|
||||
<h2>{% trans "DynamicDNS client" %}</h2>
|
||||
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
If your internet provider changes your IP address periodic
|
||||
(i.e. every 24h) it may be hard for others to find you in the
|
||||
WEB. And for this reason nobody may find the services which are
|
||||
provided by FreedomBox (like your ownCloud).
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
The solution is to assign a DNS name to your IP address and
|
||||
update the DNS name every time your IP is changed by your
|
||||
Internet provider. Dynamic DNS allows you to push your current
|
||||
public IP address to an
|
||||
<a href='http://gnudip2.sourceforge.net/' target='_blank'> gnudip </a>
|
||||
server. Afterwards the Server will assign your DNS name with the
|
||||
new IP and if someone from the internet asks for your DNS name
|
||||
he will get your current IP answered.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
If you are looking for a free dynamic DNS account, you may find
|
||||
a free GnuDIP service at <a href='http://gnudip.datasystems24.net'
|
||||
target='_blank'>gnudip.datasystems24.net</a> or you may find
|
||||
free update URL based services on
|
||||
<a href='http://freedns.afraid.org/' target='_blank'>
|
||||
freedns.afraid.org</a>
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
If your freedombox is connected behind some NAT router, don't forget
|
||||
to add portforwarding (i.e. forward some standard ports like 80 and 443)
|
||||
to your freedombox device.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
{% endblock %}
|
||||
|
||||
@ -19,22 +19,25 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
<noscript>
|
||||
You have disabled Javascript. Dynamic form mode is disabled and
|
||||
some helper functions may not work <br>
|
||||
(but the main functionality should work)
|
||||
<br><hr>
|
||||
{% blocktrans trimmed %}
|
||||
You have disabled Javascript. Dynamic form mode is disabled
|
||||
and some helper functions may not work (but the main
|
||||
functionality should work).
|
||||
{% endblocktrans %}
|
||||
</noscript>
|
||||
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Update setup"/>
|
||||
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Update setup" %}"/>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -18,25 +18,35 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h3>{% trans "NAT type" %}</h3>
|
||||
|
||||
<p>
|
||||
<h3>NAT type</h3>
|
||||
{% if nat_unchecked %}
|
||||
NAT type not detected yet, if you do not provide a "IP check URL" we will
|
||||
not detect a NAT type.
|
||||
{% else %}
|
||||
{% if no_nat %}
|
||||
Direct connection to the internet.
|
||||
{% if nat_unchecked %}
|
||||
{% blocktrans trimmed %}
|
||||
NAT type not detected yet, if you do not provide a "IP check
|
||||
URL" we will not detect a NAT type.
|
||||
{% endblocktrans %}
|
||||
{% else %}
|
||||
Behind NAT, this means that dynamic DNS service will poll the
|
||||
"IP check URL" for changes (we need the "IP check URL" for this reason
|
||||
- otherwise we will not detect IP changes).
|
||||
It may take up to {{ timer }} minutes until we update your DNS entry in
|
||||
case of WAN IP change.
|
||||
{% if no_nat %}
|
||||
{% trans "Direct connection to the internet." %}
|
||||
{% else %}
|
||||
{% blocktrans trimmed %}
|
||||
Behind NAT, this means that dynamic DNS service will poll
|
||||
the "IP check URL" for changes (we need the "IP check URL"
|
||||
for this reason - otherwise we will not detect IP changes).
|
||||
It may take up to {{ timer }} minutes until we update your
|
||||
DNS entry in case of WAN IP change.
|
||||
{% endblocktrans %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<h3>Last update</h3>
|
||||
{{ last_update }}
|
||||
</p>
|
||||
|
||||
<h3>{% trans "Last update" %}</h3>
|
||||
|
||||
<p>{{ last_update }}</p>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -18,77 +18,96 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>{{ title }}</h2>
|
||||
<h2>{{ title }}</h2>
|
||||
|
||||
<p>Firewall is a network security system that controls the incoming
|
||||
and outgoing network traffic on your {{ cfg.box_name }}. Keeping a
|
||||
firewall enabled and properly configured reduces risk of security
|
||||
threat from the Internet.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
Firewall is a network security system that controls the incoming
|
||||
and outgoing network traffic on your {{ cfg.box_name }}. Keeping
|
||||
a firewall enabled and properly configured reduces risk of
|
||||
security threat from the Internet.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>The following is the current status:</p>
|
||||
<p>{% trans "The following is the current status:" %}</p>
|
||||
|
||||
{% if firewall_status = 'not_running' %}
|
||||
{% if firewall_status = 'not_running' %}
|
||||
|
||||
<p>Firewall daemon is not running. Please run it. Firewall comes
|
||||
enabled by default on {{ cfg.box_name }}. On any Debian based system
|
||||
(such as {{ cfg.box_name }}) you may run it using the command 'service
|
||||
firewalld start' or in case of a system with systemd 'systemctl start
|
||||
firewalld'</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
Firewall daemon is not running. Please run it. Firewall comes
|
||||
enabled by default on {{ cfg.box_name }}. On any Debian based
|
||||
system (such as {{ cfg.box_name }}) you may run it using the
|
||||
command 'service firewalld start' or in case of a system with
|
||||
systemd 'systemctl start firewalld'
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
{% else %}
|
||||
{% else %}
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-8">
|
||||
<table class='table table-autowidth table-striped'>
|
||||
<thead>
|
||||
<th>Service/Port</th>
|
||||
<th>Status</th>
|
||||
</thead>
|
||||
<div class="row">
|
||||
<div class="col-sm-8">
|
||||
<table class='table table-autowidth table-striped'>
|
||||
<thead>
|
||||
<th>{% trans "Service/Port" %}</th>
|
||||
<th>{% trans "Status" %}</th>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for service in services %}
|
||||
<tr>
|
||||
<td><strong>{{ service.name }}</strong></td>
|
||||
<td>
|
||||
{% if service.is_enabled %}
|
||||
<span class='label label-success'>Enabled</span>
|
||||
{% else %}
|
||||
<span class='label label-warning'>Disabled</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
<tbody>
|
||||
{% for service in services %}
|
||||
<tr>
|
||||
<td><strong>{{ service.name }}</strong></td>
|
||||
<td>
|
||||
{% if service.is_enabled %}
|
||||
<span class='label label-success'>
|
||||
{% trans "Enabled" %}</span>
|
||||
{% else %}
|
||||
<span class='label label-warning'>
|
||||
{% trans "Disabled" %}</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
{% for port in service.ports %}
|
||||
<tr>
|
||||
<td class='cell-indented'><em>{{ port }}</em></td>
|
||||
<td>
|
||||
{% if port in internal_enabled_services and port in external_enabled_services %}
|
||||
<span class='label label-success'>Permitted</span>
|
||||
{% elif port in internal_enabled_services %}
|
||||
<span class='label label-warning'>Permitted (internal only)</span>
|
||||
{% elif port in external_enabled_services %}
|
||||
<span class='label label-warning'>Permitted (external only)</span>
|
||||
{% else %}
|
||||
<span class='label label-danger'>Blocked</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% for port in service.ports %}
|
||||
<tr>
|
||||
<td class='cell-indented'><em>{{ port }}</em></td>
|
||||
<td>
|
||||
{% if port in internal_enabled_services and port in external_enabled_services %}
|
||||
<span class='label label-success'>
|
||||
{% trans "Permitted" %}</span>
|
||||
{% elif port in internal_enabled_services %}
|
||||
<span class='label label-warning'>
|
||||
{% trans "Permitted (internal only)" %}</span>
|
||||
{% elif port in external_enabled_services %}
|
||||
<span class='label label-warning'>
|
||||
{% trans "Permitted (external only)" %}</span>
|
||||
{% else %}
|
||||
<span class='label label-danger'>
|
||||
{% trans "Blocked" %}</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endfor %}
|
||||
<p>
|
||||
<em>
|
||||
{% blocktrans trimmed %}
|
||||
The operation of the firewall is automatic. When you enable
|
||||
a service it is automatically permitted in the firewall and
|
||||
you disable a service is automatically disabled in the firewall.
|
||||
{% endblocktrans %}
|
||||
</em>
|
||||
</p>
|
||||
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p><em>The operation of the firewall is automatic. When you enable a
|
||||
service it is automatically permitted in the firewall and you disable
|
||||
a service is automatically disabled in the firewall.</em></p>
|
||||
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -18,8 +18,9 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load static %}
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
{% load static %}
|
||||
|
||||
{% block page_head %}
|
||||
<style type="text/css">
|
||||
@ -46,14 +47,18 @@
|
||||
</p>
|
||||
|
||||
<h3 class="text-center">
|
||||
Congratulations! Your FreedomBox is up and running!
|
||||
{% trans "Congratulations! Your FreedomBox is up and running!" %}
|
||||
</h3>
|
||||
|
||||
<p class="text-center">Please provide the following basic
|
||||
information to complete the setup process.</p>
|
||||
<p class="text-center">
|
||||
{% blocktrans trimmed %}
|
||||
Please provide the following basic information to complete the
|
||||
setup process.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p class="text-center">
|
||||
<a href="{% url 'first_boot:state1' %}"
|
||||
class="btn btn-primary btn-large">Next</a>
|
||||
class="btn btn-primary btn-large">{% trans "Next" %}</a>
|
||||
</p>
|
||||
{% endblock %}
|
||||
|
||||
@ -18,8 +18,9 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load static %}
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
{% load static %}
|
||||
|
||||
{% block add_nav_and_login %}
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
@ -35,17 +36,24 @@
|
||||
<div class="col-md-6 col-md-offset-3">
|
||||
{% include 'messages.html' %}
|
||||
|
||||
<h2>Administrator Account</h2>
|
||||
<h2>{% trans "Administrator Account" %}</h2>
|
||||
|
||||
<p>Choose a username and password to access this web interface.
|
||||
The password can be changed and other users can be added
|
||||
later. An LDAP user with administrative privileges (sudo) is
|
||||
also created.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
Choose a username and password to access this web interface.
|
||||
The password can be changed and other users can be added
|
||||
later. An LDAP user with administrative privileges (sudo) is
|
||||
also created.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
{{ form|bootstrap }}
|
||||
<input type="submit" class="btn btn-primary" value="Box it up!"/>
|
||||
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Box it up!" %}"/>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
@ -19,34 +19,44 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content_row %}
|
||||
|
||||
<div class="col-lg-6 col-lg-offset-3">
|
||||
{% include 'messages.html' %}
|
||||
|
||||
<h2>Setup Complete!</h2>
|
||||
<h2>{% trans "Setup Complete!" %}</h2>
|
||||
|
||||
<p>FreedomBox setup is now complete. However, you should check
|
||||
the network setup and modify it if necessary. Do not forget to
|
||||
change the default Wi-Fi passwords.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
FreedomBox setup is now complete. However, you should check
|
||||
the network setup and modify it if necessary. Do not forget
|
||||
to change the default Wi-Fi passwords.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>To make your FreedomBox functional, you need some applications.
|
||||
Applications will be installed the first time you access them.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
To make your FreedomBox functional, you need some
|
||||
applications. Applications will be installed the first time
|
||||
you access them.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<h3>Network Configuration</h3>
|
||||
<h3>{% trans "Network Configuration" %}</h3>
|
||||
|
||||
{% include "connections_diagram.html" %}
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-6 text-center">
|
||||
<a class="btn btn-lg btn-primary" href="{% url 'networks:index' %}">
|
||||
Go to Networks</a>
|
||||
{% trans "Go to Networks" %}</a>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-6 text-center">
|
||||
<a class="btn btn-lg btn-primary" href="{% url 'apps:index' %}">
|
||||
Go to Apps</a>
|
||||
{% trans "Go to Apps" %}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -19,41 +19,62 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<img src="{% static 'theme/img/freedombox-logo-250px.png' %}"
|
||||
class="main-graphic" />
|
||||
<img src="{% static 'theme/img/freedombox-logo-250px.png' %}"
|
||||
class="main-graphic" />
|
||||
|
||||
<p>FreedomBox is a community project to develop, design and promote
|
||||
personal servers running free software for private, personal
|
||||
communications. It is a networking appliance designed to allow
|
||||
interfacing with the rest of the Internet under conditions of
|
||||
protected privacy and data security. It hosts applications such as
|
||||
blog, wiki, website, social network, email, web proxy and a Tor relay
|
||||
on a device that can replace your Wi-Fi router so that your data stays
|
||||
with you.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
FreedomBox is a community project to develop, design and promote
|
||||
personal servers running free software for private, personal
|
||||
communications. It is a networking appliance designed to allow
|
||||
interfacing with the rest of the Internet under conditions of
|
||||
protected privacy and data security. It hosts applications such
|
||||
as blog, wiki, website, social network, email, web proxy and a
|
||||
Tor relay on a device that can replace your Wi-Fi router so that
|
||||
your data stays with you.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>We live in a world where our use of the network is mediated by
|
||||
those who often do not have our best interests at heart. By building
|
||||
software that does not rely on a central service, we can regain
|
||||
control and privacy. By keeping our data in our homes, we gain useful
|
||||
legal protections over it. By giving back power to the users over
|
||||
their networks and machines, we are returning the Internet to its
|
||||
intended peer-to-peer architecture.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
We live in a world where our use of the network is mediated by
|
||||
those who often do not have our best interests at heart. By
|
||||
building software that does not rely on a central service, we
|
||||
can regain control and privacy. By keeping our data in our
|
||||
homes, we gain useful legal protections over it. By giving back
|
||||
power to the users over their networks and machines, we are
|
||||
returning the Internet to its intended peer-to-peer
|
||||
architecture.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>There are a number of projects working to realize a future of
|
||||
distributed services; FreedomBox aims to bring them all together in a
|
||||
convenient package.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
There are a number of projects working to realize a future of
|
||||
distributed services; FreedomBox aims to bring them all together
|
||||
in a convenient package.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>For more information about the FreedomBox project, see the
|
||||
<a href="https://wiki.debian.org/FreedomBox">FreedomBox Wiki</a>.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
For more information about the FreedomBox project, see the
|
||||
<a href="https://wiki.debian.org/FreedomBox">FreedomBox Wiki</a>.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p><a class="btn btn-primary btn-lg"
|
||||
href="https://wiki.debian.org/FreedomBox" target="_blank">Learn more
|
||||
»</a></p>
|
||||
<p><a class="btn btn-primary btn-lg"
|
||||
href="https://wiki.debian.org/FreedomBox"
|
||||
target="_blank">{% trans "Learn more »" %}</a></p>
|
||||
|
||||
<p style='margin-top:30px'>
|
||||
You are running Plinth version {{ version }}.
|
||||
</p>
|
||||
<p style='margin-top:30px'>
|
||||
{% blocktrans trimmed %}
|
||||
You are running Plinth version {{ version }}.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -18,24 +18,42 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>Help</h2>
|
||||
<h2>{% trans "Help" %}</h2>
|
||||
|
||||
<p>The <a href={% url 'help:manual' %}>FreedomBox Manual</a> is the
|
||||
best place to start for information regarding {{ cfg.box_name }}.</p>
|
||||
<p>
|
||||
{% url 'help:manual' as manual_url %}
|
||||
{% blocktrans trimmed %}
|
||||
The <a href="{{ manual_url }}">FreedomBox Manual</a> is the
|
||||
best place to start for information regarding {{ cfg.box_name }}.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p><a href="http://wiki.debian.org/FreedomBox"
|
||||
target="_blank">FreedomBox project wiki </a> contains further
|
||||
information.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
<a href="http://wiki.debian.org/FreedomBox" target="_blank">
|
||||
FreedomBox project wiki </a> contains further information.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>To seek help from FreedomBox community, queries may be posted on
|
||||
the
|
||||
<a href="https://lists.alioth.debian.org/mailman/listinfo/freedombox-discuss">
|
||||
mailing list</a>. The list archives also contain information about
|
||||
problems faced by other users and possible solutions.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
To seek help from FreedomBox community, queries may be posted on
|
||||
the
|
||||
<a href="https://lists.alioth.debian.org/mailman/listinfo/freedombox-discuss">
|
||||
mailing list</a>. The list archives also contain information
|
||||
about problems faced by other users and possible solutions.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>Many FreedomBox contributors and users are also available on the
|
||||
#freedombox channel of the irc.oftc.net IRC network.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
Many FreedomBox contributors and users are also available on the
|
||||
#freedombox channel of the irc.oftc.net IRC network.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -18,6 +18,8 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% block page_head %}
|
||||
<style type="text/css">
|
||||
dd {
|
||||
@ -29,4 +31,3 @@
|
||||
{% block content %}
|
||||
{{ content|safe }}
|
||||
{% endblock %}
|
||||
|
||||
|
||||
@ -19,22 +19,28 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<p>When enabled, the blogs and wikis will be available
|
||||
from <a href="/ikiwiki">/ikiwiki</a>.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
When enabled, the blogs and wikis will be available
|
||||
from <a href="/ikiwiki">/ikiwiki</a>.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
{% include "diagnostics_button.html" with module="ikiwiki" %}
|
||||
|
||||
<h3>Configuration</h3>
|
||||
<h3>{% trans "Configuration" %}</h3>
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Update setup"/>
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Update setup" %}"/>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -19,15 +19,17 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
{{ form|bootstrap }}
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Update setup"/>
|
||||
</form>
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Update setup" %}"/>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -19,23 +19,31 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h3>Delete Wiki/Blog <em>{{ name }}</em></h3>
|
||||
<h3>
|
||||
{% blocktrans trimmed %}
|
||||
Delete Wiki/Blog <em>{{ name }}</em>
|
||||
{% endblocktrans %}
|
||||
</h3>
|
||||
|
||||
<p>This action will remove all the posts, pages and comments
|
||||
including revision history. Delete this wiki/blog
|
||||
permanently?</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
This action will remove all the posts, pages and comments
|
||||
including revision history. Delete this wiki/blog permanently?
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
<input type="submit" class="btn btn-md btn-primary"
|
||||
value="Delete {{ name }}"/>
|
||||
value="{% blocktrans %}Delete {{ name }}{% endblocktrans %}"/>
|
||||
|
||||
<a href="{% url 'ikiwiki:manage' %}" role="button"
|
||||
class="btn btn-md btn-primary">Cancel</a>
|
||||
class="btn btn-md btn-primary">{% trans "Cancel" %}</a>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block page_head %}
|
||||
<style type="text/css">
|
||||
@ -37,28 +38,29 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
{% if not sites %}
|
||||
<p>No wikis or blogs available.</p>
|
||||
<p>{% trans "No wikis or blogs available." %}</p>
|
||||
<p>
|
||||
<a class="btn btn-primary btn-md"
|
||||
href="{% url 'ikiwiki:create' %}">Create a Wiki or Blog</a>
|
||||
href="{% url 'ikiwiki:create' %}">
|
||||
{% trans "Create a Wiki or Blog" %}
|
||||
</a>
|
||||
</p>
|
||||
{% else %}
|
||||
<div class="list-group">
|
||||
{% for site in sites %}
|
||||
<div class="list-group-item clearfix">
|
||||
<a href="{% url 'ikiwiki:delete' site %}"
|
||||
<a href="{% url 'ikiwiki:delete' site %}"
|
||||
class="btn btn-default btn-sm pull-right"
|
||||
role="button" title="Delete site {{ site }}">
|
||||
role="button"
|
||||
title="{% blocktrans %}Delete site {{ site }}{% endblocktrans %}">
|
||||
<span class="glyphicon glyphicon-trash"
|
||||
aria-hidden="true"></span>
|
||||
</a>
|
||||
|
||||
<a class="wiki-label"
|
||||
href="/ikiwiki/{{ site }}"
|
||||
title="Go to site {{ site }}">
|
||||
<a class="wiki-label" href="/ikiwiki/{{ site }}"
|
||||
title="{% blocktrans %}Go to site {{ site }}{% endblocktrans %}">
|
||||
{{ site }}
|
||||
</a>
|
||||
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
@ -19,39 +19,52 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>Voice Chat (Mumble)</h2>
|
||||
<h2>{% trans "Voice Chat (Mumble)" %}</h2>
|
||||
|
||||
<p>Mumble is an open source, low-latency, encrypted, high quality voice chat
|
||||
software.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
Mumble is an open source, low-latency, encrypted, high quality
|
||||
voice chat software.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>You can connect to your Mumble server on the regular Mumble port 64738.
|
||||
<a href="http://mumble.info">Clients</a> to connect to Mumble from your
|
||||
desktop and Android devices are available.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
You can connect to your Mumble server on the regular Mumble port 64738.
|
||||
<a href="http://mumble.info">Clients</a> to connect to Mumble
|
||||
from your desktop and Android devices are available.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
|
||||
<h3>Status</h3>
|
||||
<h3>{% trans "Status" %}</h3>
|
||||
|
||||
<p class="running-status-parent">
|
||||
{% if status.is_running %}
|
||||
<span class="running-status active"></span> Mumble server is running
|
||||
{% else %}
|
||||
<span class="running-status inactive"></span> Mumble server is not running
|
||||
{% endif %}
|
||||
</p>
|
||||
{% include "diagnostics_button.html" with module="mumble" %}
|
||||
<p class="running-status-parent">
|
||||
{% if status.is_running %}
|
||||
<span class="running-status active"></span>
|
||||
{% trans "Mumble server is running" %}
|
||||
{% else %}
|
||||
<span class="running-status inactive"></span>
|
||||
{% trans "Mumble server is not running" %}
|
||||
{% endif %}
|
||||
</p>
|
||||
|
||||
{% include "diagnostics_button.html" with module="mumble" %}
|
||||
|
||||
|
||||
<h3>Configuration</h3>
|
||||
<h3>{% trans "Configuration" %}</h3>
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
{{ form|bootstrap }}
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Update setup"/>
|
||||
</form>
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Update setup" %}"/>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -18,6 +18,10 @@
|
||||
#
|
||||
# ToDo: if connection is disabled, no information are visible anymore (Bug)
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block page_head %}
|
||||
<style type="text/css">
|
||||
.list-group-item .btn {
|
||||
@ -28,123 +32,131 @@
|
||||
}
|
||||
</style>
|
||||
{% endblock %}
|
||||
{% load bootstrap %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-8">
|
||||
<div>
|
||||
<a href="{% url 'networks:edit' connection.uuid %}"
|
||||
class="btn btn-primary" role="button"
|
||||
title="Edit connection">Edit</a>
|
||||
title="{% trans "Edit connection" %}">{% trans "Edit" %}</a>
|
||||
|
||||
{% if active_connection %}
|
||||
<form class="form form-inline" method="post"
|
||||
action="{% url 'networks:deactivate' connection.uuid %}">
|
||||
{% csrf_token %}
|
||||
<button class="btn btn-default" type="submit">Deactivate</button>
|
||||
<button class="btn btn-default" type="submit">
|
||||
{% trans "Deactivate" %}</button>
|
||||
</form>
|
||||
{% else %}
|
||||
<form class="form form-inline" method="post"
|
||||
action="{% url 'networks:activate' connection.uuid %}">
|
||||
{% csrf_token %}
|
||||
<button class="btn btn-default" type="submit">Activate</button>
|
||||
<button class="btn btn-default" type="submit">
|
||||
{% trans "Activate" %}</button>
|
||||
</form>
|
||||
{% endif %}
|
||||
|
||||
<a href="{% url 'networks:delete' connection.uuid %}"
|
||||
class="btn btn-default" role="button"
|
||||
title="Delete connection">Delete</a>
|
||||
title="{% trans "Delete connection" %}">{% trans "Delete" %}</a>
|
||||
</div>
|
||||
|
||||
<h3>Connection</h3>
|
||||
<h3>{% trans "Connection" %}</h3>
|
||||
|
||||
<div class="list-group">
|
||||
{% if connection.primary %}
|
||||
<div class="list-group-item">
|
||||
Primary connection
|
||||
{% trans "Primary connection" %}
|
||||
<div class="pull-right">
|
||||
<span class="label label-success">yes</span>
|
||||
<span class="label label-success">{% trans "yes" %}</span>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="list-group-item">
|
||||
Name
|
||||
{% trans "Name" %}
|
||||
<div class="pull-right">{{ connection.id }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if device %}
|
||||
<h3>Device</h3>
|
||||
<h3>{% trans "Device" %}</h3>
|
||||
|
||||
<div class="list-group">
|
||||
<div class="list-group-item">
|
||||
State
|
||||
{% trans "State" %}
|
||||
<span class="pull-right">{{ device.state }}</span>
|
||||
</div>
|
||||
{% if device.state_reason != 'none' %}
|
||||
<div class="list-group-item">
|
||||
State reason
|
||||
{% trans "State reason" %}
|
||||
<span class="pull-right">{{ device.state_reason }}</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="list-group-item">
|
||||
Type
|
||||
{% trans "Type" %}
|
||||
<span class="pull-right">{{ device.type }}</span>
|
||||
</div>
|
||||
<div class="list-group-item">
|
||||
MAC address
|
||||
{% trans "MAC address" %}
|
||||
<span class="pull-right">{{ device.hw_address }}</span>
|
||||
</div>
|
||||
<div class="list-group-item">
|
||||
Interface
|
||||
{% trans "Interface" %}
|
||||
<span class="pull-right">{{ device.interface_name }}</span>
|
||||
</div>
|
||||
<div class="list-group-item">
|
||||
Description
|
||||
{% trans "Description" %}
|
||||
<span class="pull-right">{{ device.description }}</span>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<h3>Physical Link</h3>
|
||||
<h3>{% trans "Physical Link" %}</h3>
|
||||
|
||||
<div class="list-group">
|
||||
{% if device.ethernet %}
|
||||
<div class="list-group-item">
|
||||
Link state
|
||||
{% trans "Link state" %}
|
||||
<div class="pull-right">
|
||||
{% if device.ethernet.carrier %}
|
||||
<span class='label label-success'>cable is connected</span>
|
||||
<span class='label label-success'>
|
||||
{% trans "cable is connected" %}</span>
|
||||
{% else %}
|
||||
<span class='label label-warning'>please check cable</span>
|
||||
<span class='label label-warning'>
|
||||
{% trans "please check cable" %}</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="list-group-item">
|
||||
Speed
|
||||
<span class="pull-right">{{ device.ethernet.speed }} Mbit/s</span>
|
||||
{% trans "Speed" %}
|
||||
<span class="pull-right">
|
||||
{% blocktrans %}{{ device.ethernet.speed }} Mbit/s{% endblocktrans %}
|
||||
</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if connection.type == "802-11-wireless" %}
|
||||
<div class="list-group-item">
|
||||
SSID
|
||||
{% trans "SSID" %}
|
||||
<span class="pull-right">{{ connection.wireless.ssid }}</span>
|
||||
</div>
|
||||
{% if device %}
|
||||
<div class="list-group-item">
|
||||
Speed
|
||||
<span class="pull-right">{{ device.wireless.bitrate }} Mbit/s</span>
|
||||
{% trans "Speed" %}
|
||||
<span class="pull-right">
|
||||
{% blocktrans %}{{ device.wireless.bitrate }} Mbit/s{% endblocktrans %}
|
||||
</span>
|
||||
</div>
|
||||
<div class="list-group-item">
|
||||
Mode
|
||||
{% trans "Mode" %}
|
||||
<span class="pull-right">{{ device.wireless.mode }}</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if access_point.channel %}
|
||||
<div class="list-group-item">
|
||||
Signal strength
|
||||
{% trans "Signal strength" %}
|
||||
<div class="pull-right">
|
||||
<span class="btn btn-primary btn-xs">
|
||||
{{ access_point.strength }}%
|
||||
@ -154,7 +166,7 @@
|
||||
{% endif %}
|
||||
{% if access_point.channel %}
|
||||
<div class="list-group-item">
|
||||
Channel
|
||||
{% trans "Channel" %}
|
||||
<span class="pull-right">{{ access_point.channel }}</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
@ -162,19 +174,19 @@
|
||||
</div>
|
||||
|
||||
{% if active_connection %}
|
||||
<h3>IPv4</h3>
|
||||
<h3>{% trans "IPv4" %}</h3>
|
||||
|
||||
<div class="list-group">
|
||||
{% if connection.ipv4.method %}
|
||||
<div class="list-group-item">
|
||||
Method
|
||||
{% trans "Method" %}
|
||||
<span class="pull-right">{{ connection.ipv4.method }}</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% for address in device.ip4.addresses %}
|
||||
<div class="list-group-item">
|
||||
IP address
|
||||
{% trans "IP address" %}
|
||||
<span class="pull-right">
|
||||
{{ address.address }}/{{ address.prefix }}
|
||||
</span>
|
||||
@ -183,76 +195,76 @@
|
||||
|
||||
{% if device.ip4.gateway %}
|
||||
<div class="list-group-item">
|
||||
Gateway
|
||||
{% trans "Gateway" %}
|
||||
<span class="pull-right">{{ device.ip4.gateway }}</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% for server in device.ip4.nameservers %}
|
||||
<div class="list-group-item">
|
||||
DNS server
|
||||
{% trans "DNS server" %}
|
||||
<span class="pull-right">{{ server }}</span>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
{% if active_connection.ip4.default %}
|
||||
<div class="list-group-item">
|
||||
Default
|
||||
<span class="pull-right">yes</span>
|
||||
{% trans "Default" %}
|
||||
<span class="pull-right">{% trans "yes" %}</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<h3>IPv6</h3>
|
||||
<h3>{% trans "IPv6" %}</h3>
|
||||
|
||||
<div class="list-group">
|
||||
{% if connection.ipv6.method %}
|
||||
<div class="list-group-item">
|
||||
Method
|
||||
{% trans "Method" %}
|
||||
<span class="pull-right">{{ connection.ipv6.method }}</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% for address in device.ip6.addresses %}
|
||||
<div class="list-group-item">
|
||||
IP address
|
||||
{% trans "IP address" %}
|
||||
<span class="pull-right">{{ address.address }}/{{ address.prefix }}</span>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
{% if device.ip6.gateway %}
|
||||
<div class="list-group-item">
|
||||
Gateway
|
||||
{% trans "Gateway" %}
|
||||
<span class="pull-right">{{ device.ip6.gateway }}</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% for server in device.ip6.nameservers %}
|
||||
<div class="list-group-item">
|
||||
DNS server
|
||||
{% trans "DNS server" %}
|
||||
<span class="pull-right">{{ server }}</span>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
{% if active_connection.ip6.default %}
|
||||
<div class="list-group-item">
|
||||
Default
|
||||
<span class="pull-right">yes</span>
|
||||
{% trans "Default" %}
|
||||
<span class="pull-right">{% trans "yes" %}</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% else %}
|
||||
<h3>Status</h3>
|
||||
<h3>{% trans "Status" %}</h3>
|
||||
|
||||
<p>This connection is not active.</p>
|
||||
<p>{% trans "This connection is not active." %}</p>
|
||||
{% endif %}
|
||||
|
||||
<h3>Security</h3>
|
||||
<h3>{% trans "Security" %}</h3>
|
||||
|
||||
{% if connection.zone == "internal" %}
|
||||
<div class="list-group">
|
||||
<div class="list-group-item">
|
||||
Firewall zone
|
||||
{% trans "Firewall zone" %}
|
||||
<div class="pull-right">
|
||||
<span class="label label-success">{{ connection.zone }}</span>
|
||||
</div>
|
||||
@ -261,15 +273,18 @@
|
||||
|
||||
<div class="alert alert-info">
|
||||
<span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
|
||||
This interface should be connected to local network/machine. If you
|
||||
connect this interface to a public network, services meant to
|
||||
be available only internally will become available externally.
|
||||
This is a security risk.
|
||||
{% blocktrans trimmed %}
|
||||
This interface should be connected to local
|
||||
network/machine. If you connect this interface to a
|
||||
public network, services meant to be available only
|
||||
internally will become available externally. This is a
|
||||
security risk.
|
||||
{% endblocktrans %}
|
||||
</div>
|
||||
{% elif connection.zone == "external" %}
|
||||
<div class="list-group">
|
||||
<div class="list-group-item">
|
||||
Firewall zone
|
||||
{% trans "Firewall zone" %}
|
||||
<div class="pull-right">
|
||||
<span class="label label-warning">{{ connection.zone }}</span>
|
||||
</div>
|
||||
@ -278,14 +293,17 @@
|
||||
|
||||
<div class="alert alert-info">
|
||||
<span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
|
||||
This interface should receive your Internet connection. If
|
||||
you connect it your a local network/machine, many services
|
||||
meant to available only internally will not be available.
|
||||
{% blocktrans trimmed %}
|
||||
This interface should receive your Internet connection.
|
||||
If you connect it your a local network/machine, many
|
||||
services meant to available only internally will not be
|
||||
available.
|
||||
{% endblocktrans %}
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="list-group">
|
||||
<div class="list-group-item">
|
||||
Firewall zone
|
||||
{% trans "Firewall zone" %}
|
||||
<div class="pull-right">
|
||||
<span class="label label-danger">{{ connection.zone }}</span>
|
||||
</div>
|
||||
@ -294,10 +312,13 @@
|
||||
|
||||
<div class="alert alert-danger">
|
||||
<span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span>
|
||||
This interface is not maintained by FreedomBox. Its security
|
||||
status is unknown to FreedomBox. Many FreedomBox services may
|
||||
not be available on this interface. It is recommended that
|
||||
you deactivate/delete this connection and re-configure it.
|
||||
{% blocktrans trimmed %}
|
||||
This interface is not maintained by FreedomBox. Its
|
||||
security status is unknown to FreedomBox. Many FreedomBox
|
||||
services may not be available on this interface. It is
|
||||
recommended that you deactivate/delete this connection and
|
||||
re-configure it.
|
||||
{% endblocktrans %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
@ -29,8 +30,8 @@
|
||||
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Create..."/>
|
||||
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Create..." %}"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
@ -29,8 +30,8 @@
|
||||
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Create Connection"/>
|
||||
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Create Connection" %}"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -19,12 +19,13 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h3>Delete Connection <em>{{ name }}</em></h3>
|
||||
<h3>{% blocktrans %}Delete Connection <em>{{ name }}</em>{% endblocktrans %}</h3>
|
||||
|
||||
<p>Delete connection permanently?</p>
|
||||
<p>{% trans "Delete connection permanently?" %}</p>
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
@ -33,7 +34,7 @@
|
||||
value="Delete {{ name }}"/>
|
||||
|
||||
<a href="{% url 'networks:index' %}" role="button"
|
||||
class="btn btn-md btn-primary">Cancel</a>
|
||||
class="btn btn-md btn-primary">{% trans "Cancel" %}</a>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -18,6 +18,7 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
|
||||
<style type="text/css">
|
||||
.connection-diagram {
|
||||
@ -61,28 +62,31 @@
|
||||
<div class="row connection-diagram">
|
||||
<div class="col-sm-2">
|
||||
<img src="{% static 'theme/img/network-internet.svg' %}"
|
||||
class="col-image network-entity" alt="Internet"/>
|
||||
class="col-image network-entity" alt="{% trans "Internet" %}"/>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<img src="{% static 'theme/img/network-spacing.svg' %}"
|
||||
class="col-image network-spacing hidden-xs" alt="Spacing"/>
|
||||
class="col-image network-spacing hidden-xs"
|
||||
alt="{% trans "Spacing" %}"/>
|
||||
<img src="{% static 'theme/img/network-connection.svg' %}"
|
||||
class="col-image network-connection hidden-xs" alt="Connection"/>
|
||||
class="col-image network-connection hidden-xs"
|
||||
alt="{% trans "Connection" %}"/>
|
||||
<img src="{% static 'theme/img/network-connection-vertical.svg' %}"
|
||||
class="network-connection-vertical visible-xs-block" alt="Connection"/>
|
||||
class="network-connection-vertical visible-xs-block"
|
||||
alt="{% trans "Connection" %}"/>
|
||||
<div class="connection-list">
|
||||
<p class="connection-list-heading">External</p>
|
||||
<p class="connection-list-heading">{% trans "External" %}</p>
|
||||
{% for connection in connections %}
|
||||
{% if connection.interface_name and connection.is_active and connection.zone == 'external' %}
|
||||
{% if connection.type == '802-3-ethernet' %}
|
||||
<img src="{% static 'theme/img/network-ethernet.svg' %}"
|
||||
class="network-type-icon" alt="Ethernet"/>
|
||||
class="network-type-icon" alt="{% trans "Ethernet" %}"/>
|
||||
{% elif connection.type == '802-11-wireless' %}
|
||||
<img src="{% static 'theme/img/network-wireless.svg' %}"
|
||||
class="network-type-icon" alt="Wi-Fi"/>
|
||||
class="network-type-icon" alt="{% trans "Wi-Fi" %}"/>
|
||||
{% endif %}
|
||||
<a href="{% url 'networks:show' connection.uuid %}"
|
||||
title="Show connection {{ connection.name }}">
|
||||
title="{% blocktrans %}Show connection {{ connection.name }}{% endblocktrans %}">
|
||||
{{ connection.name }} ({{ connection.interface_name }})</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
@ -90,37 +94,40 @@
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<img src="{% static 'theme/img/network-freedombox.svg' %}"
|
||||
class="col-image network-entity" alt="FreedomBox"/>
|
||||
class="col-image network-entity" alt="{{ cfg.box_name }}"/>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<img src="{% static 'theme/img/network-spacing.svg' %}"
|
||||
class="col-image network-spacing hidden-xs" alt="Spacing"/>
|
||||
class="col-image network-spacing hidden-xs"
|
||||
alt="{% trans "Spacing" %}"/>
|
||||
<img src="{% static 'theme/img/network-connection.svg' %}"
|
||||
class="col-image network-connection hidden-xs" alt="Connection"/>
|
||||
class="col-image network-connection hidden-xs"
|
||||
alt="{% trans "Connection" %}"/>
|
||||
<div class="connection-list">
|
||||
<p class="connection-list-heading">Internal</p>
|
||||
<p class="connection-list-heading">{% trans "Internal" %}</p>
|
||||
{% for connection in connections %}
|
||||
{% if connection.interface_name and connection.is_active and connection.zone == 'internal' %}
|
||||
<p>
|
||||
{% if connection.type == '802-3-ethernet' %}
|
||||
<img src="{% static 'theme/img/network-ethernet.svg' %}"
|
||||
class="network-type-icon" alt="Ethernet"/>
|
||||
class="network-type-icon" alt="{% trans "Ethernet" %}"/>
|
||||
{% elif connection.type == '802-11-wireless' %}
|
||||
<img src="{% static 'theme/img/network-wireless.svg' %}"
|
||||
class="network-type-icon" alt="Wi-Fi"/>
|
||||
class="network-type-icon" alt="{% trans "Wi-Fi" %}"/>
|
||||
{% endif %}
|
||||
<a href="{% url 'networks:show' connection.uuid %}"
|
||||
title="Show connection {{ connection.name }}">
|
||||
title="{% blocktrans %}Show connection {{ connection.name }}{% endblocktrans %}">
|
||||
{{ connection.name }} ({{ connection.interface_name }})</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
<img src="{% static 'theme/img/network-connection-vertical.svg' %}"
|
||||
class="network-connection-vertical visible-xs-block" alt="Connection"/>
|
||||
class="network-connection-vertical visible-xs-block"
|
||||
alt="{% trans "Connection" %}"/>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<img src="{% static 'theme/img/network-computer.svg' %}"
|
||||
class="col-image network-entity" alt="Computer"/>
|
||||
class="col-image network-entity" alt="{% trans "Computer" %}"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
@ -29,8 +30,8 @@
|
||||
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Edit Connection"/>
|
||||
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Edit Connection" %}"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block page_head %}
|
||||
<style type="text/css">
|
||||
@ -62,7 +63,8 @@
|
||||
<div class="list-group-item clearfix">
|
||||
<a href="{% url 'networks:delete' connection.uuid %}"
|
||||
class="btn btn-default btn-sm pull-right"
|
||||
role="button" title="Delete connection {{ connection.name }}">
|
||||
role="button"
|
||||
title="{% blocktrans %}Delete connection {{ connection.name }}{% endblocktrans %}">
|
||||
<span class="glyphicon glyphicon-trash"
|
||||
aria-hidden="true"></span>
|
||||
</a>
|
||||
@ -73,7 +75,7 @@
|
||||
{% csrf_token %}
|
||||
|
||||
<button type="submit" class="btn btn-default btn-sm">
|
||||
Deactivate</button>
|
||||
{% trans "Deactivate" %}</button>
|
||||
</form>
|
||||
{% else %}
|
||||
<form class="form pull-right" method="post"
|
||||
@ -81,16 +83,16 @@
|
||||
{% csrf_token %}
|
||||
|
||||
<button type="submit" class="btn btn-default btn-sm">
|
||||
Activate</button>
|
||||
{% trans "Activate" %}</button>
|
||||
</form>
|
||||
{% endif %}
|
||||
|
||||
{% if connection.is_active %}
|
||||
<span class="label label-success connection-status-label">
|
||||
Active</span>
|
||||
{% trans "Active" %}</span>
|
||||
{% else %}
|
||||
<span class="label label-warning connection-status-label">
|
||||
Inactive</span>
|
||||
{% trans "Inactive" %}</span>
|
||||
{% endif %}
|
||||
|
||||
<a class="connection-show-label"
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
@ -29,8 +30,8 @@
|
||||
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Create..."/>
|
||||
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Create..." %}"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
@ -26,19 +27,19 @@
|
||||
<div class="col-sm-6">
|
||||
<div class="list-group">
|
||||
{% for access_point in access_points %}
|
||||
<div class="list-group-item clearfix">
|
||||
{% if access_point.ssid %}
|
||||
<a display="inline-block" width="40%"
|
||||
href="{% url 'networks:add_wifi' access_point.ssid access_point.interface_name %}">
|
||||
{{ access_point.ssid }}
|
||||
</a>
|
||||
{% else %}
|
||||
--
|
||||
{% endif %}
|
||||
<span class="btn btn-primary btn-xs pull-right">
|
||||
{{ access_point.strength }}%
|
||||
</span>
|
||||
</div>
|
||||
<div class="list-group-item clearfix">
|
||||
{% if access_point.ssid %}
|
||||
<a display="inline-block" width="40%"
|
||||
href="{% url 'networks:add_wifi' access_point.ssid access_point.interface_name %}">
|
||||
{{ access_point.ssid }}
|
||||
</a>
|
||||
{% else %}
|
||||
--
|
||||
{% endif %}
|
||||
<span class="btn btn-primary btn-xs pull-right">
|
||||
{{ access_point.strength }}%
|
||||
</span>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% block page_head %}
|
||||
|
||||
@ -32,84 +32,111 @@
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>Virtual Private Network (OpenVPN)</h2>
|
||||
<h2>{% trans "Virtual Private Network (OpenVPN)" %}</h2>
|
||||
|
||||
<p>Virtual Private Network (VPN) is a technique for securely
|
||||
connecting two machines in order to access resources of a private
|
||||
network. While you are away from home, you can connect to your
|
||||
{{ cfg.box_name }} in order to join your home network and access
|
||||
private/internal services provided by {{ cfg.box_name }}. You can
|
||||
also access the rest of the Internet via {{ cfg.box_name }} for
|
||||
added security and anonymity.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
Virtual Private Network (VPN) is a technique for securely
|
||||
connecting two machines in order to access resources of a
|
||||
private network. While you are away from home, you can connect
|
||||
to your {{ cfg.box_name }} in order to join your home network
|
||||
and access private/internal services provided by
|
||||
{{ cfg.box_name }}. You can also access the rest of the
|
||||
Internet via {{ cfg.box_name }} for added security and
|
||||
anonymity.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
{% if status.is_setup %}
|
||||
|
||||
<h3>Profile</h3>
|
||||
<h3>{% trans "Profile" %}</h3>
|
||||
|
||||
<p>To connect to {{ cfg.box_name }}'s VPN, you need to download a
|
||||
profile and feed it to an OpenVPN client on your mobile or
|
||||
desktop machine. OpenVPN Clients are available for most
|
||||
platforms. See
|
||||
<a href="https://wiki.debian.org/FreedomBox/Manual/OpenVPN"
|
||||
title="FreedomBox Manual - OpenVPN">documentation</a> on
|
||||
recommended clients and instructions on how to configure them.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
To connect to {{ cfg.box_name }}'s VPN, you need to download a
|
||||
profile and feed it to an OpenVPN client on your mobile or
|
||||
desktop machine. OpenVPN Clients are available for most
|
||||
platforms. See
|
||||
<a href="https://wiki.debian.org/FreedomBox/Manual/OpenVPN"
|
||||
title="FreedomBox Manual - OpenVPN">documentation</a> on
|
||||
recommended clients and instructions on how to configure them.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>Profile is specific to each user of {{ cfg.box_name }}. Keep
|
||||
it a secret.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
Profile is specific to each user of {{ cfg.box_name }}. Keep
|
||||
it a secret.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<form class="form" method="post" action="{% url 'openvpn:profile' %}">
|
||||
{% csrf_token %}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Download my profile"/>
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Download my profile" %}"/>
|
||||
</form>
|
||||
|
||||
{% endif %}
|
||||
|
||||
<h3>Status</h3>
|
||||
<h3>{% trans "Status" %}</h3>
|
||||
|
||||
{% if not status.is_setup and not status.setup_running %}
|
||||
<p>OpenVPN has not yet been setup. Performing a secure setup
|
||||
takes a very long time. Depending on how fast your
|
||||
{{ cfg.box_name }} is, it may even take hours. If the setup is
|
||||
interrupted, you may start it again.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
OpenVPN has not yet been setup. Performing a secure setup
|
||||
takes a very long time. Depending on how fast your
|
||||
{{ cfg.box_name }} is, it may even take hours. If the setup
|
||||
is interrupted, you may start it again.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<form class="form" method="post" action="{% url 'openvpn:setup' %}">
|
||||
{% csrf_token %}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Start setup"/>
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Start setup" %}"/>
|
||||
</form>
|
||||
{% endif %}
|
||||
|
||||
{% if not status.is_setup and status.setup_running %}
|
||||
<p class="running-status-parent">
|
||||
<span class='running-status active'></span> OpenVPN setup is running
|
||||
<span class='running-status active'></span>
|
||||
{% trans "OpenVPN setup is running" %}
|
||||
</p>
|
||||
|
||||
<p>To perform a secure setup, this process takes a very long time.
|
||||
Depending on how fast your {{ cfg.box_name }} is, it may even
|
||||
take hours. If the setup is interrupted, you may start it
|
||||
again.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
To perform a secure setup, this process takes a very long
|
||||
time. Depending on how fast your {{ cfg.box_name }} is, it
|
||||
may even take hours. If the setup is interrupted, you may
|
||||
start it again.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
{% if status.is_setup %}
|
||||
<p class="running-status-parent">
|
||||
{% if status.is_running %}
|
||||
<span class='running-status active'></span> OpenVPN server is running
|
||||
<span class='running-status active'></span>
|
||||
{% trans "OpenVPN server is running" %}
|
||||
{% else %}
|
||||
<span class='running-status inactive'></span> OpenVPN server is not running
|
||||
<span class='running-status inactive'></span>
|
||||
{% trans "OpenVPN server is not running" %}
|
||||
{% endif %}
|
||||
</p>
|
||||
|
||||
{% include "diagnostics_button.html" with module="openvpn" %}
|
||||
|
||||
<h3>Configuration</h3>
|
||||
<h3>{% trans "Configuration" %}</h3>
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Update setup"/>
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Update setup" %}"/>
|
||||
</form>
|
||||
{% endif %}
|
||||
|
||||
|
||||
@ -19,34 +19,44 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>File Hosting (ownCloud)</h2>
|
||||
<h2>{% trans "File Hosting (ownCloud)" %}</h2>
|
||||
|
||||
<p>ownCloud gives you universal access to your files through a web
|
||||
interface or WebDAV. It also provides a platform to easily view &
|
||||
sync your contacts, calendars and bookmarks across all your devices
|
||||
and enables basic editing right on the web. Installation has minimal
|
||||
server requirements, doesn't need special permissions and is
|
||||
quick. ownCloud is extendable via a simple but powerful API for
|
||||
applications and plugins.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
ownCloud gives you universal access to your files through a web
|
||||
interface or WebDAV. It also provides a platform to easily view
|
||||
& sync your contacts, calendars and bookmarks across all your
|
||||
devices and enables basic editing right on the web. Installation
|
||||
has minimal server requirements, doesn't need special
|
||||
permissions and is quick. ownCloud is extendable via a simple
|
||||
but powerful API for applications and plugins.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>When enabled, the ownCloud installation will be available
|
||||
from <a href="/owncloud">/owncloud</a> path on the web server.
|
||||
Visit this URL to set up the initial administration account for
|
||||
ownCloud.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
When enabled, the ownCloud installation will be available
|
||||
from <a href="/owncloud">/owncloud</a> path on the web server.
|
||||
Visit this URL to set up the initial administration account for
|
||||
ownCloud.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
{% include "diagnostics_button.html" with module="owncloud" %}
|
||||
|
||||
<h3>Configuration</h3>
|
||||
<h3>{% trans "Configuration" %}</h3>
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
{{ form|bootstrap }}
|
||||
<input type="submit" class="btn btn-primary btn-md" value="Apply changes"/>
|
||||
|
||||
<input type="submit" class="btn btn-primary btn-md"
|
||||
value="{% trans "Apply changes" %}"/>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
@ -29,14 +30,15 @@
|
||||
|
||||
<div id='pagekite-post-enabled-form'
|
||||
style='display: {{ form.enabled.value|yesno:'block,none' }};'>
|
||||
<h3>PageKite Account</h3>
|
||||
<h3>{% trans "PageKite Account" %}</h3>
|
||||
{{ form.server_domain|bootstrap_horizontal }}
|
||||
{{ form.server_port|bootstrap_horizontal }}
|
||||
{{ form.kite_name|bootstrap_horizontal }}
|
||||
{{ form.kite_secret|bootstrap_horizontal }}
|
||||
|
||||
</div>
|
||||
<input type="submit" class="btn btn-primary" value="Save settings"/>
|
||||
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Save settings" %}"/>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% load pagekite_extras %}
|
||||
|
||||
@ -40,31 +41,39 @@
|
||||
{% block content %}
|
||||
|
||||
<div class="alert alert-warning" role="alert">
|
||||
<b>Warning:</b><br>Your PageKite frontend server may not support all the
|
||||
protocol/port combinations that you are able to define here. For example,
|
||||
HTTPS on ports other than 443 is known to cause problems.
|
||||
{% blocktrans trimmed %}
|
||||
<b>Warning:</b><br>Your PageKite frontend server may not support
|
||||
all the protocol/port combinations that you are able to define
|
||||
here. For example, HTTPS on ports other than 443 is known to
|
||||
cause problems.
|
||||
{% endblocktrans %}
|
||||
</div>
|
||||
|
||||
<div class="row custom-services">
|
||||
|
||||
<div class="col-lg-6">
|
||||
<form class="form add-service" method="post">
|
||||
<h4>Create a custom service</h4>
|
||||
<h4>{% trans "Create a custom service" %}</h4>
|
||||
{{ form|bootstrap_horizontal:'col-lg-6' }}
|
||||
|
||||
{% csrf_token %}
|
||||
|
||||
<div class="form-group">
|
||||
<div class=" col-lg-offset-6 col-lg-6">
|
||||
<input type="submit" class="btn btn-primary" value="Add Service"/>
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Add Service" %}"/>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-5 col-lg-offset-1">
|
||||
<h4>Existing custom services</h4>
|
||||
<h4>{% trans "Existing custom services" %}</h4>
|
||||
|
||||
{% if not custom_services %}
|
||||
<i>You don't have any Custom Services enabled</i>
|
||||
<i>{% trans "You don't have any Custom Services enabled" %}</i>
|
||||
{% endif %}
|
||||
|
||||
<div class="list-group">
|
||||
{% for service in custom_services %}
|
||||
{% create_pagekite_service_url service kite_name as service_url %}
|
||||
@ -77,7 +86,9 @@
|
||||
{{ service_url }}
|
||||
{% endif %}
|
||||
<br>
|
||||
connected to {{ service.backend_host }}:{{ service.backend_port }}
|
||||
{% blocktrans trimmed %}
|
||||
connected to {{ service.backend_host }}:{{ service.backend_port }}
|
||||
{% endblocktrans %}
|
||||
</span>
|
||||
</span>
|
||||
<form class="form pull-right" method="post"
|
||||
@ -87,7 +98,7 @@
|
||||
{{ service.form.as_p }}
|
||||
</div>
|
||||
<button type="submit" class="btn btn-default"
|
||||
title="Delete this service">
|
||||
title="{% trans "Delete this service" %}">
|
||||
<span class="glyphicon glyphicon-trash" aria-hidden="true">
|
||||
</span>
|
||||
</button>
|
||||
|
||||
@ -18,38 +18,65 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<p>PageKite is a system for exposing {{ cfg.box_name }} services when
|
||||
you don't have a direct connection to the Internet. You only need this
|
||||
if your {{ cfg.box_name }} services are unreachable from the
|
||||
rest of the Internet. This includes the following situations: </p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
PageKite is a system for exposing {{ cfg.box_name }} services
|
||||
when you don't have a direct connection to the Internet. You
|
||||
only need this if your {{ cfg.box_name }} services are
|
||||
unreachable from the rest of the Internet. This includes the
|
||||
following situations:
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>{{ cfg.box_name }} is behind a restricted firewall.</li>
|
||||
<ul>
|
||||
<li>
|
||||
{% blocktrans trimmed %}
|
||||
{{ cfg.box_name }} is behind a restricted firewall.
|
||||
{% endblocktrans %}
|
||||
</li>
|
||||
|
||||
<li>{{ cfg.box_name }} is connected to a (wireless) router which you
|
||||
don't control.</li>
|
||||
<li>
|
||||
{% blocktrans trimmed %}
|
||||
{{ cfg.box_name }} is connected to a (wireless) router which
|
||||
you don't control.
|
||||
{% endblocktrans %}
|
||||
</li>
|
||||
|
||||
<li>Your ISP does not provide you an external IP address and instead
|
||||
provides Internet connection through NAT.</li>
|
||||
<li>
|
||||
{% blocktrans trimmed %}
|
||||
Your ISP does not provide you an external IP address and
|
||||
instead provides Internet connection through NAT.
|
||||
{% endblocktrans %}
|
||||
</li>
|
||||
|
||||
<li>Your ISP does not provide you a static IP address and your IP
|
||||
address changes evertime you connect to Internet.</li>
|
||||
<li>
|
||||
{% blocktrans trimmed %}
|
||||
Your ISP does not provide you a static IP address and your IP
|
||||
address changes evertime you connect to Internet.
|
||||
{% endblocktrans %}
|
||||
</li>
|
||||
|
||||
<li>Your ISP limits incoming connections.</li>
|
||||
</ul>
|
||||
<li>{% trans "Your ISP limits incoming connections." %}</li>
|
||||
</ul>
|
||||
|
||||
<p>PageKite works around NAT, firewalls and IP-address limitations by
|
||||
using a combination of tunnels and reverse proxies. You can use any
|
||||
pagekite service provider, for example
|
||||
<a href="https://pagekite.net">pagekite.net</a>.
|
||||
In future it might be possible to use your buddy's
|
||||
{{ cfg.box_name }} for this.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
PageKite works around NAT, firewalls and IP-address limitations
|
||||
by using a combination of tunnels and reverse proxies. You can
|
||||
use any pagekite service provider, for example
|
||||
<a href="https://pagekite.net">pagekite.net</a>. In future it
|
||||
might be possible to use your buddy's {{ cfg.box_name }} for
|
||||
this.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<a class="btn btn-primary btn-md"
|
||||
href="{% url 'pagekite:configure' %}">Configure PageKite</a>
|
||||
</p>
|
||||
<p>
|
||||
<a class="btn btn-primary btn-md" href="{% url 'pagekite:configure' %}">
|
||||
{% trans "Configure PageKite" %}</a>
|
||||
</p>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block page_head %}
|
||||
<style type="text/css">
|
||||
@ -35,9 +36,23 @@
|
||||
{% block content %}
|
||||
|
||||
<div class="alert alert-warning" role="alert">
|
||||
<b>Warning:</b><br>
|
||||
<p>Published services are accessible and attackable from the evil internet.<p>
|
||||
<p>Exposing SSH with the default password for 'fbx' is a VERY BAD idea.</p>
|
||||
|
||||
{% trans "<b>Warning:</b><br/>" %}
|
||||
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
Published services are accessible and attackable from the evil
|
||||
internet.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
Exposing SSH with the default password for 'fbx' is a VERY BAD
|
||||
idea.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<form class="form predefined" method="post">
|
||||
@ -45,7 +60,9 @@
|
||||
{{ form.https|bootstrap_horizontal:'col-lg-0' }}
|
||||
{{ form.ssh|bootstrap_horizontal:'col-lg-0' }}
|
||||
{% csrf_token %}
|
||||
<input type="submit" class="btn btn-primary" value="Save Services"/>
|
||||
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Save Services" %}"/>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -19,42 +19,55 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>Web Proxy (Privoxy)</h2>
|
||||
<h2>{% trans "Web Proxy (Privoxy)" %}</h2>
|
||||
|
||||
<p>Privoxy is a non-caching web proxy with advanced filtering
|
||||
capabilities for enhancing privacy, modifying web page data and HTTP
|
||||
headers, controlling access, and removing ads and other obnoxious
|
||||
Internet junk.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
Privoxy is a non-caching web proxy with advanced filtering
|
||||
capabilities for enhancing privacy, modifying web page data and
|
||||
HTTP headers, controlling access, and removing ads and other
|
||||
obnoxious Internet junk.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>You can use Privoxy by modifying your browser proxy settings to
|
||||
your {{ cfg.box_name }} hostname (or IP address) with port 8118.
|
||||
While using Privoxy, you can see its configuration details and
|
||||
documentation
|
||||
at <a href="http://config.privoxy.org">http://config.privoxy.org/</a>
|
||||
or <a href="http://p.p">http://p.p</a></p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
You can use Privoxy by modifying your browser proxy settings to
|
||||
your {{ cfg.box_name }} hostname (or IP address) with port 8118.
|
||||
While using Privoxy, you can see its configuration details and
|
||||
documentation at
|
||||
<a href="http://config.privoxy.org">http://config.privoxy.org/</a>
|
||||
or <a href="http://p.p">http://p.p</a>
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<h3>Status</h3>
|
||||
<h3>{% trans "Status" %}</h3>
|
||||
|
||||
<p class="running-status-parent">
|
||||
{% if status.is_running %}
|
||||
<span class="running-status active"></span> Privoxy is running
|
||||
{% else %}
|
||||
<span class="running-status inactive"></span> Privoxy is not running
|
||||
{% endif %}
|
||||
</p>
|
||||
{% include "diagnostics_button.html" with module="privoxy" %}
|
||||
<p class="running-status-parent">
|
||||
{% if status.is_running %}
|
||||
<span class="running-status active"></span>
|
||||
{% trans "Privoxy is running" %}
|
||||
{% else %}
|
||||
<span class="running-status inactive"></span>
|
||||
{% trans "Privoxy is not running" %}
|
||||
{% endif %}
|
||||
</p>
|
||||
|
||||
<h3>Configuration</h3>
|
||||
{% include "diagnostics_button.html" with module="privoxy" %}
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
<h3>{% trans "Configuration" %}</h3>
|
||||
|
||||
{{ form|bootstrap }}
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Update setup"/>
|
||||
</form>
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Update setup" %}"/>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -19,25 +19,37 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>reStore</h2>
|
||||
<p>reStore is a server for <a href='https://unhosted.org/'>unhosted</a>
|
||||
web applications. The idea is to uncouple web applications from the
|
||||
data, and thus the data can be stored on any unhosted storage server.</p>
|
||||
<h2>{% trans "reStore" %}</h2>
|
||||
|
||||
<p>You can create and edit accounts in the
|
||||
<a href='/restore/'>reStore web-interface</a>.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
reStore is a server for <a href='https://unhosted.org/'>unhosted</a>
|
||||
web applications. The idea is to uncouple web applications from
|
||||
the data, and thus the data can be stored on any unhosted
|
||||
storage server.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<h3>Configuration</h3>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
You can create and edit accounts in the
|
||||
<a href='/restore/'>reStore web-interface</a>.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
<h3>Configuration</h3>
|
||||
|
||||
{{ form|bootstrap }}
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Update setup"/>
|
||||
</form>
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Update setup" %}"/>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -19,40 +19,55 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>Email Client (Roundcube)</h2>
|
||||
<h2>{% trans "Email Client (Roundcube)" %}</h2>
|
||||
|
||||
<p>Roundcube webmail is a browser-based multilingual IMAP client with
|
||||
an application-like user interface. It provides full functionality
|
||||
you expect from an email client, including MIME support, address
|
||||
book, folder manipulation, message searching and spell checking.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
Roundcube webmail is a browser-based multilingual IMAP client
|
||||
with an application-like user interface. It provides full
|
||||
functionality you expect from an email client, including MIME
|
||||
support, address book, folder manipulation, message searching
|
||||
and spell checking.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>You can access Roundcube from <a href="/roundcube">/roundcube</a>.
|
||||
Provide the username and password of the email account you wish to
|
||||
access followed by the domain name of the IMAP server for your email
|
||||
provider, like <code>imap.example.com</code>. For IMAP over SSL
|
||||
(recommended), fill the server field
|
||||
like <code>imaps://imap.example.com</code>.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
You can access Roundcube from <a href="/roundcube">/roundcube</a>.
|
||||
Provide the username and password of the email account you wish
|
||||
to access followed by the domain name of the IMAP server for
|
||||
your email provider, like <code>imap.example.com</code>. For
|
||||
IMAP over SSL (recommended), fill the server field like
|
||||
<code>imaps://imap.example.com</code>.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>For Gmail, username will be your Gmail address, password will be
|
||||
your Google account password and server will be
|
||||
<code>imaps://imap.gmail.com</code>. Note that you will also need
|
||||
to enable "Less secure apps" in your Google account settings
|
||||
(<a href="https://www.google.com/settings/security/lesssecureapps"
|
||||
>https://www.google.com/settings/security/lesssecureapps</a>).</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
For Gmail, username will be your Gmail address, password will be
|
||||
your Google account password and server will be
|
||||
<code>imaps://imap.gmail.com</code>. Note that you will also need
|
||||
to enable "Less secure apps" in your Google account settings
|
||||
(<a href="https://www.google.com/settings/security/lesssecureapps"
|
||||
>https://www.google.com/settings/security/lesssecureapps</a>).
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
{% include "diagnostics_button.html" with module="roundcube" %}
|
||||
{% include "diagnostics_button.html" with module="roundcube" %}
|
||||
|
||||
<h3>Configuration</h3>
|
||||
<h3>{% trans "Configuration" %}</h3>
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
{{ form|bootstrap }}
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Update setup"/>
|
||||
</form>
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Update setup" %}"/>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -19,25 +19,33 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>Bookmarks (Shaarli)</h2>
|
||||
<h2>{% trans "Bookmarks (Shaarli)" %}</h2>
|
||||
|
||||
<p>Shaarli allows you to save and share bookmarks.</p>
|
||||
<p>{% trans "Shaarli allows you to save and share bookmarks." %}</p>
|
||||
|
||||
<p>When enabled, Shaarli will be available from <a href="/shaarli">/shaarli</a>
|
||||
path on the web server. Note that Shaarli only supports a single user
|
||||
account, which you will need to setup on the initial visit.<p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
|
||||
<h3>Configuration</h3>
|
||||
When enabled, Shaarli will be available from <a href="/shaarli">/shaarli</a>
|
||||
path on the web server. Note that Shaarli only supports a single
|
||||
user account, which you will need to setup on the initial visit.
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
{{ form|bootstrap }}
|
||||
<h3>{% trans "Configuration" %}</h3>
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Update setup"/>
|
||||
</form>
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Update setup" %}"/>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -18,13 +18,24 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>System Configuration</h2>
|
||||
<h2>{% trans "System Configuration" %}</h2>
|
||||
|
||||
<p>Here you can administrate the underlying system of your {{ cfg.box_name }}.
|
||||
</p>
|
||||
<p>The options affect the {{ cfg.box_name }} at its most
|
||||
general level, so be careful!</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
Here you can administrate the underlying system of your
|
||||
{{ cfg.box_name }}.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
The options affect the {{ cfg.box_name }} at its most general
|
||||
level, so be careful!
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -19,91 +19,109 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>Anonymity Network (Tor)</h2>
|
||||
<h2>{% trans "Anonymity Network (Tor)" %}</h2>
|
||||
|
||||
<p>Tor is an anonymous communication system. You can learn more about
|
||||
it from the <a href="https://www.torproject.org/">Tor Project</a>
|
||||
website. For best protection when web surfing, the Tor Project
|
||||
recommends that you use
|
||||
the <a href="https://www.torproject.org/download/download-easy.html.en">
|
||||
Tor Browser</a>.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
Tor is an anonymous communication system. You can learn more
|
||||
about it from the <a href="https://www.torproject.org/">Tor
|
||||
Project</a> website. For best protection when web surfing, the
|
||||
Tor Project recommends that you use the
|
||||
<a href="https://www.torproject.org/download/download-easy.html.en">
|
||||
Tor Browser</a>.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<h3>Status</h3>
|
||||
<h3>{% trans "Status" %}</h3>
|
||||
|
||||
<p class="running-status-parent">
|
||||
{% if status.is_running %}
|
||||
<span class="running-status active"></span> Tor is running
|
||||
{% else %}
|
||||
<span class="running-status inactive"></span> Tor is not running
|
||||
<p class="running-status-parent">
|
||||
{% if status.is_running %}
|
||||
<span class="running-status active"></span>
|
||||
{% trans "Tor is running" %}
|
||||
{% else %}
|
||||
<span class="running-status inactive"></span>
|
||||
{% trans "Tor is not running" %}
|
||||
{% endif %}
|
||||
</p>
|
||||
|
||||
{% include "diagnostics_button.html" with module="tor" %}
|
||||
|
||||
{% if status.hs_enabled %}
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<table class="table table-bordered table-condensed table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans "Hidden Service" %}</th>
|
||||
<th>{% trans "Port" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{{ status.hs_hostname }}</td>
|
||||
<td>{{ status.hs_ports }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</p>
|
||||
{% include "diagnostics_button.html" with module="tor" %}
|
||||
|
||||
{% if status.hs_enabled %}
|
||||
<h3>{% trans "Configuration" %}</h3>
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary btn-md"
|
||||
value="{% trans "Update setup" %}"/>
|
||||
</form>
|
||||
|
||||
<h3>{% trans "Bridge" %}</h3>
|
||||
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
Your {{ cfg.box_name }} is configured as a Tor bridge with
|
||||
obfsproxy, so it can help circumvent censorship. If your {{
|
||||
cfg.box_name }} is behind a router or firewall, you should make
|
||||
sure the following ports are open, and port-forwarded, if
|
||||
necessary:
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<table class="table table-bordered table-condensed table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Hidden Service</th>
|
||||
<th>Port</th>
|
||||
<th>{% trans "Service" %}</th>
|
||||
<th>{% trans "Port" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{{ status.hs_hostname }}</td>
|
||||
<td>{{ status.hs_ports }}</td>
|
||||
</tr>
|
||||
{% for name, port in status.ports.items %}
|
||||
<tr>
|
||||
<td>{{ name }}</td>
|
||||
<td>{{ port }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<h3>Configuration</h3>
|
||||
<h3>{% trans "SOCKS" %}</h3>
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary btn-md" value="Update setup"/>
|
||||
</form>
|
||||
|
||||
<h3>Bridge</h3>
|
||||
|
||||
<p>Your {{ cfg.box_name }} is configured as a Tor bridge with obfsproxy, so it
|
||||
can help circumvent censorship. If your {{ cfg.box_name }} is behind a router
|
||||
or firewall, you should make sure the following ports are open, and
|
||||
port-forwarded, if necessary:</p>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<table class="table table-bordered table-condensed table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Service</th>
|
||||
<th>Port</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for name, port in status.ports.items %}
|
||||
<tr>
|
||||
<td>{{ name }}</td>
|
||||
<td>{{ port }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>SOCKS</h3>
|
||||
|
||||
<p>A Tor SOCKS port is available on your {{ cfg.box_name }} on TCP port
|
||||
9050.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
A Tor SOCKS port is available on your {{ cfg.box_name }} on TCP port
|
||||
9050.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -19,36 +19,49 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>Bittorrent (Transmission)</h2>
|
||||
<h2>{% trans "Bittorrent (Transmission)" %}</h2>
|
||||
|
||||
<p>BitTorrent is a peer-to-peer file sharing protocol. Transmission
|
||||
daemon handles Bitorrent file sharing. Note that BitTorrent is not
|
||||
anonymous.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
BitTorrent is a peer-to-peer file sharing protocol.
|
||||
Transmission daemon handles Bitorrent file sharing. Note that
|
||||
BitTorrent is not anonymous.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>Access the web interface at <a href="/transmission">/transmission</a></p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
Access the web interface at <a href="/transmission">/transmission</a>
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<h3>Status</h3>
|
||||
<h3>{% trans "Status" %}</h3>
|
||||
|
||||
<p class="running-status-parent">
|
||||
{% if status.is_running %}
|
||||
<span class='running-status active'></span> Transmission daemon is running
|
||||
{% else %}
|
||||
<span class='running-status inactive'></span> Transmission daemon is not running
|
||||
{% endif %}
|
||||
</p>
|
||||
{% include "diagnostics_button.html" with module="transmission" %}
|
||||
<p class="running-status-parent">
|
||||
{% if status.is_running %}
|
||||
<span class='running-status active'></span>
|
||||
{% trans "Transmission daemon is running" %}
|
||||
{% else %}
|
||||
<span class='running-status inactive'></span>
|
||||
{% trans "Transmission daemon is not running" %}
|
||||
{% endif %}
|
||||
</p>
|
||||
|
||||
<h3>Configuration</h3>
|
||||
{% include "diagnostics_button.html" with module="transmission" %}
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
<h3>{% trans "Configuration" %}</h3>
|
||||
|
||||
{{ form|bootstrap }}
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Update setup"/>
|
||||
</form>
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Update setup" %}"/>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -18,18 +18,25 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>{{ title }}</h2>
|
||||
<h2>{{ title }}</h2>
|
||||
|
||||
<p>This will run unattended-upgrades, which will attempt to upgrade your system
|
||||
with the latest Debian packages. It may take a few minutes to complete.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
This will run unattended-upgrades, which will attempt to upgrade
|
||||
your system with the latest Debian packages. It may take a few
|
||||
minutes to complete.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<form class="form" method="post" action="{% url 'upgrades:run' %}">
|
||||
{% csrf_token %}
|
||||
<form class="form" method="post" action="{% url 'upgrades:run' %}">
|
||||
{% csrf_token %}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Upgrade now »"/>
|
||||
|
||||
</form>
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Upgrade now »" %}"/>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
@ -29,8 +30,8 @@
|
||||
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary btn-md" value="Update setup"/>
|
||||
|
||||
<input type="submit" class="btn btn-primary btn-md"
|
||||
value="{% trans "Update setup" %}"/>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -18,37 +18,42 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>{{title}}</h2>
|
||||
<h2>{{title}}</h2>
|
||||
|
||||
{% if upgrades_error %}
|
||||
<div class="alert alert-danger" role="alert">
|
||||
There was an error while upgrading.
|
||||
</div>
|
||||
<h5>Output from unattended-upgrades:</h5>
|
||||
<pre>{{ upgrades_error }}</pre>
|
||||
{% endif %}
|
||||
{% if upgrades_error %}
|
||||
<div class="alert alert-danger" role="alert">
|
||||
{% trans "There was an error while upgrading." %}
|
||||
</div>
|
||||
|
||||
{% if upgrades_output %}
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<div class="alert alert-success" role="alert">
|
||||
The operating system is up to date now.
|
||||
<button type="button" class="btn btn-default show-details" style='display:none'>
|
||||
Show Details
|
||||
<div class="caret"></div>
|
||||
</button>
|
||||
<h5>{% trans "Output from unattended-upgrades:" %}</h5>
|
||||
|
||||
<pre>{{ upgrades_error }}</pre>
|
||||
{% endif %}
|
||||
|
||||
{% if upgrades_output %}
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<div class="alert alert-success" role="alert">
|
||||
{% trans "The operating system is up to date now. " %}
|
||||
<button type="button" class="btn btn-default show-details"
|
||||
style='display:none'>
|
||||
{% trans "Show Details" %}
|
||||
<div class="caret"></div>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="details">
|
||||
<h5>Output from unattended-upgrades:</h5>
|
||||
<pre>{{ upgrades_output }}</pre>
|
||||
</div>
|
||||
<div class="details">
|
||||
<h5>{% trans "Output from unattended-upgrades:" %}</h5>
|
||||
<pre>{{ upgrades_output }}</pre>
|
||||
</div>
|
||||
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
|
||||
@ -19,10 +19,15 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h3>Change Password for <em>{{ form.user.username }}</em></h3>
|
||||
<h3>
|
||||
{% blocktrans trimmed %}
|
||||
Change Password for <em>{{ form.user.username }}</em>
|
||||
{% endblocktrans %}
|
||||
</h3>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
@ -31,8 +36,8 @@
|
||||
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Save Password"/>
|
||||
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Save Password" %}"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block page_head %}
|
||||
<style type="text/css">
|
||||
@ -37,8 +38,8 @@
|
||||
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Create User"/>
|
||||
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{%trans "Create User" %}"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -19,21 +19,26 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h3>Delete User <em>{{ object.username }}</em></h3>
|
||||
<h3>
|
||||
{% blocktrans trimmed %}
|
||||
Delete User <em>{{ object.username }}</em>
|
||||
{% endblocktrans %}
|
||||
</h3>
|
||||
|
||||
<p>Delete user permanently?</p>
|
||||
<p>{% trans "Delete user permanently?" %}</p>
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
<input type="submit" class="btn btn-md btn-primary"
|
||||
value="Delete {{ object.username }}"/>
|
||||
value="{% blocktrans %}Delete {{ object.username }}{% endblocktrans %}"/>
|
||||
|
||||
<a href="{% url 'users:index' %}" role="button"
|
||||
class="btn btn-md btn-primary">Cancel</a>
|
||||
class="btn btn-md btn-primary">{% trans "Cancel" %}</a>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block page_head %}
|
||||
<style type="text/css">
|
||||
@ -41,14 +42,15 @@
|
||||
<div class="list-group-item clearfix">
|
||||
<a href="{% url 'users:delete' user.username %}"
|
||||
class="btn btn-default btn-sm pull-right"
|
||||
role="button" title="Delete user {{ user.username }}">
|
||||
role="button"
|
||||
title="{% blocktrans %}Delete user {{ user.username }}{% endblocktrans %}">
|
||||
<span class="glyphicon glyphicon-trash"
|
||||
aria-hidden="true"></span>
|
||||
</a>
|
||||
|
||||
<a class='user-edit-label'
|
||||
href="{% url 'users:edit' user.username %}"
|
||||
title="Edit user {{ user.username }}">
|
||||
title="{% blocktrans %}Edit user {{ user.username }}{% endblocktrans %}">
|
||||
{{ user.username }}
|
||||
</a>
|
||||
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block page_head %}
|
||||
<style type="text/css">
|
||||
@ -30,13 +31,19 @@
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h3>Edit User <em>{{ object.username }}</em></h3>
|
||||
<h3>
|
||||
{% blocktrans trimmed %}
|
||||
Edit User <em>{{ object.username }}</em>
|
||||
{% endblocktrans %}
|
||||
</h3>
|
||||
|
||||
<p>
|
||||
Use the
|
||||
<a href='{% url 'users:change_password' object.username %}'>
|
||||
change password form
|
||||
</a> to change the password.
|
||||
{% url 'users:change_password' as change_password_url %}
|
||||
|
||||
{% blocktrans trimmed %}
|
||||
Use the <a href='{{ change_password_url }}'>change password form
|
||||
</a> to change the password.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<div class="row">
|
||||
@ -46,8 +53,8 @@
|
||||
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Save Changes"/>
|
||||
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Save Changes" %}"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -19,45 +19,65 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>Chat Server (XMPP)</h2>
|
||||
<h2>{% trans "Chat Server (XMPP)" %}</h2>
|
||||
|
||||
<p>XMPP is an open and standardized communication protocol. Here you
|
||||
can run and configure your XMPP server, called ejabberd.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
XMPP is an open and standardized communication protocol. Here
|
||||
you can run and configure your XMPP server, called ejabberd.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>To actually communicate, you can use the <a href='/jwchat'>web client</a> or
|
||||
any other <a href='http://xmpp.org/xmpp-software/clients/' target='_blank'>
|
||||
XMPP client </a>.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
To actually communicate, you can use the <a href='/jwchat'>web
|
||||
client</a> or any other <a href='http://xmpp.org/xmpp-software/clients/'
|
||||
target='_blank'>XMPP client</a>.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>Your XMPP server domain is set to <b>{{ status.domainname }}</b>. User IDs
|
||||
will look like <i>username@{{ status.domainname }}</i>. You can setup your
|
||||
domain on the system <a href="{% url 'config:index' %}">Configure</a>
|
||||
page.</p>
|
||||
<p>
|
||||
{% url 'config:index' as index_url %}
|
||||
{% blocktrans trimmed with domainname=status.domainname %}
|
||||
Your XMPP server domain is set to <b>{{ domainname }}</b>. User
|
||||
IDs will look like <i>username@{{ domainname }}</i>. You
|
||||
can setup your domain on the system
|
||||
<a href="{{ index_url }}">Configure</a> page.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p><a href='/jwchat' target='_blank' class='btn btn-primary'> Launch web
|
||||
client</a></p>
|
||||
<p>
|
||||
<a href='/jwchat' target='_blank' class='btn btn-primary'>
|
||||
{% trans "Launch web client" %}</a>
|
||||
</p>
|
||||
|
||||
<h3>Status</h3>
|
||||
<h3>{% trans "Status" %}</h3>
|
||||
|
||||
<p class="running-status-parent">
|
||||
{% if status.is_running %}
|
||||
<span class="running-status active"></span> ejabberd is running
|
||||
{% else %}
|
||||
<span class="running-status inactive"></span> ejabberd is not running
|
||||
{% endif %}
|
||||
</p>
|
||||
{% include "diagnostics_button.html" with module="xmpp" %}
|
||||
<p class="running-status-parent">
|
||||
{% if status.is_running %}
|
||||
<span class="running-status active"></span>
|
||||
{% trans "ejabberd is running" %}
|
||||
{% else %}
|
||||
<span class="running-status inactive"></span>
|
||||
{% trans "ejabberd is not running" %}
|
||||
{% endif %}
|
||||
</p>
|
||||
|
||||
<h3>Configuration</h3>
|
||||
{% include "diagnostics_button.html" with module="xmpp" %}
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
<h3>{% trans "Configuration" %}</h3>
|
||||
|
||||
{{ form|bootstrap }}
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Update setup"/>
|
||||
</form>
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Update setup" %}"/>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -18,17 +18,25 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>404</h2>
|
||||
<h2>{% trans "404" %}</h2>
|
||||
|
||||
<p>Requested page {{ request_path }} was not found.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
Requested page {{ request_path }} was not found.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>If you believe this missing page should exist, please file a bug with either
|
||||
the Plinth project (<a href="https://github.com/freedombox/Plinth/issues">it
|
||||
has an issue tracker</a>) or the people responsible for the module you are
|
||||
trying to access.</p>
|
||||
|
||||
<p>Sorry for the mistake.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
If you believe this missing page should exist, please file a bug
|
||||
at the Plinth project
|
||||
<a href="https://github.com/freedombox/Plinth/issues">issue
|
||||
tracker</a>.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -18,13 +18,19 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>500</h2>
|
||||
<h2>{% trans "500" %}</h2>
|
||||
|
||||
<p>This is an internal error and not something you caused or can fix. Please
|
||||
report the error on
|
||||
the <a href="https://github.com/freedombox/Plinth/issues">bug tracker</a> so
|
||||
we can fix it.</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
This is an internal error and not something you caused or can
|
||||
fix. Please report the error on
|
||||
the <a href="https://github.com/freedombox/Plinth/issues">bug
|
||||
tracker</a> so we can fix it.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
{% load i18n %}
|
||||
{% load static %}
|
||||
{% load plinth_extras %}
|
||||
|
||||
@ -44,10 +45,11 @@
|
||||
<meta name="googlebot" content="noindex, nofollow, noarchive, nosnippet, noodp, noimageindex, notranslate" />
|
||||
<meta name="msnbot" content="noindex, nofollow, noarchive, noodp" />
|
||||
<meta name="slurp" content="noindex, nofollow, noarchive, noodp, noydir" />
|
||||
<meta name="description" content="Plinth administrative interface for the FreedomBox" />
|
||||
<meta name="description"
|
||||
content="{% trans "Plinth administrative interface for the FreedomBox" %}" />
|
||||
{% block title %}
|
||||
<title>
|
||||
{% if title %} {{ title }} {% else %} FreedomBox {% endif %}
|
||||
{% if title %} {{ title }} {% else %} {% trans "FreedomBox" %} {% endif %}
|
||||
</title>
|
||||
{% endblock %}
|
||||
|
||||
@ -76,29 +78,29 @@
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse"
|
||||
data-target=".navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="sr-only">{% trans "Toggle navigation" %}</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a href="{% url 'index' %}" class="navbar-brand" title="Applications">
|
||||
<a href="{% url 'index' %}" class="navbar-brand" title="{% trans "Applications" %}">
|
||||
<img src="{% static 'theme/img/freedombox-logo-32px.png' %}"
|
||||
alt="FreedomBox" />
|
||||
Applications
|
||||
alt="{% trans "FreedomBox" %}" />
|
||||
{% trans "Applications" %}
|
||||
</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse">
|
||||
{% block add_nav_and_login %}
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li>
|
||||
<a href="{% url 'help:index' %}" title="Help">
|
||||
<a href="{% url 'help:index' %}" title="{% trans "Help" %}">
|
||||
<span class="glyphicon-question-sign glyphicon nav-icon"></span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
{% if user.is_authenticated %}
|
||||
<li>
|
||||
<a href="{% url 'system:index' %}" title="System Configuration">
|
||||
<a href="{% url 'system:index' %}" title="{% trans "System Configuration" %}">
|
||||
<span class="glyphicon-cog glyphicon nav-icon"></span>
|
||||
</a>
|
||||
</li>
|
||||
@ -112,27 +114,29 @@
|
||||
<span class="caret"></span></a>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
<li><a href="{% url 'users:edit' user.username %}"
|
||||
title="Edit">Edit</a></li>
|
||||
title="{% trans "Edit"%}">{% trans "Edit" %}</a></li>
|
||||
<li><a href="{% url 'users:change_password' user.username %}"
|
||||
title="Change password">Change password</a></li>
|
||||
title="{% trans "Change password" %}">
|
||||
{% trans "Change password" %}</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="{% url 'users:logout' %}" title="Log out">
|
||||
Log out</a></li>
|
||||
<li><a href="{% url 'users:logout' %}"
|
||||
title="{% trans "Log out" %}">
|
||||
{% trans "Log out" %}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
{% else %}
|
||||
<li>
|
||||
<a href="{% url 'users:login' %}" title="Log in">
|
||||
<a href="{% url 'users:login' %}" title="{% trans "Log in" %}">
|
||||
<i class="glyphicon glyphicon-user nav-icon"></i>
|
||||
Log in</a>
|
||||
{% trans "Log in" %}</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if user.is_authenticated %}
|
||||
<li id="logout-nojs">
|
||||
<a href="{% url 'users:logout' %}" title="Log out">
|
||||
<a href="{% url 'users:logout' %}" title="{% trans "Log out" %}">
|
||||
<i class="glyphicon glyphicon-remove-circle nav-icon"></i>
|
||||
Log out</a>
|
||||
{% trans "Log out" %}</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
@ -30,7 +31,8 @@
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<div class="text-center">
|
||||
<input type="submit" class="btn btn-primary" value="Login" />
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Login" %}" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -17,6 +17,8 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
<ul class="nav nav-pills nav-stacked">
|
||||
{% for item in menu.items %}
|
||||
|
||||
|
||||
@ -17,6 +17,8 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% for message in messages %}
|
||||
<div class='alert alert-{{ message.tags }} alert-dismissable'>
|
||||
<a class="close" data-dismiss="alert">×</a>
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% block page_head %}
|
||||
|
||||
@ -32,16 +32,23 @@
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>Installation</h2>
|
||||
<h2>{% trans "Installation" %}</h2>
|
||||
|
||||
{% if not is_installing %}
|
||||
|
||||
<p>This feature requires addtional packages to be installed. Do you
|
||||
wish to install them?</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
This feature requires addtional packages to be installed. Do
|
||||
you wish to install them?
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr><th>Package</th><th>Summary</th></tr>
|
||||
<tr>
|
||||
<th>{% trans "Package" %}</th>
|
||||
<th>{% trans "Summary" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for package_name, package in packages.items %}
|
||||
@ -55,21 +62,30 @@
|
||||
|
||||
<form action="" method="post">
|
||||
{% csrf_token %}
|
||||
<input type="submit" class="btn btn-md btn-primary" value="Install" />
|
||||
|
||||
<input type="submit" class="btn btn-md btn-primary"
|
||||
value="{% trans "Install" %}" />
|
||||
</form>
|
||||
|
||||
{% else %}
|
||||
|
||||
{% for key, transaction in transactions.items %}
|
||||
<div>Installing {{ transaction.package_names|join:", " }}:
|
||||
{{ transaction.status_string }}
|
||||
<div>
|
||||
{% blocktrans trimmed %}
|
||||
Installing {{ transaction.package_names|join:", " }}:
|
||||
{{ transaction.status_string }}
|
||||
{% endblocktrans %}
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-striped active"
|
||||
role="progressbar" aria-valuemin="0" aria-valuemax="100"
|
||||
aria-valuenow="{{ transaction.percentage }}"
|
||||
style="width: {{ transaction.percentage }}%">
|
||||
<span class="sr-only">{{ transaction.percentage }}% complete</span>
|
||||
<span class="sr-only">
|
||||
{% blocktrans trimmed %}
|
||||
{{ transaction.percentage }}% complete
|
||||
{% endblocktrans %}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
@ -17,6 +17,8 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
<ul class="nav nav-pills nav-stacked">
|
||||
{% for item in menu.items %}
|
||||
|
||||
|
||||
@ -17,6 +17,8 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
<ul class="nav nav-tabs">
|
||||
{% for urlitem in subsubmenu %}
|
||||
<li {% if urlitem.active %} class="active"{% endif %}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user