Files
myep/templates/admin/travel_mailing/index.html.twig
T

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 %}