From 983d2ce20bd71d71f88d1d2944d3f8c669ebe695 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Wed, 1 Nov 2017 11:25:24 -0700 Subject: [PATCH] fixed bug with detecting whether form has emails for config panel --- app/controllers/forms.server.controller.js | 5 +++-- app/libs/constants.js | 4 +++- app/libs/send-email-notifications.js | 8 ++++---- .../admin/directives/configure-form.client.directive.js | 4 +++- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/app/controllers/forms.server.controller.js b/app/controllers/forms.server.controller.js index fb32c9d5..a7092a27 100644 --- a/app/controllers/forms.server.controller.js +++ b/app/controllers/forms.server.controller.js @@ -11,7 +11,8 @@ var mongoose = require('mongoose'), diff = require('deep-diff'), _ = require('lodash'), nodemailer = require('nodemailer'), - emailNotifications = require('../libs/send-email-notifications'); + emailNotifications = require('../libs/send-email-notifications'), + constants = require('../libs/constants'); var smtpTransport = nodemailer.createTransport(config.mailer.options); @@ -85,7 +86,7 @@ exports.createSubmission = function(req, res) { form.selfNotifications.from = formFieldDict[form.selfNotifications.fromField].fieldValue; - emailNotifications.send(form.selfNotifications, formFieldDict, smtpTransport, function(err){ + emailNotifications.send(form.selfNotifications, formFieldDict, smtpTransport, constants.varFormat, function(err){ if (!err) { return res.status(200).send('Form submission successfully saved'); } diff --git a/app/libs/constants.js b/app/libs/constants.js index 676a477a..0669eca8 100644 --- a/app/libs/constants.js +++ b/app/libs/constants.js @@ -75,5 +75,7 @@ module.exports = { url: /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/, hexCode: /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/, email: /^(([^<>()\[\]\\.,;:\s@']+(\.[^<>()\[\]\\.,;:\s@']+)*)|('.+'))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ - } + }, + + varFormat: ['${', '}'], }; \ No newline at end of file diff --git a/app/libs/send-email-notifications.js b/app/libs/send-email-notifications.js index efa846e1..d7a8b2c7 100644 --- a/app/libs/send-email-notifications.js +++ b/app/libs/send-email-notifications.js @@ -1,5 +1,5 @@ module.exports = { - send: function(emailSettings, emailTemplateVars, smtpTransport, cb){ + send: function(emailSettings, emailTemplateVars, smtpTransport, varFormat, cb){ var parsedTemplate = parseTemplate(emailSettings.htmlTemplate, emailTemplateVars); var parsedSubject = parseTemplate(emailSettings.body, emailTemplateVars); var mailOptions = { @@ -12,7 +12,7 @@ module.exports = { smtpTransport.sendMail(mailOptions, cb); }, - parseTemplate: function(emailTemplate, emailAttrs){ + parseTemplate: function(emailTemplate, emailAttrs, varFormat){ var resolvedTemplate = emailTemplate; Object.keys(emailAttrs).forEach(function (key) { resolvedTemplate = replaceTemplateVal(key, emailAttrs[key], resolvedTemplate); @@ -20,7 +20,7 @@ module.exports = { return resolvedTemplate; }, - replaceTemplateVal: function(key, val, template){ - return template.replace( new RegExp('${' + key + '}', 'g'), value ) + replaceTemplateVal: function(key, val, template, varFormat){ + return template.replace( new RegExp(varFormat[0] + key + varFormat[1], 'g'), value ) } } \ No newline at end of file diff --git a/public/modules/forms/admin/directives/configure-form.client.directive.js b/public/modules/forms/admin/directives/configure-form.client.directive.js index 443bfb72..4eff1b0b 100644 --- a/public/modules/forms/admin/directives/configure-form.client.directive.js +++ b/public/modules/forms/admin/directives/configure-form.client.directive.js @@ -36,7 +36,9 @@ angular.module('forms').directive('configureFormDirective', ['$rootScope', '$fil return field.fieldType === 'email'; }); - $scope.formHasEmailField = ($rootScope.emailFields > 0); + console.log($rootScope.emailFields); + + $scope.formHasEmailField = ($rootScope.emailFields.length > 0); $scope.go = function(tab){ tab.active = true;