112 lines
5.0 KiB
Twig
112 lines
5.0 KiB
Twig
{% extends 'layout_admin.html.twig' %}
|
|
|
|
{% form_theme form 'forms_admin.html.twig' %}
|
|
|
|
{% block content %}
|
|
<twig:page:heading>Reise-Mailingliste</twig:page:heading>
|
|
{{ form_start(form) }}
|
|
<div class="flex flex-wrap items-end gap-4 pb-8">
|
|
<div class="w-64">
|
|
{{ form_row(form.travelCode) }}
|
|
</div>
|
|
<div>
|
|
{{ form_row(form.busOnly) }}
|
|
</div>
|
|
<button type="submit"
|
|
class="button button--primary button--small">
|
|
abrufen
|
|
</button>
|
|
</div>
|
|
{{ form_rest(form) }}
|
|
{{ form_end(form) }}
|
|
|
|
{% if failed %}
|
|
{% include '_partials/_alert.html.twig' with {
|
|
level: 'warning',
|
|
messages: ['Die Teilnehmerliste konnte nicht von BusPro abgerufen werden. Bitte später erneut versuchen.'],
|
|
} %}
|
|
{% elseif result is not null %}
|
|
{% if result.data is empty %}
|
|
{% include '_partials/_alert.html.twig' with {
|
|
level: 'warning',
|
|
messages: ['Keine Empfänger für <code>%s</code> gefunden: Reisecode unbekannt oder keine bestätigten Teilnehmer%s.'|format(result.travelCode|e, result.busLeg ? ' unter den ' ~ result.busLeg.label : '')],
|
|
} %}
|
|
{% else %}
|
|
<div class="pb-4">
|
|
<h2 class="text-lg font-semibold">
|
|
{{ travel_label|default('Reise nicht im lokalen Reisebestand') }}
|
|
</h2>
|
|
<p class="text-sm text-gray-700">
|
|
{{ result.data|length }} Empfänger für <code>{{ result.travelCode }}</code>{% if result.busLeg %}, nur {{ result.busLeg.label }}{% endif %}
|
|
</p>
|
|
</div>
|
|
<div class="pb-6 text-sm">
|
|
{% for list in mailing_lists %}
|
|
<p>
|
|
Mailjet-Liste <code>{{ list.name }}</code> (ID {{ list.mailjetListId }},
|
|
{{ list.busLeg ? 'nur ' ~ list.busLeg.label : 'alle Teilnehmer' }})
|
|
am {{ list.createdAt|date('d.m.Y, H:i') }} angelegt,
|
|
wird ab {{ list.deleteAfter|date('d.m.Y') }} automatisch gelöscht.
|
|
</p>
|
|
{% endfor %}
|
|
{% if mailing_list is not null %}
|
|
{# the list for this filter exists and is listed above #}
|
|
{% elseif travel_starts_at is null %}
|
|
<p class="text-gray-700">
|
|
Kein Reisebeginn bekannt, daher kann keine Mailjet-Liste angelegt werden.
|
|
</p>
|
|
{% else %}
|
|
<form method="post" action="{{ path('app_admin_travelmailing_createlist') }}"{% if mailing_lists is not empty %} class="pt-2"{% endif %}>
|
|
<input type="hidden" name="travelCode" value="{{ result.travelCode }}">
|
|
{% if result.busLeg %}
|
|
<input type="hidden" name="busOnly" value="1">
|
|
{% endif %}
|
|
<input type="hidden" name="_token" value="{{ csrf_token(constant('App\\Controller\\Admin\\TravelMailing\\CreateListController::CSRF_TOKEN_ID')) }}">
|
|
<button type="submit" class="button button--primary button--small">
|
|
Mailjet-Liste {{ list_name }} anlegen
|
|
</button>
|
|
<span class="pl-2 text-gray-700">
|
|
Alle Empfänger werden ohne Opt-in eingetragen; die Liste wird 30 Tage nach Reisebeginn
|
|
({{ travel_starts_at|date('d.m.Y') }}) gelöscht.
|
|
</span>
|
|
</form>
|
|
{% endif %}
|
|
</div>
|
|
<div class="data-table-wrapper">
|
|
<div class="data-table-wrapper__inner text-sm">
|
|
<table class="data-table">
|
|
<thead>
|
|
<tr>
|
|
<th>
|
|
Vorname
|
|
</th>
|
|
<th>
|
|
Nachname
|
|
</th>
|
|
<th>
|
|
E-Mail
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for recipient in result.data %}
|
|
<tr>
|
|
<td>
|
|
{{ recipient.firstName }}
|
|
</td>
|
|
<td>
|
|
{{ recipient.lastName }}
|
|
</td>
|
|
<td>
|
|
<a href="mailto:{{ recipient.email }}">{{ recipient.email }}</a>
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endblock %}
|