53 lines
2.3 KiB
Twig
53 lines
2.3 KiB
Twig
{#
|
|
What an administrator sees when clicking an occupied shape on the floor plan.
|
|
|
|
Not the edit modal: a shape can hold several bookings on one day once part-day spans exist,
|
|
so "the booking" has no single referent -- and an administrator releases rather than
|
|
reschedules. Each row posts to the ordinary app_booking_release route, whose ownership check
|
|
admits an admin, so there is still one code path that removes a booking.
|
|
#}
|
|
{% extends 'htmx_modal.html.twig' %}
|
|
|
|
{% block title %}{{ resource.label }} verwalten{% endblock %}
|
|
|
|
{% block content %}
|
|
<p class="pb-4 text-sm text-gray-500">
|
|
{{ resource.type.label }} · {{ date|format_datetime(pattern: 'EEEE, d. MMMM y') }}
|
|
{%- if resource.group %} · {{ resource.group.label }}{% endif %}
|
|
</p>
|
|
|
|
{% if bookings is empty %}
|
|
<p class="text-sm text-gray-500">In diesem Zeitraum liegt hier keine Buchung.</p>
|
|
{% else %}
|
|
<ul class="divide-y divide-gray-200 border-y border-gray-200">
|
|
{% for booking in bookings %}
|
|
<li class="flex items-center justify-between gap-4 py-3">
|
|
<div>
|
|
<div class="font-semibold">{{ booking.user.name }}</div>
|
|
<div class="text-sm text-gray-500">
|
|
{{ booking.timeRange }}
|
|
{% if booking.partOfSeries %}
|
|
<span class="badge bg-gray-100 text-gray-600 ml-1">Serie</span>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
{# Same as the edit modal: opens the shared confirmation modal over this one.
|
|
Confirming repaints the board out of band and removes both. #}
|
|
<button type="button" class="button button--small button--warning"
|
|
hx-get="{{ path('app_booking_release', { id: booking.id }) }}"
|
|
hx-target="body"
|
|
hx-swap="beforeend">
|
|
Freigeben
|
|
</button>
|
|
</li>
|
|
{% endfor %}
|
|
</ul>
|
|
{% endif %}
|
|
|
|
<div class="flex justify-end pt-6">
|
|
<button type="button" class="button button--neutral" {{ stimulus_action('modal', 'close') }}>
|
|
Schließen
|
|
</button>
|
|
</div>
|
|
{% endblock %}
|