Browse Source

Refactor TemplateService to include a renderEmail method that generates an email layout template with a body from a page template

node10
Onja 11 months ago
parent
commit
82d0cb32e1
  1. 20
      src/services/template.js
  2. 7
      src/views/emails/parse-success.hbs
  3. 13
      src/views/layout/email.hbs

20
src/services/template.js

@ -74,6 +74,26 @@ class TemplateService {
return layoutTemplate;
}
renderEmail(name, data = {}, params = {}) {
// Get the page template
const pageTemplate = this.render(`emails/${name}`, data, params);
if ( !pageTemplate ) {
return '';
}
// Get the layout template
const layoutTemplate = this.render(`layout/email`, {...data, ...{ body: pageTemplate }}, params);
if ( !layoutTemplate ) {
return '';
}
return layoutTemplate;
}
}

7
src/views/emails/parse-success.hbs

@ -0,0 +1,7 @@
<p>Bonjour, </p>
<br />
<p>Le traitement de votre fichier depuis l'url <strong>{{url}}</strong> est terminé</p>
<p><strong>{{count}} lignes</strong> ont été générés</p>
<br />
<p>Voici le lien pour télécharger le fichier généré: <a href="{{host}}/csv/{{generated}}"><strong>{{host}}/csv/{{generated}}</strong></a></p>

13
src/views/layout/email.hbs

@ -0,0 +1,13 @@
<div class="email-layout">
<div class="email-layout__inner">
<div class="email-layout__header">
</div>
<div class="email-layout__body">
{{{body}}}
</div>
<div class="email-layout__footer">
</div>
</div>
</div>
Loading…
Cancel
Save