{# Every booking, not just yours. The point of the screen is the "Freigeben" button on somebody else's row: when a colleague calls in sick, their desk has to go back into the pool. Filtering is a plain GET form -- the house rule hands navigation to the browser. The two destructive actions open the shared confirmation modal via htmx and then navigate back here, which is what ?return=admin says; without it a confirmed release swaps board fragments this page does not have. The appointment table is paginated; the series table is not, because a company has a handful of standing bookings and cutting them across pages would only hide them. #} {% extends 'layout.html.twig' %} {% block title %}Verwaltung · E&P Platz{% endblock %} {% block content %} ← Übersicht

Verwaltung

Buchungen aller Mitarbeitenden.

{{ form_start(form, { attr: { class: 'mt-6 rounded-md border border-gray-200 p-4' } }) }}
{{ form_row(form.from) }} {{ form_row(form.to) }} {{ form_row(form.type) }} {{ form_row(form.user) }}
Zurücksetzen
{{ form_end(form) }} {% if series is not empty %}

Wiederkehrende Buchungen

{% for entry in series %} {% endfor %}
Mitarbeiter:in Ressource Gruppe Wiederholung Bis
{{ entry.user.name }} {{ entry.resource.label }} {{ entry.resource.group ? entry.resource.group.label : '–' }} {{ entry.describe }} {{ entry.endDate|format_datetime(pattern: 'd. MMMM y') }}
{% endif %}

Termine

{{ filter.fromDate|format_datetime(pattern: 'd. MMMM y') }} bis {{ filter.toDate|format_datetime(pattern: 'd. MMMM y') }}

{% for booking in pagination %} {% else %} {% endfor %}
{{ knp_pagination_sortable(pagination, 'Mitarbeiter:in', 'u.name') }} {{ knp_pagination_sortable(pagination, 'Datum', 'b.date') }} {{ knp_pagination_sortable(pagination, 'Zeit', 'b.startMinute') }} {{ knp_pagination_sortable(pagination, 'Typ', 'r.type') }} {{ knp_pagination_sortable(pagination, 'Ressource', 'r.label') }} Gruppe Status
{{ booking.user.name }} {{ booking.date|format_datetime(pattern: 'EEE, d. MMM y') }} {{ booking.timeRange }} {{ booking.resource.type.label }} {{ booking.resource.label }} {{ booking.resource.group ? booking.resource.group.label : '–' }} {% if booking.partOfSeries %} wiederkehrend {% endif %} {% if booking.overridden %} abweichend {% endif %}
Im Plan
Keine Buchungen in diesem Zeitraum.
{{ knp_pagination_render(pagination) }}
{% endblock %}