feat: MailJet list handling with DOI, webhook receiver and API endpoint

addresses #869cut134
This commit is contained in:
Björn Fromme
2026-04-29 09:51:57 +02:00
parent df7885ca1c
commit e4ef2f7adc
46 changed files with 3389 additions and 322 deletions
+13 -36
View File
@@ -24,45 +24,22 @@
</h2>
</div>
<div id="newsletter">
{% include '_partials/_alert.html.twig' with {
'level': 'info',
'messages': ['Du bist aktuell ' ~ (not newsletterSubscribed ? '<strong>nicht</strong> ' : '') ~ 'zum Newsletter angemeldet.']
} %}
{% if newsletterSubscribed %}
<button type="button"
class="relative button button--primary"
hx-post="{{ path('app_personal_data_newsletter') }}"
hx-vals='{{ {subscribed: 0}|json_encode }}'
hx-target="#newsletter"
hx-select="#newsletter"
hx-swap="outerHTML">
Jetzt abmelden
</button>
{% elseif newsletterPendingConfirmation %}
{% if newsletterPendingConfirmation %}
{% include '_partials/_alert.html.twig' with {
'level': 'info',
'messages': ['Deine Anmeldung muss noch bestätigt werden. Bitte nutze den Link aus der Bestätigungs-E-Mail, die du in Kürze erhältst.']
level: 'info',
messages: ['Deine Anmeldung muss noch bestätigt werden. Bitte nutze den Link aus der Bestätigungs-E-Mail, die du in Kürze erhältst.']
} %}
<button type="button"
class="relative button button--primary"
hx-post="{{ path('app_personal_data_newsletter') }}"
hx-vals='{{ {subscribed: 1}|json_encode }}'
hx-target="#newsletter"
hx-select="#newsletter"
hx-swap="outerHTML">
Bestätigungs E-Mail erneut senden
</button>
{% else %}
<button type="button"
class="relative button button--primary"
hx-post="{{ path('app_personal_data_newsletter') }}"
hx-vals='{{ {subscribed: 1}|json_encode }}'
hx-target="#newsletter"
hx-select="#newsletter"
hx-swap="outerHTML">
Jetzt anmelden
</button>
{% endif %}
<button type="button"
class="relative button button--primary"
hx-post="{{ path('app_personal_data_newsletter') }}"
hx-swap="none">
{% if newsletterPendingConfirmation %}
Bestätigungs E-Mail erneut senden
{% else %}
Jetzt zum E&amp;P-Newsletter anmelden
{% endif %}
</button>
</div>
</div>
<div class="pt-8">
@@ -8,6 +8,16 @@
Vielen Dank für dein Interesse an unserem Newsletter. Bitte bestätige deine E-Mail-Adresse über den folgenden
Link:
</p>
{% if newsletterLists is defined and newsletterLists is not empty %}
<p>
Du bestätigst damit die Anmeldung für folgende Newsletter:
</p>
<ul>
{% for newsletterList in newsletterLists %}
<li>{{ newsletterList.label }}</li>
{% endfor %}
</ul>
{% endif %}
<p>
<a href="{{ url('app_newsletter_confirm', { 'token': token }) }}" class="button">
E-Mail-Adresse bestätigen