Improve the browse helper code use to generate wiki links
This commit is contained in:
parent
da74fbb769
commit
d6755356e0
3 changed files with 25 additions and 32 deletions
|
@ -16,41 +16,34 @@ module BrowseHelper
|
|||
return name
|
||||
end
|
||||
|
||||
def wiki_link(type, key, tag)
|
||||
wiki_data = YAML.load_file("#{RAILS_ROOT}/config/wiki-tag-and-key-description.yml")
|
||||
my_locale = I18n.locale.to_s
|
||||
|
||||
if type == "key"
|
||||
ret = key
|
||||
lookup = key
|
||||
def format_key(key)
|
||||
if url = wiki_link("key", key)
|
||||
link_to h(key), url, :title => t('browse.tag_details.wiki_link.key', :key => key)
|
||||
else
|
||||
ret = tag
|
||||
lookup = key + "=" + tag
|
||||
h(key)
|
||||
end
|
||||
|
||||
# Try our native language
|
||||
has_primary = wiki_data[my_locale][type][lookup] rescue false
|
||||
if has_primary
|
||||
ret = wikify(type, key, tag, lookup, wiki_data[my_locale][type][lookup])
|
||||
else
|
||||
# Fall back on English
|
||||
has_fallback = wiki_data["en"][type][lookup] rescue false
|
||||
if has_fallback
|
||||
ret = wikify(type, key, tag, lookup, wiki_data["en"][type][lookup])
|
||||
end
|
||||
end
|
||||
|
||||
return ret
|
||||
end
|
||||
|
||||
def wikify(type, key, tag, text, wiki)
|
||||
my_locale = I18n.locale
|
||||
url = "http://wiki.openstreetmap.org/wiki/#{wiki}?uselang=#{my_locale}"
|
||||
|
||||
if type == "key"
|
||||
return '<a href="' + url + '" title="' + h(t('browse.tag_details.wiki_link.key', :key => key)) + '">' + h(text) + '</a>'
|
||||
def format_value(key, value)
|
||||
if url = wiki_link("tag", "#{key}=#{value}")
|
||||
link_to h(value), url, :title => t('browse.tag_details.wiki_link.tag', :key => key, :value => value)
|
||||
else
|
||||
return '<a href="' + url + '" title="' + h(t('browse.tag_details.wiki_link.tag', :key => key, :value => tag)) + '">' + h(tag) + '</a>'
|
||||
linkify h(value)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def wiki_link(type, lookup)
|
||||
wiki_data = YAML.load_file("#{RAILS_ROOT}/config/wiki-tag-and-key-description.yml")
|
||||
locale = I18n.locale.to_s
|
||||
|
||||
if page = wiki_data[locale][type][lookup] rescue nil
|
||||
url = "http://wiki.openstreetmap.org/wiki/#{page}?uselang=#{locale}"
|
||||
elsif page = wiki_data["en"][type][lookup] rescue nil
|
||||
url = "http://wiki.openstreetmap.org/wiki/#{page}?uselang=#{locale}"
|
||||
end
|
||||
|
||||
return url
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue