{% block content %} {% if modal %}<div class="modal-content">{% endif %} <div id="wa-slot-{{ id }}" class="frame" hx-get="/_ajax/vr_wa/v1/slot?do=details&id={{ id }}&modal=false" hx-target="this" hx-swap="outerHTML" hx-trigger="updateWaBooking from:body" hx-indicator="#wa-slot-{{ id }}"> <div class="frame__header"> <h3>Zeitslot</h3> <div class="grid-md u-gap-2"> <div class="grid-c-6 mb-2 mb-0-md"> <div class="u-flex u-items-center u-gap-1"> <i class="icon-uhr-outline"></i> <div class="t-label">Beginn</div> </div> <div class="">{{ slot.time|date('d.m.Y H:i') }}</div> </div> <div class="grid-c-6 mb-2 mb-0-md"> <div class="u-flex u-items-center u-gap-1"> <i class="icon-uhr-outline"></i> <div class="t-label">Ende</div> </div> <div class="">{{ (slot.time + slot.duration * 60)|date('d.m.Y H:i') }}</div> </div> <div class="grid-c-6 mb-2 mb-0-md"> <div class="u-flex u-items-center u-gap-1"> <i class="icon-standort-outline"></i> <div class="t-label">Standort</div> </div> <div class="">{{ standort.title }}</div> </div> <div class="grid-c-6 mb-2 mb-0-md"> <div class="u-flex u-items-center u-gap-1"> <i class="icon-behaelter-outline"></i> <div class="t-label">Verfügbare Bottichkapazität</div> </div> <div class="">{{ slot.behaelterAvailable }}</div> </div> {% if slot.anmerkungen %} <div class="grid-c-12 mb-2 mb-0-md"> <div class="u-flex u-items-center u-gap-1"> <i class="icon-info-outline"></i> <div class="t-label">Anmerkungen</div> </div> {{ slot.anmerkungen|raw }} </div> {% endif %} </div> </div> {% if reservations|length %} <div class="divider m-0 mb-2"></div> <div class="frame__body"> <h4>Ihre Reservierungen</h4> <ul class="no-bullets mx-0 reservations"> {% for reservation in reservations %} <li class="row u-items-center p-0"> <div class="col-7"> <div class="u-flex u-items-center u-gap-1"> <i class="icon-behaelter-outline"></i> {{ reservation.amount }} x {{ reservation.unitLabel }} {% if reservation.unit > 0 %}({{ reservation.behaelter }} {{ 'tl_vr_wa_units.containers.0'|trans([], 'contao_tl_vr_wa_units') }}){% endif %} </div> </div> <div class="col u-text-right"> <div><a hx-get="/_ajax/vr_wa/v1/slot?do=booking&id={{ reservation.id }}" hx-target="body" hx-swap="beforeend" href="javascript:;" class="btn btn--sm m-0">Bearbeiten</a></div> </div> </li> {% endfor %} </ul> </div> {% endif %} <div class="divider m-0 mb-2"></div> <div class="frame__body"> <h4>Reservieren</h4> {% if toast is defined %} {{ toast|raw }} {% endif %} {% if buchen.buchbar %} <form hx-post="/_ajax/vr_wa/v1/slot?do=reservate" enctype="multipart/form-data"> <input type="hidden" name="id" value="{{ id }}"> <div class="grid-md u-gap-2"> <div class="grid-c-6 mb-2 mb-0-md"> <fieldset> <label for="res-behaeltereinheit"><strong>Liefernde Botticheinheit<sup class="text-danger">*</sup></strong></label> <select id="res-behaeltereinheit" name="unit" hx-get="/_ajax/vr_wa/v1/slot?do=availableUnitAmount&id={{ id }}" hx-target="#wa-slot-{{ id }} #res-behaelter"> <option value="">{{ 'tl_vr_wa_units.containers.0'|trans([], 'contao_tl_vr_wa_units') }}</option> {% for value, option in buchen.units %} <option value="{{ value }}">{{ option }}</option> {% endfor %} </select> </fieldset> </div> <div class="grid-c-6 mb-2 mb-0-md"> <fieldset> <label for="res-behaelter"><strong>Menge<sup class="text-danger">*</sup></strong></label> <select id="res-behaelter" name="behaelter" required> <option value="">-</option> {% for option in buchen.behaelter %} {% if option > slot.behaelterAvailable %} <option value="{{ option }}">{{ option }} ({{ 'MSC.wa_overbooking'|trans([], 'contao_default') }})</option> {% else %} <option value="{{ option }}">{{ option }}</option> {% endif %} {% endfor %} </select> </fieldset> </div> </div> <fieldset> <label for="res-annotation"><strong>Anmerkung</strong></label> <textarea id="res-annotation" name="annotation"></textarea> </fieldset> <fieldset> <label for="res-upload"><strong>Dateianhang</strong></label> <input type="file" id="res-upload" name="upload"> </fieldset> <fieldset> <button type="submit">Reservieren</button> </fieldset> </form> {% else %} <div class="toast toast--warning mx-0"> <p class="warning">Dieser Zeit-Slot ist bereits ausgebucht</p> </div> {% endif %} </div> <div class="loader animated loading"></div> </div> {% if modal %}</div>{% endif %} {% endblock %} {% block modal %} {% if modal %} <script> (function ($) { window.modals = window.modals || [] window.modals.wa_slots = window.modals.wa_slots || [] if (window.modals.wa_slots.details{{ id }} === undefined) { window.modals.wa_slots.details{{ id }} = new jBox('Modal', { closeButton: 'box', content: $('#wa-slot-{{ id }}'), maxWidth: 650, minWidth: 100, minHeight: 100, width: 650, overlay: true, closeOnClick: false, zIndex: 'auto', addClass: '' }).open(); } else { window.modals.wa_slots.details{{ id }}.content.empty(); window.modals.wa_slots.details{{ id }}.setContent($('#wa-slot-{{ id }}')).open(); } })(jQuery); </script> {% endif %} {% endblock %}