templates/debug/live.html.twig line 1

Open in your IDE?
  1. {% extends 'base.html.twig' %}
  2. {% block body %}
  3. <div class="page">
  4. <div class="container header-page">
  5. <div class="row animated fadeIn delay-0-2s mb-3 mb-lg-5 align-items-center header-button">
  6. <div class="col-6">
  7. <div class="">
  8. <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">
  9. <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"/>
  10. <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"/>
  11. </svg> Live</h2>
  12. </div>
  13. </div>
  14. <div class="col-6 text-right">
  15. <div class="link-right">
  16. <button class="btn btn-secondary link-i-see d-none">Recept</button>
  17. </div>
  18. </div>
  19. <div class="col-12">
  20. <hr></hr>
  21. </div>
  22. </div>
  23. </div>
  24. <div class="container">
  25. <div class="row">
  26. <div class="col-12 col-md-6 col-lg-4 mb-3 mb-lg-0 col-xl-3 animated fadeIn delay-0-2s">
  27. <div class="card text-center" id="current-position">
  28. <div class="card-header">
  29. Current position
  30. </div>
  31. {% if currentPosition %}
  32. <div class="card-body">
  33. <h5 class="card-title"><span class="value">{{ currentPosition.datePrinted|date("d-m-Y H:i:s") }}</span></h5>
  34. <ul class="list-group list-group-flush">
  35. <li class="list-group-item latitude">Latitude : <div class="value">{{ currentPosition.latitude }}</div></li>
  36. <li class="list-group-item longitude">Longitude : <div class="value">{{ currentPosition.longitude }}</div></li>
  37. <li class="list-group-item"><a href="/debug/information/position" class="btn btn-primary mt-3">Get last positions</a></li>
  38. </ul>
  39. </div>
  40. <div class="card-footer text-muted">
  41. <span class="value">{{ currentAgo|raw }}</span> ago
  42. </div>
  43. {% else %}
  44. <div class="text-center">No data</div>
  45. {% endif %}
  46. </div>
  47. </div>
  48. <div class="col-12 col-md-6 col-lg-4 mb-3 mb-lg-0 col-xl-3 animated fadeIn delay-0-2s">
  49. <div class="card text-center" id="current-hobit">
  50. <div class="card-header">
  51. Last hobit
  52. </div>
  53. {% if lastHobit %}
  54. <div class="card-body">
  55. <h5 class="card-title"><span class="value">{{ lastHobit.startDateTime|date("d-m-Y H:i:s") }}</span></h5>
  56. <ul class="list-group list-group-flush">
  57. <li class="list-group-item latitude">Latitude : <div class="value">{{ lastHobit.data.latitude }}</div></li>
  58. <li class="list-group-item longitude">Longitude : <div class="value">{{ lastHobit.data.longitude }}</div></li>
  59. <li class="list-group-item end">End (or now) : <div class="value">{{ lastHobit.endDateTime|date("d-m-Y H:i:s") }}</div></li>
  60. </ul>
  61. </div>
  62. <div class="card-footer text-muted">
  63. <span class="value">{{ currentHobitAgo|raw }}</span> ago
  64. </div>
  65. {% else %}
  66. <div class="text-center">No data</div>
  67. {% endif %}
  68. </div>
  69. </div>
  70. <div class="col-12 col-md-6 col-lg-4 mb-3 mb-lg-0 col-xl-3 ">
  71. {% if newHobitAgo == false %}
  72. <div class="card text-center d-none animated fadeIn delay-0-2s" id="new-hobit">
  73. {% else %}
  74. <div class="card text-center animated fadeIn delay-0-2s" id="new-hobit">
  75. {% endif %}
  76. <div class="card-header">
  77. Scan hobit
  78. </div>
  79. <div class="card-body">
  80. <h5 class="card-title">
  81. <span class="value">
  82. {% if lastHobit %}
  83. Since {{ lastHobit.endDateTime|date("d-m-Y H:i:s") }}
  84. {% endif %}
  85. </span></h5>
  86. <div class="loader mt-lg-4">
  87. <div class="spinner-grow text-primary" role="status">
  88. <span class="visually-hidden">Loading...</span>
  89. </div>
  90. </div>
  91. </div>
  92. <div class="card-footer text-muted">
  93. <span class="value">{{ newHobitAgo|raw }}</span> ago
  94. </div>
  95. </div>
  96. </div>
  97. </div>
  98. <div class="row mt-5">
  99. <div class="col-12">
  100. <h3 class="mb-3 animated fadeIn delay-0-2s">Last positions</h3>
  101. </div>
  102. </div>
  103. <div class="row">
  104. {% if positionGpsList %}
  105. {% set i = 1 %}
  106. {% set number = 1 %}
  107. {% for positionGps in positionGpsList %}
  108. <div class="col-12 col-md-6 col-lg-4 mb-3 mb-lg-5">
  109. <div class="card animated fadeIn delay-0-{{ i }}s" style="width: 100%;">
  110. <div class="card-body">
  111. <h5 class="card-title"><b>Position <span class="value">{{ number }}</span></b></h5>
  112. <div class="card-text line mb-1"><b>Date application : </b>{{ positionGps.datePrinted|date("d-m-Y H:i:s") }}</div>
  113. <div class="card-text line mb-1"><b>Date server : </b>{{ positionGps.dateCreatedByServer|date("d-m-Y H:i:s") }}</div>
  114. <div class="card-text line mb-1"><b>Latitude : </b>{{ positionGps.latitude }}</div>
  115. <div class="card-text line mb-1"><b>Longitude : </b>{{ positionGps.longitude }}</div>
  116. <a href="/debug/information/positions/{{ positionGps.datePrinted|date("Y-m-d") }}" class="btn btn-primary mt-3">All positions</a>
  117. </div>
  118. </div>
  119. </div>
  120. {% set i = i + 1 %}
  121. {% set number = number + 1 %}
  122. {% endfor %}
  123. {% else %}
  124. <div class="text-center animated fadeIn delay-0-4s" style="font-size: 30px;">No data...</div>
  125. {% endif %}
  126. </div>
  127. </div>
  128. </div>
  129. {% endblock %}
  130. {% block javascripts %}
  131. {{ parent() }}
  132. <script>
  133. window.onload=function() {
  134. var boucle = 1;
  135. setInterval(function(){
  136. $.get(
  137. '{{ path("information_live_refresh_debug") }}',
  138. {
  139. },
  140. function(data){
  141. if(data['data']['dataHere']){
  142. if(data['data']['currentPostition']['start'] != $("body #current-position .card-title .value").html()){
  143. $(".icon-network").removeClass("active");
  144. $(".icon-network").addClass("active");
  145. $(".link-i-see").removeClass("d-none");
  146. const soundEffect = new Audio();
  147. // onClick of first interaction on page before I need the sounds
  148. soundEffect.play();
  149. // later on when you actually want to play a sound at any point without user interaction
  150. soundEffect.src = '/alert.mp3';
  151. soundEffect.play();
  152. }
  153. //Current position
  154. $("body #current-position .card-title .value").html(data['data']['currentPostition']['start']);
  155. $("body #current-position .latitude .value").html(data['data']['currentPostition']['latitude']);
  156. $("body #current-position .longitude .value").html(data['data']['currentPostition']['longitude']);
  157. $("body #current-position .card-footer .value").html(data['data']['currentAgo']);
  158. //Current hobit
  159. $("body #current-hobit .card-title .value").html(data['data']['lastHobit']['start']);
  160. $("body #current-hobit .latitude .value").html(data['data']['lastHobit']['latitude']);
  161. $("body #current-hobit .longitude .value").html(data['data']['lastHobit']['longitude']);
  162. $("body #current-hobit .end .value").html(data['data']['lastHobit']['end']);
  163. $("body #current-hobit .card-footer .value").html(data['data']['currentHobitAgo']);
  164. //Current hobit
  165. if(data['data']['newHobitAgo'] != false){
  166. $("body #new-hobit .card-title .value").html(data['data']['currentPostition']['start']);
  167. $("body #new-hobit .card-footer .value").html(data['data']['newHobitAgo']);
  168. $("body #new-hobit").removeClass("d-none");
  169. }
  170. else{
  171. $("body #new-hobit").addClass("d-none");
  172. }
  173. }
  174. }
  175. );
  176. }, 1000);
  177. };
  178. $("body").on("click", ".link-i-see", function(){
  179. $(this).addClass("d-none");
  180. $(".icon-network").removeClass("active");
  181. });
  182. </script>
  183. {% endblock %}