diff --git a/app/jobs/regular/translate_translatable.rb b/app/jobs/regular/translate_translatable.rb index a5d44617..032a8a44 100644 --- a/app/jobs/regular/translate_translatable.rb +++ b/app/jobs/regular/translate_translatable.rb @@ -19,7 +19,7 @@ def execute(args) topic_id, post_id = translatable.is_a?(Post) ? [translatable.topic_id, translatable.id] : [translatable.id, 1] - MessageBus.publish("/topic/#{topic_id}", type: :revised, id: post_id) + MessageBus.publish("/topic/#{topic_id}", type: :translated_post, id: post_id) end end end diff --git a/assets/javascripts/discourse/initializers/extend-for-translate-button.js b/assets/javascripts/discourse/initializers/extend-for-translate-button.js index 1f8b2c4f..c42cb6c7 100644 --- a/assets/javascripts/discourse/initializers/extend-for-translate-button.js +++ b/assets/javascripts/discourse/initializers/extend-for-translate-button.js @@ -29,6 +29,23 @@ function initializeTranslation(api) { (currentUser || siteSettings.experimental_anon_language_switcher) ) { api.renderInOutlet("topic-navigation", ShowOriginalContent); + + api.registerCustomPostMessageCallback( + "translated_post", + (topicController, data) => { + if ( + new URLSearchParams(window.location.search).get("show") === "original" + ) { + return; + } + const postStream = topicController.get("model.postStream"); + postStream.triggerChangedPost(data.id, data.updated_at).then(() => { + topicController.appEvents.trigger("post-stream:refresh", { + id: data.id, + }); + }); + } + ); } customizePostMenu(api); diff --git a/spec/jobs/translate_translatable_spec.rb b/spec/jobs/translate_translatable_spec.rb index 320bd471..0755ba14 100644 --- a/spec/jobs/translate_translatable_spec.rb +++ b/spec/jobs/translate_translatable_spec.rb @@ -31,7 +31,10 @@ end it "translates posts to configured target languages" do - MessageBus.expects(:publish).with("/topic/#{post.topic.id}", type: :revised, id: post.id).once + MessageBus + .expects(:publish) + .with("/topic/#{post.topic.id}", type: :translated_post, id: post.id) + .once job.execute(type: "Post", translatable_id: post.id) @@ -40,7 +43,7 @@ end it "translates topics to configured target languages" do - MessageBus.expects(:publish).with("/topic/#{topic.id}", type: :revised, id: 1).once + MessageBus.expects(:publish).with("/topic/#{topic.id}", type: :translated_post, id: 1).once job.execute(type: "Topic", translatable_id: topic.id)