2023-07-24 20:56:46 +02:00
|
|
|
{% import "includes/macros" as macros %}
|
|
|
|
|
|
|
|
{% extends "base" %}
|
|
|
|
|
|
|
|
{% block content %}
|
|
|
|
|
|
|
|
|
2023-12-23 15:26:49 +01:00
|
|
|
<div class="max-w-screen-lg w-full">
|
|
|
|
<h1 class="h1">
|
|
|
|
Statistik
|
|
|
|
<select
|
|
|
|
id="yearSelect"
|
|
|
|
onchange="changeYear()"
|
|
|
|
style="
|
|
|
|
background: transparent;
|
|
|
|
background-image: none;
|
|
|
|
text-decoration: underline;
|
|
|
|
"
|
|
|
|
></select>
|
|
|
|
</h1>
|
|
|
|
<div class="search-wrapper">
|
|
|
|
<label for="name" class="sr-only">Suche</label>
|
|
|
|
<input
|
|
|
|
type="search"
|
|
|
|
name="name"
|
|
|
|
id="filter-js"
|
|
|
|
class="search-bar"
|
|
|
|
placeholder="Suchen nach Namen..."
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div id="filter-result-js" class="search-result"></div>
|
|
|
|
|
|
|
|
<div class="border-r border-l border-gray-200 dark:border-primary-600">
|
|
|
|
{% set_global km = 0 %} {% set_global index = 1 %} {% for s in stat %}
|
|
|
|
<div
|
|
|
|
class="border-t border-gray-200 dark:border-primary-600 {% if loop.last %} border-b {% endif %} bg-white dark:bg-primary-900 text-black dark:text-white flex justify-between items-center px-3 py-1"
|
|
|
|
data-filterable="true"
|
|
|
|
data-filter="{{ s.name }}"
|
|
|
|
>
|
|
|
|
<span class="text-sm text-gray-600 dark:text-gray-100 w-10">
|
|
|
|
{% if km != s.rowed_km %}
|
|
|
|
{{ loop.index }}
|
|
|
|
{% set_global index = loop.index %} {% else %}
|
|
|
|
{{ index }}
|
|
|
|
{% endif %}
|
|
|
|
</span>
|
|
|
|
<span class="grow">{{ s.name }}</span>
|
|
|
|
<span>{{ s.rowed_km }} km</span>
|
|
|
|
|
|
|
|
{% set_global km = s.rowed_km %}
|
2023-09-28 11:52:14 +02:00
|
|
|
</div>
|
2023-12-23 15:26:49 +01:00
|
|
|
{% endfor %}
|
|
|
|
<div
|
|
|
|
class="border-t border-gray-200 dark:border-primary-600 {% if loop.last %} border-b {% endif %} bg-white dark:bg-primary-900 text-black dark:text-white flex justify-between items-center px-3 py-1"
|
|
|
|
data-filterable="true"
|
|
|
|
data-filter="{{ guest_km.name }}"
|
|
|
|
>
|
|
|
|
<span class="text-sm text-gray-600 dark:text-gray-100 w-10">
|
|
|
|
</span>
|
|
|
|
<span class="grow">{{ guest_km.name }}</span>
|
|
|
|
<span>{{ guest_km.rowed_km }} km</span>
|
2023-09-28 11:52:14 +02:00
|
|
|
|
2023-12-23 15:26:49 +01:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div id="container" class="w-full"></div>
|
|
|
|
</div>
|
2023-10-01 13:40:36 +02:00
|
|
|
|
2023-10-01 15:39:30 +02:00
|
|
|
<script>
|
2023-10-01 20:50:23 +02:00
|
|
|
{% if personal %}
|
2023-10-01 14:19:23 +02:00
|
|
|
const data = [
|
2023-10-01 14:35:04 +02:00
|
|
|
{%- for p in personal %}
|
|
|
|
{ date: '{{p.date}}', km: {{p.km}} },
|
|
|
|
{%- endfor %}
|
2023-10-01 15:39:30 +02:00
|
|
|
]
|
2023-10-01 18:41:20 +02:00
|
|
|
sessionStorage.setItem('userStats', JSON.stringify(data));
|
2023-10-01 20:50:23 +02:00
|
|
|
{% endif %}
|
2023-11-20 17:52:10 +01:00
|
|
|
|
|
|
|
function getYearFromURL() {
|
|
|
|
var queryParams = new URLSearchParams(window.location.search);
|
|
|
|
return queryParams.get('year');
|
|
|
|
}
|
|
|
|
|
|
|
|
function populateYears() {
|
|
|
|
var select = document.getElementById('yearSelect');
|
|
|
|
var currentYear = new Date().getFullYear();
|
|
|
|
var selectedYear = getYearFromURL() || currentYear;
|
|
|
|
for (var year = 1977; year <= currentYear; year++) {
|
|
|
|
var option = document.createElement('option');
|
|
|
|
option.value = option.textContent = year;
|
|
|
|
if (year == selectedYear) {
|
|
|
|
option.selected = true;
|
|
|
|
}
|
|
|
|
select.appendChild(option);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function changeYear() {
|
|
|
|
var selectedYear = document.getElementById('yearSelect').value;
|
|
|
|
window.location.href = '?year=' + selectedYear;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Call this function when the page loads
|
|
|
|
populateYears();
|
2023-10-01 13:40:36 +02:00
|
|
|
</script>
|
2023-10-01 15:39:30 +02:00
|
|
|
|
|
|
|
<script src="/public/logbook.js"></script>
|
2023-07-24 20:56:46 +02:00
|
|
|
{% endblock content%}
|