sends invitation email to users
This commit is contained in:
@@ -4,6 +4,10 @@ class Management::UserInvitesController < Management::BaseController
|
||||
end
|
||||
|
||||
def create
|
||||
@emails = params[:emails].split
|
||||
@emails.each do |email|
|
||||
Mailer.user_invite(email).deliver_later
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -68,6 +68,10 @@ class Mailer < ApplicationMailer
|
||||
end
|
||||
end
|
||||
|
||||
def user_invite(email)
|
||||
mail(to: email, subject: t('mailers.user_invite.subject', org_name: Setting["org_name"]))
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def with_user(user, &block)
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
<td style="padding-bottom: 20px; padding-left: 10px;">
|
||||
<h1 style="font-family: 'Open Sans','Helvetica Neue',arial,sans-serif;">
|
||||
<%= t('mailers.user_invites.title',
|
||||
<%= t('mailers.user_invite.title',
|
||||
org: Setting['org_name']) %>
|
||||
</h1>
|
||||
|
||||
<p style="font-family: 'Open Sans','Helvetica Neue',arial,sans-serif;font-size: 14px;font-weight: normal;line-height: 24px;">
|
||||
<%= t('mailers.user_invites.text',
|
||||
<%= t('mailers.user_invite.text',
|
||||
org: Setting['org_name']) %>
|
||||
</p>
|
||||
|
||||
<p style="text-align: center;">
|
||||
<%= link_to t('mailers.user_invites.button'), new_user_registration_path, style: "font-family: 'Open Sans','Helvetica Neue',arial,sans-serif; background: #004A83; border-radius: 6px; color: #fff !important; font-weight: bold; margin: 0px; padding: 10px 15px; text-align: center; text-decoration: none; min-width: 160px; display: inline-block; margin-left: 12px;" %>
|
||||
<%= link_to t('mailers.user_invite.button'), new_user_registration_url, style: "font-family: 'Open Sans','Helvetica Neue',arial,sans-serif; background: #004A83; border-radius: 6px; color: #fff !important; font-weight: bold; margin: 0px; padding: 10px 15px; text-align: center; text-decoration: none; min-width: 160px; display: inline-block; margin-left: 12px;" %>
|
||||
</p>
|
||||
|
||||
<p style="font-family: 'Open Sans','Helvetica Neue',arial,sans-serif;font-size: 14px;font-weight: normal;line-height: 24px;">
|
||||
<%= t('mailers.user_invites.ignore') %>
|
||||
<%= t('mailers.user_invite.ignore') %>
|
||||
</p>
|
||||
|
||||
<p style="font-family: 'Open Sans','Helvetica Neue',arial,sans-serif;font-size: 14px;font-weight: normal;line-height: 24px;">
|
||||
<%= t('mailers.user_invites.thanks') %>
|
||||
<%= t('mailers.user_invite.thanks') %>
|
||||
</p>
|
||||
</td>
|
||||
@@ -4,6 +4,6 @@
|
||||
<h1><%= t('management.user_invites.create.title') %></h1>
|
||||
|
||||
<div class="callout success">
|
||||
<%= t('management.user_invites.create.success_html') %>
|
||||
<%= t('management.user_invites.create.success_html', count: @emails.count) %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<div class="small-12 medium-8 column">
|
||||
<h1><%= t('management.user_invites.new.title') %></h1>
|
||||
|
||||
<form>
|
||||
<%= form_tag management_user_invites_path do %>
|
||||
<label><%= t('management.user_invites.new.label') %></label>
|
||||
<p class="note"><%= t('management.user_invites.new.info') %></p>
|
||||
<textarea placeholder="<%= t('management.user_invites.new.info') %>" rows="5"></textarea>
|
||||
<%= text_area_tag "emails", nil, rows: 5, placeholder: t('management.user_invites.new.info') %>
|
||||
<div class="small-12 medium-6">
|
||||
<input type="submit" name="" value="<%= t('management.user_invites.new.submit') %>", class="button hollow expanded">
|
||||
</div>
|
||||
</form>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
@@ -46,9 +46,10 @@ en:
|
||||
direct_message_for_sender:
|
||||
subject: "You have send a new private message"
|
||||
title_html: "You have send a new private message to <strong>%{receiver}</strong> with the content:"
|
||||
user_invites:
|
||||
user_invite:
|
||||
ignore: "If you have not requested this invitation don't worry, you can ignore this email."
|
||||
text: "Thank you for applying to join %{org}! In seconds you can start to decide the city you want, just fill the form below:"
|
||||
thanks: "Thank you very much."
|
||||
title: "Welcome to %{org}"
|
||||
button: Complete registration
|
||||
button: Complete registration
|
||||
subject: "Invitation to %{org_name}"
|
||||
@@ -46,9 +46,10 @@ es:
|
||||
direct_message_for_sender:
|
||||
subject: "Has enviado un nuevo mensaje privado"
|
||||
title_html: "Has enviado un nuevo mensaje privado a <strong>%{receiver}</strong> con el siguiente contenido:"
|
||||
user_invites:
|
||||
user_invite:
|
||||
ignore: "Si no has solicitado esta invitación no te preocupes, puedes ignorar este correo."
|
||||
text: "¡Gracias por solicitar unirte a %{org}! En unos segundos podrás empezar a decidir la ciudad que quieres, sólo tienes que rellenar el siguiente formulario:"
|
||||
thanks: "Muchas gracias."
|
||||
title: "Bienvenido a %{org}"
|
||||
button: Completar registro
|
||||
button: Completar registro
|
||||
subject: "Invitación a %{org_name}"
|
||||
@@ -104,5 +104,5 @@ en:
|
||||
submit: Send invites
|
||||
title: User's invites
|
||||
create:
|
||||
success_html: <strong>COUNT invitations</strong> have been sent.
|
||||
success_html: <strong>%{count} invitations</strong> have been sent.
|
||||
title: User's invites
|
||||
@@ -104,5 +104,5 @@ es:
|
||||
submit: Enviar invitaciones
|
||||
title: Invitaciones para usuarios
|
||||
create:
|
||||
success_html: Se han enviado <strong>COUNT invitaciones</strong>.
|
||||
success_html: Se han enviado <strong>%{count} invitaciones</strong>.
|
||||
title: Invitaciones para usuarios
|
||||
@@ -231,4 +231,26 @@ feature 'Emails' do
|
||||
|
||||
end
|
||||
|
||||
context "User invites" do
|
||||
|
||||
scenario "Send an invitation" do
|
||||
login_as_manager
|
||||
visit new_management_user_invite_path
|
||||
|
||||
fill_in "emails", with: "john@example.com, ana@example.com, isable@example.com"
|
||||
click_button "Send invites"
|
||||
|
||||
expect(page).to have_content "3 invitations have been sent."
|
||||
|
||||
expect(unread_emails_for("john@example.com").count).to eq 1
|
||||
expect(unread_emails_for("ana@example.com").count).to eq 1
|
||||
expect(unread_emails_for("isable@example.com").count).to eq 1
|
||||
|
||||
email = open_last_email
|
||||
expect(email).to have_subject("Invitation to Consul")
|
||||
expect(email).to have_body_text(/#{new_user_registration_path}/)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
18
spec/features/user_invites_spec.rb
Normal file
18
spec/features/user_invites_spec.rb
Normal file
@@ -0,0 +1,18 @@
|
||||
require 'rails_helper'
|
||||
|
||||
feature 'User invites' do
|
||||
|
||||
background do
|
||||
login_as_manager
|
||||
end
|
||||
|
||||
scenario "Send invitations" do
|
||||
visit new_management_user_invite_path
|
||||
|
||||
fill_in "emails", with: "john@example.com, ana@example.com, isable@example.com"
|
||||
click_button "Send invites"
|
||||
|
||||
expect(page).to have_content "3 invitations have been sent."
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user