Use markerb for emails

* Add markerb to the Gemfile
* Update mailer classes to send multipart text+html emails
* Simplify all email templates and convert to Markdown+ERB

This required stripping the CSS and images from the emails. All
Markdown templates are based on the original HTML version except
for the inviter, where it was much easier to work with the text
version (and the i18n contains the whole message anyway).
This commit is contained in:
Steven Hancock 2012-04-28 04:00:56 -07:00
parent 4c7e82fec9
commit 56db268613
41 changed files with 98 additions and 450 deletions

View file

@ -29,6 +29,7 @@ gem 'rails_admin'
# mail # mail
gem 'markerb', '~> 1.0.0'
gem 'messagebus_ruby_api', '1.0.3' gem 'messagebus_ruby_api', '1.0.3'
gem 'airbrake' gem 'airbrake'
gem 'newrelic_rpm' gem 'newrelic_rpm'
@ -116,12 +117,12 @@ group :assets do
# install Node.js or use 'therubyracer'. # install Node.js or use 'therubyracer'.
# #
# See https://github.com/sstephenson/execjs#readme for more supported runtimes # See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', :platform => :ruby # gem 'therubyracer', :platform => :ruby
gem 'handlebars_assets' gem 'handlebars_assets'
gem 'uglifier' gem 'uglifier'
# asset_sync is required as needed by application.rb # asset_sync is required as needed by application.rb
gem "asset_sync", :require => nil gem "asset_sync", :require => nil
end end

View file

@ -263,6 +263,8 @@ GEM
i18n (>= 0.4.0) i18n (>= 0.4.0)
mime-types (~> 1.16) mime-types (~> 1.16)
treetop (~> 1.4.8) treetop (~> 1.4.8)
markerb (1.0.0)
redcarpet (>= 2.0)
messagebus_ruby_api (1.0.3) messagebus_ruby_api (1.0.3)
mime-types (1.18) mime-types (1.18)
mini_magick (3.4) mini_magick (3.4)
@ -543,6 +545,7 @@ DEPENDENCIES
json json
jwt jwt
linecache (= 0.46) linecache (= 0.46)
markerb (~> 1.0.0)
messagebus_ruby_api (= 1.0.3) messagebus_ruby_api (= 1.0.3)
mini_magick (= 3.4) mini_magick (= 3.4)
mobile-fu mobile-fu

View file

@ -30,7 +30,10 @@ class Notifier < ActionMailer::Base
mail(default_opts) mail(default_opts) do |format|
format.text
format.html
end
end end
def invite(email, message, inviter, invitation_code, locale) def invite(email, message, inviter, invitation_code, locale)
@ -44,7 +47,10 @@ class Notifier < ActionMailer::Base
:host => AppConfig[:pod_uri].host} :host => AppConfig[:pod_uri].host}
I18n.with_locale(locale) do I18n.with_locale(locale) do
mail(mail_opts) mail(mail_opts) do |format|
forat.text
forat.html
end
end end
end end
@ -85,7 +91,10 @@ class Notifier < ActionMailer::Base
@notification = NotificationMailers.const_get(type.to_s.camelize).new(*args) @notification = NotificationMailers.const_get(type.to_s.camelize).new(*args)
with_recipient_locale do with_recipient_locale do
mail(@notification.headers) mail(@notification.headers) do |format|
format.text
format.html
end
end end
end end

View file

@ -1,18 +0,0 @@
<table style="padding: 20px 20px; background: rgb(255, 255, 255) none repeat scroll 0%; font-size: 16px; color: rgb(51, 51, 51); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="center" border="0" cellpadding="0" cellspacing="0" width="600">
<tbody><tr>
<td width='100px'></td>
<td width="70px">
<a href="<%= accept_invitation_url(@resource, :invitation_token => @resource.invitation_token)%>" target="_blank"><img style="border: 0pt none ; padding: 0pt 5px; display: block;" src="<%=invite.sender.person.profile.image_url(:thumb_medium) %>" height="75" ></a>
</td>
<td style="line-height: 20px; width: 360px;">
<%= t('.has_invited_you', :name => invite.sender.name + " (#{invite.sender.diaspora_handle})") %> <br/>
<% unless invite.message.blank? %>
<strong> "<%= invite.message %>"</strong>
<% end %>
</td>
<td width='100px'></td>
</tr>
</tbody></table>

View file

@ -1,13 +0,0 @@
!!!
%html
%head
%meta{"http-equiv"=>"Content-Type", :content=>"text/html; charset=utf-8"}/
= render :partial => 'notifier/notifier_css'
%body
%header
= image_tag('branding/white.png')
#container
%p
= t('devise.mailer.welcome', :email => @resource.email)
%p= t('.you_can_confirm')
%p= link_to t('.confirm'), confirmation_url(@resource, :confirmation_token => @resource.confirmation_token), :class => "large_text"

View file

@ -0,0 +1,7 @@
<%= t('devise.mailer.welcome', :email => @resource.email) %>
<%= t('.you_can_confirm') %>
[<%= t('.confirm') %>][1]
[1]: <%= confirmation_url(@resource, :confirmation_token => @resource.confirmation_token) %>

View file

@ -1,174 +0,0 @@
<%- self.extend NotifierHelper -%>
<% @invites = @resource.invitations_to_me.includes(:sender =>{:person => :profile}).where(:admin => false).all %>
<head>
<title><%=invite_email_title %></title>
</head>
<p style="background-color: rgb(255, 255, 255); text-align: center; font-size: 11px;"><%= t('.displaying_correctly', :link => link_to(t('.view_in'), invite_email_url(:invitation_token => @resource.invitation_token), :style => "color: #3F8FBA; text-decoration: none;")).html_safe %> </p>
<table border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td style="padding: 30px 15px 0pt; background-color: rgb(221, 221, 221);">
<table style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-size: 16px; color: rgb(51, 51, 51);" align="center" border="0" cellpadding="0" cellspacing="0" width="600">
<tbody>
<tr>
<td style="background-color: rgb(0, 0, 0);">
<a style="display: block;" href="<%= accept_invitation_url(@resource, :invitation_token => @resource.invitation_token) %>" target="_blank">
<img alt="Diaspora" src="http://dl.dropbox.com/u/15865/diaspora%20logo.png" style="border: 0pt none ; display: block;" height="134" width="600">
</a>
</td>
</tr>
<tr>
<td style="padding: 10px 0pt 0px 20px; background: rgb(255, 255, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-size: 44px; font-weight: bold; color: rgb(0, 0, 0);">
<%= t('.finally') %><br>
</td>
</tr>
<tr><td style="padding: 0px 20px 0pt; background: rgb(255, 255, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" width="600" height='389'>
<a href="<%= accept_invitation_url(@resource, :invitation_token => @resource.invitation_token)%>" target="_blank"><img src="http://dl.dropbox.com/u/15865/diaspora_shots.jpg" style="border: 0pt none ; display: block;" width="560">
</a></td></tr>
<tr><td style="padding: 0pt 30px; background: rgb(255, 255, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 20px;">
<%= t('.arrived', :strong_diaspora => content_tag(:strong, "DIASPORA*")).html_safe %>
<br>
<br>
<%= link_to(t('.sign_up_now').html_safe, accept_invitation_url(@resource, :invitation_token => @resource.invitation_token), :style => "color: #3F8FBA; text-decoration: underline; font-weight: bold; font-size: 20px;", :target => "_blank").html_safe %>
</td></tr>
<% unless @invites.blank? %>
<% @invites_with_message, @invites_without_message = @invites.partition{|x| !x.message.blank?} %>
<% unless @invites_with_message.empty? %>
<tr>
<td style="padding: 10px 0pt 0px 20px; background: rgb(255, 255, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-size: 24px; font-weight: bold; color: rgb(0, 0, 0);">
<br>
<%= t('.friends_saying') %><br>
</td>
</tr>
<% @invites_with_message.each do |i| %>
<tr><td>
<%= render(:partial => 'devise/mailer/inviter', :locals => {:invite => i}) %>
</td></tr>
<% end %>
<% end %>
<% unless @invites_without_message.empty? %>
<tr>
<td style="padding: 10px 0pt 0px 20px; background: rgb(255, 255, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-size: 24px; font-weight: bold; color: rgb(0, 0, 0);">
<br>
<%= t('.more_people') %><br>
</td>
</tr>
<% @invites_without_message.each do |i| %>
<tr><td>
<%= render(:partial => 'devise/mailer/inviter', :locals => {:invite => i}) %>
</td></tr>
<% end %>
<% end %>
<% end %>
<tr><td style="padding: 20px 20px 0px; background: rgb(255, 255, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-size: 44px; font-weight: bold; color: rgb(0, 0, 0);">
1. <%= t('.get_connected') %></td></tr>
<tr><td>
<table style="padding: 0pt 20px; background: rgb(255, 255, 255) none repeat scroll 0%; font-size: 16px; color: rgb(51, 51, 51); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="center" border="0" cellpadding="0" cellspacing="0" width="600">
<tbody><tr>
<td width="200">
<a href="<%=accept_invitation_url(@resource, :invitation_token => @resource.invitation_token) %>" target="_blank"><img style="border: 0pt none ; padding: 0pt 10px 0px 5px; display: block;" src="https://joindiaspora.s3.amazonaws.com/uploads/images/scaled_full_c7506ec0b3ae6694c64d.gif" height="156" width="200"></a>
</td>
<td style="line-height: 20px; width: 360px;">
<%= t('.get_connected_paragraph', :strong_diaspora => content_tag(:strong, "DIASPORA*")).html_safe %>
<br>
<!-- <a style="color: #3F8FBA; text-decoration: underline; font-weight: bold; font-size: 20px;" href="https://joindiaspora.com/channels" target="_blank">Tune in to your favorite Channels</a>-->
</td>
</tr>
</tbody></table>
</td></tr>
<tr><td style="padding: 20px 20px 0px; background: rgb(255, 255, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-size: 44px; font-weight: bold; color: rgb(0, 0, 0);">
2. <%= t('.be_yourself') %></td></tr>
<tr><td>
<table style="padding: 0pt 20px; background: rgb(255, 255, 255) none repeat scroll 0%; font-size: 16px; color: rgb(51, 51, 51); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="center" border="0" cellpadding="0" cellspacing="0" width="600">
<tbody><tr>
<td style="line-height: 20px; width: 360px;">
<%= t('.be_yourself_paragraph', :strong_diaspora => content_tag(:strong, "DIASPORA*")).html_safe %>
<br>
<!-- <a style="color: #3F8FBA; text-decoration: underline; font-weight: bold; font-size: 20px;" href="#" target="_blank">Watch all the bumpers</a>-->
</td>
<td width="200">
<a href="<%= accept_invitation_url(@resource, :invitation_token => @resource.invitation_token)%>" target="_blank"><img style="border: 0pt none ; padding: 0pt 5px 0px 10px; display: block;" src="http://dl.dropbox.com/u/15865/apolonisaphrodisia.png" height="150" width="170"></a>
</td>
</tr>
</tbody></table>
</td></tr>
<tr><td style="padding: 20px 20px 0px; background: rgb(255, 255, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-size: 44px; font-weight: bold; color: rgb(0, 0, 0);">
3. <%= t('.have_fun') %></td></tr>
<tr><td>
<table style="padding: 0pt 20px; background: rgb(255, 255, 255) none repeat scroll 0%; font-size: 16px; color: rgb(51, 51, 51); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="center" border="0" cellpadding="0" cellspacing="0" width="600">
<tbody><tr>
<td width="200">
<a href="<%= accept_invitation_url(@resource, :invitation_token => @resource.invitation_token)%>" target="_blank"><img style="border: 0pt none ; padding: 0pt 5px; display: block;" src="http://joindiaspora.com/images/cubbies_screenshot2.png" height="151" width="200"></a>
</td>
<td style="line-height: 20px; width: 360px;">
<%= t('.have_fun_paragraph', :strong_diaspora => content_tag(:strong, "DIASPORA*"), :link => link_to(t('.cubbies'), "https://cubbi.es", :style => "color: #3F8FBA; text-decoration: underline; font-weight: bold; font-size: 20px;", :target => "_blank")).html_safe %>
<!-- <a style="color: #3F8FBA; text-decoration: underline; font-weight: bold; font-size: 20px;" href="#" target="_blank">Watch all the bumpers</a>-->
</td>
</tr>
</tbody></table>
</td></tr>
<tr><td>
<table style="padding: 0pt 20px; background: rgb(255, 255, 255) none repeat scroll 0%; font-size: 16px; color: rgb(51, 51, 51); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="center" border="0" cellpadding="0" cellspacing="0" width="600">
<tbody>
<tr>
<td style="padding: 40px 20px 20px; background: rgb(255, 255, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">
<%= link_to(t('.sign_up_now').html_safe, accept_invitation_url(@resource, :invitation_token => @resource.invitation_token), :style => "color: #3F8FBA; text-decoration: underline; font-weight: bold; font-size: 20px;", :target => "_blank").html_safe %>
</td>
</tr>
</tbody>
</table>
</td></tr>
<tr><td>
<table style="padding: 0pt 20px; background: rgb(255, 255, 255) none repeat scroll 0%; font-size: 16px; color: rgb(51, 51, 51); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="center" border="0" cellpadding="0" cellspacing="0" width="600">
<tbody>
<tr>
<td style="padding: 20px 20px 0px; background: rgb(255, 255, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">
<%= t('.made_by_people', :strong_diaspora => content_tag(:strong, "DIASPORA*"), :jointeam => link_to(t('.join_team'), "https://github.com/diaspora/diaspora/wiki/Become-a-Contributor", :style =>"color: #3F8FBA; text-decoration: underline; font-weight: bold; font-size: 18px;", :target => "_blank"), :helpfund => link_to(t('.help_fund'), "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QG4L6VYD8YGPU", :style =>"color: #3F8FBA; text-decoration: underline; font-weight: bold; font-size: 18px;", :target => "_blank")).html_safe %>
</td>
</tr>
</tbody>
</table>
</td></tr>
<tr><td style="padding: 35px 20px 20px; background: rgb(255, 255, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">
<%= t('.love') %><br>
<%= t('.team_diaspora') %><br>
</td></tr>
<tr><td style="padding: 35px 40px; font-size: 11px; color: rgb(102, 102, 102); line-height: 16px;">
<% if AppConfig[:pod_uri].host.match(/joindiaspora.com/) %>
<%= t('.unsubscribe', :link => link_to(t('.here'), "http://joindiaspora.us1.list-manage.com/unsubscribe?u=d759919b94f9cdcf39d204f3f&id=7b5ceb2f8b", :style => "color: #3F8FBA; text-decoration: none;")).html_safe %>
<% end %>
<%= t('.email_us', :email => link_to(t('.email_address'), "mailto:questions@joindiaspora.com", :style => "color: #3F8FBA; text-decoration: none;")).html_safe %>
</td></tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>

View file

@ -1,15 +0,0 @@
!!!
%html
%head
%meta{"http-equiv"=>"Content-Type", :content=>"text/html; charset=utf-8"}/
= render :partial => 'notifier/notifier_css'
%body
%header
= image_tag('branding/white.png')
#container
%p
= t('devise.mailer.hello', :email => @resource.email)
%p= t('.someone_requested')
%p= link_to t('.change'), edit_password_url(@resource, :reset_password_token => @resource.reset_password_token), :class => "large_text"
%p= t('.wont_change')
%p.small= t('.ignore')

View file

@ -0,0 +1,11 @@
<%= t('devise.mailer.hello', :email => @resource.email) %>
<%= t('.someone_requested') %>
[<%= t('.change') %>][1]
[1]: <%= edit_password_url(@resource, :reset_password_token => @resource.reset_password_token) %>
<%= t('.wont_change') %>
<%= t('.ignore') %>

View file

@ -1,14 +0,0 @@
!!!
%html
%head
%meta{"http-equiv"=>"Content-Type", :content=>"text/html; charset=utf-8"}/
= render :partial => 'notifier/notifier_css'
%body
%header
= image_tag('branding/white.png')
#container
%p
= t('devise.mailer.hello', :email => @resource.email)
%p= t('.account_locked')
%p= t('.click_to_unlock')
%p= link_to t('.unlock'), unlock_url(@resource, :unlock_token => @resource.unlock_token), :class => "large_text"

View file

@ -0,0 +1,9 @@
<%= t('devise.mailer.hello', :email => @resource.email) %>
<%= t('.account_locked') %>
<%= t('.click_to_unlock') %>
[<%= t('.unlock') %>][1]
[1]: <%= unlock_url(@resource, :unlock_token => @resource.unlock_token) %>

View file

@ -1,4 +0,0 @@
%p
= comment_message(@notification.comment, :process_newlines => true)
%p
= link_to t('notifier.comment_on_post.reply', :name => @notification.comment.post.author.first_name), post_url(@notification.comment.post)

View file

@ -0,0 +1,5 @@
<%= comment_message(@notification.comment, :process_newlines => true) %>
[<%= t('notifier.comment_on_post.reply', :name => @notification.comment.post.author.first_name) %>][1]
[1]: <%= post_url(@notification.comment.post) %>

View file

@ -1 +0,0 @@
!= comment_message(@notification.comment)

View file

@ -1,4 +0,0 @@
%p
= comment_message(@notification.comment, :process_newlines => true)
%p
= link_to t('notifier.comment_on_post.reply', :name => @notification.comment.post.author.name), post_url(@notification.comment.post)

View file

@ -0,0 +1,5 @@
<%= comment_message(@notification.comment, :process_newlines => true) %>
[<%= t('notifier.comment_on_post.reply', :name => @notification.comment.post.author.name) %>][1]
[1]: <%= post_url(@notification.comment.post) %>

View file

@ -1 +0,0 @@
!= comment_message(@notification.comment)

View file

@ -1,7 +0,0 @@
%p
= t('notifier.hello', :name => @notification.recipient.profile.first_name)
%p
!= t('notifier.confirm_email.click_link', :unconfirmed_email => @notification.recipient.unconfirmed_email)
%br
= link_to confirm_email_url(:token => @notification.recipient.confirm_email_token),
confirm_email_url(:token => @notification.recipient.confirm_email_token)

View file

@ -0,0 +1,5 @@
<%= t('notifier.hello', :name => @notification.recipient.profile.first_name) %>
<%= t('notifier.confirm_email.click_link', :unconfirmed_email => @notification.recipient.unconfirmed_email) %>
<<%= confirm_email_url(:token => @notification.recipient.confirm_email_token) %>>

View file

@ -1,4 +0,0 @@
!= t('notifier.hello', :name => @notification.recipient.profile.first_name)
!= t('notifier.confirm_email.click_link', :unconfirmed_email => @notification.recipient.unconfirmed_email)
!= confirm_email_url(:token => @notification.recipient.confirm_email_token)

View file

@ -1,134 +0,0 @@
<%- self.extend NotifierHelper -%>
<head>
<title><%=invite_email_title %></title>
</head>
<p style="background-color: rgb(255, 255, 255); text-align: center; font-size: 11px;"><%= t('devise.mailer.invitation_instructions.displaying_correctly', :link => link_to(t('devise.mailer.invitation_instructions.view_in'), invite_email_url(:invitation_code => @invitation_code), :style => "color: #3F8FBA; text-decoration: none;")).html_safe %> </p>
<table border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td style="padding: 30px 15px 0pt; background-color: rgb(221, 221, 221);">
<table style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-size: 16px; color: rgb(51, 51, 51);" align="center" border="0" cellpadding="0" cellspacing="0" width="600">
<tbody>
<tr>
<td style="background-color: rgb(0, 0, 0);">
<a style="display: block;" href="<%= invite_code_url(@invitation_code) %>" target="_blank">
<img alt="Diaspora" src="http://dl.dropbox.com/u/15865/diaspora%20logo.png" style="border: 0pt none ; display: block;" height="134" width="600">
</a>
</td>
</tr>
<tr>
<td style="padding: 10px 0pt 0px 20px; background: rgb(255, 255, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-size: 44px; font-weight: bold; color: rgb(0, 0, 0);">
<%= t('devise.mailer.invitation_instructions.finally') %><br>
</td>
</tr>
<tr><td style="padding: 0px 20px 0pt; background: rgb(255, 255, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" width="600" height='389'>
<a href="<%= invite_code_url(@invitation_code)%>" target="_blank"><img src="http://dl.dropbox.com/u/15865/diaspora_shots.jpg" style="border: 0pt none ; display: block;" width="560">
</a></td></tr>
<tr><td style="padding: 0pt 30px; background: rgb(255, 255, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 20px;">
<%= t('devise.mailer.invitation_instructions.arrived', :strong_diaspora => content_tag(:strong, "DIASPORA*")).html_safe %>
<br>
<br>
<%= link_to(t('devise.mailer.invitation_instructions.sign_up_now').html_safe, invite_code_url(@invitation_code), :style => "color: #3F8FBA; text-decoration: underline; font-weight: bold; font-size: 20px;", :target => "_blank").html_safe %>
</td></tr>
<tr><td style="padding: 20px 20px 0px; background: rgb(255, 255, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-size: 44px; font-weight: bold; color: rgb(0, 0, 0);">
1. <%= t('devise.mailer.invitation_instructions.get_connected') %></td></tr>
<tr><td>
<table style="padding: 0pt 20px; background: rgb(255, 255, 255) none repeat scroll 0%; font-size: 16px; color: rgb(51, 51, 51); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="center" border="0" cellpadding="0" cellspacing="0" width="600">
<tbody><tr>
<td width="200">
<a href="<%=invite_code_url(@invitation_code) %>" target="_blank"><img style="border: 0pt none ; padding: 0pt 10px 0px 5px; display: block;" src="https://joindiaspora.s3.amazonaws.com/uploads/images/scaled_full_c7506ec0b3ae6694c64d.gif" height="156" width="200"></a>
</td>
<td style="line-height: 20px; width: 360px;">
<%= t('devise.mailer.invitation_instructions.get_connected_paragraph', :strong_diaspora => content_tag(:strong, "DIASPORA*")).html_safe %>
<br>
<!-- <a style="color: #3F8FBA; text-decoration: underline; font-weight: bold; font-size: 20px;" href="https://joindiaspora.com/channels" target="_blank">Tune in to your favorite Channels</a>-->
</td>
</tr>
</tbody></table>
</td></tr>
<tr><td style="padding: 20px 20px 0px; background: rgb(255, 255, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-size: 44px; font-weight: bold; color: rgb(0, 0, 0);">
2. <%= t('devise.mailer.invitation_instructions.be_yourself') %></td></tr>
<tr><td>
<table style="padding: 0pt 20px; background: rgb(255, 255, 255) none repeat scroll 0%; font-size: 16px; color: rgb(51, 51, 51); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="center" border="0" cellpadding="0" cellspacing="0" width="600">
<tbody><tr>
<td style="line-height: 20px; width: 360px;">
<%= t('devise.mailer.invitation_instructions.be_yourself_paragraph', :strong_diaspora => content_tag(:strong, "DIASPORA*")).html_safe %>
<br>
<!-- <a style="color: #3F8FBA; text-decoration: underline; font-weight: bold; font-size: 20px;" href="#" target="_blank">Watch all the bumpers</a>-->
</td>
<td width="200">
<a href="<%= invite_code_url(@invitation_code)%>" target="_blank"><img style="border: 0pt none ; padding: 0pt 5px 0px 10px; display: block;" src="http://dl.dropbox.com/u/15865/apolonisaphrodisia.png" height="150" width="170"></a>
</td>
</tr>
</tbody></table>
</td></tr>
<tr><td style="padding: 20px 20px 0px; background: rgb(255, 255, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-size: 44px; font-weight: bold; color: rgb(0, 0, 0);">
3. <%= t('devise.mailer.invitation_instructions.have_fun') %></td></tr>
<tr><td>
<table style="padding: 0pt 20px; background: rgb(255, 255, 255) none repeat scroll 0%; font-size: 16px; color: rgb(51, 51, 51); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="center" border="0" cellpadding="0" cellspacing="0" width="600">
<tbody><tr>
<td width="200">
<a href="<%= invite_code_url(@invitation_code)%>" target="_blank"><img style="border: 0pt none ; padding: 0pt 5px; display: block;" src="http://joindiaspora.com/images/cubbies_screenshot2.png" height="151" width="200"></a>
</td>
<td style="line-height: 20px; width: 360px;">
<%= t('devise.mailer.invitation_instructions.have_fun_paragraph', :strong_diaspora => content_tag(:strong, "DIASPORA*"), :link => link_to(t('devise.mailer.invitation_instructions.cubbies'), "https://cubbi.es", :style => "color: #3F8FBA; text-decoration: underline; font-weight: bold; font-size: 20px;", :target => "_blank")).html_safe %>
<!-- <a style="color: #3F8FBA; text-decoration: underline; font-weight: bold; font-size: 20px;" href="#" target="_blank">Watch all the bumpers</a>-->
</td>
</tr>
</tbody></table>
</td></tr>
<tr><td>
<table style="padding: 0pt 20px; background: rgb(255, 255, 255) none repeat scroll 0%; font-size: 16px; color: rgb(51, 51, 51); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="center" border="0" cellpadding="0" cellspacing="0" width="600">
<tbody>
<tr>
<td style="padding: 40px 20px 20px; background: rgb(255, 255, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">
<%= link_to(t('devise.mailer.invitation_instructions.sign_up_now').html_safe, invite_code_url(@invitation_code), :style => "color: #3F8FBA; text-decoration: underline; font-weight: bold; font-size: 20px;", :target => "_blank").html_safe %>
</td>
</tr>
</tbody>
</table>
</td></tr>
<tr><td>
<table style="padding: 0pt 20px; background: rgb(255, 255, 255) none repeat scroll 0%; font-size: 16px; color: rgb(51, 51, 51); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="center" border="0" cellpadding="0" cellspacing="0" width="600">
<tbody>
<tr>
<td style="padding: 20px 20px 0px; background: rgb(255, 255, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">
<%= t('devise.mailer.invitation_instructions.made_by_people', :strong_diaspora => content_tag(:strong, "DIASPORA*"), :jointeam => link_to(t('devise.mailer.invitation_instructions.join_team'), "https://github.com/diaspora/diaspora/wiki/Become-a-Contributor", :style =>"color: #3F8FBA; text-decoration: underline; font-weight: bold; font-size: 18px;", :target => "_blank"), :helpfund => link_to(t('devise.mailer.invitation_instructions.help_fund'), "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QG4L6VYD8YGPU", :style =>"color: #3F8FBA; text-decoration: underline; font-weight: bold; font-size: 18px;", :target => "_blank")).html_safe %>
</td>
</tr>
</tbody>
</table>
</td></tr>
<tr><td style="padding: 35px 20px 20px; background: rgb(255, 255, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">
<%= t('devise.mailer.invitation_instructions.love') %><br>
<%= t('devise.mailer.invitation_instructions.team_diaspora') %><br>
</td></tr>
<tr><td style="padding: 35px 40px; font-size: 11px; color: rgb(102, 102, 102); line-height: 16px;">
<% if AppConfig[:pod_uri].host.match(/joindiaspora.com/) %>
<%= t('devise.mailer.invitation_instructions.unsubscribe', :link => link_to(t('devise.mailer.invitation_instructions.here'), "http://joindiaspora.us1.list-manage.com/unsubscribe?u=d759919b94f9cdcf39d204f3f&id=7b5ceb2f8b", :style => "color: #3F8FBA; text-decoration: none;")).html_safe %>
<% end %>
<%= t('devise.mailer.invitation_instructions.email_us', :email => link_to(t('devise.mailer.invitation_instructions.email_address'), "mailto:questions@joindiaspora.com", :style => "color: #3F8FBA; text-decoration: none;")).html_safe %>
</td></tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>

View file

@ -0,0 +1 @@
<%= t('.message', :invite_url => invite_code_url(@invitation_code)) %>

View file

@ -1,8 +0,0 @@
%p
= "#{t('.liked', :name => "#{@notification.sender.name}")}:"
%p{:style => "font-style:italic;color:#666"}
= post_message(@notification.like.target, :process_newlines => true)
%p
= link_to t('.view_post'), post_url(@notification.like.target)

View file

@ -0,0 +1,7 @@
<%= "#{t('.liked', :name => "#{@notification.sender.name}")}:" %>
<%= post_message(@notification.like.target, :process_newlines => true) %>
[<%= t('.view_post') %>][1]
[1]: <%= post_url(@notification.like.target) %>

View file

@ -1,3 +0,0 @@
!= "#{t('notifier.liked.liked', :name => "#{@notification.sender.name}")}:"
!=post_message(@notification.like.target)

View file

@ -1,4 +0,0 @@
%p
= post_message(@notification.post, :process_newlines => true, :length => 600)
%p
= link_to t('notifier.comment_on_post.reply', :name => @notification.post.author.name), post_url(@notification.post)

View file

@ -0,0 +1,5 @@
<%= post_message(@notification.post, :process_newlines => true, :length => 600) %>
[<%= t('notifier.comment_on_post.reply', :name => @notification.post.author.name) %>][1]
[1]: <%= post_url(@notification.post) %>

View file

@ -1 +0,0 @@
!= post_message(@notification.post, :process_newlines => true, :length => 600)

View file

@ -1,4 +0,0 @@
%p
= post_message(@notification.message, :process_newlines => true, :length => 2000)
%p
= link_to t('.reply_to_or_view'), conversations_url(:conversation_id => @notification.conversation)

View file

@ -0,0 +1,5 @@
<%= post_message(@notification.message, :process_newlines => true, :length => 2000) %>
[<%= t('.reply_to_or_view') %>][1]
[1]: <%= conversations_url(:conversation_id => @notification.conversation) %>

View file

@ -1 +0,0 @@
!= @notification.message.text

View file

@ -1,8 +0,0 @@
%p
= "#{t('.reshared', :name => "#{@notification.sender.name}")}:"
%p{:style => "font-style:italic;color:#666"}
= post_message(@notification.reshare.root, :process_newlines => true)
%p
= link_to t('.view_post'), post_url(@notification.reshare)

View file

@ -0,0 +1,7 @@
<%= "#{t('.reshared', :name => "#{@notification.sender.name}")}:" %>
<%= post_message(@notification.reshare.root, :process_newlines => true) %>
[<%= t('.view_post') %>][1]
[1]: <%= post_url(@notification.reshare) %>

View file

@ -1,3 +0,0 @@
!= "#{t('notifier.reshared.reshared', :name => "#{@notification.sender.name}")}:"
!=post_message(@notification.reshare.root)

View file

@ -1,8 +0,0 @@
%p
= t('notifier.hello', :name => @receiver.username)
%p
= @string
%br
= t('notifier.thanks')
= t('notifier.single_admin.admin')

View file

@ -0,0 +1,7 @@
<%= t('notifier.hello', :name => @receiver.username) %>
<%= @string %>
<%= t('notifier.thanks') %>
<%= t('notifier.single_admin.admin') %>

View file

@ -1,6 +0,0 @@
!= t('notifier.hello', :name => @receiver.username)
!= @string
!= t('notifier.thanks')
!= t('notifier.single_admin.admin')

View file

@ -1,5 +0,0 @@
%p
= @notification.sender.name
= t('.sharing')
%p
= link_to t('.view_profile', :name => @notification.sender.first_name), local_or_remote_person_path(@notification.sender, :absolute => true)

View file

@ -0,0 +1,5 @@
<%= @notification.sender.name %> <%= t('.sharing') %>
[<%= t('.view_profile', :name => @notification.sender.first_name) %>][1]
[1]: <%= local_or_remote_person_path(@notification.sender, :absolute => true) %>

View file

@ -1,4 +0,0 @@
!= "#{@notification.sender.name}"
!= t('notifier.started_sharing.sharing')
!= t('.view_profile', :name => @notification.sender.first_name)
!= local_or_remote_person_path(@notification.sender, :absolute => true)