From fde0aba96c4de9ebc3c98267385765b8ddf54450 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley Date: Thu, 28 Sep 2017 19:17:04 +0100 Subject: [PATCH] Feedback when user changes email addess --- app/controllers/spree/users_controller_decorator.rb | 1 + .../_user_form/add_confirmation_message.html.haml.deface | 5 +++++ config/locales/en.yml | 1 + spec/features/consumer/account/settings_spec.rb | 7 +++++-- 4 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 app/overrides/spree/shared/_user_form/add_confirmation_message.html.haml.deface diff --git a/app/controllers/spree/users_controller_decorator.rb b/app/controllers/spree/users_controller_decorator.rb index 723cd8116f..aca371c75b 100644 --- a/app/controllers/spree/users_controller_decorator.rb +++ b/app/controllers/spree/users_controller_decorator.rb @@ -9,6 +9,7 @@ Spree::UsersController.class_eval do # Ignores invoice orders, only order where state: 'complete' def show @orders = @user.orders.where(state: 'complete').order('completed_at desc') + @unconfirmed_email = spree_current_user.unconfirmed_email return unless Spree::Config.accounts_distributor_id diff --git a/app/overrides/spree/shared/_user_form/add_confirmation_message.html.haml.deface b/app/overrides/spree/shared/_user_form/add_confirmation_message.html.haml.deface new file mode 100644 index 0000000000..c904c13d77 --- /dev/null +++ b/app/overrides/spree/shared/_user_form/add_confirmation_message.html.haml.deface @@ -0,0 +1,5 @@ +/ insert_before "#password-credentials" + +- if @unconfirmed_email + %p.alert-box + = t('spree.users.show.unconfirmed_email', unconfirmed_email: @unconfirmed_email) \ No newline at end of file diff --git a/config/locales/en.yml b/config/locales/en.yml index f67900e6b2..0f6a24bba3 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -2361,6 +2361,7 @@ Please follow the instructions there to make your enterprise visible on the Open cards: Credit Cards transactions: Transactions settings: Account Settings + unconfirmed_email: "Pending email confirmation for: %{unconfirmed_email}. Your email address will be updated once the new email is confirmed." orders: open_orders: Open Orders past_orders: Past Orders diff --git a/spec/features/consumer/account/settings_spec.rb b/spec/features/consumer/account/settings_spec.rb index a7fbf9ce94..3806356375 100644 --- a/spec/features/consumer/account/settings_spec.rb +++ b/spec/features/consumer/account/settings_spec.rb @@ -4,7 +4,7 @@ feature "Account Settings", js: true do include AuthenticationWorkflow describe "as a logged in user" do - let(:user) { create(:user) } + let(:user) { create(:user, email: 'old@email.com') } before do quick_login_as user @@ -21,7 +21,10 @@ feature "Account Settings", js: true do expect(find(".alert-box.success").text.strip).to eq "#{I18n.t(:account_updated)} ×" user.reload - expect(user.email).to eq 'new@email.com' + expect(user.email).to eq 'old@email.com' + expect(user.unconfirmed_email).to eq 'new@email.com' + click_link I18n.t('spree.users.show.tabs.settings') + expect(page).to have_content I18n.t('spree.users.show.unconfirmed_email', unconfirmed_email: 'new@email.com') end end end