Browse Source

Fixed issues with email

development
Godwin 7 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. 206
      config/environments/preview.rb
  8. 204
      config/environments/production.rb

50
app/controllers/application_controller.rb

@ -5,11 +5,11 @@ class ApplicationController < BaseController
helper_method :protect
@@test_host
@@test_location
# @@test_host
# @@test_location
def default_url_options
{ host: "#{request.protocol}#{request.host_with_port}" }
{ host: "#{request.protocol}#{request.host_with_port}", trailing_slash: true }
end
def capture_page_info
@ -82,17 +82,17 @@ class ApplicationController < BaseController
@is_policy_page = true
end
def self.set_host(host)
@@test_host = host
end
# def self.set_host(host)
# @@test_host = host
# end
def self.set_location(location)
@@test_location = location
end
# def self.set_location(location)
# @@test_location = location
# end
def self.get_location()
@@test_location
end
# def self.get_location()
# @@test_location
# end
def js_error
# send and email if this is production
@ -118,7 +118,7 @@ class ApplicationController < BaseController
requestHash['env'][key.to_s] = value.to_s
end
UserMailer.error_report(
UserMailer.send_mail(:error_report,
"A JavaScript error has occurred",
report,
params[:message],
@ -127,7 +127,7 @@ class ApplicationController < BaseController
params,
current_user,
Time.now.strftime("%d/%m/%Y %H:%M")
).deliver_later!
)
end
rescue Exception => exception2
logger.info exception2.to_s
@ -193,7 +193,7 @@ class ApplicationController < BaseController
request.env.each do | key, value |
requestHash['env'][key.to_s] = value.to_s
end
UserMailer.error_report(
UserMailer.send_mail(:error_report,
"An error has occurred in #{Rails.env}",
nil,
exception.to_s,
@ -202,7 +202,7 @@ class ApplicationController < BaseController
params,
current_user,
Time.now.strftime("%d/%m/%Y %H:%M")
).deliver_later!
)
end
end
@ -234,21 +234,21 @@ class ApplicationController < BaseController
end
end
UserMailer.contact(
UserMailer.send_mail(:contact,
current_user || params[:email],
params[:subject],
params[:message],
email_list
).deliver_later
)
request_info = session['request_info'] || { 'request' => request, 'params' => params }
UserMailer.contact_details(
UserMailer.send_mail(:contact_details,
current_user || params[:email],
params[:subject],
params[:message],
request_info['request'],
request_info['params']
).deliver_later
)
redirect_to contact_sent_path
end
@ -323,7 +323,7 @@ class ApplicationController < BaseController
object.get_translators(data, locale).each do |id, user|
if user.id != current_user.id && user.id != translator_id
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
@ -337,7 +337,7 @@ class ApplicationController < BaseController
object.get_translators(data).each do |id, user|
if user.id != current_user.id
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
@ -360,7 +360,7 @@ class ApplicationController < BaseController
request.env.each do | key, value |
requestHash['env'][key.to_s] = value.to_s
end
UserMailer.error_report(
UserMailer.send_mail(:error_report,
"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>",
exception.to_s,
@ -369,7 +369,7 @@ class ApplicationController < BaseController
params,
current_user.id,
Time.now.strftime("%d/%m/%Y %H:%M")
).deliver_later!
)
rescue Exception => exception2
logger.info exception2.to_s
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
def send_confirmation(confirmation)
UserMailer.email_confirmation(confirmation.id).deliver_now
UserMailer.send_mail(:email_confirmation, confirmation.id)
end
end

8
app/controllers/conference_administration_controller.rb

@ -1015,13 +1015,13 @@ class ConferenceAdministrationController < ApplicationController
@register_template = :administration
if params[:button] == 'send'
view_context.broadcast_to(@send_to).each do |user|
UserMailer.broadcast(
UserMailer.send_mail(:broadcast,
"#{request.protocol}#{request.host_with_port}",
@subject,
@body,
user.id,
@this_conference.id
).deliver_later
)
end
redirect_to administration_step_path(@this_conference.slug, :broadcast_sent)
return true
@ -1030,13 +1030,13 @@ class ConferenceAdministrationController < ApplicationController
@broadcast_step = :preview
elsif params[:button] == 'test'
@broadcast_step = :test
UserMailer.broadcast(
UserMailer.send_mail(:broadcast,
"#{request.protocol}#{request.host_with_port}",
@subject,
@body,
current_user.id,
@this_conference.id
).deliver_later
)
@send_to_count = view_context.broadcast_to(@send_to).size
end
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'
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)
end
@ -251,7 +251,7 @@ class WorkshopsController < ApplicationController
f.role = :collaborator
f.save
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
return redirect_to view_workshop_url(@this_conference.slug, workshop.id)
end
@ -261,7 +261,7 @@ class WorkshopsController < ApplicationController
:workshop_id => workshop.id,
:user_id => user_id)
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
return redirect_to view_workshop_url(@this_conference.slug, workshop.id)
end
@ -309,7 +309,7 @@ class WorkshopsController < ApplicationController
WorkshopFacilitator.create(user_id: user.id, workshop_id: workshop.id, role: :collaborator)
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
@ -329,7 +329,7 @@ class WorkshopsController < ApplicationController
unless comment.user.id == current_user.id
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
elsif params[:button] = 'add_comment'
@ -338,7 +338,7 @@ class WorkshopsController < ApplicationController
workshop.active_facilitators.each do | u |
unless u.id == current_user.id
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

8
app/mailers/user_mailer.rb

@ -167,6 +167,14 @@ class UserMailer < ActionMailer::Base
mail to: 'goodgodwin@hotmail.com', subject: @subject
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
def set_host(*args)
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.
# 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.enforce_available_locales = false
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
Paypal.sandbox!
config.action_controller.default_url_options = { trailing_slash: true }
end

206
config/environments/preview.rb

@ -1,105 +1,107 @@
BikeBike::Application.configure do
# Settings specified here will take precedence over those in config/application.rb.
# Settings specified here will take precedence over those in config/application.rb.
# Code is not reloaded between requests.
config.cache_classes = true
# Eager load code on boot. This eager loads most of Rails and
# your application in memory, allowing both thread web servers
# and those relying on copy on write to perform better.
# Rake tasks automatically ignore this option for performance.
config.eager_load = true
# Full error reports are disabled and caching is turned on.
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
# Enable Rack::Cache to put a simple HTTP cache in front of your application
# Add `rack-cache` to your Gemfile before enabling this.
# For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid.
# config.action_dispatch.rack_cache = true
# Disable Rails's static asset server (Apache or nginx will already do this).
config.serve_static_files = true
# Compress JavaScripts and CSS.
config.assets.js_compressor = :uglifier
# config.assets.css_compressor = :sass
# Do not fallback to assets pipeline if a precompiled asset is missed.
#config.assets.compile = true
# Generate digests for assets URLs.
config.assets.digest = true
# Version of your assets, change this if you want to expire all your assets.
config.assets.version = '1.0101'
# Specifies the header that your server uses for sending files.
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
#config.force_ssl = true
# Set to :debug to see everything in the log.
config.log_level = :info
#config.cache_classes = true
#config.serve_static_assets = true
#config.assets.compile = true
# config.assets.digest = true
# Prepend all log lines with the following tags.
# config.log_tags = [ :subdomain, :uuid ]
# Use a different logger for distributed setups.
# config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
# Use a different cache store in production.
# config.cache_store = :mem_cache_store
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
# config.action_controller.asset_host = "http://assets.example.com"
# Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
# config.assets.precompile += %w( search.js )
config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif)
#config.action_controller.asset_host = "https://preview-cdn.bikebike.org"
# Ignore bad email addresses and do not raise email delivery errors.
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
# config.action_mailer.raise_delivery_errors = false
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
# the I18n.default_locale when a translation can not be found).
config.i18n.fallbacks = true
# Send deprecation notices to registered listeners.
config.active_support.deprecation = :notify
# Disable automatic flushing of the log to improve performance.
# config.autoflush_log = false
# Use default logging formatter so that PID and timestamp are not suppressed.
config.log_formatter = ::Logger::Formatter.new
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => 'mail.bikebike.org',
:domain => 'preview.bikebike.org',
:port => 587,
:authentication => :plain,
:enable_starttls_auto => true,
:openssl_verify_mode => 'none',
:user_name => 'info@preview.bikebike.org',
:password => 'test'
}
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true
I18n.config.language_detection_method = I18n::Config::DETECT_LANGUAGE_FROM_SUBDOMAIN
I18n.config.subdomain_format = 'preview-%'
I18n.config.host_locale_regex = /^preview\-([a-z]{2})\.[^\.]+\..*$/
# Code is not reloaded between requests.
config.cache_classes = true
# Eager load code on boot. This eager loads most of Rails and
# your application in memory, allowing both thread web servers
# and those relying on copy on write to perform better.
# Rake tasks automatically ignore this option for performance.
config.eager_load = true
# Full error reports are disabled and caching is turned on.
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
# Enable Rack::Cache to put a simple HTTP cache in front of your application
# Add `rack-cache` to your Gemfile before enabling this.
# For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid.
# config.action_dispatch.rack_cache = true
# Disable Rails's static asset server (Apache or nginx will already do this).
config.serve_static_files = true
# Compress JavaScripts and CSS.
config.assets.js_compressor = :uglifier
# config.assets.css_compressor = :sass
# Do not fallback to assets pipeline if a precompiled asset is missed.
#config.assets.compile = true
# Generate digests for assets URLs.
config.assets.digest = true
# Version of your assets, change this if you want to expire all your assets.
config.assets.version = '1.0101'
# Specifies the header that your server uses for sending files.
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
#config.force_ssl = true
# Set to :debug to see everything in the log.
config.log_level = :info
#config.cache_classes = true
#config.serve_static_assets = true
#config.assets.compile = true
# config.assets.digest = true
# Prepend all log lines with the following tags.
# config.log_tags = [ :subdomain, :uuid ]
# Use a different logger for distributed setups.
# config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
# Use a different cache store in production.
# config.cache_store = :mem_cache_store
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
# config.action_controller.asset_host = "http://assets.example.com"
# Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
# config.assets.precompile += %w( search.js )
config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif)
#config.action_controller.asset_host = "https://preview-cdn.bikebike.org"
# Ignore bad email addresses and do not raise email delivery errors.
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
# config.action_mailer.raise_delivery_errors = false
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
# the I18n.default_locale when a translation can not be found).
config.i18n.fallbacks = true
# Send deprecation notices to registered listeners.
config.active_support.deprecation = :notify
# Disable automatic flushing of the log to improve performance.
# config.autoflush_log = false
# Use default logging formatter so that PID and timestamp are not suppressed.
config.log_formatter = ::Logger::Formatter.new
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => 'smtp.gmail.com',
:domain => 'bikebike.org',
:port => 587,
:authentication => :plain,
:enable_starttls_auto => true,
:openssl_verify_mode => 'none',
:user_name => '',
:password => ''
}
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true
I18n.config.language_detection_method = I18n::Config::DETECT_LANGUAGE_FROM_SUBDOMAIN
I18n.config.subdomain_format = 'preview-%'
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

204
config/environments/production.rb

@ -1,103 +1,105 @@
BikeBike::Application.configure do
# Settings specified here will take precedence over those in config/application.rb.
# Code is not reloaded between requests.
config.cache_classes = true
# Eager load code on boot. This eager loads most of Rails and
# your application in memory, allowing both thread web servers
# and those relying on copy on write to perform better.
# Rake tasks automatically ignore this option for performance.
config.eager_load = true
# Full error reports are disabled and caching is turned on.
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
# Enable Rack::Cache to put a simple HTTP cache in front of your application
# Add `rack-cache` to your Gemfile before enabling this.
# For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid.
# config.action_dispatch.rack_cache = true
# Disable Rails's static asset server (Apache or nginx will already do this).
config.serve_static_files = true
# Compress JavaScripts and CSS.
config.assets.js_compressor = :uglifier
# config.assets.css_compressor = :sass
# Do not fallback to assets pipeline if a precompiled asset is missed.
#config.assets.compile = true
# Generate digests for assets URLs.
config.assets.digest = true
# Version of your assets, change this if you want to expire all your assets.
config.assets.version = '1.01'
# Specifies the header that your server uses for sending files.
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
#config.force_ssl = true
# Set to :debug to see everything in the log.
config.log_level = :info
#config.cache_classes = true
#config.serve_static_assets = true
#config.assets.compile = true
# config.assets.digest = true
# Prepend all log lines with the following tags.
# config.log_tags = [ :subdomain, :uuid ]
# Use a different logger for distributed setups.
# config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
# Use a different cache store in production.
# config.cache_store = :mem_cache_store
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
# config.action_controller.asset_host = "http://assets.example.com"
# Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
# config.assets.precompile += %w( search.js )
#config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif)
config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif *.svg)
#config.action_controller.asset_host = "https://cdn.bikebike.org"
# Ignore bad email addresses and do not raise email delivery errors.
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
# config.action_mailer.raise_delivery_errors = false
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
# the I18n.default_locale when a translation can not be found).
config.i18n.fallbacks = true
# Send deprecation notices to registered listeners.
config.active_support.deprecation = :notify
# Disable automatic flushing of the log to improve performance.
# config.autoflush_log = false
# Use default logging formatter so that PID and timestamp are not suppressed.
config.log_formatter = ::Logger::Formatter.new
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => 'smtp.gmail.com',
:domain => 'bikebike.org',
:port => 587,
:authentication => :plain,
:enable_starttls_auto => true,
:openssl_verify_mode => 'none',
:user_name => '',
:password => ''
}
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true
I18n.config.language_detection_method = I18n::Config::DETECT_LANGUAGE_FROM_SUBDOMAIN
# Settings specified here will take precedence over those in config/application.rb.
# Code is not reloaded between requests.
config.cache_classes = true
# Eager load code on boot. This eager loads most of Rails and
# your application in memory, allowing both thread web servers
# and those relying on copy on write to perform better.
# Rake tasks automatically ignore this option for performance.
config.eager_load = true
# Full error reports are disabled and caching is turned on.
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
# Enable Rack::Cache to put a simple HTTP cache in front of your application
# Add `rack-cache` to your Gemfile before enabling this.
# For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid.
# config.action_dispatch.rack_cache = true
# Disable Rails's static asset server (Apache or nginx will already do this).
config.serve_static_files = true
# Compress JavaScripts and CSS.
config.assets.js_compressor = :uglifier
# config.assets.css_compressor = :sass
# Do not fallback to assets pipeline if a precompiled asset is missed.
#config.assets.compile = true
# Generate digests for assets URLs.
config.assets.digest = true
# Version of your assets, change this if you want to expire all your assets.
config.assets.version = '1.01'
# Specifies the header that your server uses for sending files.
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
#config.force_ssl = true
# Set to :debug to see everything in the log.
config.log_level = :info
#config.cache_classes = true
#config.serve_static_assets = true
#config.assets.compile = true
# config.assets.digest = true
# Prepend all log lines with the following tags.
# config.log_tags = [ :subdomain, :uuid ]
# Use a different logger for distributed setups.
# config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
# Use a different cache store in production.
# config.cache_store = :mem_cache_store
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
# config.action_controller.asset_host = "http://assets.example.com"
# Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
# config.assets.precompile += %w( search.js )
#config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif)
config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif *.svg)
#config.action_controller.asset_host = "https://cdn.bikebike.org"
# Ignore bad email addresses and do not raise email delivery errors.
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
# config.action_mailer.raise_delivery_errors = false
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
# the I18n.default_locale when a translation can not be found).
config.i18n.fallbacks = true
# Send deprecation notices to registered listeners.
config.active_support.deprecation = :notify
# Disable automatic flushing of the log to improve performance.
# config.autoflush_log = false
# Use default logging formatter so that PID and timestamp are not suppressed.
config.log_formatter = ::Logger::Formatter.new
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => 'smtp.gmail.com',
:domain => 'bikebike.org',
:port => 587,
:authentication => :plain,
:enable_starttls_auto => true,
:openssl_verify_mode => 'none',
:user_name => '',
:password => ''
}
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true
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

Loading…
Cancel
Save