templates/weather/index.html.twig line 1

  1. {% extends 'base.html.twig' %}
  2. {% block title %}
  3.     Weather
  4.     {% if CompanyDetailsService is not null %}
  5.         : {{ CompanyDetailsService.getCompanyDetails.weatherLocation }}
  6.     {% endif %}
  7. {% endblock %}
  8. {% block body %}
  9.     <div class="row">
  10.         <div class="col-10">
  11.             <h1 style="color: red">
  12.                 Weather{% if CompanyDetailsService is not null %}: {{ CompanyDetailsService.getCompanyDetails.weatherLocation }}
  13.                 {% endif %}
  14.             </h1>
  15.         </div>
  16.         <div class="col-2" style="white-space: nowrap">
  17.             {% if CompanyDetailsService.companyDetails.weatherLastScraped is not null %}
  18.                Updated: {{ CompanyDetailsService.companyDetails.weatherLastScraped|date('d-M-y H:i') }}
  19.             {% else %}
  20.                 TBA
  21.             {% endif %}
  22.         </div>
  23.     </div>
  24.     {% include 'weather/parts/update_and_delete_buttons.html.twig' %}
  25.     {% set grouped = {} %}
  26.     {% for w in weather %}
  27.         {% if w.date > today %}
  28.             {% set dayKey = w.date|date('Y-m-d') %}
  29.             {% if grouped[dayKey] is not defined %}
  30.                 {% set grouped = grouped|merge({ (dayKey): [w] }) %}
  31.             {% else %}
  32.                 {% set grouped = grouped|merge({ (dayKey): grouped[dayKey]|merge([w]) }) %}
  33.             {% endif %}
  34.         {% endif %}
  35.     {% endfor %}
  36.     {% for date, dayWeather in grouped %}
  37.         {% if selectedDate is empty or selectedDate == date %}
  38.             <h3>{{ date|date("l, d M Y") }}</h3>
  39.             <table class="table table-responsive small">
  40.                 <thead>
  41.                 <tr>
  42.                     <th>Time</th>
  43.                     <th>Sun/<br>Rain</th>
  44.                     <th>Rainfall</th>
  45.                     <th>Temp</th>
  46.                 </tr>
  47.                 </thead>
  48.                 <tbody>
  49.                 {% for weather in dayWeather %}
  50.                     <tr>
  51.                         <td data-sort="{{ weather.time }}" style="text-align: right">{{ weather.time }}:00h</td>
  52.                         <td style="text-align: center">
  53.                             {% if weather.rain is not empty %}
  54.                                 <i class="fas fa-cloud-rain" style="color: blue"></i>
  55.                             {% else %}
  56.                                 <i class="fa fa-sun-o" style="color: orange"></i>
  57.                             {% endif %}
  58.                         </td>
  59.                         <td style="text-align: left">
  60.                             {% if weather.rain is not empty %}
  61.                                 {{ weather.rain |number_format(2, '.', ',') }}mm/hr
  62.                             {% endif %}
  63.                         </td>
  64.                         <td style="text-align: right">
  65.                             {{ weather.weather|number_format(0, '.', ',') }} °C
  66.                         </td>
  67.                     </tr>
  68.                 {% endfor %}
  69.                 </tbody>
  70.             </table>
  71.         {% endif %}
  72.     {% else %}
  73.         <br>
  74.         <br>
  75.         <br>
  76.         <br>
  77.         <br>
  78.         <br>
  79.         <br>
  80.         <p>No weather data available.</p>
  81.     {% endfor %}
  82. {% endblock %}
  83. {% block datatable %}
  84.     <script>
  85.         $(document).ready(function () {
  86.             $('.table').DataTable({
  87.                 'pageLength': 100,
  88.                 "order": [[0, 'asc']],
  89.                 "paging": false,
  90.                 "searching": false,
  91.                 "bInfo": false
  92.             });
  93.         });
  94.     </script>
  95. {% endblock %}