Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions config/initializers/014-track-setting-changes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -87,4 +87,16 @@
end

Theme.expire_site_cache! if name == :default_theme_id

if name == :content_localization_enabled && new_value == true
%i[post_menu post_menu_hidden_items].each do |setting_name|
current_items = SiteSetting.get(setting_name).split("|")
if current_items.exclude?("addTranslation")
edit_index = current_items.index("edit")
insert_position = edit_index ? edit_index + 1 : 0
current_items.insert(insert_position, "addTranslation")
SiteSetting.set(setting_name, current_items.join("|"))
end
end
end
end
81 changes: 81 additions & 0 deletions spec/initializers/content_localization_setting_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# frozen_string_literal: true

describe "Content localization site setting changes" do
describe "when content_localization_enabled is enabled" do
it "adds addTranslation button to post_menu after edit button" do
original_menu = "read|like|edit|reply"
SiteSetting.post_menu = original_menu

SiteSetting.content_localization_enabled = true

expect(SiteSetting.post_menu).to eq("read|like|edit|addTranslation|reply")
end

it "adds addTranslation as first button when edit button does not exist" do
original_menu = "read|like|reply"
SiteSetting.post_menu = original_menu

SiteSetting.content_localization_enabled = true

expect(SiteSetting.post_menu).to eq("addTranslation|read|like|reply")
end

it "does not add addTranslation if it already exists in post_menu" do
original_menu = "read|like|edit|addTranslation|reply"
SiteSetting.post_menu = original_menu

SiteSetting.content_localization_enabled = true

expect(SiteSetting.post_menu).to eq("read|like|edit|addTranslation|reply")
end

it "does not modify post_menu when setting is disabled" do
original_menu = "read|like|edit|reply"
SiteSetting.post_menu = original_menu

SiteSetting.content_localization_enabled = false

expect(SiteSetting.post_menu).to eq("read|like|edit|reply")
end

it "adds addTranslation button to post_menu_hidden_items after edit button" do
original_hidden_items = "flag|bookmark|edit|delete|admin"
SiteSetting.post_menu_hidden_items = original_hidden_items

SiteSetting.content_localization_enabled = true

expect(SiteSetting.post_menu_hidden_items).to eq(
"flag|bookmark|edit|addTranslation|delete|admin",
)
end

it "adds addTranslation to post_menu_hidden_items as first button when edit button does not exist" do
original_hidden_items = "flag|bookmark|delete|admin"
SiteSetting.post_menu_hidden_items = original_hidden_items

SiteSetting.content_localization_enabled = true

expect(SiteSetting.post_menu_hidden_items).to eq("addTranslation|flag|bookmark|delete|admin")
end

it "does not add addTranslation if it already exists in post_menu_hidden_items" do
original_hidden_items = "flag|bookmark|edit|addTranslation|delete|admin"
SiteSetting.post_menu_hidden_items = original_hidden_items

SiteSetting.content_localization_enabled = true

expect(SiteSetting.post_menu_hidden_items).to eq(
"flag|bookmark|edit|addTranslation|delete|admin",
)
end

it "does not modify post_menu_hidden_items when setting is disabled" do
original_hidden_items = "flag|bookmark|edit|delete|admin"
SiteSetting.post_menu_hidden_items = original_hidden_items

SiteSetting.content_localization_enabled = false

expect(SiteSetting.post_menu_hidden_items).to eq("flag|bookmark|edit|delete|admin")
end
end
end
44 changes: 30 additions & 14 deletions spec/system/post_translation_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@
before do
SiteSetting.default_locale = "en"
SiteSetting.content_localization_supported_locales = "fr|es|pt_BR"
SiteSetting.content_localization_enabled = true
SiteSetting.post_menu =
"read|like|copyLink|flag|edit|bookmark|delete|admin|reply|addTranslation"
SiteSetting.post_menu_hidden_items = "flag|bookmark|edit|addTranslation|delete|admin"
SiteSetting.content_localization_enabled = true
sign_in(admin)
end

Expand All @@ -30,7 +31,9 @@
post.update!(locale: "en")

topic_page.visit_topic(topic)
find("#post_1 .post-action-menu-edit-translations-trigger").click

topic_page.click_post_action_button(post, :show_more)
topic_page.click_post_action_button(post, :add_translation)
find(".update-translations-menu__add .post-action-menu__add-translation").click
translation_selector.expand
expect(all(".translation-selector-dropdown .select-kit-collection li").count).to eq(3)
Expand All @@ -42,7 +45,8 @@

it "allows a user to translate a post" do
topic_page.visit_topic(topic)
find("#post_1 .post-action-menu-edit-translations-trigger").click
topic_page.click_post_action_button(post, :show_more)
topic_page.click_post_action_button(post, :add_translation)
find(".update-translations-menu__add .post-action-menu__add-translation").click
expect(composer).to be_opened
translation_selector.expand
Expand All @@ -68,7 +72,8 @@

it "allows a user to add a new translation" do
topic_page.visit_topic(topic)
find("#post_1 .post-action-menu-edit-translations-trigger").click
topic_page.click_post_action_button(post, :show_more)
topic_page.click_post_action_button(post, :add_translation)
find(".update-translations-menu__add .post-action-menu__add-translation").click
expect(composer).to be_opened
translation_selector.expand
Expand All @@ -87,7 +92,8 @@

it "allows a user to see locales translated" do
topic_page.visit_topic(topic)
find("#post_#{post.post_number} .post-action-menu-edit-translations-trigger").click
topic_page.click_post_action_button(post, :show_more)
topic_page.click_post_action_button(post, :add_translation)
view_translation_button = find(".post-action-menu__view-translation")
expect(view_translation_button).to be_visible
expect(view_translation_button).to have_text(
Expand All @@ -101,7 +107,8 @@

it "allows a user to edit a translation" do
topic_page.visit_topic(topic)
find("#post_#{post.post_number} .post-action-menu-edit-translations-trigger").click
topic_page.click_post_action_button(post, :show_more)
topic_page.click_post_action_button(post, :add_translation)
find(".post-action-menu__view-translation").click
find(".post-translations-modal__edit-action .btn").click
expect(composer).to be_opened
Expand All @@ -122,7 +129,9 @@
topic_page.visit_topic(topic)
expect(PostLocalization.exists?(post_id: post.id, locale: "fr")).to be true

find("#post_#{post.post_number} .post-action-menu-edit-translations-trigger").click
topic_page.click_post_action_button(post, :show_more)
topic_page.click_post_action_button(post, :add_translation)
find(".update-translations-menu__add .post-action-menu__add-translation").click
find(".post-action-menu__view-translation").click
find(".post-translations-modal__delete-action .btn").click
expect(confirmation_dialog).to be_open
Expand All @@ -135,7 +144,8 @@
discard_modal = PageObjects::Modals::DiscardDraft.new

topic_page.visit_topic(topic)
find("#post_#{post.post_number} .post-action-menu-edit-translations-trigger").click
topic_page.click_post_action_button(post, :show_more)
topic_page.click_post_action_button(post, :add_translation)
find(".update-translations-menu__add .post-action-menu__add-translation").click
expect(composer).to be_opened

Expand All @@ -155,7 +165,8 @@
discard_modal = PageObjects::Modals::DiscardDraft.new

topic_page.visit_topic(topic)
find("#post_#{post.post_number} .post-action-menu-edit-translations-trigger").click
topic_page.click_post_action_button(post, :show_more)
topic_page.click_post_action_button(post, :add_translation)
find(".update-translations-menu__add .post-action-menu__add-translation").click
expect(composer).to be_opened

Expand Down Expand Up @@ -218,7 +229,8 @@

it "shows raw markdown toggle only on Original tab" do
topic_page.visit_topic(topic)
find("#post_#{markdown_post.post_number} .post-action-menu-edit-translations-trigger").click
topic_page.click_post_action_button(post, :show_more)
topic_page.click_post_action_button(post, :add_translation)
find(".update-translations-menu__add .post-action-menu__add-translation").click

expect(composer).to be_opened
Expand All @@ -232,7 +244,8 @@

it "displays rendered HTML by default" do
topic_page.visit_topic(topic)
find("#post_#{markdown_post.post_number} .post-action-menu-edit-translations-trigger").click
topic_page.click_post_action_button(post, :show_more)
topic_page.click_post_action_button(post, :add_translation)
find(".update-translations-menu__add .post-action-menu__add-translation").click

expect(composer).to be_opened
Expand All @@ -243,7 +256,8 @@

it "displays raw markdown when toggle is enabled" do
topic_page.visit_topic(topic)
find("#post_#{markdown_post.post_number} .post-action-menu-edit-translations-trigger").click
topic_page.click_post_action_button(markdown_post.post_number, :show_more)
topic_page.click_post_action_button(markdown_post.post_number, :add_translation)
find(".update-translations-menu__add .post-action-menu__add-translation").click

expect(composer).to be_opened
Expand All @@ -259,7 +273,8 @@

it "resets raw markdown view when switching tabs" do
topic_page.visit_topic(topic)
find("#post_#{markdown_post.post_number} .post-action-menu-edit-translations-trigger").click
topic_page.click_post_action_button(post, :show_more)
topic_page.click_post_action_button(post, :add_translation)
find(".update-translations-menu__add .post-action-menu__add-translation").click

expect(composer).to be_opened
Expand All @@ -277,7 +292,8 @@

it "maintains raw markdown state while on Original tab" do
topic_page.visit_topic(topic)
find("#post_#{markdown_post.post_number} .post-action-menu-edit-translations-trigger").click
topic_page.click_post_action_button(post, :show_more)
topic_page.click_post_action_button(post, :add_translation)
find(".update-translations-menu__add .post-action-menu__add-translation").click

expect(composer).to be_opened
Expand Down
Loading