mirror of
https://github.com/donaldzou/WGDashboard.git
synced 2025-04-19 08:55:12 +00:00
126 lines
6.6 KiB
HTML
126 lines
6.6 KiB
HTML
<main role="main" class="col-md-9 ml-sm-auto col-lg-10 px-md-4 mt-4 mb-4">
|
|
<div class="info mt-4">
|
|
<div class="row">
|
|
<div class="col">
|
|
<small class="text-muted"><strong>CONFIGURATION</strong></small>
|
|
<h1 class="mb-3">{{conf_data['name']}}</h1>
|
|
</div>
|
|
<div class="col">
|
|
<small class="text-muted"><strong>ACTION</strong></small><br>
|
|
{% if conf_data['checked'] == "checked" %}
|
|
<a href="#" id="{{conf_data['name']}}" {{conf_data['checked']}} class="switch text-primary"><i class="bi bi-toggle2-on"></i> ON</a>
|
|
{% else %}
|
|
<a href="#" id="{{conf_data['name']}}" {{conf_data['checked']}} class="switch text-secondary"><i class="bi bi-toggle2-off"></i> OFF</a>
|
|
{% endif %}
|
|
<div class="spinner-border text-primary" role="status" style="display: none; margin-top: 10px">
|
|
<span class="sr-only">Loading...</span>
|
|
</div>
|
|
</div>
|
|
<div class="w-100"></div>
|
|
<div class="col">
|
|
<small class="text-muted"><strong>STATUS</strong></small>
|
|
<h6 style="text-transform: uppercase;">{{conf_data['status']}}<span class="dot dot-{{conf_data['status']}}"></span></h6>
|
|
</div>
|
|
<div class="col">
|
|
<small class="text-muted"><strong>CONNECTED PEERS</strong></small>
|
|
<h6 style="text-transform: uppercase;">{{conf_data['running_peer']}}</h6>
|
|
</div>
|
|
<div class="col-sm">
|
|
<small class="text-muted"><strong>TOTAL DATA USAGE</strong></small>
|
|
<h6 style="text-transform: uppercase;">{{conf_data['total_data_usage'][0]}} GB</h6>
|
|
</div>
|
|
<div class="col-sm">
|
|
<small class="text-muted"><strong>TOTAL RECIEVED</strong></small>
|
|
<h6 style="text-transform: uppercase;">{{conf_data['total_data_usage'][1]}} GB</h6>
|
|
</div>
|
|
<div class="col-sm">
|
|
<small class="text-muted"><strong>TOTAL SENT</strong></small>
|
|
<h6 style="text-transform: uppercase;">{{conf_data['total_data_usage'][2]}} GB</h6>
|
|
</div>
|
|
<div class="w-100"></div>
|
|
<div class="col-sm">
|
|
<small class="text-muted"><strong>PUBLIC KEY</strong></small>
|
|
<h6 style="text-transform: uppercase;"><samp>{{conf_data['public_key']}}</samp></h6>
|
|
</div>
|
|
<div class="col-sm">
|
|
<small class="text-muted"><strong>LISTEN PORT</strong></small>
|
|
<h6 style="text-transform: uppercase;"><samp>{{conf_data['listen_port']}}</samp></h6>
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
<div class="button-div mb-3" style="text-align: right;">
|
|
<div class="btn-group" role="group" aria-label="Basic example">
|
|
<button type="button" class="btn btn-outline-primary btn-sm btn-group-label refresh"><i class="bi bi-arrow-repeat"></i></button>
|
|
<button type="button" class="btn btn-outline-primary btn-sm update_interval" refresh-interval="5000">5s</button>
|
|
<button type="button" class="btn btn-outline-primary btn-sm update_interval" refresh-interval="10000">10s</button>
|
|
<button type="button" class="btn btn-outline-primary btn-sm update_interval" refresh-interval="30000">30s</button>
|
|
<button type="button" class="btn btn-outline-primary btn-sm update_interval" refresh-interval="60000">1m</button>
|
|
</div>
|
|
<button type="button" class="btn btn-primary add_btn btn-sm" data-toggle="modal" data-target="#add_modal">
|
|
<i class="bi bi-plus-circle-fill"></i> PEER
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
{% for i in conf_data['peer_data']%}
|
|
<div class="card mb-3">
|
|
<div class="card-header">
|
|
<div class="row">
|
|
<div class="col-sm">
|
|
<div class="card-header-body ">
|
|
{% if not i['name']%}
|
|
{{ "Untitled Peer" }}
|
|
{% else %}
|
|
{{i['name']}}
|
|
{% endif %}
|
|
<span class="dot dot-{{i['status']}}"></span>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm peer_data_group">
|
|
<p class="text-primary" style="text-transform: uppercase; display: inline-block; margin-bottom: 0; margin-right: 1rem"><i class="bi bi-arrow-down-right"></i> {{i['total_receive']}} GB</p>
|
|
<p class="text-success" style="text-transform: uppercase; display: inline-block; margin-bottom: 0"><i class="bi bi-arrow-up-right"></i> {{i['total_sent']}} GB</p>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-sm">
|
|
<small class="text-muted"><strong>PEER</strong></small>
|
|
<h6><samp class="ml-auto">{{i['id']}}</samp></h6>
|
|
</div>
|
|
<div class="col-sm">
|
|
<small class="text-muted"><strong>ALLOWED IP</strong></small>
|
|
<h6 style="text-transform: uppercase;">{{i['allowed_ip']}}</h6>
|
|
</div>
|
|
<div class="w-100"></div>
|
|
|
|
<div class="col-sm">
|
|
<small class="text-muted"><strong>LATEST HANDSHAKE</strong></small>
|
|
<h6 style="text-transform: uppercase;">{{i['latest_handshake']}}</h6>
|
|
</div>
|
|
<div class="col-sm">
|
|
<small class="text-muted"><strong>END POINT</strong></small>
|
|
<h6 style="text-transform: uppercase;">{{i['endpoint']}}</h6>
|
|
</div>
|
|
<div class="w-100"></div>
|
|
<div class="col-sm">
|
|
<div class="button-group">
|
|
<hr>
|
|
<button type="button" class="btn btn-outline-primary btn-setting-peer btn-control" id="{{i['id']}}" data-toggle="modal"><i class="bi bi-gear-fill"></i></button>
|
|
<button type="button" class="btn btn-outline-danger btn-delete-peer btn-control" id="{{i['id']}}" data-toggle="modal"><i class="bi bi-x-circle-fill"></i></button>
|
|
{% if i['private_key'] %}
|
|
<button type="button" class="btn btn-outline-success btn-qrcode-peer btn-control" img_src="{{ qrcode("[Interface]\nPrivateKey = "+i['private_key']+"\nAddress = "+i['allowed_ip']+"\nDNS = 1.1.1.1\n\n[Peer]\nPublicKey = "+conf_data['public_key']+"\nAllowedIPs = 0.0.0.0/0\nEndpoint = "+wg_ip+":"+conf_data['listen_port']) }}">
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="width: 19px;" fill="#28a745"><path d="M3 11h8V3H3v8zm2-6h4v4H5V5zM3 21h8v-8H3v8zm2-6h4v4H5v-4zM13 3v8h8V3h-8zm6 6h-4V5h4v4zM13 13h2v2h-2zM15 15h2v2h-2zM13 17h2v2h-2zM17 17h2v2h-2zM19 19h2v2h-2zM15 19h2v2h-2zM17 13h2v2h-2zM19 15h2v2h-2z"/></svg>
|
|
</button>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{%endfor%}
|
|
</main>
|