{% extends 'base.html.twig' %}{% block body %}<div class="page"><div class="container header-page"><div class="row animated fadeIn delay-0-2s mb-3 mb-lg-5 align-items-center header-button"><div class="col-6"><div class=""><h2><svg class="icon-network" style="width: 27px; position: relative; top: -5px;" xmlns="http://www.w3.org/2000/svg" width="35" height="27" fill="currentColor" class="bi bi-wifi" viewBox="0 0 16 16"><path d="M15.384 6.115a.485.485 0 0 0-.047-.736A12.444 12.444 0 0 0 8 3C5.259 3 2.723 3.882.663 5.379a.485.485 0 0 0-.048.736.518.518 0 0 0 .668.05A11.448 11.448 0 0 1 8 4c2.507 0 4.827.802 6.716 2.164.205.148.49.13.668-.049z"/><path d="M13.229 8.271a.482.482 0 0 0-.063-.745A9.455 9.455 0 0 0 8 6c-1.905 0-3.68.56-5.166 1.526a.48.48 0 0 0-.063.745.525.525 0 0 0 .652.065A8.46 8.46 0 0 1 8 7a8.46 8.46 0 0 1 4.576 1.336c.206.132.48.108.653-.065zm-2.183 2.183c.226-.226.185-.605-.1-.75A6.473 6.473 0 0 0 8 9c-1.06 0-2.062.254-2.946.704-.285.145-.326.524-.1.75l.015.015c.16.16.407.19.611.09A5.478 5.478 0 0 1 8 10c.868 0 1.69.201 2.42.56.203.1.45.07.61-.091l.016-.015zM9.06 12.44c.196-.196.198-.52-.04-.66A1.99 1.99 0 0 0 8 11.5a1.99 1.99 0 0 0-1.02.28c-.238.14-.236.464-.04.66l.706.706a.5.5 0 0 0 .707 0l.707-.707z"/></svg> Live</h2></div></div><div class="col-6 text-right"><div class="link-right"><button class="btn btn-secondary link-i-see d-none">Recept</button></div></div><div class="col-12"><hr></hr></div></div></div><div class="container"><div class="row"><div class="col-12 col-md-6 col-lg-4 mb-3 mb-lg-0 col-xl-3 animated fadeIn delay-0-2s"><div class="card text-center" id="current-position"><div class="card-header">Current position</div>{% if currentPosition %}<div class="card-body"><h5 class="card-title"><span class="value">{{ currentPosition.datePrinted|date("d-m-Y H:i:s") }}</span></h5><ul class="list-group list-group-flush"><li class="list-group-item latitude">Latitude : <div class="value">{{ currentPosition.latitude }}</div></li><li class="list-group-item longitude">Longitude : <div class="value">{{ currentPosition.longitude }}</div></li><li class="list-group-item"><a href="/debug/information/position" class="btn btn-primary mt-3">Get last positions</a></li></ul></div><div class="card-footer text-muted"><span class="value">{{ currentAgo|raw }}</span> ago</div>{% else %}<div class="text-center">No data</div>{% endif %}</div></div><div class="col-12 col-md-6 col-lg-4 mb-3 mb-lg-0 col-xl-3 animated fadeIn delay-0-2s"><div class="card text-center" id="current-hobit"><div class="card-header">Last hobit</div>{% if lastHobit %}<div class="card-body"><h5 class="card-title"><span class="value">{{ lastHobit.startDateTime|date("d-m-Y H:i:s") }}</span></h5><ul class="list-group list-group-flush"><li class="list-group-item latitude">Latitude : <div class="value">{{ lastHobit.data.latitude }}</div></li><li class="list-group-item longitude">Longitude : <div class="value">{{ lastHobit.data.longitude }}</div></li><li class="list-group-item end">End (or now) : <div class="value">{{ lastHobit.endDateTime|date("d-m-Y H:i:s") }}</div></li></ul></div><div class="card-footer text-muted"><span class="value">{{ currentHobitAgo|raw }}</span> ago</div>{% else %}<div class="text-center">No data</div>{% endif %}</div></div><div class="col-12 col-md-6 col-lg-4 mb-3 mb-lg-0 col-xl-3 ">{% if newHobitAgo == false %}<div class="card text-center d-none animated fadeIn delay-0-2s" id="new-hobit">{% else %}<div class="card text-center animated fadeIn delay-0-2s" id="new-hobit">{% endif %}<div class="card-header">Scan hobit</div><div class="card-body"><h5 class="card-title"><span class="value">{% if lastHobit %}Since {{ lastHobit.endDateTime|date("d-m-Y H:i:s") }}{% endif %}</span></h5><div class="loader mt-lg-4"><div class="spinner-grow text-primary" role="status"><span class="visually-hidden">Loading...</span></div></div></div><div class="card-footer text-muted"><span class="value">{{ newHobitAgo|raw }}</span> ago</div></div></div></div><div class="row mt-5"><div class="col-12"><h3 class="mb-3 animated fadeIn delay-0-2s">Last positions</h3></div></div><div class="row">{% if positionGpsList %}{% set i = 1 %}{% set number = 1 %}{% for positionGps in positionGpsList %}<div class="col-12 col-md-6 col-lg-4 mb-3 mb-lg-5"><div class="card animated fadeIn delay-0-{{ i }}s" style="width: 100%;"><div class="card-body"><h5 class="card-title"><b>Position <span class="value">{{ number }}</span></b></h5><div class="card-text line mb-1"><b>Date application : </b>{{ positionGps.datePrinted|date("d-m-Y H:i:s") }}</div><div class="card-text line mb-1"><b>Date server : </b>{{ positionGps.dateCreatedByServer|date("d-m-Y H:i:s") }}</div><div class="card-text line mb-1"><b>Latitude : </b>{{ positionGps.latitude }}</div><div class="card-text line mb-1"><b>Longitude : </b>{{ positionGps.longitude }}</div><a href="/debug/information/positions/{{ positionGps.datePrinted|date("Y-m-d") }}" class="btn btn-primary mt-3">All positions</a></div></div></div>{% set i = i + 1 %}{% set number = number + 1 %}{% endfor %}{% else %}<div class="text-center animated fadeIn delay-0-4s" style="font-size: 30px;">No data...</div>{% endif %}</div></div></div>{% endblock %}{% block javascripts %}{{ parent() }}<script>window.onload=function() {var boucle = 1;setInterval(function(){$.get('{{ path("information_live_refresh_debug") }}',{},function(data){if(data['data']['dataHere']){if(data['data']['currentPostition']['start'] != $("body #current-position .card-title .value").html()){$(".icon-network").removeClass("active");$(".icon-network").addClass("active");$(".link-i-see").removeClass("d-none");const soundEffect = new Audio();// onClick of first interaction on page before I need the soundssoundEffect.play();// later on when you actually want to play a sound at any point without user interactionsoundEffect.src = '/alert.mp3';soundEffect.play();}//Current position$("body #current-position .card-title .value").html(data['data']['currentPostition']['start']);$("body #current-position .latitude .value").html(data['data']['currentPostition']['latitude']);$("body #current-position .longitude .value").html(data['data']['currentPostition']['longitude']);$("body #current-position .card-footer .value").html(data['data']['currentAgo']);//Current hobit$("body #current-hobit .card-title .value").html(data['data']['lastHobit']['start']);$("body #current-hobit .latitude .value").html(data['data']['lastHobit']['latitude']);$("body #current-hobit .longitude .value").html(data['data']['lastHobit']['longitude']);$("body #current-hobit .end .value").html(data['data']['lastHobit']['end']);$("body #current-hobit .card-footer .value").html(data['data']['currentHobitAgo']);//Current hobitif(data['data']['newHobitAgo'] != false){$("body #new-hobit .card-title .value").html(data['data']['currentPostition']['start']);$("body #new-hobit .card-footer .value").html(data['data']['newHobitAgo']);$("body #new-hobit").removeClass("d-none");}else{$("body #new-hobit").addClass("d-none");}}});}, 1000);};$("body").on("click", ".link-i-see", function(){$(this).addClass("d-none");$(".icon-network").removeClass("active");});</script>{% endblock %}