Custom Forms
This commit is contained in:
parent
5332c81739
commit
2e50fbc8ae
67 changed files with 3335 additions and 34834 deletions
|
@ -13,6 +13,8 @@ let path = require('path');
|
|||
let templates = new Map();
|
||||
let htmlToText = require('html-to-text');
|
||||
let aws = require('aws-sdk');
|
||||
let objectHash = require('object-hash');
|
||||
let mjml = require('mjml');
|
||||
|
||||
let _ = require('./translate')._;
|
||||
let util = require('util');
|
||||
|
@ -124,18 +126,46 @@ function getTemplate(template, callback) {
|
|||
return callback(null, false);
|
||||
}
|
||||
|
||||
if (templates.has(template)) {
|
||||
return callback(null, templates.get(template));
|
||||
let key = (typeof template === 'object') ? objectHash(template) : template;
|
||||
|
||||
if (templates.has(key)) {
|
||||
return callback(null, templates.get(key));
|
||||
}
|
||||
|
||||
fs.readFile(path.join(__dirname, '..', 'views', template), 'utf-8', (err, source) => {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
let done = (source, isMjml = false) => {
|
||||
if (isMjml) {
|
||||
let compiled;
|
||||
try {
|
||||
compiled = mjml.mjml2html(source);
|
||||
} catch (err) {
|
||||
return callback(err);
|
||||
}
|
||||
if (compiled.errors.length) {
|
||||
return callback(compiled.errors[0].message || compiled.errors[0]);
|
||||
}
|
||||
source = compiled.html;
|
||||
}
|
||||
let renderer = Handlebars.compile(source);
|
||||
templates.set(template, renderer);
|
||||
return callback(null, renderer);
|
||||
});
|
||||
templates.set(key, renderer);
|
||||
callback(null, renderer);
|
||||
};
|
||||
|
||||
if (typeof template === 'object') {
|
||||
tools.mergeTemplateIntoLayout(template.template, template.layout, (err, source) => {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
let isMjml = template.type === 'mjml';
|
||||
done(source, isMjml);
|
||||
});
|
||||
} else {
|
||||
fs.readFile(path.join(__dirname, '..', 'views', template), 'utf-8', (err, source) => {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
done(source);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function createMailer(callback) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue