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

This commit is contained in:
maddin
2026-03-22 12:55:55 +00:00
commit 9794362f39
143 changed files with 19832 additions and 0 deletions
+65
View File
@@ -0,0 +1,65 @@
{% 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, select_field, textarea_field %}
{% from "ui/page_header.html" import page_header %}
{% block title %}Mehrfacheingabe{% endblock %}
{% block content %}
{{ page_header('Mehrere Tage / Wochen bearbeiten', 'Zeitraum und Wochentage auswählen, dann Zeiten gesammelt für alle passenden Tage setzen.') }}
{% call card('form-card full-width') %}
<form method="post"
action="/bulk-entry"
class="stack"
data-component="break-rules-form"
data-auto-break-enabled="{{ 'true' if user.automatic_break_rules_enabled else 'false' }}">
<input type="hidden" name="csrf_token" value="{{ csrf_token }}" />
<input type="hidden" name="break_mode" value="{{ break_mode }}" data-break-mode />
<div class="inline-grid">
{{ input_field('Von', 'from_date', type='date', value=from_date, required=true) }}
{{ input_field('Bis', 'to_date', type='date', value=to_date, required=true) }}
</div>
<fieldset class="weekday-fieldset">
<legend>Wochentage</legend>
<div class="weekday-grid">
{% for option in weekday_options %}
<label class="checkbox-row">
<input type="checkbox"
name="weekdays_values"
value="{{ option.value }}"
{% if option.value in weekdays_selected %}checked{% endif %} />
<span>{{ option.label }}</span>
</label>
{% endfor %}
</div>
</fieldset>
<div class="inline-grid">
{{ input_field('Beginn', 'start_time', type='time', value=start_time, required=true, attrs='data-break-input=\"start\"') }}
{{ input_field('Ende', 'end_time', type='time', value=end_time, required=true, attrs='data-break-input=\"end\"') }}
</div>
<div class="inline-grid">
{{ input_field('Pause (Minuten)', 'break_minutes', type='number', value=break_minutes, required=true, attrs='min="0" step="1" data-break-input=\"minutes\"') }}
{{ select_field('Modus', 'mode', [
{'value': 'only_missing', 'label': 'Nur leere Tage anlegen'},
{'value': 'upsert', 'label': 'Bestehende Einträge aktualisieren + fehlende anlegen'}
], bulk_mode, required=true) }}
</div>
{% 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 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', notes, 3) }}
<div class="nav-row">
{{ button('Mehrfacheingabe speichern', type='submit') }}
{{ link_button('Zurück', '/dashboard', 'ghost') }}
</div>
</form>
{% endcall %}
{% endblock %}