Merge remote-tracking branch 'upstream/pull/3805'

This commit is contained in:
Tom Hughes 2022-11-17 17:51:46 +00:00
commit 17e87ab67a
3 changed files with 12 additions and 17 deletions

View file

@ -22,7 +22,7 @@ module BrowseTagsHelper
elsif url = wiki_link("tag", "#{key}=#{value}") elsif url = wiki_link("tag", "#{key}=#{value}")
link_to h(value), url, :title => t("browse.tag_details.wiki_link.tag", :key => key, :value => value) link_to h(value), url, :title => t("browse.tag_details.wiki_link.tag", :key => key, :value => value)
elsif email = email_link(key, value) elsif email = email_link(key, value)
link_to(h(email[:email]), email[:url], :title => t("browse.tag_details.email_link", :email => email[:email])) mail_to(email, :title => t("browse.tag_details.email_link", :email => email))
elsif phones = telephone_links(key, value) elsif phones = telephone_links(key, value)
# similarly, telephone_links() returns an array of phone numbers # similarly, telephone_links() returns an array of phone numbers
phones = phones.map do |p| phones = phones.map do |p|
@ -136,10 +136,7 @@ module BrowseTagsHelper
# remove any leading and trailing whitespace # remove any leading and trailing whitespace
email = value.strip email = value.strip
if email.match?(URI::MailTo::EMAIL_REGEXP) return email if email.match?(URI::MailTo::EMAIL_REGEXP)
# add 'mailto:'' prefix
return { :email => email, :url => "mailto:#{email}" }
end
nil nil
end end

View file

@ -405,6 +405,7 @@ en:
wikimedia_commons_link: "The %{page} item on Wikimedia Commons" wikimedia_commons_link: "The %{page} item on Wikimedia Commons"
telephone_link: "Call %{phone_number}" telephone_link: "Call %{phone_number}"
colour_preview: "Colour %{colour_value} preview" colour_preview: "Colour %{colour_value} preview"
email_link: "Email %{email}"
note: note:
title: "Note: %{id}" title: "Note: %{id}"
new_note: "New Note" new_note: "New Note"

View file

@ -46,6 +46,9 @@ class BrowseTagsHelperTest < ActionView::TestCase
html = format_value("colour", "#f00") html = format_value("colour", "#f00")
assert_dom_equal %(<span class="colour-preview-box" data-colour="#f00" title="Colour #f00 preview"></span>#f00), html assert_dom_equal %(<span class="colour-preview-box" data-colour="#f00" title="Colour #f00 preview"></span>#f00), html
html = format_value("contact", "foo@example.com")
assert_dom_equal "<a title=\"Email foo@example.com\" href=\"mailto:foo@example.com\">foo@example.com</a>", html
end end
def test_wiki_link def test_wiki_link
@ -240,29 +243,23 @@ class BrowseTagsHelperTest < ActionView::TestCase
assert_nil email assert_nil email
email = email_link("email", "x@example.com") email = email_link("email", "x@example.com")
assert_equal "x@example.com", email[:email] assert_equal "x@example.com", email
assert_equal "mailto:x@example.com", email[:url]
email = email_link("email", "other.email-with-hyphen@example.com") email = email_link("email", "other.email-with-hyphen@example.com")
assert_equal "other.email-with-hyphen@example.com", email[:email] assert_equal "other.email-with-hyphen@example.com", email
assert_equal "mailto:other.email-with-hyphen@example.com", email[:url]
email = email_link("email", "user.name+tag+sorting@example.com") email = email_link("email", "user.name+tag+sorting@example.com")
assert_equal "user.name+tag+sorting@example.com", email[:email] assert_equal "user.name+tag+sorting@example.com", email
assert_equal "mailto:user.name+tag+sorting@example.com", email[:url]
email = email_link("email", "dash-in@both-parts.com") email = email_link("email", "dash-in@both-parts.com")
assert_equal "dash-in@both-parts.com", email[:email] assert_equal "dash-in@both-parts.com", email
assert_equal "mailto:dash-in@both-parts.com", email[:url]
email = email_link("email", "example@s.example") email = email_link("email", "example@s.example")
assert_equal "example@s.example", email[:email] assert_equal "example@s.example", email
assert_equal "mailto:example@s.example", email[:url]
# Strips whitespace at ends # Strips whitespace at ends
email = email_link("email", " test@email.com ") email = email_link("email", " test@email.com ")
assert_equal "test@email.com", email[:email] assert_equal "test@email.com", email
assert_equal "mailto:test@email.com", email[:url]
end end
def test_telephone_links def test_telephone_links