chore: initialize public repository
CI / checks (push) Has been cancelled

This commit is contained in:
maddin
2026-03-22 12:57:09 +00:00
commit 6fbd1bb3c2
142 changed files with 19826 additions and 0 deletions
+8
View File
@@ -0,0 +1,8 @@
{% from "ui/flash.html" import alert %}
{% set error_message = error if error is defined else None %}
{% if success_message %}{{ alert(success_message, "success") }}{% endif %}
{% if error_message %}{{ alert(error_message, "error") }}{% endif %}
{% if info_message %}{{ alert(info_message, "info") }}{% endif %}
{% if flash_messages %}
{% for flash in flash_messages %}{{ alert(flash.message, flash.level or "info") }}{% endfor %}
{% endif %}
+10
View File
@@ -0,0 +1,10 @@
<footer class="site-footer">
<div class="container site-footer-inner">
<small class="muted">{{ app_name }}</small>
<nav class="site-footer-nav" aria-label="Footer">
<a href="/kontakt">Kontakt</a>
<a href="/impressum">Impressum</a>
<a href="/datenschutz">Datenschutz</a>
</nav>
</div>
</footer>
+38
View File
@@ -0,0 +1,38 @@
{% set is_auth_header = (not user) and (request.url.path.startswith('/login') or request.url.path.startswith('/register')) %}
<header class="site-header app-topbar {% if is_auth_header %}is-auth-header{% endif %}">
<div class="container app-topbar-inner {% if user %}is-user{% else %}is-guest{% endif %}">
<div class="app-brand-wrap">
<a class="brand app-brand"
href="{% if user %}{% if user.preferred_home_view == 'month' %}/month?view={{ user.preferred_month_view_mode or 'flat' }}{% else %}/dashboard{% endif %}{% else %}/{% endif %}"
aria-label="{{ app_name }} Startseite">
<img class="app-logo" src="/img/Logo.svg" alt="{{ app_name }}" />
</a>
{% if user %}
<div class="app-total-badges">
{% if header_vacation_visible is not defined or header_vacation_visible %}
<span class="app-total-badge app-total-badge-vacation"
title="Resturlaub / Gesamturlaubstage ({{ header_vacation_year }})">
<span class="app-total-badge__label">Urlaub</span>
<span class="app-total-badge__value">{{ header_vacation_days_remaining }}/{{ header_vacation_days_total }}</span>
</span>
{% endif %}
{% if header_workhours_counter_visible and header_workhours_counter_minutes is not none %}
<span class="app-total-badge app-total-badge-workhours"
title="Arbeitsstunden-Counter">
<span class="app-total-badge__label">Gesamt</span>
<span class="app-total-badge__value">{{ minutes_to_hhmm(header_workhours_counter_minutes) }}</span>
</span>
{% endif %}
{% if header_cumulative_minutes is not none %}
<span class="app-total-badge {% if header_cumulative_minutes < 0 %}is-negative{% else %}is-positive{% endif %}"
title="Kumulierte Überstunden">
<span class="app-total-badge__label">Stunden</span>
<span class="app-total-badge__value">{{ ('%.2f'|format(header_cumulative_minutes / 60) )|replace('.00', '') }}</span>
</span>
{% endif %}
</div>
{% endif %}
</div>
{% include "partials/nav.html" %}
</div>
</header>
+38
View File
@@ -0,0 +1,38 @@
{% from "ui/segmented_toggle.html" import segmented_toggle %}
{% if user %}
<div class="app-user-nav">
{{ segmented_toggle([
{'href': main_nav_week_url, 'label': 'Woche', 'active': request.url.path.startswith('/dashboard')},
{'href': main_nav_month_url, 'label': 'Monat', 'active': request.url.path.startswith('/month')}
], 'Hauptnavigation', 'topbar-toggle app-main-nav') }}
<div class="app-icon-nav" aria-label="Kopfzeilen-Aktionen">
<a class="app-icon-btn"
href="/settings"
title="Einstellungen"
aria-label="Einstellungen">
<img class="dash-icon" src="/static/icons/settings.svg" alt="" />
</a>
<a class="app-icon-btn"
href="/hilfe"
title="Hilfe"
aria-label="Hilfe">
<img class="dash-icon" src="/img/Icon-Help.svg" alt="" />
</a>
<form action="/logout" method="post" class="inline-form">
<input type="hidden" name="csrf_token" value="{{ csrf_token }}" />
<button type="submit"
class="app-icon-btn"
title="Abmelden"
aria-label="Abmelden">
<img class="dash-icon" src="/static/icons/logout.svg" alt="" />
</button>
</form>
</div>
</div>
{% else %}
{{ segmented_toggle([
{'href': '/login', 'label': 'Login', 'active': request.url.path.startswith('/login')},
{'href': '/register', 'label': 'Registrierung', 'active': request.url.path.startswith('/register')}
], 'Authentifizierung', 'auth-toggle app-auth-nav') }}
{% endif %}
@@ -0,0 +1,5 @@
{% if user and user.role == 'admin' %}
<span class="admin-version-badge" aria-label="Version {{ app_version }}{% if app_env != 'production' %} {{ app_env|capitalize }}{% endif %}">
v{{ app_version }}{% if app_env != 'production' %} {{ app_env|capitalize }}{% endif %}
</span>
{% endif %}