| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- _ = require('underscore')
- settings = require("settings-sharelatex")
- marked = require('marked')
- PersonalEmailLayout = require("./Layouts/PersonalEmailLayout")
- NotificationEmailLayout = require("./Layouts/NotificationEmailLayout")
- BaseWithHeaderEmailLayout = require("./Layouts/" + settings.brandPrefix + "BaseWithHeaderEmailLayout")
- SingleCTAEmailBody = require("./Bodies/" + settings.brandPrefix + "SingleCTAEmailBody")
- CTAEmailTemplate = (content) ->
- content.greeting ?= () -> 'Hi,'
- content.secondaryMessage ?= () -> ""
- return {
- subject: (opts) -> content.subject(opts),
- layout: BaseWithHeaderEmailLayout,
- plainTextTemplate: (opts) -> """
- #{content.greeting(opts)}
- #{content.message(opts).trim()}
- #{content.ctaText(opts)}: #{content.ctaURL(opts)}
- #{content.secondaryMessage?(opts).trim() or ""}
- Regards,
- The #{settings.appName} Team - #{settings.siteUrl}
- """
- compiledTemplate: (opts) ->
- SingleCTAEmailBody({
- title: content.title?(opts)
- greeting: content.greeting(opts)
- message: marked(content.message(opts).trim())
- secondaryMessage: marked(content.secondaryMessage(opts).trim())
- ctaText: content.ctaText(opts)
- ctaURL: content.ctaURL(opts)
- gmailGoToAction: content.gmailGoToAction?(opts)
- })
- }
- templates = {}
- templates.registered = CTAEmailTemplate({
- subject: () -> "Activate your #{settings.appName} Account"
- message: (opts) -> """
- Congratulations, you've just had an account created for you on #{settings.appName} with the email address '#{opts.to}'.
- Click here to set your password and log in:
- """
- secondaryMessage: () -> "If you have any questions or problems, please contact #{settings.adminEmail}"
- ctaText: () -> "Set password"
- ctaURL: (opts) -> opts.setNewPasswordUrl
- })
- templates.canceledSubscription = CTAEmailTemplate({
- subject: () -> "#{settings.appName} thoughts"
- message: () -> """
- I'm sorry to see you cancelled your #{settings.appName} premium account. Would you mind giving us some feedback on what the site is lacking at the moment via this quick survey?
- """
- secondaryMessage: () -> "Thank you in advance!"
- ctaText: () -> "Leave Feedback"
- ctaURL: (opts) -> "https://sharelatex.typeform.com/to/f5lBiZ"
- })
- templates.passwordResetRequested = CTAEmailTemplate({
- subject: () -> "Password Reset - #{settings.appName}"
- title: () -> "Password Reset"
- message: () -> "We got a request to reset your #{settings.appName} password."
- secondaryMessage: () -> """
- If you ignore this message, your password won't be changed.
- If you didn't request a password reset, let us know.
- """
- ctaText: () -> "Reset password"
- ctaURL: (opts) -> opts.setNewPasswordUrl
- })
- templates.confirmEmail = CTAEmailTemplate({
- subject: () -> "Confirm Email - #{settings.appName}"
- title: () -> "Confirm Email"
- message: () -> "Please confirm your email on #{settings.appName}."
- ctaText: () -> "Confirm Email"
- ctaURL: (opts) -> opts.confirmEmailUrl
- })
- templates.projectInvite = CTAEmailTemplate({
- subject: (opts) -> "#{opts.project.name} - shared by #{opts.owner.email}"
- title: (opts) -> "#{ opts.project.name } - shared by #{ opts.owner.email }"
- message: (opts) -> "#{ opts.owner.email } wants to share '#{ opts.project.name }' with you."
- ctaText: () -> "View project"
- ctaURL: (opts) -> opts.inviteUrl
- gmailGoToAction: (opts) ->
- target: opts.inviteUrl
- name: "View project"
- description: "Join #{ opts.project.name } at #{ settings.appName }"
- })
- templates.verifyEmailToJoinTeam = CTAEmailTemplate({
- subject: (opts) -> "#{ opts.inviterName } has invited you to join a team on #{settings.appName}"
- title: (opts) -> "#{opts.inviterName} has invited you to join a team on #{settings.appName}"
- message: (opts) -> "Please click the button below to join the team and enjoy the benefits of an upgraded #{ settings.appName } account."
- ctaText: (opts) -> "Join now"
- ctaURL: (opts) -> opts.acceptInviteUrl
- })
- templates.testEmail = CTAEmailTemplate({
- subject: () -> "A Test Email from #{settings.appName}"
- title: () -> "A Test Email from #{settings.appName}"
- greeting: () -> "Hi,"
- message: () -> "This is a test Email from #{settings.appName}"
- ctaText: () -> "Open #{settings.appName}"
- ctaURL: () -> settings.siteUrl
- })
- module.exports =
- templates: templates
- CTAEmailTemplate: CTAEmailTemplate
- buildEmail: (templateName, opts)->
- template = templates[templateName]
- opts.siteUrl = settings.siteUrl
- opts.body = template.compiledTemplate(opts)
- if settings.email?.templates?.customFooter?
- opts.body += settings.email?.templates?.customFooter
- return {
- subject : template.subject(opts)
- html: template.layout(opts)
- text: template?.plainTextTemplate?(opts)
- }
|