vpnmanager/templates/manager/index.html

162 lines
8.6 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{% extends "base.html" %}
{% load notifications %}
{% load manager %}
{% block content %}
<p><b>Organization:</b> {% userOrgas as orgas %}<select {% if orgas|length == 1 %}style="display: none;"{% endif %} id="orgaselect">{% for orga in orgas %}<option {% if user.userstatus.orga == orga %}selected{% endif %} value="{{ orga.id }}">{{ orga }}</option>{% endfor %}</select>{% if orgas|length == 1 %}{% orgaString %}{% endif %}</p>
<p><b>User:</b> {{ user.first_name }} {{ user.last_name }} ({{ user.username }}) <a href="/users/{{ user.id }}/edit"><i class="fas fa-edit" title="Edit User"></i></a></p>
<div align="center"><b>Manage:</b>
<a id="linkdevices" href="#" onclick="showdevices();">Devices</a>
&dash; <a id="linkwifi" href="#" onclick="showwifi();">WiFi</a>
&dash; <a id="linkusers" href="#" onclick="showusers();">Users</a>
{% if user.is_superuser %}
&dash; <a id="linknets" href="#" onclick="shownets();">Networks</a>
&dash; <a id="linkorgas" href="#" onclick="showorgas();">Organizations</a>
{% endif %}
</div>
<p></p>
{% autoescape off %}
{% getNotifications %}
{% endautoescape %}
<div name="devicespart" id="devicespart">
<h2>Devices</h2>
<div class="table-responsive">
<table id="table" name="table" class="table">
<thead>
<tr>
<th>Device ID</th>
<th>Common Name</th>
<th>Network</th>
<th>Latest IP</th>
<th>Options {% if user.is_superuser %}<a href="/makedevice/" style="font-weight:bold;color:green;"><i class="fas fa-plus" title="Add Device"></i></a>{% endif %}</th>
</tr>
</thead>
<tbody>
{% userDevices as devices %}
{% for device in devices %}
<tr data-orga="[{{ device.organization.id }}]">
<td><i class="fas fa-circle" style="color: grey;" title="No information available" id="{{ device.id }}-indicator"></i>{% if device.model.deprecated %}&nbsp;<i style="color: red;" title="Device outdated{% if not user.is_superuser %} please contact us to replace it with a new one{% endif %}" class="fas fa-exclamation-triangle"></i>{% elif user.is_superuser and device.upgrade_available %}&nbsp;<i style="color: green;" title="Firmware upgrade available" class="fas fa-upload"></i>{% endif %}&nbsp;<div style="display: inline;" {% if user.is_superuser %}title="{{ device.organization.name }}"{% endif %} id="{{ device.id }}-id">{{ device.serial }}{% if device.ssid %}<br><small>SSID: {{ device.ssid }}</small>{% endif %}</div></td>
<td id="{{ device.id }}-name">{% if device.name %}{{ device.name }}{% endif %}</td>
<td id="{{ device.id }}-network">{{ device.network }}</td>
<td><div style="display:inline;" id="{{ device.id }}-ip">{% if device.curip %}{{ device.curip }} (at {{ device.lasttime }}){% endif %}</div></td>
<td><a href="/devices/{{ device.id }}/edit"><i class="fas fa-edit" title="Edit Device"></i></a> <a href="#"><i style="color: green;" onclick="askreboot({{ device.id }});" class="fas fa-sync" title="Reboot Device"></i></a>{% if user.is_staff %} <a href="#"><i onclick="downloadnotice({{ device.id }});" class="fas fa-download" title="Download Configuration"></i></a>{% endif %}{% if user.is_superuser %} <a href="#"><i style="color: darkred;" onclick="askdelete({{ device.id }});" class="fas fa-trash-alt" title="Delete Device"></i></a>{% endif %}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
<div name="wifipart" id="wifipart">
<h2>WiFi</h2>
<div class="table-responsive">
<table id="wifi" name="wifi" class="table">
<thead>
<tr>
<th>Common Name</th>
<th>SSID</th>
<th>Options <a href="/makewifi/" style="font-weight:bold;color:green;"><i class="fas fa-plus" title="Add WiFi"></i></a></th>
</tr>
</thead>
<tbody>
{% userWifis as wifis %}
{% for wifi in wifis %}
<tr data-orga="[{{ wifi.organization.id }}]">
<td><div style="display:inline;" {% if user.is_superuser %}title="{{ wifi.organization.name }}"{% endif %}>{{ wifi.serial }}</div></td>
<td>{{ wifi.ssid }}</td>
<td><a href="/wifi/{{ wifi.id }}/edit"><i class="fas fa-edit" title="Edit WiFi"></i></a>{% if user.is_staff %} <a href="#"><i style="color: darkred;" onclick="askdeletewifi({{ wifi.id }});" class="fas fa-trash-alt" title="Delete WiFi"></i></a>{% endif %}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
<div name="userpart" id="userpart">
<h2>Users</h2>
<div class="table-responsive">
<table id="users" name="users" class="table">
<thead>
<tr>
<th>Username</th>
<th>Real name</th>
<th>Last Activity</th>
<th>Options {% if user.is_superuser %}<a href="/makeuser/" style="font-weight:bold;color:green;"><i class="fas fa-plus" title="Add User"></i></a>{% endif %}</th>
</tr>
</thead>
<tbody>
{% userUsers as users %}
{% for auser in users %}
<tr data-orga="{% directOrgaAjax auser %}">
<td><div style="display:inline;" {% if user.is_superuser %}title="{% directOrgaString auser %}"{% endif %}>{% if auser.is_superuser %}<i class="fas fa-concierge-bell" style="color:gold;" title="Technical Support"></i> {% endif %}{% if auser.is_staff %}<b>{% endif %}{{ auser.username }}{% if auser.is_staff %}</b>{% endif %}</div></td>
<td>{% if auser.is_staff %}<b>{% endif %}{{ auser.first_name }} {{ auser.last_name }}{% if auser.is_staff %}</b>{% endif %}</td>
<td>{{ auser.userstatus.last_action }}</td>
<td>{% if user.is_staff %}<a href="/users/{{ auser.id }}/edit"><i class="fas fa-edit" title="Edit User"></i></a> {% endif %}{% if auser.email %}<a href="mailto:{{ auser.email }}"><i class="fas fa-envelope" title="Send Email"></i></a>{% endif %}{% if user.is_superuser %} <a href="#"><i style="color: darkred;" onclick="askdeleteuser({{ auser.id }});" class="fas fa-trash-alt" title="Delete User"></i></a>{% endif %}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
{% if user.is_superuser %}
<div name ="netpart" id="netpart">
<h2>Networks</h2>
<div class="table-responsive">
<table id="networks" name="networks" class="table">
<thead>
<tr>
<th>Common Name</th>
<th>Internal IP</th>
<th>External IP</th>
<th>Options <a href="/makenet/" style="font-weight:bold;color:green;"><i class="fas fa-plus" title="Add User"></i></a></th>
</tr>
</thead>
<tbody>
{% userNets as networks %}
{% for network in networks %}
<tr data-orga="{% netOrgaAjax network %}">
<td><div style="display:inline;" title="{% netOrgaString network %}">{% if network.name %}{{ network.name }}{% endif %}</div></td>
<td>{{ network.intip }}</td>
<td>{{ network.extip }}</td>
<td>{% if not network.intip == "No VPN" %}<a href="/networks/{{ network.id }}/edit"><i class="fas fa-edit" title="Edit Network"></i></a> <a href="#"><i style="color: darkred;" onclick="askdeletenet({{ network.id }});" class="fas fa-trash-alt" title="Delete Network"></i></a>{% endif %}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
<div name ="orgapart" id="orgapart">
<h2>Organizations</h2>
<div class="table-responsive">
<table id="organizations" name="organizations" class="table">
<thead>
<tr>
<th>Name</th>
<th>Users</th>
<th>Options <a href="/makeorga/" style="font-weight:bold;color:green;"><i class="fas fa-plus" title="Add Organization"></i></a></th>
</tr>
</thead>
{% for orga in orgas %}
<tr class="orgarow">
<td><div style="display:inline;">{{ orga.name }}</div></td>
<td>{{ orga.orgausers.all|length }}{% if orga.userlimit %}/{{ orga.userlimit }}{% endif %}</td>
<td><a href="/organizations/{{ orga.id }}/edit"><i class="fas fa-edit" title="Edit Organization"></i></a> <a href="#"><i style="color: darkred;" onclick="askdeleteorga({{ orga.id }});" class="fas fa-trash-alt" title="Delete Organization"></i></a></td>
</tr>
{% endfor %}
</table>
</div>
</div>
{% endif %}
<iframe id="download" width="1" height="1" style="display:none"></iframe>
<script src="/js/devices.js"></script>
{% endblock %}