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">