From b4981d94abd3a312174ee6b4e42f08ae662d95f4 Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Fri, 20 Jun 2025 14:41:24 +0300 Subject: [PATCH] Change language instead of opening preferences when logged in --- app/assets/javascripts/language_selector.js | 10 +++++-- app/views/layouts/_header.html.erb | 24 +++++++-------- .../layouts/_select_language_button.html.erb | 4 +++ test/system/select_language_test.rb | 29 +++++++++++++++++++ 4 files changed, 51 insertions(+), 16 deletions(-) diff --git a/app/assets/javascripts/language_selector.js b/app/assets/javascripts/language_selector.js index 83525a54d..105c19f52 100644 --- a/app/assets/javascripts/language_selector.js +++ b/app/assets/javascripts/language_selector.js @@ -2,7 +2,13 @@ $(document).on("click", "#select_language_dialog [data-language-code]", function e.preventDefault(); const code = $(this).data("language-code"); + const form = this.closest("form"); - Cookies.set("_osm_locale", code, { secure: true, path: "/", samesite: "lax" }); - location.reload(); + if (form) { + form.elements.language.value = code; + form.submit(); + } else { + Cookies.set("_osm_locale", code, { secure: true, path: "/", samesite: "lax" }); + location.reload(); + } }); diff --git a/app/views/layouts/_header.html.erb b/app/views/layouts/_header.html.erb index 2a1d09295..6206f3dd8 100644 --- a/app/views/layouts/_header.html.erb +++ b/app/views/layouts/_header.html.erb @@ -67,17 +67,7 @@ <% if current_user && current_user.id %> @@ -116,7 +106,6 @@ -<% unless current_user&.id %> -<% end %> diff --git a/app/views/layouts/_select_language_button.html.erb b/app/views/layouts/_select_language_button.html.erb index f88933c03..8459a7a25 100644 --- a/app/views/layouts/_select_language_button.html.erb +++ b/app/views/layouts/_select_language_button.html.erb @@ -1,4 +1,8 @@ +<%= tag.button :type => "button", + :class => "btn btn-link p-0 text-secondary", + :data => { :bs_toggle => "modal", :bs_target => "#select_language_dialog" } do %> <%= t ".title" %> +<% end %> diff --git a/test/system/select_language_test.rb b/test/system/select_language_test.rb index d11c3497a..c928e8a87 100644 --- a/test/system/select_language_test.rb +++ b/test/system/select_language_test.rb @@ -17,4 +17,33 @@ class SelectLanguageTest < ApplicationSystemTestCase assert_text "Obtenir de l’aide" end end + + test "can select language when logged in" do + user = create(:user, :display_name => "LanguageTestUser") + sign_in_as(user) + + visit help_path + + assert_no_text "Préférences mises à jour" + within_content_heading do + assert_text "Getting Help" + assert_no_text "Obtenir de l’aide" + end + + click_on "Select Language" + click_on "français" + + assert_text "Préférences mises à jour" + within_content_heading do + assert_no_text "Getting Help" + assert_text "Obtenir de l’aide" + end + + click_on "LanguageTestUser" + click_on "Mes préférences" + + within_content_body do + assert_select "Langue préférée", :selected => "français" + end + end end -- 2.39.5