all repos — caroster @ d3a5bc4cf9c4e11655e644f7ea0489791ac75d06

[Octree] Group carpool to your event https://caroster.io

feat: :sparkles: Add carpool charter link in emails

#552
Tim Izzo tim@octree.ch
Wed, 04 Dec 2024 13:08:56 +0100
commit

d3a5bc4cf9c4e11655e644f7ea0489791ac75d06

parent

7e4ad30305b0414766afb4bde0b0ccb06d77058c

M backend/src/api/email/locales/en.jsonbackend/src/api/email/locales/en.json

@@ -1,6 +1,6 @@

{ "template": { - "footer": "πŸ’ You also think Caroster is awesome? Keep it free and support us with a donation!", + "footer": "<a href='https://octreegva.notion.site/Carpool-Charter-EN-95d34c0a6b8d4d1d987c34f4e3cacd51?pvs=4'>See the carpool charter</a>\n\n\nπŸ’ You also think Caroster is awesome? Keep it free and support us with a donation!", "carosterLink": "https://caroster.io/en/home" }, "notifications": {
M backend/src/api/email/locales/fr.jsonbackend/src/api/email/locales/fr.json

@@ -1,6 +1,6 @@

{ "template": { - "footer": "πŸ’ Vous pensez aussi que Caroster est gΓ©nial ? Aidez-nous Γ  le maintenir libre et gratuit en faisant une donation !", + "footer": "<a href='https://octreegva.notion.site/Charte-du-Covoitureur-FR-758f2974306d4c8fa59f259f31b31ae6?pvs=4'>Voir la charte du coivoitureur</a>\n\n\nπŸ’ Vous pensez aussi que Caroster est gΓ©nial ? Aidez-nous Γ  le maintenir libre et gratuit en faisant une donation !", "carosterLink": "https://caroster.io" }, "notifications": {
M backend/src/api/email/locales/it.jsonbackend/src/api/email/locales/it.json

@@ -1,6 +1,6 @@

{ "template": { - "footer": "πŸ’ Pensi anche tu che Caroster sia fantastico? Mantienilo libero e dacci supporto con una donazione!", + "footer": "<a href='https://octreegva.notion.site/Carpool-Charter-EN-95d34c0a6b8d4d1d987c34f4e3cacd51?pvs=4'>See the carpool charter</a>\n\n\nπŸ’ Pensi anche tu che Caroster sia fantastico? Mantienilo libero e dacci supporto con una donazione!", "carosterLink": "https://caroster.io/en/home" }, "notifications": {
M backend/src/api/email/locales/nl.jsonbackend/src/api/email/locales/nl.json

@@ -1,52 +1,52 @@

{ - "template": { - "footer": "πŸ’ Vindt u Caroster ook zo geweldig? Help dan om de app gratis te blijven aanbieden door te doneren!", - "carosterLink": "https://caroster.io/en/home" + "template": { + "footer": "<a href='https://octreegva.notion.site/Carpool-Charter-EN-95d34c0a6b8d4d1d987c34f4e3cacd51?pvs=4'>See the carpool charter</a>\n\n\nπŸ’ Vindt u Caroster ook zo geweldig? Help dan om de app gratis te blijven aanbieden door te doneren!", + "carosterLink": "https://caroster.io/en/home" + }, + "notifications": { + "DeletedTrip": { + "title": "<%= event.name %> - Reis verwijderd", + "content": "De reis waaraan u wilde deelnemen, <%= travel.vehicleName %>, is verwijderd. Ga naar de [Caroster](<%= host %>/e/<%= event.uuid %>)-pagina om een ander voertuig te zoeken." }, - "notifications": { - "DeletedTrip": { - "title": "<%= event.name %> - Reis verwijderd", - "content": "De reis waaraan u wilde deelnemen, <%= travel.vehicleName %>, is verwijderd. Ga naar de [Caroster](<%= host %>/e/<%= event.uuid %>)-pagina om een ander voertuig te zoeken." - }, - "NewTrip": { - "title": "<%= event.name %> - Nieuwe reis beschikbaar", - "content": "## Er is een nieuwe reis beschikbaar voor \"<%= event.name %>\"\n\n**Voertuig: <%= travel.vehicleName %>**\nAantal zitplaatsen: <%= travel.seats %>\nVertreklocatie: <%= travel.meeting %>\nInformatie: <%= travel.details %>.\n\n[Zitplaats reserveren](<%= host %>/e/<%= event.uuid %>).\n\nU ontvangt deze e-mail omdat u uzelf op de carpoolwachtlijst van deze afspraak heeft gezet." - }, - "DeletedYourTrip": { - "title": "<%= event.name %> - Uw reis is verwijderd", - "content": "Uw reis, <%= travel.vehicleName %>, is door een beheerder verwijderd uit de afspraak β€˜[<%= event.name %>](<%= host %>/e/<%= event.uuid %>)’." - }, - "DeletedFromTrip": { - "title": "<%= event.name %> - U bent uit het voertuig verwijderd", - "content": "U bent uit het voertuig β€˜<%= travel.vehicleName %>’ van de afspraak β€˜[<%= event.name %>](<%= host %>/e/<%= event.uuid %>)’ verwijderd." - }, - "NewPassengerInYourTrip": { - "title": "<%= event.name %> - Passagier toegevoegd aan reis", - "content": "Er is een passagier toegevoegd aan β€˜[<%= event.name %>](<%= host %>/e/<%= event.uuid %>)’" - }, - "AddedAsAdmin": { - "title": "U bent toegevoegd als beheerder van een afspraak", - "content": "U bent toegevoegd als beheerder van β€˜[<%= event.name %>](<%= host %>/e/<%= event.uuid %>)’." - }, - "EventCreated": { - "title": "<%= event.name %> - Uw Caroster is klaar voor gebruik!", - "content": "## Hoezee! Uw Caroster, β€˜<%= event.name %>’, is klaar voor gebruik!\n\nHet organiseren kan beginnen:\n\nπŸš— Voeg voertuigen toe;\n\nπŸ’¬ Nodig deelnemers uit door uw Caroster-link te delen.\n\nCaroster-link:\n<%= host %>/e/<%= event.uuid %>" - }, - "EventEnded": { - "title": "<%= event.name %> - De afspraak is voorbij!", - "content": "## β€˜<%= event.name %>’ is voorbij!\n\nπŸ‘ Aantal passagiers: <%= event.passengers.length %>\nπŸš— Aantal gebruikte voertuigen: <%= event.travels.length %>\n\nLink naar uw Caroster: <%= host %>/e/<%= event.uuid %>\n\nU ontvangt deze e-mail omdat u de afspraak hebt aangemaakt." - }, - "EventRecap": { - "title": "<%= event.name %> - Wijzigingen aan afspraak", - "content": "## Er hebben wijzigingen plaatsgevonden aan β€˜<%= event.name %>’\n\n⏳ Aantal passagiers op wachtlijst: <%= waitingListCount %>\nπŸš— Aantal voertuigen: <%= travelsCount %>\nπŸ†• Aantal nieuwe voertuigen: <%= newTravelsCount %>\n\nLink naar uw Caroster: <%= host %>/e/<%= event.uuid %>\n\nU ontvangt deze e-mail omdat u de afspraak hebt aangemaakt." - }, - "ContactTripCreator": { - "title": "<%= event.name %> - Contact opnemen met bestuurder", - "content": "Als u de reis naar β€˜<%= event.name %>’ wilt organiseren, neem dan contact op met de bestuurder.\n\n**Voertuig: <%= travel.vehicleName %>**\nVertrek: <%= travel.meeting %>\nDatum/Tijd: <%= datetime %>\nTelefoonnummer: <%= travel.phone_mumber | 'Not provided' %>\nE-mailadres: <%= driver.email %>" - }, - "EnabledCarosterPlus": { - "title": "<%= event.name %> - Caroster+ is geactiveerd op uw afspraak", - "content": "De module β€˜Caroster+’ is geactiveerd op uw afspraak β€˜[<%= event.name %>](<%= host %>/e/<%= event.uuid %>)’." - } + "NewTrip": { + "title": "<%= event.name %> - Nieuwe reis beschikbaar", + "content": "## Er is een nieuwe reis beschikbaar voor \"<%= event.name %>\"\n\n**Voertuig: <%= travel.vehicleName %>**\nAantal zitplaatsen: <%= travel.seats %>\nVertreklocatie: <%= travel.meeting %>\nInformatie: <%= travel.details %>.\n\n[Zitplaats reserveren](<%= host %>/e/<%= event.uuid %>).\n\nU ontvangt deze e-mail omdat u uzelf op de carpoolwachtlijst van deze afspraak heeft gezet." + }, + "DeletedYourTrip": { + "title": "<%= event.name %> - Uw reis is verwijderd", + "content": "Uw reis, <%= travel.vehicleName %>, is door een beheerder verwijderd uit de afspraak β€˜[<%= event.name %>](<%= host %>/e/<%= event.uuid %>)’." + }, + "DeletedFromTrip": { + "title": "<%= event.name %> - U bent uit het voertuig verwijderd", + "content": "U bent uit het voertuig β€˜<%= travel.vehicleName %>’ van de afspraak β€˜[<%= event.name %>](<%= host %>/e/<%= event.uuid %>)’ verwijderd." + }, + "NewPassengerInYourTrip": { + "title": "<%= event.name %> - Passagier toegevoegd aan reis", + "content": "Er is een passagier toegevoegd aan β€˜[<%= event.name %>](<%= host %>/e/<%= event.uuid %>)’" + }, + "AddedAsAdmin": { + "title": "U bent toegevoegd als beheerder van een afspraak", + "content": "U bent toegevoegd als beheerder van β€˜[<%= event.name %>](<%= host %>/e/<%= event.uuid %>)’." + }, + "EventCreated": { + "title": "<%= event.name %> - Uw Caroster is klaar voor gebruik!", + "content": "## Hoezee! Uw Caroster, β€˜<%= event.name %>’, is klaar voor gebruik!\n\nHet organiseren kan beginnen:\n\nπŸš— Voeg voertuigen toe;\n\nπŸ’¬ Nodig deelnemers uit door uw Caroster-link te delen.\n\nCaroster-link:\n<%= host %>/e/<%= event.uuid %>" + }, + "EventEnded": { + "title": "<%= event.name %> - De afspraak is voorbij!", + "content": "## β€˜<%= event.name %>’ is voorbij!\n\nπŸ‘ Aantal passagiers: <%= event.passengers.length %>\nπŸš— Aantal gebruikte voertuigen: <%= event.travels.length %>\n\nLink naar uw Caroster: <%= host %>/e/<%= event.uuid %>\n\nU ontvangt deze e-mail omdat u de afspraak hebt aangemaakt." + }, + "EventRecap": { + "title": "<%= event.name %> - Wijzigingen aan afspraak", + "content": "## Er hebben wijzigingen plaatsgevonden aan β€˜<%= event.name %>’\n\n⏳ Aantal passagiers op wachtlijst: <%= waitingListCount %>\nπŸš— Aantal voertuigen: <%= travelsCount %>\nπŸ†• Aantal nieuwe voertuigen: <%= newTravelsCount %>\n\nLink naar uw Caroster: <%= host %>/e/<%= event.uuid %>\n\nU ontvangt deze e-mail omdat u de afspraak hebt aangemaakt." + }, + "ContactTripCreator": { + "title": "<%= event.name %> - Contact opnemen met bestuurder", + "content": "Als u de reis naar β€˜<%= event.name %>’ wilt organiseren, neem dan contact op met de bestuurder.\n\n**Voertuig: <%= travel.vehicleName %>**\nVertrek: <%= travel.meeting %>\nDatum/Tijd: <%= datetime %>\nTelefoonnummer: <%= travel.phone_mumber | 'Not provided' %>\nE-mailadres: <%= driver.email %>" + }, + "EnabledCarosterPlus": { + "title": "<%= event.name %> - Caroster+ is geactiveerd op uw afspraak", + "content": "De module β€˜Caroster+’ is geactiveerd op uw afspraak β€˜[<%= event.name %>](<%= host %>/e/<%= event.uuid %>)’." } + } }
M backend/src/api/email/utils/layout.tsbackend/src/api/email/utils/layout.ts

@@ -36,7 +36,7 @@ ${htmlContent}

</div> <div style="background-color:#E5E5E5;padding:16px 8px 16px 8px"> <div - style="font-size:14px;font-weight:normal;padding:16px 24px 16px 24px" + style="font-size:14px;font-weight:normal;padding:4px 24px 16px 24px" > ${htmlFooter} </div>