diff --git a/app/templates/account/subscription-view.jade b/app/templates/account/subscription-view.jade index 6affbf51c..0036eee77 100644 --- a/app/templates/account/subscription-view.jade +++ b/app/templates/account/subscription-view.jade @@ -152,7 +152,7 @@ block content else if emailValidator.state === 'invalid' div.invalid-email-message(aria-hidden="true") please make sure all entries are valid emails - textarea.recipient-emails(rows=3, data-i18n="[placeholder]subscribe.recipient_emails_placeholder") + textarea.recipient-emails(rows=3, data-i18n="[placeholder]subscribe.recipient_emails_placeholder")=emailValidator.emailString() div button.recipients-subscribe-button.btn.btn-lg.btn-success(data-i18n="subscribe.subscribe_users") if recipientSubs.state === 'declined' diff --git a/app/views/account/SubscriptionView.coffee b/app/views/account/SubscriptionView.coffee index c71f0feb5..0b5c8958c 100644 --- a/app/views/account/SubscriptionView.coffee +++ b/app/views/account/SubscriptionView.coffee @@ -110,11 +110,16 @@ module.exports = class SubscriptionView extends RootView class EmailValidator validateEmails: (emails, render) -> - emailRegex = /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i - @validEmails = (emailRegex.test(email.trim().toLowerCase()) for email in emails) - return @emailsInvalid(render) if _.contains(@validEmails, false) + #taken from http://www.regular-expressions.info/email.html + emailRegex = /[A-z0-9._%+-]+@[A-z0-9.-]+\.[A-z]{2,4}/ + @validEmails = (email for email in emails when emailRegex.test(email.trim().toLowerCase())) + return @emailsInvalid(render) if @validEmails.length < emails.length return @emailsValid(render) + emailString: -> + return unless @validEmails + return @validEmails.join('\n') + emailsInvalid: (render) -> @state = "invalid" render()