1
0
Fork 0

Merge pull request #53 from satnogs/ui-changes

Ui changes
merge-requests/55/head
Nikos Roussos 2015-09-09 10:55:58 +03:00
commit e019c704af
7 changed files with 189 additions and 177 deletions

View File

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
class Migration(migrations.Migration):
dependencies = [
('base', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='satellite',
name='image',
field=models.ImageField(help_text=b'Ideally: 250x250', upload_to=b'satellites', blank=True),
),
]

View File

@ -28,7 +28,8 @@ class Satellite(models.Model):
norad_cat_id = models.PositiveIntegerField()
name = models.CharField(max_length=45)
names = models.TextField(blank=True)
image = models.ImageField(upload_to='satellites', blank=True)
image = models.ImageField(upload_to='satellites', blank=True,
help_text='Ideally: 250x250')
class Meta:
ordering = ["name"]

View File

@ -131,6 +131,10 @@ body {
margin-top: 20px;
}
.panel-satellite > div {
margin-bottom: 10px;
}
.satellite-info {
min-height: 100px;
}
@ -160,7 +164,7 @@ a.satellite-item:hover {
.satellite-title {
font-weight: bold;
display: inline;
font-size: 1.2em;
}
.satellite-img {
@ -169,6 +173,11 @@ a.satellite-item:hover {
padding: 5px;
}
.satellite-img-full {
max-width: 245px;
border-radius: 5px;
}
.satellite-transmitters {
position: absolute;
bottom: 0px;
@ -182,23 +191,19 @@ a.satellite-item:hover {
}
.panel-transmitter {
margin-bottom: 20px;
margin: 20px 0px;
}
.panel-first {
margin-top: 20px;
}
.add-transmitter {
margin-top: -6px;
}
.suggest-transmitter {
margin-top: -6px;
}
.suggestions-counter {
margin-right: 10px;
display: inline-block;
}
.panel-transmitter > .panel-heading {
@ -212,7 +217,7 @@ a.satellite-item:hover {
}
.transmitter-element {
margin-bottom: 10px;
margin: 10px;
}
.transmitter-element-suggest {

View File

@ -8,7 +8,7 @@ $(document).ready(function() {
var t = $('input');
t.bind('propertychange keyup input paste', function(event) {
var term = t.val();
var term = t.val().toLowerCase();
if (term !== '') {
$('.satellite-group-item').hide();
var results = $.grep(items, function(e) {

View File

@ -47,7 +47,8 @@
{% block content %}
<div class="row sats">
{% for sat in satellites %}
<div class="col-md-4 col-sm-6 col-xs-12 satellite-group-item" data-selector="{{ sat.name|lower }}{{ sat.norad_cat_id }}{{ sat.names|lower }}">
<div class="col-md-4 col-sm-6 col-xs-12 satellite-group-item"
data-selector="{{ sat.name|lower }}{{ sat.norad_cat_id }}{{ sat.names|lower }}">
<a href="{% url 'satellite' norad=sat.norad_cat_id %}" class="satellite-item">
<div class="row">
<div class="col-xs-3">

View File

@ -10,184 +10,162 @@
<div class="row">
<div class="col-md-12 satellite-panels">
<div class="panel panel-default panel-satellite">
<div class="panel-heading">
<h3 class="panel-title">
<div class="row panel-body">
<div class="col-md-3 panel-satellite">
<div class="satellite-title">
<a href="{% url 'home' %}">Home</a></span> /
{{ satellite }}
</div>
<button type="button"
class="btn btn-default btn-sm pull-right add-transmitter"
data-toggle="modal" data-target="#NewSuggestionModal">
<span class="glyphicon glyphicon-plus" title="Suggest new transmitter"></span>
</button>
<div>
{{ satellite.names }}
</div>
<div>
<img src="{{ satellite.get_image }}" alt="{{ satellite.name }}" class="satellite-img-full">
</div>
{% if suggestions %}
<span class="suggestions-counter pull-right label label-primary">
<div class="suggestions-counter label label-primary">
{{ suggestions }} suggestion{{ suggestions|pluralize }} pending
</span>
</div>
{% endif %}
</h3>
</div>
{% for transmitter in satellite.transmitters.all %}
<div class="row panel-body">
<div class="col-md-12">
<div class="panel panel-default panel-transmitter {% if forloop.first %}panel-first{% endif %}">
<div class="panel-heading">
<h3 class="panel-title">
<span class="transmitter-title">{{ transmitter.description }}</span>
<button type="button"
class="btn btn-default btn-sm pull-right suggest-transmitter"
data-toggle="modal"
data-target="#EditSuggestionModal">
<span class="glyphicon glyphicon-edit" title="Suggest edits"></span>
</button>
</h3>
<div>
<button type="button"
class="btn btn-primary"
data-toggle="modal" data-target="#NewSuggestionModal">
Suggest New Transmitter
</button>
</div>
</div>
<div class="col-md-9">
<div class="row">
{% for transmitter in satellite.transmitters.all %}
<div class="col-md-6">
<div class="panel panel-default panel-transmitter">
<div class="panel-heading">
<h3 class="panel-title">
<span class="transmitter-title">{{ transmitter.description }}</span>
<button type="button"
class="btn btn-default btn-sm pull-right suggest-transmitter"
data-toggle="modal"
data-target="#EditSuggestionModal">
<span class="glyphicon glyphicon-edit" title="Suggest edits"></span>
</button>
</h3>
</div>
<div class="row panel-body">
<div class="col-md-12">
{% if transmitter.alive %}
{% include "includes/field.html" with name="Alive" value=transmitter.alive %}
{% endif %}
{% if transmitter.mode %}
{% include "includes/field.html" with name="Mode" value=transmitter.mode %}
{% endif %}
{% if transmitter.invert %}
{% include "includes/field.html" with name="Invert" value=transmitter.invert %}
{% endif %}
{% if transmitter.baud %}
{% include "includes/field.html" with name="Baud" value=transmitter.baud %}
{% endif %}
{% if transmitter.uplink_low %}
{% include "includes/field.html" with name="Uplink Low" value=transmitter.uplink_low|frq %}
{% endif %}
{% if transmitter.uplink_high %}
{% include "includes/field.html" with name="Uplink High" value=transmitter.uplink_high|frq %}
{% endif %}
{% if transmitter.downlink_low %}
{% include "includes/field.html" with name="Downlink Low" value=transmitter.downlink_low|frq %}
{% endif %}
{% if transmitter.downlink_high %}
{% include "includes/field.html" with name="Downlink High" value=transmitter.downlink_high|frq %}
{% endif %}
</div>
</div>
</div>
</div>
<!-- Edit Suggestion Modal -->
<div class="modal fade" id="EditSuggestionModal" 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 'suggestion' %}" method="post" id="editsuggestion-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" value="{{ transmitter.description }}">
</div>
<div class="input-group transmitter-element-suggest">
<input type="checkbox" value="1" name="alive" {% if transmitter.alive %}checked{% endif %}> Alive
</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">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">Mode</div>
<select class="form-control" name="mode">
{% for mode in modes %}
<option value="{{ mode }}" {% ifequal transmitter.mode mode %}selected{% endifequal %}>
{{ mode }}
</option>
{% endfor %}
</select>
</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" 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 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>
{% empty %}
<div class="row panel-body">
<div class="col-sm-3 col-xs-6">
<div class="transmitter-element">
<span class="label label-default">Alive</span>
</div>
<div class="transmitter-element">
<span class="label label-default">Mode</span>
</div>
<div class="transmitter-element">
<span class="label label-default">Invert</span>
</div>
<div class="transmitter-element">
<span class="label label-default">Baud</span>
</div>
</div>
<div class="col-sm-3 col-xs-6">
<div class="transmitter-element">
{{ transmitter.alive }}
</div>
<div class="transmitter-element">
{{ transmitter.mode|default:"-" }}
</div>
<div class="transmitter-element">
{{ transmitter.invert|default:"-" }}
</div>
<div class="transmitter-element">
{{ transmitter.baud|default:"-" }}
</div>
</div>
<div class="col-sm-3 col-xs-6">
<div class="transmitter-element">
<span class="label label-default">Uplink Low</span>
</div>
<div class="transmitter-element">
<span class="label label-default">Uplink High</span>
</div>
<div class="transmitter-element">
<span class="label label-default">Downlink Low</span>
</div>
<div class="transmitter-element">
<span class="label label-default">Downlink High</span>
</div>
</div>
<div class="col-sm-3 col-xs-6">
<div class="transmitter-element">
{{ transmitter.uplink_low|frq }}
</div>
<div class="transmitter-element">
{{ transmitter.uplink_high|frq }}
</div>
<div class="transmitter-element">
{{ transmitter.downlink_low|frq }}
</div>
<div class="transmitter-element">
{{ transmitter.downlink_high|frq }}
</div>
<div class="col-md-12">
<span class="text-danger">No approved transmitters yet for this Satellite.</span>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
<!-- Edit Suggestion Modal -->
<div class="modal fade" id="EditSuggestionModal" 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 'suggestion' %}" method="post" id="editsuggestion-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" value="{{ transmitter.description }}">
</div>
<div class="input-group transmitter-element-suggest">
<input type="checkbox" value="1" name="alive" {% if transmitter.alive %}checked{% endif %}> Alive
</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">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">Mode</div>
<select class="form-control" name="mode">
{% for mode in modes %}
<option value="{{ mode }}" {% ifequal transmitter.mode mode %}selected{% endifequal %}>
{{ mode }}
</option>
{% endfor %}
</select>
</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" 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 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>
{% 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>
</div>
</div>
</div>

View File

@ -0,0 +1,8 @@
<div class="row transmitter-element">
<div class="col-md-6">
<span class="label label-default">{{ name }}</span>
</div>
<div class="col-md-6">
{{ value }}
</div>
</div>