You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.8 KiB
67 lines
1.8 KiB
{% extends 'base.html' %} |
|
|
|
{% block app_content %} |
|
<meta name="csrf-token" content="{{ csrf_token() }}"> |
|
{% block player_app_content %}{% endblock %} |
|
{% endblock %} |
|
|
|
{% block scripts %} |
|
{{ super() }} |
|
<script> |
|
$(document).ready(sendLocation) |
|
|
|
function sendLocation(){ |
|
if (navigator.geolocation) { |
|
navigator.geolocation.getCurrentPosition(postCoordinates, showError); |
|
|
|
} else { |
|
console.log('Geolocation is not supported by this browser.') |
|
} |
|
} |
|
|
|
setInterval(function() {sendLocation()}, 65 * 1000); |
|
|
|
function postCoordinates(position) { |
|
$.ajax({ |
|
type: "POST", |
|
url: "{{ url_for('main.send_location', username=current_user.name) }}", |
|
data:{ |
|
lat: position.coords.latitude, |
|
long: position.coords.longitude |
|
}, |
|
|
|
error: function(error) { |
|
console.log(error); |
|
} |
|
}); |
|
} |
|
|
|
var csrftoken = $('meta[name=csrf-token]').attr('content') |
|
$.ajaxSetup({ |
|
beforeSend: function(xhr, settings) { |
|
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) { |
|
xhr.setRequestHeader("X-CSRFToken", csrftoken) |
|
} |
|
} |
|
}) |
|
|
|
function showError(error) { |
|
switch(error.code) { |
|
case error.PERMISSION_DENIED: |
|
console.log("User denied the request for Geolocation.") |
|
alert("Please refresh page and allow location sharing, otherwise the game won't work :'(") |
|
break; |
|
case error.POSITION_UNAVAILABLE: |
|
console.log("Location information is unavailable.") |
|
break; |
|
case error.TIMEOUT: |
|
console.log("The request to get user location timed out.") |
|
break; |
|
case error.UNKNOWN_ERROR: |
|
console.log("An unknown error occurred.") |
|
break; |
|
} |
|
} |
|
|
|
</script> |
|
{% endblock %} |