Added option to disable WYSIWYG editor

This commit is contained in:
Andris Reinman 2016-04-11 21:35:04 -07:00
parent 58cce00829
commit 02c8fb4dda
20 changed files with 147 additions and 64 deletions

View file

@ -130,40 +130,47 @@ router.post('/create', passport.parseForm, passport.csrfProtection, (req, res) =
});
});
router.get('/edit/:id', passport.csrfProtection, (req, res) => {
router.get('/edit/:id', passport.csrfProtection, (req, res, next) => {
campaigns.get(req.params.id, false, (err, campaign) => {
if (err || !campaign) {
req.flash('danger', err && err.message || err || 'Could not find campaign with specified ID');
return res.redirect('/campaigns');
}
lists.quicklist((err, listItems) => {
settings.list(['disableWysiwyg'], (err, configItems) => {
if (err) {
req.flash('danger', err.message || err);
return res.redirect('/');
return next(err);
}
if (Number(campaign.list)) {
listItems.forEach(list => {
list.segments.forEach(segment => {
if (segment.id === campaign.segment) {
segment.selected = true;
lists.quicklist((err, listItems) => {
if (err) {
req.flash('danger', err.message || err);
return res.redirect('/');
}
if (Number(campaign.list)) {
listItems.forEach(list => {
list.segments.forEach(segment => {
if (segment.id === campaign.segment) {
segment.selected = true;
}
});
if (list.id === campaign.list && !campaign.segment) {
list.selected = true;
}
});
if (list.id === campaign.list && !campaign.segment) {
list.selected = true;
}
});
}
}
campaign.csrfToken = req.csrfToken();
campaign.listItems = listItems;
campaign.useEditor = true;
campaign.csrfToken = req.csrfToken();
campaign.listItems = listItems;
campaign.useEditor = true;
campaign.showGeneral = req.query.tab === 'general' || !req.query.tab;
campaign.showTemplate = req.query.tab === 'template';
campaign.disableWysiwyg = configItems.disableWysiwyg;
campaign.showGeneral = req.query.tab === 'general' || !req.query.tab;
campaign.showTemplate = req.query.tab === 'template';
res.render('campaigns/edit', campaign);
res.render('campaigns/edit', campaign);
});
});
});
});

View file

@ -11,7 +11,7 @@ let url = require('url');
let settings = require('../lib/models/settings');
let allowedKeys = ['service_url', 'smtp_hostname', 'smtp_port', 'smtp_encryption', 'smtp_disable_auth', 'smtp_user', 'smtp_pass', 'admin_email', 'smtp_log', 'smtp_max_connections', 'smtp_max_messages', 'smtp_self_signed', 'default_from', 'default_address', 'default_subject', 'default_homepage', 'default_postaddress', 'default_sender', 'verp_hostname', 'verp_use'];
let allowedKeys = ['service_url', 'smtp_hostname', 'smtp_port', 'smtp_encryption', 'smtp_disable_auth', 'smtp_user', 'smtp_pass', 'admin_email', 'smtp_log', 'smtp_max_connections', 'smtp_max_messages', 'smtp_self_signed', 'default_from', 'default_address', 'default_subject', 'default_homepage', 'default_postaddress', 'default_sender', 'verp_hostname', 'verp_use', 'disable_wysiwyg'];
router.all('/*', (req, res, next) => {
if (!req.user) {
@ -76,7 +76,7 @@ router.post('/update', passport.parseForm, passport.csrfProtection, (req, res) =
});
// checkboxs are not included in value listing if left unchecked
['smtp_log', 'smtp_self_signed', 'smtp_disable_auth', 'verp_use'].forEach(key => {
['smtp_log', 'smtp_self_signed', 'smtp_disable_auth', 'verp_use', 'disable_wysiwyg'].forEach(key => {
if (keys.indexOf(key) < 0) {
keys.push(key);
values.push('');

View file

@ -42,7 +42,8 @@ router.get('/subscribe/:cid', (req, res, next) => {
res.render('subscription/subscribed', {
title: list.name,
layout: 'subscription/layout',
homepage: configItems.defaultHomepage || configItems.serviceUrl
homepage: configItems.defaultHomepage || configItems.serviceUrl,
preferences: '/subscription/' + list.cid + '/manage/' + subscription.cid
});
});
});

View file

@ -47,7 +47,7 @@ router.get('/create', passport.csrfProtection, (req, res, next) => {
data.csrfToken = req.csrfToken();
data.useEditor = true;
settings.list(['defaultPostaddress', 'defaultSender'], (err, configItems) => {
settings.list(['defaultPostaddress', 'defaultSender', 'disableWysiwyg'], (err, configItems) => {
if (err) {
return next(err);
}
@ -64,6 +64,7 @@ router.get('/create', passport.csrfProtection, (req, res, next) => {
data.html = data.html || rendererHtml(configItems);
data.text = data.text || rendererText(configItems);
data.disableWysiwyg = configItems.disableWysiwyg;
res.render('templates/create', data);
});
});
@ -81,15 +82,21 @@ router.post('/create', passport.parseForm, passport.csrfProtection, (req, res) =
});
});
router.get('/edit/:id', passport.csrfProtection, (req, res) => {
router.get('/edit/:id', passport.csrfProtection, (req, res, next) => {
templates.get(req.params.id, (err, template) => {
if (err || !template) {
req.flash('danger', err && err.message || err || 'Could not find template with specified ID');
return res.redirect('/templates');
}
template.csrfToken = req.csrfToken();
template.useEditor = true;
res.render('templates/edit', template);
settings.list(['disableWysiwyg'], (err, configItems) => {
if (err) {
return next(err);
}
template.csrfToken = req.csrfToken();
template.useEditor = true;
template.disableWysiwyg = configItems.disableWysiwyg;
res.render('templates/edit', template);
});
});
});