parent
6d39d497ee
commit
466bf225a3
5 changed files with 82 additions and 12 deletions
|
@ -458,7 +458,7 @@ module.exports.getRow = (fieldList, values, useDate, showAll, onlyExisting) => {
|
|||
value: Number(valueList[field.column]) || 0,
|
||||
visible: !!field.visible,
|
||||
mergeTag: field.key,
|
||||
mergeValue: Number(valueList[field.column]) || Number(field.defaultValue) || 0,
|
||||
mergeValue: (Number(valueList[field.column]) || Number(field.defaultValue) || 0).toString(),
|
||||
['type' + (field.type || '').toString().trim().replace(/(?:^|\-)([a-z])/g, (m, c) => c.toUpperCase())]: true
|
||||
};
|
||||
row.push(item);
|
||||
|
|
|
@ -355,7 +355,7 @@ module.exports.getWithMergeTags = (listId, cid, callback) => {
|
|||
TIMEZONE: subscription.tz || ''
|
||||
};
|
||||
|
||||
fields.getRow(fieldList, subscription, true, true).forEach(field => {
|
||||
fields.getRow(fieldList, subscription, false, true).forEach(field => {
|
||||
if (field.mergeTag) {
|
||||
subscription.mergeTags[field.mergeTag] = field.mergeValue || '';
|
||||
}
|
||||
|
|
15
lib/tools.js
15
lib/tools.js
|
@ -200,17 +200,23 @@ function formatMessage(serviceUrl, campaign, list, subscription, message, filter
|
|||
return links[key];
|
||||
}
|
||||
if (subscription.mergeTags.hasOwnProperty(key)) {
|
||||
return isHTML ? he.encode((subscription.mergeTags[key] || ''), {
|
||||
let value = (subscription.mergeTags[key] || '').toString();
|
||||
// FIXME https://github.com/Mailtrain-org/mailtrain/issues/192
|
||||
return isHTML ? he.encode(value, {
|
||||
useNamedReferences: true
|
||||
}) : subscription.mergeTags[key];
|
||||
}) : value;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
return message.replace(/\[([a-z0-9_]+)(?:\/([^\]]+))?\]/ig, (match, identifier, fallback) => {
|
||||
identifier = identifier.toUpperCase();
|
||||
let value = (getValue(identifier) || fallback || '').trim();
|
||||
return value ? filter(value) : match;
|
||||
let value = getValue(identifier);
|
||||
if (value === false) {
|
||||
return match;
|
||||
}
|
||||
value = (value || fallback || '').trim();
|
||||
return filter(value);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -310,4 +316,3 @@ function mergeTemplateIntoLayout(template, layout, callback) {
|
|||
return done(template, layout);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -332,7 +332,7 @@ function formatMessage(message, callback) {
|
|||
};
|
||||
|
||||
let encryptionKeys = [];
|
||||
fields.getRow(fieldList, message.subscription, true, true).forEach(field => {
|
||||
fields.getRow(fieldList, message.subscription, false, true).forEach(field => {
|
||||
if (field.mergeTag) {
|
||||
message.subscription.mergeTags[field.mergeTag] = field.mergeValue || '';
|
||||
}
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue