Browse Source

Fixed issues with email

development
Godwin 8 years ago
parent
commit
b8892a132d
  1. 50
      app/controllers/application_controller.rb
  2. 8
      app/controllers/conference_administration_controller.rb
  3. 12
      app/controllers/workshops_controller.rb
  4. 8
      app/mailers/user_mailer.rb
  5. 1
      config/application.rb
  6. 1
      config/environments/development.rb
  7. 10
      config/environments/preview.rb
  8. 2
      config/environments/production.rb

50
app/controllers/application_controller.rb

@ -5,11 +5,11 @@ class ApplicationController < BaseController
helper_method :protect helper_method :protect
@@test_host # @@test_host
@@test_location # @@test_location
def default_url_options def default_url_options
{ host: "#{request.protocol}#{request.host_with_port}" } { host: "#{request.protocol}#{request.host_with_port}", trailing_slash: true }
end end
def capture_page_info def capture_page_info
@ -82,17 +82,17 @@ class ApplicationController < BaseController
@is_policy_page = true @is_policy_page = true
end end
def self.set_host(host) # def self.set_host(host)
@@test_host = host # @@test_host = host
end # end
def self.set_location(location) # def self.set_location(location)
@@test_location = location # @@test_location = location
end # end
def self.get_location() # def self.get_location()
@@test_location # @@test_location
end # end
def js_error def js_error
# send and email if this is production # send and email if this is production
@ -118,7 +118,7 @@ class ApplicationController < BaseController
requestHash['env'][key.to_s] = value.to_s requestHash['env'][key.to_s] = value.to_s
end end
UserMailer.error_report( UserMailer.send_mail(:error_report,
"A JavaScript error has occurred", "A JavaScript error has occurred",
report, report,
params[:message], params[:message],
@ -127,7 +127,7 @@ class ApplicationController < BaseController
params, params,
current_user, current_user,
Time.now.strftime("%d/%m/%Y %H:%M") Time.now.strftime("%d/%m/%Y %H:%M")
).deliver_later! )
end end
rescue Exception => exception2 rescue Exception => exception2
logger.info exception2.to_s logger.info exception2.to_s
@ -193,7 +193,7 @@ class ApplicationController < BaseController
request.env.each do | key, value | request.env.each do | key, value |
requestHash['env'][key.to_s] = value.to_s requestHash['env'][key.to_s] = value.to_s
end end
UserMailer.error_report( UserMailer.send_mail(:error_report,
"An error has occurred in #{Rails.env}", "An error has occurred in #{Rails.env}",
nil, nil,
exception.to_s, exception.to_s,
@ -202,7 +202,7 @@ class ApplicationController < BaseController
params, params,
current_user, current_user,
Time.now.strftime("%d/%m/%Y %H:%M") Time.now.strftime("%d/%m/%Y %H:%M")
).deliver_later! )
end end
end end
@ -234,21 +234,21 @@ class ApplicationController < BaseController
end end
end end
UserMailer.contact( UserMailer.send_mail(:contact,
current_user || params[:email], current_user || params[:email],
params[:subject], params[:subject],
params[:message], params[:message],
email_list email_list
).deliver_later )
request_info = session['request_info'] || { 'request' => request, 'params' => params } request_info = session['request_info'] || { 'request' => request, 'params' => params }
UserMailer.contact_details( UserMailer.send_mail(:contact_details,
current_user || params[:email], current_user || params[:email],
params[:subject], params[:subject],
params[:message], params[:message],
request_info['request'], request_info['request'],
request_info['params'] request_info['params']
).deliver_later )
redirect_to contact_sent_path redirect_to contact_sent_path
end end
@ -323,7 +323,7 @@ class ApplicationController < BaseController
object.get_translators(data, locale).each do |id, user| object.get_translators(data, locale).each do |id, user|
if user.id != current_user.id && user.id != translator_id if user.id != current_user.id && user.id != translator_id
LinguaFranca.with_locale user.locale do LinguaFranca.with_locale user.locale do
UserMailer.send(mailer, object.id, data, locale, user.id, translator.id).deliver_later UserMailer.send_mail(:send, mailer, object.id, data, locale, user.id, translator.id)
end end
end end
end end
@ -337,7 +337,7 @@ class ApplicationController < BaseController
object.get_translators(data).each do |id, user| object.get_translators(data).each do |id, user|
if user.id != current_user.id if user.id != current_user.id
LinguaFranca.with_locale user.locale do LinguaFranca.with_locale user.locale do
UserMailer.send(mailer, object.id, data, user.id, current_user.id) UserMailer.send_mail(:send, mailer, object.id, data, user.id, current_user.id)
end end
end end
end end
@ -360,7 +360,7 @@ class ApplicationController < BaseController
request.env.each do | key, value | request.env.each do | key, value |
requestHash['env'][key.to_s] = value.to_s requestHash['env'][key.to_s] = value.to_s
end end
UserMailer.error_report( UserMailer.send_mail(:error_report,
"A missing translation found in #{Rails.env}", "A missing translation found in #{Rails.env}",
"<p>A translation for <code>#{key}</code> in <code>#{locale.to_s}</code> was found. The text that was rendered to the user was:</p><blockquote>#{str || 'nil'}</blockquote>", "<p>A translation for <code>#{key}</code> in <code>#{locale.to_s}</code> was found. The text that was rendered to the user was:</p><blockquote>#{str || 'nil'}</blockquote>",
exception.to_s, exception.to_s,
@ -369,7 +369,7 @@ class ApplicationController < BaseController
params, params,
current_user.id, current_user.id,
Time.now.strftime("%d/%m/%Y %H:%M") Time.now.strftime("%d/%m/%Y %H:%M")
).deliver_later! )
rescue Exception => exception2 rescue Exception => exception2
logger.info exception2.to_s logger.info exception2.to_s
logger.info exception2.backtrace.join("\n") logger.info exception2.backtrace.join("\n")
@ -636,6 +636,6 @@ class ApplicationController < BaseController
# send the confirmation email and make sure it get sent as quickly as possible # send the confirmation email and make sure it get sent as quickly as possible
def send_confirmation(confirmation) def send_confirmation(confirmation)
UserMailer.email_confirmation(confirmation.id).deliver_now UserMailer.send_mail(:email_confirmation, confirmation.id)
end end
end end

8
app/controllers/conference_administration_controller.rb

@ -1015,13 +1015,13 @@ class ConferenceAdministrationController < ApplicationController
@register_template = :administration @register_template = :administration
if params[:button] == 'send' if params[:button] == 'send'
view_context.broadcast_to(@send_to).each do |user| view_context.broadcast_to(@send_to).each do |user|
UserMailer.broadcast( UserMailer.send_mail(:broadcast,
"#{request.protocol}#{request.host_with_port}", "#{request.protocol}#{request.host_with_port}",
@subject, @subject,
@body, @body,
user.id, user.id,
@this_conference.id @this_conference.id
).deliver_later )
end end
redirect_to administration_step_path(@this_conference.slug, :broadcast_sent) redirect_to administration_step_path(@this_conference.slug, :broadcast_sent)
return true return true
@ -1030,13 +1030,13 @@ class ConferenceAdministrationController < ApplicationController
@broadcast_step = :preview @broadcast_step = :preview
elsif params[:button] == 'test' elsif params[:button] == 'test'
@broadcast_step = :test @broadcast_step = :test
UserMailer.broadcast( UserMailer.send_mail(:broadcast,
"#{request.protocol}#{request.host_with_port}", "#{request.protocol}#{request.host_with_port}",
@subject, @subject,
@body, @body,
current_user.id, current_user.id,
@this_conference.id @this_conference.id
).deliver_later )
@send_to_count = view_context.broadcast_to(@send_to).size @send_to_count = view_context.broadcast_to(@send_to).size
end end
return false return false

12
app/controllers/workshops_controller.rb

@ -217,7 +217,7 @@ class WorkshopsController < ApplicationController
# create the request by making the user a facilitator but making their role 'requested' # create the request by making the user a facilitator but making their role 'requested'
WorkshopFacilitator.create(user_id: current_user.id, workshop_id: workshop.id, role: :requested) WorkshopFacilitator.create(user_id: current_user.id, workshop_id: workshop.id, role: :requested)
UserMailer.workshop_facilitator_request(workshop.id, current_user.id, params[:message]).deliver_later UserMailer.send_mail(:workshop_facilitator_request, workshop.id, current_user.id, params[:message])
redirect_to sent_facilitate_workshop_url(@this_conference.slug, workshop.id) redirect_to sent_facilitate_workshop_url(@this_conference.slug, workshop.id)
end end
@ -251,7 +251,7 @@ class WorkshopsController < ApplicationController
f.role = :collaborator f.role = :collaborator
f.save f.save
LinguaFranca.with_locale(user.locale) do LinguaFranca.with_locale(user.locale) do
UserMailer.workshop_facilitator_request_approved(workshop.id, user.id).deliver_later UserMailer.send_mail(:workshop_facilitator_request_approved, workshop.id, user.id)
end end
return redirect_to view_workshop_url(@this_conference.slug, workshop.id) return redirect_to view_workshop_url(@this_conference.slug, workshop.id)
end end
@ -261,7 +261,7 @@ class WorkshopsController < ApplicationController
:workshop_id => workshop.id, :workshop_id => workshop.id,
:user_id => user_id) :user_id => user_id)
LinguaFranca.with_locale user.locale do LinguaFranca.with_locale user.locale do
UserMailer.workshop_facilitator_request_denied(workshop.id, user.id).deliver_later UserMailer.send_mail(:workshop_facilitator_request_denied, workshop.id, user.id)
end end
return redirect_to view_workshop_url(@this_conference.slug, workshop.id) return redirect_to view_workshop_url(@this_conference.slug, workshop.id)
end end
@ -309,7 +309,7 @@ class WorkshopsController < ApplicationController
WorkshopFacilitator.create(user_id: user.id, workshop_id: workshop.id, role: :collaborator) WorkshopFacilitator.create(user_id: user.id, workshop_id: workshop.id, role: :collaborator)
LinguaFranca.with_locale user.locale do LinguaFranca.with_locale user.locale do
UserMailer.workshop_facilitator_request_approved(workshop.id, user.id).deliver_later UserMailer.send_mail(:workshop_facilitator_request_approved, workshop.id, user.id)
end end
end end
@ -329,7 +329,7 @@ class WorkshopsController < ApplicationController
unless comment.user.id == current_user.id unless comment.user.id == current_user.id
LinguaFranca.with_locale comment.user.locale do LinguaFranca.with_locale comment.user.locale do
UserMailer.workshop_comment(workshop.id, new_comment.id, comment.user.id).deliver_later UserMailer.send_mail(:workshop_comment, workshop.id, new_comment.id, comment.user.id)
end end
end end
elsif params[:button] = 'add_comment' elsif params[:button] = 'add_comment'
@ -338,7 +338,7 @@ class WorkshopsController < ApplicationController
workshop.active_facilitators.each do | u | workshop.active_facilitators.each do | u |
unless u.id == current_user.id unless u.id == current_user.id
LinguaFranca.with_locale u.locale do LinguaFranca.with_locale u.locale do
UserMailer.workshop_comment(workshop.id, new_comment.id, u.id).deliver_later UserMailer.send_mail(:workshop_comment, workshop.id, new_comment.id, u.id)
end end
end end
end end

8
app/mailers/user_mailer.rb

@ -167,6 +167,14 @@ class UserMailer < ActionMailer::Base
mail to: 'goodgodwin@hotmail.com', subject: @subject mail to: 'goodgodwin@hotmail.com', subject: @subject
end end
def self.send_mail(*args)
if Rails.env.preview? || Rails.env.production?
delay(Rails.env).send(*args)
else
send(*args).deliver_now
end
end
private private
def set_host(*args) def set_host(*args)
if Rails.env.production? if Rails.env.production?

1
config/application.rb

@ -21,7 +21,6 @@ module BikeBike
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
config.action_controller.default_url_options = { :trailing_slash => true }
config.i18n.default_locale = :en config.i18n.default_locale = :en
config.i18n.enforce_available_locales = false config.i18n.enforce_available_locales = false
self.paths['config/database'] = Rails.root.join('config', 'database.yml') self.paths['config/database'] = Rails.root.join('config', 'database.yml')

1
config/environments/development.rb

@ -58,4 +58,5 @@ BikeBike::Application.configure do
config.action_mailer.delivery_method = :letter_opener config.action_mailer.delivery_method = :letter_opener
Paypal.sandbox! Paypal.sandbox!
config.action_controller.default_url_options = { trailing_slash: true }
end end

10
config/environments/preview.rb

@ -87,14 +87,14 @@ BikeBike::Application.configure do
config.action_mailer.delivery_method = :smtp config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = { config.action_mailer.smtp_settings = {
:address => 'mail.bikebike.org', :address => 'smtp.gmail.com',
:domain => 'preview.bikebike.org', :domain => 'bikebike.org',
:port => 587, :port => 587,
:authentication => :plain, :authentication => :plain,
:enable_starttls_auto => true, :enable_starttls_auto => true,
:openssl_verify_mode => 'none', :openssl_verify_mode => 'none',
:user_name => 'info@preview.bikebike.org', :user_name => '',
:password => 'test' :password => ''
} }
config.action_mailer.raise_delivery_errors = true config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true config.action_mailer.perform_deliveries = true
@ -102,4 +102,6 @@ BikeBike::Application.configure do
I18n.config.language_detection_method = I18n::Config::DETECT_LANGUAGE_FROM_SUBDOMAIN I18n.config.language_detection_method = I18n::Config::DETECT_LANGUAGE_FROM_SUBDOMAIN
I18n.config.subdomain_format = 'preview-%' I18n.config.subdomain_format = 'preview-%'
I18n.config.host_locale_regex = /^preview\-([a-z]{2})\.[^\.]+\..*$/ I18n.config.host_locale_regex = /^preview\-([a-z]{2})\.[^\.]+\..*$/
config.action_controller.default_url_options = { host: 'https://bikebike.org', trailing_slash: true }
Sidekiq::Extensions.enable_delay!
end end

2
config/environments/production.rb

@ -100,4 +100,6 @@ BikeBike::Application.configure do
config.action_mailer.raise_delivery_errors = true config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true config.action_mailer.perform_deliveries = true
I18n.config.language_detection_method = I18n::Config::DETECT_LANGUAGE_FROM_SUBDOMAIN I18n.config.language_detection_method = I18n::Config::DETECT_LANGUAGE_FROM_SUBDOMAIN
config.action_controller.default_url_options = { host: 'https://bikebike.org', trailing_slash: true }
Sidekiq::Extensions.enable_delay!
end end

Loading…
Cancel
Save