Files
maddin 6fbd1bb3c2
CI / checks (push) Has been cancelled
chore: initialize public repository
2026-03-22 12:57:09 +00:00

51 lines
3.2 KiB
HTML

{% extends "base.html" %}
{% from "ui/card.html" import card %}
{% from "ui/button.html" import button, link_button %}
{% from "ui/form_field.html" import input_field, textarea_field %}
{% from "ui/page_header.html" import page_header %}
{% block title %}{{ title }}{% endblock %}
{% block content %}
{{ page_header(title, "Nur fuer regulaere Arbeitszeit." ~ (" Gesetzliche Pausen koennen automatisch beruecksichtigt werden." if user.automatic_break_rules_enabled else "")) }}
{% call card('form-card') %}
<form method="post"
action="{{ action_url }}"
class="stack"
data-component="break-rules-form"
data-auto-break-enabled="{{ 'true' if user.automatic_break_rules_enabled else 'false' }}"
data-full-day-net-minutes="{{ full_day_net_minutes if full_day_net_minutes is not none else '' }}"
data-default-break-minutes="{{ user.default_break_minutes }}"
data-default-start-time="08:30">
<input type="hidden" name="csrf_token" value="{{ csrf_token }}" />
<input type="hidden" name="return_to" value="{{ return_to }}" />
<input type="hidden" name="break_mode" value="{{ entry.break_mode if entry else ('auto' if user.automatic_break_rules_enabled else 'manual') }}" data-break-mode />
{{ input_field('Datum', 'date', type='date', value=(entry.date if entry and entry.date else selected_date.isoformat()), required=true) }}
{{ input_field('Arbeitsbeginn', 'start_time', type='time', value=(entry.start_time if entry else ''), required=true, attrs='data-break-input=\"start\"') }}
{{ input_field('Arbeitsende', 'end_time', type='time', value=(entry.end_time if entry else ''), required=true, attrs='data-break-input=\"end\"') }}
{% if full_day_net_minutes is not none %}
<div class="nav-row">
<button type="button" class="button ghost" data-action="entry-apply-full-day">Ganzer Tag</button>
</div>
{% endif %}
{{ input_field('Pause in Minuten', 'break_minutes', type='number', value=(entry.break_minutes if entry and entry.break_minutes is not none else 0), required=true, attrs='min=\"0\" step=\"1\" data-break-input=\"minutes\"') }}
{% if user.automatic_break_rules_enabled %}
<div class="form-field form-field--hint stack-xs" data-component="break-rules-status">
<p class="muted" data-break-status>
{% if entry and entry.break_mode == 'manual' %}
Pause manuell gesetzt. Gesetzliche Mindestpause wird nicht automatisch überschrieben.
{% else %}
Gesetzliche Mindestpause nach deutschem Arbeitsrecht wird automatisch vorgeschlagen.
{% endif %}
</p>
<button type="button" class="button ghost" data-action="break-reset-auto">Automatische Pause erneut anwenden</button>
</div>
{% endif %}
{{ textarea_field('Notiz (optional)', 'notes', (entry.notes if entry else ''), 3) }}
<p class="muted">Mit gespeicherter Arbeitszeit werden Urlaub, Feiertag, Krankheit und Stundenausgleich fuer diesen Tag entfernt.</p>
<div class="nav-row">
{{ button('Speichern', type='submit') }}
{{ link_button('Abbrechen', return_to, 'ghost') }}
</div>
</form>
{% endcall %}
{% endblock %}