Files
OutFleet/templates/index.html

156 lines
6.9 KiB
HTML
Raw Normal View History

2023-09-25 01:19:50 +03:00
{% extends "base.html" %}
{% block content %}
2024-03-18 19:06:10 +02:00
<div id="entety-menu">
<div>
<h1 class="server-content-title">Servers</h1>
2024-03-18 19:06:10 +02:00
{% for server in SERVERS %}
2024-04-17 20:13:10 +03:00
{% set total_traffic = namespace(total_bytes=0) %}
2023-11-05 21:07:13 +02:00
{% for key in server.data["keys"] %}
2024-03-18 19:06:10 +02:00
{% if key.used_bytes %}
2024-04-17 20:13:10 +03:00
{% set total_traffic.total_bytes = total_traffic.total_bytes + key.used_bytes %}
2024-03-18 19:06:10 +02:00
{% endif %}
2023-11-05 21:07:13 +02:00
{% endfor %}
2024-03-18 19:06:10 +02:00
<div class="server-item server-item-{% if loop.index0 == selected_server|int %}unread{% else %}selected{% endif %} pure-g">
<div class="pure-u-3-4" onclick="location.href='/?selected_server={{loop.index0}}';">
<h5 class="server-name">{{ server.info()["name"] }}</h5>
<h4 class="server-info">{{ '/'.join(server.info()["url"].split('/')[0:-1]) }}</h4>
<h4 class="server-info">Port {{ server.info()["port_for_new_access_keys"] }}</h4>
<h4 class="server-info">Hostname {{ server.info()["hostname_for_access_keys"] }}</h4>
2024-04-17 20:13:10 +03:00
<h4 class="server-info">Traffic: {{ total_traffic.total_bytes | filesizeformat }}</h4>
2024-03-18 19:06:10 +02:00
<h4 class="server-info">v.{{ server.info()["version"] }}</h4>
<p class="server-comment">
{{ server.info()["comment"] }}
</p>
2023-09-25 01:19:50 +03:00
</div>
2024-03-18 19:06:10 +02:00
</div>
{% endfor %}
<div onclick="location.href='/?add_server=True';" class="server-item server-add pure-g">
<div class="pure-u-1">
2023-09-25 01:19:50 +03:00
+
</div>
</div>
2024-03-18 19:06:10 +02:00
</div>
</div>
2024-03-18 19:06:10 +02:00
{% if add_server %}
<div id="content">
<div >
2024-03-18 19:06:10 +02:00
<div class="server-content-header pure-g">
<div >
2023-09-25 03:53:08 +03:00
<h1 class="server-content-title">Add new server</h1>
2023-09-25 01:19:50 +03:00
</div>
</div>
<div class="server-content-body">
2024-03-18 19:06:10 +02:00
<form action="/add_server" class="pure-form pure-form-stacked" method="POST">
<fieldset>
<div >
<div >
<input type="text" name="url" placeholder="Server management URL"/>
2023-09-25 03:53:08 +03:00
</div>
<div >
<input type="text" name="cert" placeholder="Certificate"/>
2024-03-18 19:06:10 +02:00
</div>
<div >
<input type="text" name="comment" placeholder="Comment"/>
2024-03-18 19:06:10 +02:00
</div>
</div>
<button type="submit" class="pure-button pure-input-1 pure-button-primary">Add</button>
</fieldset>
</form>
</div>
2023-09-25 03:53:08 +03:00
</div>
</div>
2024-03-18 19:06:10 +02:00
{% endif %}
2023-09-25 03:53:08 +03:00
2024-03-18 19:06:10 +02:00
{% if SERVERS|length != 0 and not add_server %}
2023-09-25 03:53:08 +03:00
{% if selected_server is none %}
2024-03-18 19:06:10 +02:00
{% set server = SERVERS[0] %}
2023-09-25 03:53:08 +03:00
{% else %}
2024-03-18 19:06:10 +02:00
{% set server = SERVERS[selected_server|int] %}
2023-09-25 03:53:08 +03:00
{% endif %}
<div id="content">
<div id="main" >
2024-03-18 19:06:10 +02:00
<div class="server-content">
<div class="server-content-header pure-g">
<div>
<h1 class="content-title">{{server.info()["name"]}}</h1>
2024-03-18 19:06:10 +02:00
<p class="server-content-subtitle">
<span>v.{{server.info()["version"]}} {{server.info()["local_server_id"]}}</span>
</p>
2024-03-18 01:54:00 +02:00
</div>
2023-09-25 03:53:08 +03:00
2024-03-18 19:06:10 +02:00
</div>
{% set ns = namespace(total_bytes=0) %}
{% for key in SERVERS[selected_server|int].data["keys"] %}
2023-11-05 19:32:50 +02:00
{% if key.used_bytes %}
2024-03-18 19:06:10 +02:00
{% set ns.total_bytes = ns.total_bytes + key.used_bytes %}
2023-11-05 19:32:50 +02:00
{% endif %}
2024-03-18 19:06:10 +02:00
{% endfor %}
<div class="server-content-body">
<h3>Clients: {{ server.info()['keys']|length }}</h3>
<h3>Total traffic: {{ ns.total_bytes | filesizeformat }}</h3>
<form class="pure-form pure-form-stacked" method="POST">
<fieldset>
<div class="pure-g">
<div class="pure-u-1 ">
2024-04-23 19:30:14 +03:00
<label for="name">Server Name</br>This will not be exposed to client</label>
<input type="text" id="name" class="" name="name" value="{{server.info()['name']}}"/>
2024-03-18 16:07:48 +02:00
</div>
<div class="pure-u-1 ">
2024-04-23 19:30:14 +03:00
<label for="comment">Comment</br>This will be exposed to client and will be used as "Server name" in client Outline app</label>
<input type="text" id="comment" class="" name="comment" value="{{server.info()['comment']}}"/>
2024-03-18 16:07:48 +02:00
</div>
<div class="pure-u-1">
2024-03-18 19:06:10 +02:00
<label for="port_for_new_access_keys">Port For New Access Keys</label>
<input type="text" id="port_for_new_access_keys" name="port_for_new_access_keys" value="{{server.info()['port_for_new_access_keys']}}"/>
2024-03-18 19:06:10 +02:00
</div>
<div class="pure-u-1 ">
2024-03-18 19:06:10 +02:00
<label for="hostname_for_access_keys">Hostname For Access Keys</label>
<input type="text" id="hostname_for_access_keys" name="hostname_for_access_keys" value="{{server.info()['hostname_for_access_keys']}}"/>
2024-03-18 19:06:10 +02:00
</div>
<div class="pure-u-1 ">
2024-03-18 19:06:10 +02:00
<label for="url">Server URL</label>
<input type="text" readonly id="url" name="url" value="{{server.info()['url']}}"/>
2024-03-18 19:06:10 +02:00
</div>
<div class="pure-u-1 ">
2024-03-18 19:06:10 +02:00
<label for="cert">Server Access Certificate</label>
<input type="text" readonly id="cert" name="cert" value="{{server.info()['cert']}}"/>
2023-09-25 03:53:08 +03:00
</div>
<div class="pure-u-1 ">
2024-03-18 19:06:10 +02:00
<label for="created_timestamp_ms">Created</label>
<input type="text" readonly id="created_timestamp_ms" name="created_timestamp_ms" value="{{format_timestamp(server.info()['created_timestamp_ms']) }}"/>
2024-03-18 19:06:10 +02:00
</div>
<input type="hidden" readonly id="server_id" name="server_id" value="{{server.info()['local_server_id']}}"/>
2024-03-18 19:06:10 +02:00
</div>
<p>Share anonymous metrics</p>
<label for="metrics_enabled" class="pure-radio">
<input type="radio" id="metrics_enabled" name="metrics" value="True" {% if server.info()['metrics_enabled'] == True %}checked{% endif %} /> Enable
</label>
<label for="metrics_disabled" class="pure-radio">
<input type="radio" id="metrics_disabled" name="metrics" value="False" {% if server.info()['metrics_enabled'] == False %}checked{% endif %} /> Disable
</label>
<button type="submit" class="pure-button pure-button-primary button">Save and apply</button>
</fieldset>
</form>
<form action="/del_server" method="post">
<input type="hidden" name="local_server_id" value="{{ server.info()["local_server_id"] }}">
<button type="submit" class="pure-button pure-button-primary delete-button button">Delete Server</button>
<input type="checkbox" id="agree" name="agree" required>
</form>
2023-09-25 03:53:08 +03:00
</div>
2023-09-25 01:19:50 +03:00
</div>
</div>
</div>
2023-09-25 03:53:08 +03:00
2024-03-18 19:06:10 +02:00
{% endif %}
{% endblock %}