FIX: quoted private topic url respects subfolder install (#25643)

Fixes an issue where private topics that are quoted have an incorrectly formatted url when using a subfolder install.

This update returns a relative url that includes the base_path rather than a combination of base_url + base_path.
This commit is contained in:
David Battersby 2024-02-13 13:20:24 +08:00 committed by GitHub
parent 85001a27e9
commit d7dd871d9f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 20 additions and 2 deletions

View File

@ -92,7 +92,7 @@ module PrettyText
if topic && Guardian.new.can_see?(topic)
{ title: Rack::Utils.escape_html(topic.title), href: topic.url }
elsif topic
{ title: I18n.t("on_another_topic"), href: Discourse.base_url + topic.slugless_url }
{ title: I18n.t("on_another_topic"), href: topic.slugless_url }
end
end

View File

@ -220,7 +220,7 @@ RSpec.describe PrettyText do
<aside class="quote no-group" data-username="maja" data-post="3" data-topic="#{topic.id}">
<div class="title">
<div class="quote-controls"></div>
<a href="http://test.localhost/t/#{topic.id}/3">#{I18n.t("on_another_topic")}</a></div>
<a href="/t/#{topic.id}/3">#{I18n.t("on_another_topic")}</a></div>
<blockquote>
<p>I have nothing to say.</p>
</blockquote>

View File

@ -311,6 +311,24 @@ RSpec.describe Topic do
end
end
describe "slugless_url" do
fab!(:topic)
it "returns the correct url" do
expect(topic.slugless_url).to eq("/t/#{topic.id}")
end
it "works with post id" do
expect(topic.slugless_url(123)).to eq("/t/#{topic.id}/123")
end
it "works with subfolder install" do
set_subfolder "/forum"
expect(topic.slugless_url).to eq("/forum/t/#{topic.id}")
end
end
describe "updating a title to be shorter" do
let!(:topic) { Fabricate(:topic) }