Browse Source

fix some map zooming issues

testing
Burathar 4 years ago
parent
commit
520847904e
  1. 78
      app/templates/base.html
  2. 15
      app/templates/game_bunny_dashboard.html
  3. 128
      app/templates/game_hunter_dashboard.html
  4. 10
      app/templates/game_owner_dashboard.html
  5. 1
      app/templates/game_player.html

78
app/templates/base.html

@ -11,52 +11,56 @@
{% block navbar %} {% block navbar %}
<nav class="navbar navbar-default"> <nav class="navbar navbar-default">
<div class="container"> <div class="container">
<div class="navbar-header"> <div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
<span class="sr-only">Toggle navigation</span> data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="icon-bar"></span> <span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
</button> <span class="icon-bar"></span>
<a class="navbar-brand" href="{{ url_for('main.index') }}">The Hunt</a> </button>
<a class="navbar-brand" href="{{ url_for('main.index') }}">The Hunt</a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="{{ url_for('main.index') }}">Home</a></li>
{% if current_user.is_authenticated %}
<li><a href="{{ url_for('main.create_game') }}">Create Game</a></li>
{% endif %}
</ul>
<ul class="nav navbar-nav navbar-right">
{% if current_user.is_anonymous %}
<li><a href="{{ url_for('auth.login') }}">Login</a></li>
{% else %}
<li><a href="{{ url_for('main.user_profile', username=current_user.name) }}">
<div class="hidden-xs hidden-sm">
{{ current_user.name }}{% if game is defined %}/{{ game.name }}{% endif %}</div>
</a></li>
<li><a href="{{ url_for('auth.logout') }}">Logout</a></li>
{% endif %}
</ul>
</div>
</div> </div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="{{ url_for('main.index') }}">Home</a></li>
{% if current_user.is_authenticated %}
<li><a href="{{ url_for('main.create_game') }}">Create Game</a></li>
{% endif %}
</ul>
<ul class="nav navbar-nav navbar-right">
{% if current_user.is_anonymous %}
<li><a href="{{ url_for('auth.login') }}">Login</a></li>
{% else %}
<li><a href="{{ url_for('main.user_profile', username=current_user.name) }}"><div class="hidden-xs hidden-sm">{{ current_user.name }}{% if game is defined %}/{{ game.name }}{% endif %}</div></a></li>
<li><a href="{{ url_for('auth.logout') }}">Logout</a></li>
{% endif %}
</ul>
</div>
</div>
</nav> </nav>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div class="container"> <div class="container">
{% with messages = get_flashed_messages() %} {% with messages = get_flashed_messages() %}
{% if messages %} {% if messages %}
{% for message in messages %} {% for message in messages %}
<div class="alert alert-info" role="alert">{{ message }}</div> <div class="alert alert-info" role="alert">{{ message }}</div>
{% endfor %} {% endfor %}
{% endif %} {% endif %}
{% endwith %} {% endwith %}
{# application content needs to be provided in the app_content block #} {# application content needs to be provided in the app_content block #}
{% block app_content %}{% endblock %} {% block app_content %}{% endblock %}
</div> </div>
{% endblock %} {% endblock %}
{% block scripts %} {% block scripts %}
{{ super() }} {{ super() }}
{{ moment.include_moment() }} {{ moment.include_moment() }}
{% endblock %} {% endblock %}

15
app/templates/game_bunny_dashboard.html

@ -60,21 +60,22 @@
<script type="text/javascript", crossorigin="anonymous"> <script type="text/javascript", crossorigin="anonymous">
// Leaflet Map // Leaflet Map
map = getMap() map = getMap()
markers = []
var string = '{{ current_user.player_in(game).encode_objectives() |safe }}' var objectives = JSON.parse('{{ current_user.player_in(game).encode_objectives() |safe }}')
var objectives = JSON.parse(string)
for (var i = 0; i < objectives.length; i++){ for (var i = 0; i < objectives.length; i++){
addObjectiveMarker(map, objectives[i]) addObjectiveMarker(map, objectives[i])
markers.push([objectives[i].latitude, objectives[i].longitude])
} }
var self = JSON.parse('{{ json.dumps(current_user.last_location(game), cls=location_encoder)|safe }}') var self = JSON.parse('{{ json.dumps(current_user.last_location(), cls=location_encoder)|safe }}')
if (self){ if (self){
addPlayerMarker(map, self) addPlayerMarker(map, self)
markers.push([self.latitude, self.longitude])
} }
map.fitBounds( if (markers.length > 0) {
objectives.map(o => [o.latitude, o.longitude]).concat([self].map(p => [p.latitude, p.longitude])) map.fitBounds(markers);
); }
</script> </script>
{% endblock %} {% endblock %}

128
app/templates/game_hunter_dashboard.html

@ -9,81 +9,91 @@
{% block player_app_content %} {% block player_app_content %}
<div class="row"> <div class="row">
<div class="col-xs-0 col-md-1"></div> <div class="col-xs-0 col-md-1"></div>
<div class="col-xs-12 col-md-7"> <div class="col-xs-12 col-md-7">
<h2>Bunnies</h2> <h2>Bunnies</h2>
<div class="table"> <div class="table">
<table class="table"> <table class="table">
<thead> <thead>
<tr> <tr>
<th scope="col">Player Name</th> <th scope="col">Player Name</th>
<th scope="col">Times Caught</th> <th scope="col">Times Caught</th>
<th scope="col">Last location</th> <th scope="col">Last location</th>
<th scope="col"></th> <th scope="col"></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% set player = current_user.player_in(game) %} {% set player = current_user.player_in(game) %}
{% for bunny in game.bunnies() %} {% for bunny in game.bunnies() %}
<tr> <tr>
<td>{{ bunny.user.name }}</td> <td>{{ bunny.user.name }}</td>
<td><span style="color:green;">{{ bunny.player_caught_by_players | selectattr('catching_player', '==', player) | selectattr('review.name', '==', 'accepted') |list|length}}</span> / <td><span
<span style="color:red;">{{ bunny.player_caught_by_players | selectattr('catching_player', '==', player) | selectattr('review.name', '==', 'denied') |list|length}}</span> / style="color:green;">{{ bunny.player_caught_by_players | selectattr('catching_player', '==', player) | selectattr('review.name', '==', 'accepted') |list|length}}</span>
<span style="color:gray;">{{ bunny.player_caught_by_players | selectattr('catching_player', '==', player) | selectattr('review.name', '==', 'none') |list|length}}</span> /
</td> <span
<td>{% with location = bunny.last_location(offset=hunter_delay) %} style="color:red;">{{ bunny.player_caught_by_players | selectattr('catching_player', '==', player) | selectattr('review.name', '==', 'denied') |list|length}}</span>
{% if location %}{{ moment(location.timestamp).fromNow()}} /
{% else %} <span
{{ location }} style="color:gray;">{{ bunny.player_caught_by_players | selectattr('catching_player', '==', player) | selectattr('review.name', '==', 'none') |list|length}}</span>
{% endif %} </td>
{% endwith %}</td> <td>{% with location = bunny.last_location(offset=hunter_delay) %}
<td> {% if location %}{{ moment(location.timestamp).fromNow()}}
<a href="{{ url_for('main.catch_bunny', game_name=game.name, bunny_name=bunny.user.name) }}"> {% else %}
<button class="btn btn-success btn-sm">Catch</button> {{ location }}
</a> {% endif %}
</td> {% endwith %}</td>
</tr> <td>
{% endfor %} <a
</tbody> href="{{ url_for('main.catch_bunny', game_name=game.name, bunny_name=bunny.user.name) }}">
</table> <button class="btn btn-success btn-sm">Catch</button>
<span style="font-size: smaller;"> </a>
(<span style="color:green;">Accepted</span>/<span style="color:red;">Denied</span>/<span style="color:gray;">Not reviewed</span>) </td>
</span> </tr>
{% endfor %}
</tbody>
</table>
<span style="font-size: smaller;">
(<span style="color:green;">Accepted</span>/<span style="color:red;">Denied</span>/<span
style="color:gray;">Not
reviewed</span>)
</span>
</div>
</div>
<div class="col-xs-12 col-md-3">
{% include '_game_player_info.html' %}
</div> </div>
</div>
<div class="col-xs-12 col-md-3">
{% include '_game_player_info.html' %}
</div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-xs-1 col-md-1"></div> <div class="col-xs-1 col-md-1"></div>
<div id="map" style=" height: 500px; border-radius: 10px; " class="col-xs-10 col-md-10"></div> <div id="map" style=" height: 500px; border-radius: 10px; " class="col-xs-10 col-md-10"></div>
<div class="col-xs-1 col-md-1"></div> <div class="col-xs-1 col-md-1"></div>
</div> </div>
{% endblock %} {% endblock %}
{% block scripts %} {% block scripts %}
{{ super() }} {{ super() }}
<script type="text/javascript", crossorigin="anonymous"> <script type="text/javascript" , crossorigin="anonymous">
// Leaflet Map // Leaflet Map
map = getMap() map = getMap()
markers = []
var bunnies = JSON.parse('{{ json.dumps(game.last_locations(game.bunnies(), offset=hunter_delay), cls=location_encoder)|safe }}') var bunnies = JSON.parse(
for (var i = 0; i < bunnies.length; i++){ '{{ json.dumps(game.last_locations(game.bunnies(), offset=hunter_delay), cls=location_encoder)|safe }}')
for (var i = 0; i < bunnies.length; i++) {
addPlayerMarker(map, bunnies[i]) addPlayerMarker(map, bunnies[i])
markers.push([bunnies[i].latitude, bunnies[i].longitude])
} }
var self = JSON.parse('{{ json.dumps(current_user.last_location(game), cls=location_encoder)|safe }}') var self = JSON.parse('{{ json.dumps(current_user.last_location(), cls=location_encoder)|safe }}')
if (self){ if (self) {
addPlayerMarker(map, self, greenPlayerIcon) addPlayerMarker(map, self, greenPlayerIcon)
markers.push([self.latitude, self.longitude])
}
if (markers.length > 0) {
map.fitBounds(markers);
} }
map.fitBounds(
bunnies.map(o => [o.latitude, o.longitude]).concat([self].map(p => [p.latitude, p.longitude]))
);
</script> </script>
{% endblock %} {% endblock %}

10
app/templates/game_owner_dashboard.html

@ -101,21 +101,23 @@
<script type="text/javascript", crossorigin="anonymous"> <script type="text/javascript", crossorigin="anonymous">
// Leaflet Map // Leaflet Map
map = getMap() map = getMap()
markers = []
var objectives = JSON.parse('{{ json.dumps(game.objectives, cls=objective_encoder)|safe }}') var objectives = JSON.parse('{{ json.dumps(game.objectives, cls=objective_encoder)|safe }}')
for (var i = 0; i < objectives.length; i++){ for (var i = 0; i < objectives.length; i++){
addObjectiveMarker(map, objectives[i]) addObjectiveMarker(map, objectives[i])
markers.push([objectives[i].latitude, objectives[i].longitude])
} }
var players = JSON.parse('{{ json.dumps(game.last_player_locations(), cls=location_encoder)|safe }}') var players = JSON.parse('{{ json.dumps(game.last_player_locations(), cls=location_encoder)|safe }}')
for (var i = 0; i < players.length; i++){ for (var i = 0; i < players.length; i++){
addPlayerMarker(map, players[i]) addPlayerMarker(map, players[i])
markers.push([players[i].latitude, players[i].longitude])
} }
map.fitBounds( if (markers.length > 0) {
objectives.map(o => [o.latitude, o.longitude]).concat(players.map(p => [p.latitude, p.longitude])) map.fitBounds(markers);
); }
//Delete Game button //Delete Game button
function deleteGame() { function deleteGame() {

1
app/templates/game_player.html

@ -75,7 +75,6 @@
{{ super() }} {{ super() }}
<script type="text/javascript" , crossorigin="anonymous"> <script type="text/javascript" , crossorigin="anonymous">
// Leaflet Map // Leaflet Map
'{% set last_location = player.last_location() %}'
map = getMap() map = getMap()
var locations = JSON.parse('{{ json.dumps(player.locations_during_game(), cls=location_encoder)|safe }}') var locations = JSON.parse('{{ json.dumps(player.locations_during_game(), cls=location_encoder)|safe }}')

Loading…
Cancel
Save