Merge branch 'master' of github.com:Mailtrain-org/mailtrain
Conflicts: languages/de_DE.po
This commit is contained in:
commit
11990d62b2
10 changed files with 743 additions and 362 deletions
|
@ -103,6 +103,12 @@ db=5
|
|||
enabled=false
|
||||
port=2525
|
||||
host="0.0.0.0"
|
||||
# With DMARC, the Return-Path and From address must match the same domain.
|
||||
# By default we get around this by using the VERP address in the Sender header,
|
||||
# with the side effect that some email clients diplay an ugly "on behalf of" message.
|
||||
# You can safely disable this Sender header if you're not using DMARC or your
|
||||
# VERP hostname is in the same domain as the From address.
|
||||
# disablesenderheader=true
|
||||
|
||||
[testserver]
|
||||
# Starts a vanity server that redirects all mail to /dev/null
|
||||
|
|
Binary file not shown.
1018
languages/de_DE.po
1018
languages/de_DE.po
File diff suppressed because it is too large
Load diff
|
@ -6,7 +6,8 @@ let templates = require('../lib/models/templates');
|
|||
let campaigns = require('../lib/models/campaigns');
|
||||
|
||||
module.exports = {
|
||||
getResource
|
||||
getResource,
|
||||
getMergeTagsForResource
|
||||
};
|
||||
|
||||
function getResource(type, id, callback) {
|
||||
|
@ -53,7 +54,7 @@ function getMergeTagsForResource(resource, callback) {
|
|||
return callback(err.message || err);
|
||||
}
|
||||
|
||||
if (!resource.list) {
|
||||
if (!Number(resource.list)) {
|
||||
return callback(null, defaultMergeTags);
|
||||
}
|
||||
|
||||
|
@ -62,7 +63,17 @@ function getMergeTagsForResource(resource, callback) {
|
|||
return callback(err.message || err);
|
||||
}
|
||||
|
||||
callback(null, defaultMergeTags.concat(listMergeTags));
|
||||
if (resource.type !== 2) {
|
||||
return callback(null, defaultMergeTags.concat(listMergeTags));
|
||||
}
|
||||
|
||||
helpers.getRSSMergeTags((err, rssMergeTags) => {
|
||||
if (err) {
|
||||
return callback(err.message || err);
|
||||
}
|
||||
|
||||
callback(null, defaultMergeTags.concat(listMergeTags, rssMergeTags));
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
@ -50,7 +50,9 @@ module.exports.fetch = (url, callback) => {
|
|||
date: item.date || item.pubdate || item.pubDate || new Date(),
|
||||
guid: item.guid || item.link,
|
||||
link: item.link,
|
||||
content: item.description || item.summary
|
||||
content: item.description || item.summary,
|
||||
summary: item.summary || item.description,
|
||||
image_url: item.image.url
|
||||
};
|
||||
entries.push(entry);
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@ let hbs = require('hbs');
|
|||
|
||||
module.exports = {
|
||||
getDefaultMergeTags,
|
||||
getRSSMergeTags,
|
||||
getListMergeTags,
|
||||
captureFlashMessages,
|
||||
injectCustomFormData,
|
||||
|
@ -60,6 +61,32 @@ function getDefaultMergeTags(callback) {
|
|||
}]);
|
||||
}
|
||||
|
||||
function getRSSMergeTags(callback) {
|
||||
// Using a callback for the sake of future-proofness
|
||||
callback(null, [{
|
||||
key: 'RSS_ENTRY',
|
||||
value: _('content from an RSS entry')
|
||||
}, {
|
||||
key: 'RSS_ENTRY_TITLE',
|
||||
value: _('RSS entry title')
|
||||
}, {
|
||||
key: 'RSS_ENTRY_DATE',
|
||||
value: _('RSS entry date')
|
||||
}, {
|
||||
key: 'RSS_ENTRY_LINK',
|
||||
value: _('RSS entry link')
|
||||
}, {
|
||||
key: 'RSS_ENTRY_CONTENT',
|
||||
value: _('content from an RSS entry')
|
||||
}, {
|
||||
key: 'RSS_ENTRY_SUMMARY',
|
||||
value: _('RSS entry summary')
|
||||
}, {
|
||||
key: 'RSS_ENTRY_IMAGE_URL',
|
||||
value: _('RSS entry image URL')
|
||||
}]);
|
||||
}
|
||||
|
||||
function getListMergeTags(listId, callback) {
|
||||
lists.get(listId, (err, list) => {
|
||||
if (err) {
|
||||
|
|
|
@ -9,7 +9,7 @@ let campaigns = require('../lib/models/campaigns');
|
|||
let subscriptions = require('../lib/models/subscriptions');
|
||||
let settings = require('../lib/models/settings');
|
||||
let tools = require('../lib/tools');
|
||||
let helpers = require('../lib/helpers');
|
||||
let editorHelpers = require('../lib/editor-helpers.js');
|
||||
let striptags = require('striptags');
|
||||
let passport = require('../lib/passport');
|
||||
let htmlescape = require('escape-html');
|
||||
|
@ -186,25 +186,14 @@ router.get('/edit/:id', passport.csrfProtection, (req, res, next) => {
|
|||
view = 'campaigns/edit';
|
||||
}
|
||||
|
||||
helpers.getDefaultMergeTags((err, defaultMergeTags) => {
|
||||
editorHelpers.getMergeTagsForResource(campaign, (err, mergeTags) => {
|
||||
if (err) {
|
||||
req.flash('danger', err.message || err);
|
||||
return res.redirect('/');
|
||||
}
|
||||
|
||||
helpers.getListMergeTags(campaign.list, (err, listMergeTags) => {
|
||||
if (err) {
|
||||
req.flash('danger', err.message || err);
|
||||
return res.redirect('/');
|
||||
}
|
||||
|
||||
campaign.mergeTags = defaultMergeTags.concat(listMergeTags);
|
||||
campaign.type === 2 && campaign.mergeTags.push({
|
||||
key: 'RSS_ENTRY',
|
||||
value: _('content from an RSS entry')
|
||||
});
|
||||
res.render(view, campaign);
|
||||
});
|
||||
campaign.mergeTags = mergeTags;
|
||||
res.render(view, campaign);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -132,8 +132,11 @@ function checkEntries(parent, entries, callback) {
|
|||
let entryId = result.insertId;
|
||||
let html = (parent.html || '').toString().trim();
|
||||
|
||||
if (/\[RSS_ENTRY\]/i.test(html)) {
|
||||
html = html.replace(/\[RSS_ENTRY\]/, entry.content);
|
||||
if (/\[RSS_ENTRY[\w]*\]/i.test(html)) {
|
||||
html = html.replace(/\[RSS_ENTRY\]/, entry.content); //for backward compatibility
|
||||
Object.keys(entry).forEach(key => {
|
||||
html = html.replace('\[RSS_ENTRY_'+key.toUpperCase()+'\]', entry[key])
|
||||
});
|
||||
} else {
|
||||
html = entry.content + html;
|
||||
}
|
||||
|
|
|
@ -318,6 +318,7 @@ function formatMessage(message, callback) {
|
|||
}
|
||||
|
||||
let useVerp = config.verp.enabled && configItems.verpUse && configItems.verpHostname;
|
||||
let useVerpSenderHeader = useVerp && config.verp.disablesenderheader !== true;
|
||||
fields.list(list.id, (err, fieldList) => {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
|
@ -389,7 +390,7 @@ function formatMessage(message, callback) {
|
|||
name: [].concat(message.subscription.firstName || []).concat(message.subscription.lastName || []).join(' '),
|
||||
address: message.subscription.email
|
||||
},
|
||||
sender: useVerp ? campaignAddress + '@' + configItems.verpHostname : false,
|
||||
sender: useVerpSenderHeader ? campaignAddress + '@' + configItems.verpHostname : false,
|
||||
|
||||
envelope: useVerp ? {
|
||||
from: campaignAddress + '@' + configItems.verpHostname,
|
||||
|
|
|
@ -71,8 +71,6 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
{{> merge_tag_reference}}
|
||||
|
||||
<div class="form-group">
|
||||
<label for="template" class="col-sm-2 control-label">{{#translate}}RSS Feed Url{{/translate}}</label>
|
||||
<div class="col-sm-10">
|
||||
|
@ -81,6 +79,8 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
{{> merge_tag_reference}}
|
||||
|
||||
{{#if disableWysiwyg}}
|
||||
{{> codeeditor}}
|
||||
{{else}}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue