diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 645ac2fe1a..1a51002664 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -810,12 +810,6 @@ Rails/ApplicationJob: Exclude: - 'app/jobs/report_job.rb' -# Offense count: 1 -# This cop supports unsafe autocorrection (--autocorrect-all). -Rails/ApplicationMailer: - Exclude: - - 'app/mailers/spree/base_mailer.rb' - # Offense count: 5 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: NilOrEmpty, NotPresent, UnlessPresent. diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb new file mode 100644 index 0000000000..00a6a7dc6c --- /dev/null +++ b/app/mailers/application_mailer.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +class ApplicationMailer < ActionMailer::Base + # Inline stylesheets + include Roadie::Rails::Automatic + + helper TermsAndConditionsHelper + + default from: -> { Spree::Config[:mails_from] } + layout 'mailer' + + def money(amount) + Spree::Money.new(amount).to_s + end + helper_method :money + + protected + + def roadie_options + # This lets us specify assets using relative paths in email templates + super.merge(url_options: { host: URI(main_app.root_url).host }) + end +end diff --git a/app/mailers/enterprise_mailer.rb b/app/mailers/enterprise_mailer.rb index dd094c8de4..fa507cb67a 100644 --- a/app/mailers/enterprise_mailer.rb +++ b/app/mailers/enterprise_mailer.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'devise/mailers/helpers' -class EnterpriseMailer < Spree::BaseMailer +class EnterpriseMailer < ApplicationMailer include Devise::Mailers::Helpers include I18nHelper @@ -12,7 +12,6 @@ class EnterpriseMailer < Spree::BaseMailer enterprise: @enterprise.name, sitename: Spree::Config[:site_name]) mail(to: enterprise.contact.email, - from: from_address, subject: subject) end end @@ -20,12 +19,10 @@ class EnterpriseMailer < Spree::BaseMailer def manager_invitation(enterprise, user) @enterprise = enterprise @instance = Spree::Config[:site_name] - @instance_email = from_address I18n.with_locale valid_locale(@enterprise.owner) do subject = t('enterprise_mailer.invite_manager.subject', enterprise: @enterprise.name) mail(to: user.email, - from: from_address, subject: subject) end end diff --git a/app/mailers/payment_mailer.rb b/app/mailers/payment_mailer.rb index b1ba77124f..47eb4ae587 100644 --- a/app/mailers/payment_mailer.rb +++ b/app/mailers/payment_mailer.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class PaymentMailer < Spree::BaseMailer +class PaymentMailer < ApplicationMailer include I18nHelper def authorize_payment(payment) @@ -8,7 +8,7 @@ class PaymentMailer < Spree::BaseMailer subject = I18n.t('spree.payment_mailer.authorize_payment.subject', distributor: @payment.order.distributor.name) I18n.with_locale valid_locale(@payment.order.user) do - mail(to: payment.order.email, from: from_address, subject: subject) + mail(to: payment.order.email, subject: subject) end end @@ -19,7 +19,6 @@ class PaymentMailer < Spree::BaseMailer order: @payment.order) I18n.with_locale valid_locale(shop_owner) do mail(to: shop_owner.email, - from: from_address, subject: subject) end end diff --git a/app/mailers/producer_mailer.rb b/app/mailers/producer_mailer.rb index 18becd43c6..1d8a473454 100644 --- a/app/mailers/producer_mailer.rb +++ b/app/mailers/producer_mailer.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class ProducerMailer < Spree::BaseMailer +class ProducerMailer < ApplicationMailer include I18nHelper def order_cycle_report(producer, order_cycle) @@ -14,7 +14,6 @@ class ProducerMailer < Spree::BaseMailer mail( to: @producer.contact.email, - from: from_address, subject: subject, reply_to: @coordinator.contact.email, cc: @coordinator.contact.email diff --git a/app/mailers/spree/base_mailer.rb b/app/mailers/spree/base_mailer.rb deleted file mode 100644 index 2057841cc9..0000000000 --- a/app/mailers/spree/base_mailer.rb +++ /dev/null @@ -1,28 +0,0 @@ -# frozen_string_literal: true - -module Spree - class BaseMailer < ActionMailer::Base - # Inline stylesheets - include Roadie::Rails::Automatic - - helper TermsAndConditionsHelper - - layout 'mailer' - - def from_address - Spree::Config[:mails_from] - end - - def money(amount) - Spree::Money.new(amount).to_s - end - helper_method :money - - protected - - def roadie_options - # This lets us specify assets using relative paths in email templates - super.merge(url_options: { host: URI(main_app.root_url).host }) - end - end -end diff --git a/app/mailers/spree/order_mailer.rb b/app/mailers/spree/order_mailer.rb index 889a419b5e..57f8766098 100644 --- a/app/mailers/spree/order_mailer.rb +++ b/app/mailers/spree/order_mailer.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true module Spree - class OrderMailer < BaseMailer + class OrderMailer < ApplicationMailer helper 'checkout' helper SpreeCurrencyHelper helper Spree::PaymentMethodsHelper @@ -13,7 +13,6 @@ module Spree @order = find_order(order_or_order_id) I18n.with_locale valid_locale(@order.user) do mail(to: @order.email, - from: from_address, subject: mail_subject(t('spree.order_mailer.cancel_email.subject'), resend)) end end @@ -23,7 +22,6 @@ module Spree I18n.with_locale valid_locale(@order.distributor.owner) do subject = I18n.t('spree.order_mailer.cancel_email_for_shop.subject') mail(to: @order.distributor.contact.email, - from: from_address, subject: subject) end end @@ -33,7 +31,6 @@ module Spree I18n.with_locale valid_locale(@order.user) do subject = mail_subject(t('spree.order_mailer.confirm_email.subject'), resend) mail(to: @order.email, - from: from_address, subject: subject, reply_to: @order.distributor.contact.email) end @@ -44,7 +41,6 @@ module Spree I18n.with_locale valid_locale(@order.user) do subject = mail_subject(t('spree.order_mailer.confirm_email.subject'), resend) mail(to: @order.distributor.contact.email, - from: from_address, subject: subject) end end @@ -56,7 +52,6 @@ module Spree attach_file("invoice-#{@order.number}.pdf", pdf) I18n.with_locale valid_locale(@order.user) do mail(to: @order.email, - from: from_address, subject: mail_subject(t(:invoice), false), reply_to: @order.distributor.contact.email) end diff --git a/app/mailers/spree/shipment_mailer.rb b/app/mailers/spree/shipment_mailer.rb index c67c4e0702..de315dbaac 100644 --- a/app/mailers/spree/shipment_mailer.rb +++ b/app/mailers/spree/shipment_mailer.rb @@ -1,12 +1,12 @@ # frozen_string_literal: true module Spree - class ShipmentMailer < BaseMailer + class ShipmentMailer < ApplicationMailer def shipped_email(shipment, delivery:) @shipment = shipment.respond_to?(:id) ? shipment : Spree::Shipment.find(shipment) @delivery = delivery subject = base_subject - mail(to: @shipment.order.email, from: from_address, subject: subject) + mail(to: @shipment.order.email, subject: subject) end private diff --git a/app/mailers/spree/test_mailer.rb b/app/mailers/spree/test_mailer.rb index 6cf8b9c272..fb9080b9cb 100644 --- a/app/mailers/spree/test_mailer.rb +++ b/app/mailers/spree/test_mailer.rb @@ -1,11 +1,11 @@ # frozen_string_literal: true module Spree - class TestMailer < BaseMailer + class TestMailer < ApplicationMailer def test_email(user) recipient = user.respond_to?(:id) ? user : Spree::User.find(user) subject = "#{Spree::Config[:site_name]} #{t('spree.test_mailer.test_email.subject')}" - mail(to: recipient.email, from: from_address, subject: subject) + mail(to: recipient.email, subject: subject) end end end diff --git a/app/mailers/spree/user_mailer.rb b/app/mailers/spree/user_mailer.rb index f85b8a11a0..ce87b4b7ba 100644 --- a/app/mailers/spree/user_mailer.rb +++ b/app/mailers/spree/user_mailer.rb @@ -3,7 +3,7 @@ # This mailer is configured to be the Devise mailer # Some methods here override Devise::Mailer methods module Spree - class UserMailer < BaseMailer + class UserMailer < ApplicationMailer include I18nHelper helper MailerHelper @@ -16,7 +16,7 @@ module Spree "#{I18n.t('spree.user_mailer.reset_password_instructions.subject')}" I18n.with_locale valid_locale(user) do - mail(to: user.email, from: from_address, subject: subject) + mail(to: user.email, subject: subject) end end @@ -24,7 +24,7 @@ module Spree def signup_confirmation(user) @user = user I18n.with_locale valid_locale(@user) do - mail(to: user.email, from: from_address, + mail(to: user.email, subject: t(:welcome_to) + ' ' + Spree::Config[:site_name]) end end @@ -39,7 +39,6 @@ module Spree I18n.with_locale valid_locale(@user) do subject = t('spree.user_mailer.confirmation_instructions.subject') mail(to: confirmation_email_address, - from: from_address, subject: subject) end end diff --git a/app/mailers/subscription_mailer.rb b/app/mailers/subscription_mailer.rb index 11900bde3b..174fef790b 100644 --- a/app/mailers/subscription_mailer.rb +++ b/app/mailers/subscription_mailer.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class SubscriptionMailer < Spree::BaseMailer +class SubscriptionMailer < ApplicationMailer helper 'checkout' helper MailerHelper helper ShopMailHelper @@ -37,7 +37,6 @@ class SubscriptionMailer < Spree::BaseMailer @shop = Enterprise.find(summary.shop_id) @summary = summary mail(to: @shop.contact.email, - from: from_address, subject: "#{Spree::Config[:site_name]} #{t('subscription_mailer.placement_summary_email.subject')}") end @@ -45,7 +44,6 @@ class SubscriptionMailer < Spree::BaseMailer @shop = Enterprise.find(summary.shop_id) @summary = summary mail(to: @shop.contact.email, - from: from_address, subject: "#{Spree::Config[:site_name]} #{t('subscription_mailer.confirmation_summary_email.subject')}") end @@ -56,7 +54,6 @@ class SubscriptionMailer < Spree::BaseMailer confirm_email_subject = t('spree.order_mailer.confirm_email.subject') subject = "#{Spree::Config[:site_name]} #{confirm_email_subject} ##{order.number}" mail(to: order.email, - from: from_address, subject: subject, reply_to: order.distributor.contact.email) end