mirror of
https://github.com/Lukas0025/YAGS.git
synced 2025-04-10 17:32:17 +01:00
371 lines
17 KiB
HTML
371 lines
17 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
{% INCLUDE layout/head.html %}
|
|
|
|
<body>
|
|
<div class="page">
|
|
{% BINDINCLUDE layout/header.html logined %}
|
|
|
|
<div class="page-header d-print-none mt-4">
|
|
<div class="container-xl">
|
|
<div class="row g-2 align-items-center">
|
|
<div class="col">
|
|
<div class="page-pretitle">
|
|
{% BIND station.id %}
|
|
</div>
|
|
<h2 class="page-title">
|
|
Station {% BIND station.name %}
|
|
</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="page-body">
|
|
<div class="container-xl">
|
|
<div class="row row-deck row-cards">
|
|
|
|
<div class="col-12">
|
|
<div class="row row-cards">
|
|
<div class="col-12">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h3 class="card-title">Base info</h3>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="datagrid">
|
|
<div class="datagrid-item">
|
|
<div class="datagrid-title">Name</div>
|
|
<div class="datagrid-content">
|
|
{% BIND station.name %}
|
|
</div>
|
|
</div>
|
|
<div class="datagrid-item">
|
|
<div class="datagrid-title">GPS LAT</div>
|
|
<div class="datagrid-content"><a
|
|
href="https://www.google.com/maps/place/{% BIND station.lat %},{% BIND station.lon %}">
|
|
{% BIND station.lat %}
|
|
</a></div>
|
|
</div>
|
|
<div class="datagrid-item">
|
|
<div class="datagrid-title">GPS LON</div>
|
|
<div class="datagrid-content"><a
|
|
href="https://www.google.com/maps/place/{% BIND station.lat %},{% BIND station.lon %}">
|
|
{% BIND station.lon %}
|
|
</a></div>
|
|
</div>
|
|
<div class="datagrid-item">
|
|
<div class="datagrid-title">GPS ALT</div>
|
|
<div class="datagrid-content">{% BIND station.alt %}m</div>
|
|
</div>
|
|
<div class="datagrid-item">
|
|
<div class="datagrid-title">Last seen</div>
|
|
<div class="datagrid-content">ago {% BIND station.lastSeen %}</div>
|
|
</div>
|
|
<div class="datagrid-item">
|
|
<div class="datagrid-title">API Key</div>
|
|
<div class="datagrid-content">
|
|
<span class="status" style="font-size: 10px;">{% BIND station.apiKey %}</span>
|
|
</div>
|
|
</div>
|
|
<div class="datagrid-item">
|
|
<div class="datagrid-title">Success observations</div>
|
|
<div class="datagrid-content">{% BIND station.success %}</div>
|
|
</div>
|
|
<div class="datagrid-item">
|
|
<div class="datagrid-title">Fail observations</div>
|
|
<div class="datagrid-content">{% BIND station.fail %}</div>
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
<div class="col-12">
|
|
<div class="datagrid-title">Description</div>
|
|
<div class="datagrid-content">{% BIND station.description %}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<button type="button" style="display: none;" class="btn btn-primary ms-auto" data-bs-toggle="modal" id="receiverModal" data-bs-target="#newReceiverModal">
|
|
</button>
|
|
|
|
<div class="col-lg-6">
|
|
<div class="row row-cards">
|
|
<div class="col-12">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h3 class="card-title">Station receivers</h3>
|
|
<button type="button" class="btn btn-primary ms-auto" onclick="openReceiver=null;" data-bs-toggle="modal" data-bs-target="#newReceiverModal">
|
|
+ Add
|
|
</button>
|
|
</div>
|
|
<div class="table-responsive scrollable" style="height: 400px">
|
|
<table class="table card-table table-vcenter text-nowrap datatable table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th>Frequency</th>
|
|
<th>Bandwidth</th>
|
|
<th>Antenna</th>
|
|
<th>Gain</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% FOREACH receivers RENDER blocks/receiver-item.html %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-lg-6">
|
|
<div class="row row-cards">
|
|
<div class="col-12">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h3 class="card-title">Station rotators</h3>
|
|
<button type="button" class="btn btn-primary ms-auto" onclick="openRotator=null;" data-bs-toggle="modal" data-bs-target="#newRotatorModal">
|
|
+ Add
|
|
</button>
|
|
</div>
|
|
<div class="table-responsive scrollable" style="height: 400px">
|
|
<table class="table card-table table-vcenter text-nowrap datatable table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th>Driver</th>
|
|
<th>Port/Host</th>
|
|
<th>Actions</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-6 col-lg-12">
|
|
<div class="card">
|
|
<div class="card-status-start bg-danger"></div>
|
|
<div class="card-body">
|
|
<h3 class="card-title">Station basic info</h3>
|
|
<div class="row g-3">
|
|
<div class="col-md">
|
|
<div class="form-label">Name</div>
|
|
<input type="text" class="form-control" value="{% BIND station.name %}" id="station-name">
|
|
</div>
|
|
</div>
|
|
<div class="row g-3 mt-2">
|
|
<div class="col-md">
|
|
<div class="form-label">Description</div>
|
|
<textarea class="form-control" id="station-description">{% BIND station.description %}</textarea>
|
|
</div>
|
|
</div>
|
|
<h3 class="card-title mt-4">Station location</h3>
|
|
<div class="row g-3">
|
|
<div class="col-md">
|
|
<div class="form-label">Latitude</div>
|
|
<input type="number" class="form-control" id="station-lat" value="{% BIND station.lat %}">
|
|
</div>
|
|
<div class="col-md">
|
|
<div class="form-label">Longitude</div>
|
|
<input type="number" class="form-control" id="station-lon" value="{% BIND station.lon %}">
|
|
</div>
|
|
<div class="col-md">
|
|
<div class="form-label">Altitude [m]</div>
|
|
<input type="number" class="form-control" id="station-alt" value="{% BIND station.alt %}">
|
|
</div>
|
|
</div>
|
|
|
|
<h3 class="card-title mt-4">API Key</h3>
|
|
<p class="card-subtitle">API key is used for access to YAGS server from others programs like yags-station.</p>
|
|
<div>
|
|
<a class="btn" onclick="apiRegenerate('{% BIND station.id %}')">
|
|
Regenerate API Key
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<div class="card-footer bg-transparent mt-auto">
|
|
<div class="btn-list justify-content-end">
|
|
<a href="#" class="btn btn-ghost-danger" onclick="deleteStation('{% BIND station.id %}')">
|
|
Delete station
|
|
</a>
|
|
<a class="btn btn-primary" onclick="updateStation('{% BIND station.id %}')">
|
|
Update station
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="modal" id="newReceiverModal" tabindex="-1">
|
|
<div class="modal-dialog modal-lg" role="document">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title">Receiver</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="row">
|
|
<div class="col-lg-6">
|
|
<div class="mb-3">
|
|
<label class="form-label">Center frequency [hz]</label>
|
|
<input type="number" step="1" id="receiver-freq" placeholder="137100000" class="form-control">
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-6">
|
|
<div class="mb-3">
|
|
<label class="form-label">Bandwidth [hz]</label>
|
|
<input type="number" step="1" id="receiver-band" placeholder="250000" class="form-control">
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-9">
|
|
<div class="mb-3">
|
|
<label class="form-label">Antenna</label>
|
|
<select class="form-select" id="receiver-antenna">
|
|
{% FOREACH antennas USE '<option value="(\ BIND item.id \)">(\ BIND item.name \)</option>' %}
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-3">
|
|
<div class="mb-3">
|
|
<label class="form-label">Gain [dB]</label>
|
|
<input type="number" step="1" id="receiver-gain" placeholder="0" class="form-control">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="mb-3">
|
|
<label class="form-label">Auto plan targets</label>
|
|
<select class="form-select" id="select-transmitter" onchange="addAutoPlan()">
|
|
<option default value=""></option>
|
|
{% FOREACH transmitters USE '<option value="(\ BIND item.id \)">
|
|
(\ BIND item.target.name \) -
|
|
(\ BIND item.modulation.name \) -
|
|
(\ BIND item.dataType.name \) @
|
|
(\ BIND item.centerFrequency \)Hz
|
|
</option>' %}
|
|
</select>
|
|
|
|
|
|
<div id="receiver-auto-plan" class="mt-2">
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="mb-3">
|
|
<label class="form-label">Receiver params [JSON]</label>
|
|
<textarea class="form-select" id="receiver-params" ></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn me-auto" data-bs-dismiss="modal">Close</button>
|
|
<button type="button" onclick="saveReceiver('{% BIND station.id %}')" class="btn btn-primary" data-bs-dismiss="modal">Save</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="modal" id="newRotatorModal" tabindex="-1">
|
|
<div class="modal-dialog modal-lg" role="document">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title">Rotator</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="row">
|
|
<div class="col-lg-6">
|
|
<div class="mb-3">
|
|
<label class="form-label">Frequency [hz]</label>
|
|
<input type="number" step="1" id="transmitter-freq" placeholder="137100000" class="form-control">
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-6">
|
|
<div class="mb-3">
|
|
<label class="form-label">Bandwidth [hz]</label>
|
|
<input type="number" step="1" id="transmitter-band" placeholder="250000" class="form-control">
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-3">
|
|
<div class="mb-3">
|
|
<label class="form-label">Antenna</label>
|
|
<select class="form-select" id="transmitter-antenna">
|
|
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-3">
|
|
<div class="mb-3">
|
|
<label class="form-label">Modulation</label>
|
|
<select class="form-select" id="transmitter-modulation">
|
|
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-3">
|
|
<div class="mb-3">
|
|
<label class="form-label">Data Type</label>
|
|
<select class="form-select" id="transmitter-datatype">
|
|
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-3">
|
|
<div class="mb-3">
|
|
<label class="form-label">Priority [UP]</label>
|
|
<input type="number" step="1" id="transmitter-priority" placeholder="0" class="form-control">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="mb-3">
|
|
<label class="form-label">Process pipe</label>
|
|
<select class="form-select" id="transmitter-pipe">
|
|
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn me-auto" data-bs-dismiss="modal">Close</button>
|
|
<button type="button" onclick="save('{% BIND target.id %}')" class="btn btn-primary" data-bs-dismiss="modal">Save</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Tabler Core -->
|
|
<script src="/dist/js/tabler.min.js?1668287865" defer=""></script>
|
|
<script src="/static/js/station.js" defer=""></script>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
|
|
</html> |