Turn wikimedia_commons values into links
This turns the value of the 'wikimedia_commons' tag into a link to the respective page on commons.wikimedia.org (if it is a 'File:' or 'Category:' item) by enhancing the browse tags helper. See [1] for the tag description. [1] http://wiki.openstreetmap.org/wiki/Key:wikimedia_commons
This commit is contained in:
parent
1bf2a540d0
commit
c3300d8c93
3 changed files with 44 additions and 0 deletions
|
@ -17,6 +17,8 @@ module BrowseTagsHelper
|
||||||
link_to(w[:title], w[:url], :title => t("browse.tag_details.wikidata_link", :page => w[:title].strip))
|
link_to(w[:title], w[:url], :title => t("browse.tag_details.wikidata_link", :page => w[:title].strip))
|
||||||
end
|
end
|
||||||
safe_join(wdt, ";")
|
safe_join(wdt, ";")
|
||||||
|
elsif wmc = wikimedia_commons_link(key, value)
|
||||||
|
link_to h(wmc[:title]), wmc[:url], :title => t("browse.tag_details.wikimedia_commons_link", :page => wmc[:title])
|
||||||
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 phones = telephone_links(key, value)
|
elsif phones = telephone_links(key, value)
|
||||||
|
@ -111,6 +113,16 @@ module BrowseTagsHelper
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def wikimedia_commons_link(key, value)
|
||||||
|
if key == "wikimedia_commons" && value =~ /^(?:file|category):/i
|
||||||
|
return {
|
||||||
|
:url => "//commons.wikimedia.org/wiki/#{value}?uselang=#{I18n.locale}",
|
||||||
|
:title => value
|
||||||
|
}
|
||||||
|
end
|
||||||
|
nil
|
||||||
|
end
|
||||||
|
|
||||||
def telephone_links(_key, value)
|
def telephone_links(_key, value)
|
||||||
# Does it look like a global phone number? eg "+1 (234) 567-8901 "
|
# Does it look like a global phone number? eg "+1 (234) 567-8901 "
|
||||||
# or a list of alternate numbers separated by ;
|
# or a list of alternate numbers separated by ;
|
||||||
|
|
|
@ -278,6 +278,7 @@ en:
|
||||||
tag: "The wiki description page for the %{key}=%{value} tag"
|
tag: "The wiki description page for the %{key}=%{value} tag"
|
||||||
wikidata_link: "The %{page} item on Wikidata"
|
wikidata_link: "The %{page} item on Wikidata"
|
||||||
wikipedia_link: "The %{page} article on Wikipedia"
|
wikipedia_link: "The %{page} article on Wikipedia"
|
||||||
|
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"
|
||||||
note:
|
note:
|
||||||
|
|
|
@ -48,6 +48,9 @@ class BrowseTagsHelperTest < ActionView::TestCase
|
||||||
html = format_value("name:etymology:wikidata", "Q123")
|
html = format_value("name:etymology:wikidata", "Q123")
|
||||||
assert_dom_equal "<a title=\"The Q123 item on Wikidata\" href=\"//www.wikidata.org/entity/Q123?uselang=en\">Q123</a>", html
|
assert_dom_equal "<a title=\"The Q123 item on Wikidata\" href=\"//www.wikidata.org/entity/Q123?uselang=en\">Q123</a>", html
|
||||||
|
|
||||||
|
html = format_value("wikimedia_commons", "File:Test.jpg")
|
||||||
|
assert_dom_equal "<a title=\"The File:Test.jpg item on Wikimedia Commons\" href=\"//commons.wikimedia.org/wiki/File:Test.jpg?uselang=en\">File:Test.jpg</a>", html
|
||||||
|
|
||||||
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
|
||||||
end
|
end
|
||||||
|
@ -190,6 +193,34 @@ class BrowseTagsHelperTest < ActionView::TestCase
|
||||||
assert_nil link
|
assert_nil link
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_wikimedia_commons_link
|
||||||
|
link = wikimedia_commons_link("wikimedia_commons", "http://commons.wikimedia.org/wiki/File:Full%20URL.jpg")
|
||||||
|
assert_nil link
|
||||||
|
|
||||||
|
link = wikimedia_commons_link("wikimedia_commons", "https://commons.wikimedia.org/wiki/File:Full%20URL.jpg")
|
||||||
|
assert_nil link
|
||||||
|
|
||||||
|
link = wikimedia_commons_link("wikimedia_commons", "Test.jpg")
|
||||||
|
assert_nil link
|
||||||
|
|
||||||
|
link = wikimedia_commons_link("wikimedia_commons", "File:Test.jpg")
|
||||||
|
assert_equal "//commons.wikimedia.org/wiki/File:Test.jpg?uselang=en", link[:url]
|
||||||
|
assert_equal "File:Test.jpg", link[:title]
|
||||||
|
|
||||||
|
link = wikimedia_commons_link("wikimedia_commons", "Category:Test_Category")
|
||||||
|
assert_equal "//commons.wikimedia.org/wiki/Category:Test_Category?uselang=en", link[:url]
|
||||||
|
assert_equal "Category:Test_Category", link[:title]
|
||||||
|
|
||||||
|
I18n.locale = "pt-BR"
|
||||||
|
|
||||||
|
link = wikimedia_commons_link("wikimedia_commons", "File:Test.jpg")
|
||||||
|
assert_equal "//commons.wikimedia.org/wiki/File:Test.jpg?uselang=pt-BR", link[:url]
|
||||||
|
assert_equal "File:Test.jpg", link[:title]
|
||||||
|
|
||||||
|
link = wikimedia_commons_link("foo", "Test")
|
||||||
|
assert_nil link
|
||||||
|
end
|
||||||
|
|
||||||
def test_telephone_links
|
def test_telephone_links
|
||||||
links = telephone_links("foo", "Test")
|
links = telephone_links("foo", "Test")
|
||||||
assert_nil links
|
assert_nil links
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue