1
0
Fork 0
satnogs-db/db/templates/base/satellite.html

666 lines
38 KiB
HTML

{% extends "base/home.html" %}
{% load tags %}
{% load staticfiles %}
{% block title %} - {{ satellite }}{% endblock %}
{% block css %}
<link rel="stylesheet" href="{% static 'lib/mapbox-gl/dist/mapbox-gl.css' %}">
{% endblock css %}
{% block top %}{% endblock %}
{% block content %}
<!-- Satellite Overview Section -->
<div class="row">
<div class="col-md-12 satellite-panels">
<div class="panel panel-default panel-satellite">
<div class="panel-heading">
<div class="satellite-title">
{{ satellite }}
</div>
<div class="pull-right">
{% if satellite.names %}
<div class="satellite-names-full hidden-xs">{{ satellite.names }}</div>
{% endif %}
<span class="label satellite-status" data-status="{{ satellite.status }}">
{{ satellite.status }}
</span>
<a type="button"
title="SatNOGS Network observations"
class="btn btn-default btn-xs"
href="https://network.satnogs.org/observations/?norad={{ satellite.norad_cat_id }}"
target="_blank">
<span class="glyphicon glyphicon-new-window" aria-hidden="true"></span> Observations</span>
</a>
</div>
</div>
<div class="row panel-body">
<div class="col-sm-3">
<div>
<img src="{{ satellite.get_image }}" alt="{{ satellite.name }}" class="satellite-img-full">
</div>
<div class="satellite-description">
{{ satellite.get_description|safe }}
</div>
</div>
<div class="col-sm-9">
{% if satellite.status != 're-entered' %}
<div id="map"
data-name="{{ satellite.name }}"
data-tle1="{{ satellite.tle1 }}"
data-tle2="{{ satellite.tle2 }}"
data-mapboxtoken="{{ mapbox_token }}"></div>
{% endif %}
</div>
</div>
</div>
</div>
</div>
<!-- Transmitters Section -->
<div class="row">
<div class="col-md-12 satellite-panels">
<div class="panel panel-default panel-satellite">
<div class="panel-heading">
<div class="satellite-title">
Transmitters <span class="badge hidden-xs">{{ satellite.transmitter_set.count }}</span>
{% if transmitter_suggestions %}
<div class="transmitter-suggestions-counter label label-default hidden-xs">
{{ transmitter_suggestions.count }} suggestion{{ transmitter_suggestions.count|pluralize }} pending
</div>
{% endif %}
</div>
<div class="satellite-suggest pull-right">
<button type="button"
class="btn btn-primary btn-sm"
data-toggle="modal" data-target="#NewSuggestionModal">
<span class="glyphicon glyphicon-plus" title="Suggest edits"></span> Suggest <span class="hidden-xs">New Transmitter</span>
</button>
</div>
</div>
<div class="row panel-body">
<div class="col-md-12">
<div class="row">
{% for transmitter in satellite.transmitters.all %}
<div class="col-md-4">
<div class="panel {% if transmitter.status == 'active' %}panel-success{% else %}panel-danger{% endif %} panel-transmitter">
<div class="panel-heading">
<h3 class="panel-title">
<span class="transmitter-title">{{ transmitter.description }}</span>
<button type="button"
title="UUID: {{ transmitter.uuid }}"
class="btn btn-default btn-sm pull-right transmitter-uuid js-copy"
data-toggle="tooltip"
data-placement="bottom"
data-copy="{{ transmitter.uuid }}">
<span class="glyphicon glyphicon-info-sign" title="Suggest edits"></span>
</button>
<button type="button"
class="btn btn-default btn-sm pull-right suggest-transmitter"
data-toggle="modal"
data-target="#EditSuggestionModal-{{ transmitter.id }}">
<span class="glyphicon glyphicon-edit" title="Suggest edits"></span>
</button>
</h3>
</div>
<div class="row panel-body">
<div class="col-md-12">
{% if transmitter.type %}
{% include "includes/field.html" with name="Type" value=transmitter.type %}
{% endif %}
{% if transmitter.service %}
{% include "includes/field.html" with name="Service" value=transmitter.service %}
{% endif %}
{% if transmitter.mode %}
{% include "includes/field.html" with name="Mode" value=transmitter.mode %}
{% endif %}
{% if transmitter.baud %}
{% include "includes/field.html" with name="Baud" value=transmitter.baud %}
{% endif %}
{% if transmitter.type == 'Transmitter' %}
{% if transmitter.downlink_low %}
{% include "includes/field.html" with name="Downlink" value=transmitter.downlink_low hz=transmitter.downlink_low %}
{% endif %}
{% if transmitter.downlink_drift %}
{% include "includes/field.html" with name="Downlink Drifted" value=transmitter.downlink_drift hz=transmitter.downlink_drift class="drifted" freq_or=transmitter.downlink_low %}
{% endif %}
{% endif %}
{% if transmitter.type == 'Transceiver' %}
{% if transmitter.downlink_low %}
{% include "includes/field.html" with name="Downlink" value=transmitter.downlink_low hz=transmitter.downlink_low %}
{% endif %}
{% if transmitter.downlink_drift %}
{% include "includes/field.html" with name="Downlink Drifted" value=transmitter.downlink_drift hz=transmitter.downlink_drift class="drifted" freq_or=transmitter.downlink_low %}
{% endif %}
{% if transmitter.uplink_low %}
{% include "includes/field.html" with name="Uplink" value=transmitter.uplink_low hz=transmitter.uplink_low %}
{% endif %}
{% if transmitter.uplink_drift %}
{% include "includes/field.html" with name="Uplink Drifted" value=transmitter.uplink_drift hz=transmitter.uplink_drift class="drifted" freq_or=transmitter.uplink_low %}
{% endif %}
{% endif %}
{% if transmitter.type == 'Transponder' %}
{% if transmitter.downlink_low %}
{% include "includes/field.html" with name="Downlink Low" value=transmitter.downlink_low hz=transmitter.downlink_low %}
{% endif %}
{% if transmitter.downlink_high %}
{% include "includes/field.html" with name="Downlink High" value=transmitter.downlink_high hz=transmitter.downlink_high %}
{% endif %}
{% if transmitter.downlink_drift %}
{% include "includes/field.html" with name="Downlink Drift" value=transmitter.downlink_drift hz=transmitter.downlink_drift %}
{% endif %}
{% if transmitter.uplink_low %}
{% include "includes/field.html" with name="Uplink Low" value=transmitter.uplink_low hz=transmitter.uplink_low %}
{% endif %}
{% if transmitter.uplink_high %}
{% include "includes/field.html" with name="Uplink High" value=transmitter.uplink_high hz=transmitter.uplink_high %}
{% endif %}
{% if transmitter.uplink_drift %}
{% include "includes/field.html" with name="Uplink Drift" value=transmitter.uplink_drift hz=transmitter.uplink_drift %}
{% endif %}
{% if transmitter.invert %}
{% include "includes/field.html" with name="Invert" value=transmitter.invert %}
{% endif %}
{% endif %}
</div>
</div>
<div class="panel-footer transmitter-citation-footer">
Updated on {{ transmitter.created|date:'Y-m-d H:i' }} by {{ transmitter.user }}
<button type="button"
class="btn btn-default btn-sm pull-right transmitter-citation"
data-toggle="modal"
data-target="#TransmitterCitation-{{ transmitter.id }}">
Citation
</button>
</div>
</div>
<!-- Citation Modal -->
<div class="modal fade" id="TransmitterCitation-{{ transmitter.id }}" tabindex="-1" role="dialog" aria-labelledby="CitationModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="CitationModalLabel">Citation for {{ transmitter.uuid }}</h4>
</div>
<div class="modal-body">
{{ transmitter.citation }}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Edit Suggestion Modal -->
<div class="modal fade transmitter_suggestion-edit-modal" id="EditSuggestionModal-{{ transmitter.id }}" tabindex="-1" role="dialog" aria-labelledby="EditSuggestionModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="EditSuggestionModalLabel">Suggest an edit to this Transmitter</h4>
</div>
{% if request.user.is_authenticated %}
<form action="{% url 'transmitter_suggestion' %}" method="post" id="edittransmitter_suggestion-form">{% csrf_token %}
<div class="modal-body">
<input type="hidden" name="uuid" value="{{ transmitter.uuid }}"></input>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Description</div>
<input type="text" class="form-control" name="description" value="{{ transmitter.description }}">
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Status</div>
<select class="form-control transmitter_suggestion-status" name="status">
{% for status in statuses %}
<option value="{{ status }}" {% ifequal transmitter.status status %}selected{% endifequal %}>
{{ status }}
</option>
{% endfor %}
</select>
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Type</div>
<select class="form-control transmitter_suggestion-type" name="type">
{% for type in types %}
<option value="{{ type }}" {% ifequal transmitter.type type %}selected{% endifequal %}>
{{ type }}
</option>
{% endfor %}
</select>
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Service</div>
<select class="form-control transmitter_suggestion-service" name="service">
{% for service in services %}
<option value="{{ service }}" {% ifequal transmitter.service service %}selected{% endifequal %}>
{{ service }}
</option>
{% endfor %}
</select>
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Mode</div>
<select class="form-control" name="mode">
<option value="" selected></option>
{% for mode in modes %}
<option value="{{ mode.id }}" {% ifequal transmitter.mode mode %}selected{% endifequal %}>
{{ mode }}
</option>
{% endfor %}
</select>
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Uplink Low</div>
<input type="number" class="form-control" name="uplink_low" value="{{ transmitter.uplink_low|default_if_none:'' }}">
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Uplink High</div>
<input type="number" class="form-control" name="uplink_high" value="{{ transmitter.uplink_high|default_if_none:'' }}">
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Uplink Drifted</div>
<input type="number" class="form-control uplink-drifted-sugedit" name="" value="{{ transmitter.uplink_low|default_if_none:'' }}">
<div class="input-group-addon">PPB Drift</div>
<input type="text" class="form-control uplink-ppb-sugedit" name="uplink_drift" value="{{ transmitter.uplink_drift|default_if_none:'' }}" readonly>
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Downlink Low</div>
<input type="number" class="form-control" name="downlink_low" value="{{ transmitter.downlink_low|default_if_none:'' }}">
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Downlink High</div>
<input type="number" class="form-control" name="downlink_high" value="{{ transmitter.downlink_high|default_if_none:'' }}">
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Downlink Drifted</div>
<input type="number" class="form-control downlink-drifted-sugedit" name="" value="{{ transmitter.downlink_low|default_if_none:'' }}">
<div class="input-group-addon">PPB Drift</div>
<input type="text" class="form-control downlink-ppb-sugedit" name="downlink_drift" value="{{ transmitter.downlink_drift|default_if_none:'' }}" readonly>
</div>
<div class="input-group transmitter-element-suggest">
<input type="checkbox" value="1" name="invert" {% if transmitter.invert %}checked{% endif %}> Invert
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Baud Rate</div>
<input type="number" class="form-control" name="baud" value="{{ transmitter.baud|default_if_none:'' }}">
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Citation URL</div>
<input type="text" class="form-control" name="citation" maxlength="255" required>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary">Send</button>
</div>
<input type="hidden" name="transmitter" value="{{ transmitter.pk }}">
<input type="hidden" name="satellite" value="{{ satellite.pk }}">
</form>
{% else %}
<div class="modal-body">
<div class="text-danger">You need to login first to add a new transmitter suggestion.</div>
</div>
<div class="modal-footer">
<button class="btn btn-default" data-dismiss="modal">Close</button>
<a href="{% url 'account_login' %}" class="btn btn-primary">Log In</a>
</div>
{% endif %}
</div>
</div>
</div>
</div>
{% if forloop.counter|divisibleby:3 %}
</div>
{% if not loop.last %}
<div class="row">
{% endif %}
{% endif %}
{% empty %}
<div class="row panel-body">
<div class="col-md-12">
<span class="text-danger">No approved transmitters yet for this Satellite.</span>
</div>
</div>
{% endfor %}
</div>
{% if request.user.is_superuser %}
<hr>
<div class="row">
{% for transmitter_suggestion in transmitter_suggestions %}
<div class="col-md-4">
<div class="panel panel-{% if transmitter_suggestion.transmitter %}info{% else %}warning{% endif %} panel-transmitter">
<div class="panel-heading">
<h3 class="panel-title">
<span class="transmitter-title">{{ transmitter_suggestion.description }}</span>
<a type="button" href="{% url 'admin:base_transmittersuggestion_changelist' %}"
target="_blank" title="Edit on admin"
class="btn btn-default btn-sm pull-right suggest-transmitter">
<span class="glyphicon glyphicon-wrench" ></span>
</a>
</h3>
</div>
<div class="row panel-body">
<div class="col-md-12">
{% if transmitter_suggestion.description != transmitter_suggestion.transmitter.description %}
{% include "includes/field.html" with name="Description" value=transmitter_suggestion.description original=transmitter_suggestion.transmitter.description %}
{% endif %}
{% if transmitter_suggestion.status %}
{% include "includes/field.html" with name="Status" value=transmitter_suggestion.status original=transmitter_suggestion.transmitter.status %}
{% endif %}
{% if transmitter_suggestion.type %}
{% include "includes/field.html" with name="Type" value=transmitter_suggestion.type original=transmitter_suggestion.transmitter.type %}
{% endif %}
{% if transmitter_suggestion.service %}
{% include "includes/field.html" with name="Service" value=transmitter_suggestion.service original=transmitter_suggestion.transmitter.service %}
{% endif %}
{% if transmitter_suggestion.mode %}
{% include "includes/field.html" with name="Mode" value=transmitter_suggestion.mode original=transmitter_suggestion.transmitter.mode %}
{% endif %}
{% if transmitter_suggestion.invert %}
{% include "includes/field.html" with name="Invert" value=transmitter_suggestion.invert original=transmitter_suggestion.transmitter.invert %}
{% endif %}
{% if transmitter_suggestion.baud %}
{% include "includes/field.html" with name="Baud" value=transmitter_suggestion.baud original=transmitter_suggestion.transmitter.baud %}
{% endif %}
{% if transmitter_suggestion.uplink_low %}
{% include "includes/field.html" with name="Uplink Low" value=transmitter_suggestion.uplink_low original=transmitter_suggestion.transmitter.uplink_low hz=transmitter.uplink_low %}
{% endif %}
{% if transmitter_suggestion.uplink_high %}
{% include "includes/field.html" with name="Uplink High" value=transmitter_suggestion.uplink_high original=transmitter_suggestion.transmitter.uplink_high hz=transmitter.uplink_high %}
{% endif %}
{% if transmitter_suggestion.uplink_drift %}
{% include "includes/field.html" with name="Uplink Drift" value=transmitter_suggestion.uplink_drift original=transmitter_suggestion.transmitter.uplink_drift hz=transmitter.uplink_drift %}
{% endif %}
{% if transmitter_suggestion.downlink_low %}
{% include "includes/field.html" with name="Downlink Low" value=transmitter_suggestion.downlink_low original=transmitter_suggestion.transmitter.downlink_low hz=transmitter.downlink_low %}
{% endif %}
{% if transmitter_suggestion.downlink_high %}
{% include "includes/field.html" with name="Downlink High" value=transmitter_suggestion.downlink_high original=transmitter_suggestion.transmitter.downlink_high hz=transmitter.downlink_high %}
{% endif %}
{% if transmitter_suggestion.downlink_drift %}
{% include "includes/field.html" with name="Downlink Drift" value=transmitter_suggestion.downlink_drift original=transmitter_suggestion.transmitter.downlink_drift hz=transmitter.downlink_drift %}
{% endif %}
{% if transmitter_suggestion.citation %}
{% include "includes/field.html" with name="Citation" value=transmitter_suggestion.citation|urlizetrunc:35 original=transmitter_suggestion.transmitter.citation|urlizetrunc:35 %}
{% endif %}
</div>
</div>
</div>
</div>
{% if forloop.counter|divisibleby:3 %}
</div>
{% if not loop.last %}
<div class="row">
{% endif %}
{% endif %}
{% endfor %}
</div>
{% endif %}
</div>
</div>
</div>
</div>
</div>
<script id="telemetryDescriptorsTemplate" type="text/template">
<li class="list-group-item telemetry-key" data-key="<%- key %>" data-unit="<%- unit %>"><%- description %></li>
</script>
<!-- Data Structs Section -->
{% if satellite.telemetry_decoder_count %}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 satellite-panels">
<div class="panel panel-default panel-satellite">
<div class="panel-heading">
<div class="satellite-title" id="telemetry-block" data-satid="{{ satellite.norad_cat_id }}">
Data Decoding Structs
</div>
</div>
<div class="row panel-body">
<div class="col-md-12">
<div class="row">
{% for telemetry in satellite.telemetries.all %}
<div class="col-md-4">
<div class="panel panel-primary panel-transmitter">
<div class="panel-heading">
<h3 class="panel-title">
<span class="transmitter-title">{{ telemetry.name }}</span>
</h3>
</div>
<div class="row panel-body">
<div class="col-md-12">
{% include "includes/field.html" with name="Decoder Script" value=telemetry.decoder %}
<div class="row transmitter-element">
<div class="col-md-6">
<span class="label label-default">Decoder Struct</span>
</div>
<div class="col-md-6">
<a href="#" data-toggle="modal"
data-target="#StructModal-{{ telemetry.id }}">
Click here
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Struct Modal -->
<div class="modal fade" id="StructModal-{{ telemetry.id }}" tabindex="-1" role="dialog" aria-labelledby="StructModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="EditSuggestionModalLabel">Kaitai Struct for {{ telemetry.name }}</h4>
</div>
<div class="modal-body">
{% if not telemetry.schema == '' %}
<div class="kaitai-header">
See <a href="http://kaitai.io" target="_blank">kaitai.io</a> for more information on the format.
</div>
<div class="kaitai-struct">
<pre>{{ telemetry.schema }}</pre>
</div>
{% else %}
<div>
Struct format appears to be missing.
</div>
{% endif %}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
{% empty %}
<div class="row panel-body">
<div class="col-md-12">
<span class="text-danger">No data structs yet for this Satellite.</span>
</div>
</div>
{% endfor %}
</div>
</div>
</div>
</div>
</div>
</div>
{% endif %}
<!-- Telemetry Frames Section -->
<!-- This is a hacky way of getting around slow db queries. See #237 -->
{% for sat in sats_cache %}
{% if sat.norad_cat_id == satellite.norad_cat_id and sat.count != 0 %}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 satellite-panels">
<div class="panel panel-default panel-satellite">
<div class="panel-heading">
<div class="satellite-title" id="telemetry-block" data-satid="{{ satellite.norad_cat_id }}">
Telemetry (frames)
</div>
</div>
{% if request.user.is_authenticated %}
<div class="row panel-body">
<div class="panel-satellite chart">
<div class="col-md-3 panel-satellite">
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="glyphicon glyphicon-download"></span> Download <span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="{% url 'request_export_all' norad=satellite.norad_cat_id %}">Everything</a></li>
<li><a href="{% url 'request_export' norad=satellite.norad_cat_id period=1 %}">Last week</a></li>
<li><a href="{% url 'request_export' norad=satellite.norad_cat_id period=2 %}">Last month</a></li>
</ul>
</div>
</div>
</div>
</div>
{% endif %}
<div class="panel-footer">
<span class="badge">Frames: {{ sat.count }}</span>
Latest frame submitted on {{ latest_frame.timestamp|date:'Y-m-d H:i:s' }} by
{{ latest_frame.observer }}
</div>
</div>
</div>
</div>
{% endif %}
{% endfor %}
<!-- Transmitter Suggestion Modal -->
<div class="modal fade" id="NewSuggestionModal" tabindex="-1" role="dialog" aria-labelledby="NewSuggestionModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="NewSuggestionModalLabel">Suggest a new Transmitter</h4>
</div>
{% if request.user.is_authenticated %}
<form action="{% url 'transmitter_suggestion' %}" method="post" id="newtransmitter_suggestion-form">{% csrf_token %}
<div class="modal-body">
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Description</div>
<input type="text" class="form-control" name="description">
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Status</div>
<select class="form-control transmitter_suggestion-status" name="status">
{% for status in statuses %}
<option value="{{ status }}">
{{ status }}
</option>
{% endfor %}
</select>
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Type</div>
<select class="form-control transmitter_suggestion-type" name="type">
{% for type in types %}
<option value="{{ type }}">
{{ type }}
</option>
{% endfor %}
</select>
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Service</div>
<select class="form-control" name="service" required>
{% for service in services %}
<option value="{{ service }}">
{{ service }}
</option>
{% endfor %}
</select>
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Mode</div>
<select class="form-control" name="mode">
<option value="" selected></option>
{% for mode in modes %}
<option value="{{ mode.id }}">
{{ mode }}
</option>
{% endfor %}
</select>
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Uplink_Low</div>
<input type="number" class="form-control" name="uplink_low">
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Uplink High</div>
<input type="number" class="form-control" name="uplink_high">
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Uplink Drifted</div>
<input type="number" class="form-control uplink-drifted-sugedit" name="">
<div class="input-group-addon">PPB Drift</div>
<input type="text" class="form-control uplink-ppb-sugedit" name="uplink_drift" readonly>
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Downlink Low</div>
<input type="number" class="form-control" name="downlink_low">
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Downlink High</div>
<input type="number" class="form-control" name="downlink_high">
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Downlink Drifted</div>
<input type="number" class="form-control downlink-drifted-sugedit" name="" value="{{ transmitter.downlink_low|default_if_none:'' }}">
<div class="input-group-addon">PPB Drift</div>
<input type="text" class="form-control downlink-ppb-sugedit" name="downlink_drift" value="{{ transmitter.downlink_drift|default_if_none:'' }}" readonly>
</div>
<div class="input-group transmitter-element-suggest">
<input type="checkbox" value="1" name="invert"> Invert
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Baud Rate</div>
<input type="number" class="form-control" name="baud">
</div>
<div class="input-group transmitter-element-suggest">
<div class="input-group-addon">Citation URL</div>
<input type="text" class="form-control" name="citation" maxlength="255" required>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary">Send</button>
</div>
<input type="hidden" name="satellite" value="{{ satellite.pk }}">
</form>
{% else %}
<div class="modal-body">
<div class="text-danger">You need to login first to add a new transmitter suggestion.</div>
</div>
<div class="modal-footer">
<button class="btn btn-default" data-dismiss="modal">Close</button>
<a href="{% url 'account_login' %}" class="btn btn-primary">Log In</a>
</div>
{% endif %}
</div>
</div>
</div>
{% endblock %}
{% block javascript %}
<script src="{% static 'lib/moment/min/moment.min.js' %}"></script>
<script src="{% static 'lib/mapbox-gl/dist/mapbox-gl.js' %}"></script>
<script src="{% static 'lib/gpredict.js/dist/gpredict.min.js' %}"></script>
<script src="{% static 'js/map.js' %}"></script>
<script src="{% static 'js/satellite.js' %}"></script>
{% endblock %}