feat: integrate with MailJet API for newsletter registration

This commit is contained in:
Björn Fromme
2026-03-19 09:42:00 +01:00
parent 66c55f0722
commit d1e2bf3e7d
26 changed files with 1537 additions and 47 deletions
+39 -12
View File
@@ -24,18 +24,45 @@
</h2>
</div>
<div id="newsletter">
<p class="pb-4 text-white">
Du bist aktuell {% if not personalData.communication.newsletter %}<strong>nicht</strong> {% endif%} zum Newsletter
angemeldet.
</p>
<button type="button"
class="relative button button--primary"
hx-post="{{ path('app_personal_data_newsletter') }}"
hx-target="#newsletter"
hx-select="#newsletter"
hx-swap="outerHTML">
{% if personalData.communication.newsletter %}jetzt abmelden{% else %}jetzt anmelden{% endif %}
</button>
{% 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 %}
{% 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.']
} %}
<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 %}
</div>
</div>
<div class="pt-8">