From 6dad946b19e1efdc268a3c77ad2c706934314690 Mon Sep 17 00:00:00 2001 From: Sebastian Mihalache <sebastian.mihalache@gmail.con> Date: Wed, 12 Sep 2018 22:47:15 +0300 Subject: [PATCH] feat(emails): final updates for release emails --- .../src/routes/emails/helpers.js | 2 + .../src/routes/emails/notifications.js | 4 +- .../src/services/email/Email.js | 1 + .../email/templates/partials/footer.hbs | 10 ++--- .../collectionsInvitations/emails/helpers.js | 2 + .../emails/notifications.js | 6 +-- .../fragments/notifications/emailCopy.js | 12 +++--- .../fragments/notifications/notifications.js | 42 ++++++++----------- .../notifications/notifications.js | 2 + 9 files changed, 42 insertions(+), 39 deletions(-) diff --git a/packages/component-email/src/routes/emails/helpers.js b/packages/component-email/src/routes/emails/helpers.js index 6fcbd541b..fe28ae508 100644 --- a/packages/component-email/src/routes/emails/helpers.js +++ b/packages/component-email/src/routes/emails/helpers.js @@ -4,6 +4,7 @@ const { services } = require('pubsweet-component-helper-service') const { getEmailCopy } = require('./emailCopy') const confirmSignUp = config.get('confirm-signup.url') +const { name: journalName, staffEmail } = config.get('journal') module.exports = { sendNewUserEmail: ({ email, role }) => { @@ -12,6 +13,7 @@ module.exports = { let emailType if (role === 'Handling Editor') { emailType = 'he-added-by-admin' + email.fromEmail = `${journalName} <${staffEmail}>` } else { emailType = 'user-added-by-admin' } diff --git a/packages/component-email/src/routes/emails/notifications.js b/packages/component-email/src/routes/emails/notifications.js index 66f2dfa15..28791d3ba 100644 --- a/packages/component-email/src/routes/emails/notifications.js +++ b/packages/component-email/src/routes/emails/notifications.js @@ -2,6 +2,7 @@ const config = require('config') const unsubscribeSlug = config.get('unsubscribe.url') const resetPath = config.get('invite-reset-password.url') +const staffEmail = config.get('journal.staffEmail') const { Email, services } = require('pubsweet-component-helper-service') @@ -11,9 +12,10 @@ module.exports = { async sendNotifications({ user, baseUrl, role, UserModel }) { const email = new Email({ type: 'user', + fromEmail: `Hindawi <${staffEmail}>`, toUser: { email: user.email, - name: `${user.firstName} ${user.lastName}`, + name: `${user.lastName}`, }, content: { ctaLink: services.createUrl(baseUrl, resetPath, { diff --git a/packages/component-helper-service/src/services/email/Email.js b/packages/component-helper-service/src/services/email/Email.js index d161f2129..0271625e2 100644 --- a/packages/component-helper-service/src/services/email/Email.js +++ b/packages/component-helper-service/src/services/email/Email.js @@ -73,6 +73,7 @@ class Email { const { fromEmail: from } = this const { email: to } = this.toUser const { subject } = this.content + const mailData = { to, text, diff --git a/packages/component-helper-service/src/services/email/templates/partials/footer.hbs b/packages/component-helper-service/src/services/email/templates/partials/footer.hbs index 355088275..f461fdbaa 100644 --- a/packages/component-helper-service/src/services/email/templates/partials/footer.hbs +++ b/packages/component-helper-service/src/services/email/templates/partials/footer.hbs @@ -1,12 +1,12 @@ <div data-role="module-unsubscribe" class="module unsubscribe-css__unsubscribe___2CDlR" role="module" data-type="unsubscribe" style="color:#444444;font-size:12px;line-height:20px;padding:16px 16px 16px 16px;text-align:center"> <div class="Unsubscribe--addressLine"> - <p class="Unsubscribe--senderName" style="font-family:Arial, Helvetica, sans-serif;font-size:12px;line-height:20px">Hindawi Publishing Corporation</p> + <p class="Unsubscribe--senderName" style="font-family:Arial, Helvetica, sans-serif;font-size:12px;line-height:20px">Hindawi Limited</p> <p style="font-family:Arial, Helvetica, sans-serif;font-size:12px;line-height:20px"> - <span class="Unsubscribe--senderAddress">315 Madison Ave, Third Floor, Suite 3070</span>, - <span class="Unsubscribe--senderCity">NEW YORK</span>, - <span class="Unsubscribe--senderState">NY</span> - <span class="Unsubscribe--senderZip">10017</span> + <span class="Unsubscribe--senderAddress">3rd Floor, Adam House, 1 Fitzroy Square</span>, + <span class="Unsubscribe--senderCity">LONDON</span>, + <span class="Unsubscribe--senderState">United Kingdom</span> + <span class="Unsubscribe--senderZip">W1T 5HF</span> </p> </div> <p style="font-family:Arial, Helvetica, sans-serif;font-size:12px;line-height:20px"> diff --git a/packages/component-invite/src/routes/collectionsInvitations/emails/helpers.js b/packages/component-invite/src/routes/collectionsInvitations/emails/helpers.js index 7b788cf69..eb67aa423 100644 --- a/packages/component-invite/src/routes/collectionsInvitations/emails/helpers.js +++ b/packages/component-invite/src/routes/collectionsInvitations/emails/helpers.js @@ -4,6 +4,7 @@ const { services } = require('pubsweet-component-helper-service') const { getEmailCopy } = require('./emailCopy') const unsubscribeSlug = config.get('unsubscribe.url') +const { name: journalName, staffEmail } = config.get('journal') module.exports = { sendInvitedHEEmail: ({ @@ -23,6 +24,7 @@ module.exports = { ? `${customId}: Editor invitation cancelled` : `${customId}: Invitation to edit a manuscript` + email.fromEmail = `${journalName} <${staffEmail}>` email.content.unsubscribeLink = services.createUrl( baseUrl, unsubscribeSlug, diff --git a/packages/component-invite/src/routes/collectionsInvitations/emails/notifications.js b/packages/component-invite/src/routes/collectionsInvitations/emails/notifications.js index 3d19bde22..c018cdefe 100644 --- a/packages/component-invite/src/routes/collectionsInvitations/emails/notifications.js +++ b/packages/component-invite/src/routes/collectionsInvitations/emails/notifications.js @@ -7,7 +7,7 @@ const { Fragment, } = require('pubsweet-component-helper-service') -const { helpers } = require('./helpers') +const { sendInvitedHEEmail, sendEiCEmail } = require('./helpers') module.exports = { async sendNotifications({ @@ -52,7 +52,7 @@ module.exports = { }) if (isEiC) { - helpers.sendInvitedHEEmail({ + sendInvitedHEEmail({ email, baseUrl, eicName, @@ -62,7 +62,7 @@ module.exports = { handlingEditor: invitedHE, }) } else { - helpers.sendEiCEmail({ + sendEiCEmail({ eic, email, baseUrl, diff --git a/packages/component-manuscript-manager/src/routes/fragments/notifications/emailCopy.js b/packages/component-manuscript-manager/src/routes/fragments/notifications/emailCopy.js index f6c08ecae..b48925f98 100644 --- a/packages/component-manuscript-manager/src/routes/fragments/notifications/emailCopy.js +++ b/packages/component-manuscript-manager/src/routes/fragments/notifications/emailCopy.js @@ -25,16 +25,16 @@ const getEmailCopy = ({ emailType, titleText, expectedDate, customId }) => { paragraph = `Manuscript ID ${customId} has been submitted and a package has been sent. Please click on the link below to either approve or reject the manuscript:` break case 'coauthors-manuscript-submitted': - paragraph = `${titleText}<br/> - To confirm the submission and view the status of the manuscript, please verify your details by clicking the link below.<br/> - Thank you for submitting your work to ${journalName}. <br/> + paragraph = `${titleText}.<br/><br/> + To confirm the submission and view the status of the manuscript, please verify your details by clicking the link below.<br/><br/> + Thank you for submitting your work to ${journalName}. ` break case 'submitting-author-manuscript-submitted': - paragraph = `Congratulations, ${titleText} has been successfully submitted to ${journalName}.<br/> + paragraph = `Congratulations, ${titleText} has been successfully submitted to ${journalName}.<br/><br/> We will confirm this submission with all authors of the manuscript, but you will be the primary recipient of communications from the journal. - As submitting author, you will be responsible for responding to editorial queries and making updates to the manuscript. <br/> - In order to view the status of the manuscript, please visit the manuscript details page.<br/> + As submitting author, you will be responsible for responding to editorial queries and making updates to the manuscript. <br/><br/> + In order to view the status of the manuscript, please visit the manuscript details page.<br/><br/> Thank you for submitting your work to ${journalName}. ` break diff --git a/packages/component-manuscript-manager/src/routes/fragments/notifications/notifications.js b/packages/component-manuscript-manager/src/routes/fragments/notifications/notifications.js index b656b8a0c..e021abc11 100644 --- a/packages/component-manuscript-manager/src/routes/fragments/notifications/notifications.js +++ b/packages/component-manuscript-manager/src/routes/fragments/notifications/notifications.js @@ -9,11 +9,10 @@ const { } = require('pubsweet-component-helper-service') const resetPath = config.get('invite-reset-password.url') -const journalName = config.get('journal.name') -const { getEmailCopy } = require('./emailCopy') - +const { name: journalName, staffEmail } = config.get('journal') const unsubscribeSlug = config.get('unsubscribe.url') -const editorialAssistantEmail = config.get('journal.staffEmail') + +const { getEmailCopy } = require('./emailCopy') module.exports = { async sendNotifications({ @@ -37,14 +36,13 @@ module.exports = { }) const { customId } = collection - const titleText = `the manuscript titled "${parsedFragment.title}" by ${ - submittingAuthor.firstName - } ${submittingAuthor.lastName}` const email = new Email({ type: 'user', + fromEmail: `${journalName} <${staffEmail}>`, content: { signatureName: '', + signatureJournal: journalName, ctaLink: services.createUrl( baseUrl, `/projects/${collection.id}/versions/${fragment.id}/details`, @@ -87,11 +85,14 @@ module.exports = { sendAuthorsEmail({ email, baseUrl, - titleText, UserModel, fragmentId: fragment.id, fragmentAuthors: authors, collectionId: collection.id, + title: parsedFragment.title, + submittingAuthorName: `${submittingAuthor.firstName} ${ + submittingAuthor.lastName + }`, }) } }, @@ -168,23 +169,17 @@ const sendReviewersEmail = async ({ }) } -const sendEQSEmail = ({ - email, - eicName, - baseUrl, - collection, - subjectBaseText, -}) => { +const sendEQSEmail = ({ email, eicName, baseUrl, collection }) => { const emailType = 'eqs-manuscript-submitted' email.toUser = { - email: editorialAssistantEmail, + email: staffEmail, name: 'Editorial Assistant', } email.content.unsubscribeLink = baseUrl email.content.signatureName = eicName - email.content.subject = `${subjectBaseText} Submitted` + email.content.subject = `Manuscript Submitted` email.content.ctaLink = services.createUrl( baseUrl, config.get('eqs-decision.url'), @@ -209,14 +204,14 @@ const sendAuthorsEmail = async ({ email, title, baseUrl, - customId, UserModel, - titleText, fragmentId, collectionId, fragmentAuthors, + submittingAuthorName, }) => { email.content.subject = `Manuscript submitted to ${journalName}` + email.content.signatureName = '' const userEmailData = await Promise.all( fragmentAuthors.map(async author => { @@ -225,15 +220,12 @@ const sendAuthorsEmail = async ({ ...author, isConfirmed: user.isConfirmed, ...getEmailCopy({ - customId, emailType: author.isSubmitting ? 'submitting-author-manuscript-submitted' : 'coauthors-manuscript-submitted', titleText: author.isSubmitting - ? titleText - : `The manuscript titled "${title}" has been submitted to ${journalName} by ${ - author.firstName - } ${author.lastName}`, + ? `the manuscript titled "${title}"` + : `The manuscript titled "${title}" has been submitted to ${journalName} by ${submittingAuthorName}`, }), } }), @@ -277,6 +269,8 @@ const sendAuthorsEmail = async ({ body: { paragraph: author.paragraph, hasLink: author.hasLink, + hasIntro: author.hasIntro, + hasSignature: author.hasSignature, }, }) email.sendEmail({ html, text }) diff --git a/packages/component-manuscript-manager/src/routes/technicalChecks/notifications/notifications.js b/packages/component-manuscript-manager/src/routes/technicalChecks/notifications/notifications.js index e58ed24cd..a51cf5e2b 100644 --- a/packages/component-manuscript-manager/src/routes/technicalChecks/notifications/notifications.js +++ b/packages/component-manuscript-manager/src/routes/technicalChecks/notifications/notifications.js @@ -10,6 +10,7 @@ const { const { getEmailCopy } = require('./emailCopy') const unsubscribeSlug = config.get('unsubscribe.url') +const { name: journalName, staffEmail } = config.get('journal') module.exports = { async sendNotifications({ @@ -46,6 +47,7 @@ module.exports = { const email = new Email({ type: 'user', + fromEmail: `${journalName} <${staffEmail}>`, content: { subject, signatureName: 'EQA Team', -- GitLab