1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# web/lib/ui/tags.rb
class Taginfo < Sinatra::Base
get %r{^/tags/(.*)} do |tag|
if tag.match(/=/)
kv = tag.split('=', 2)
else
kv = [ tag, '' ]
end
if params[:key].nil?
@key = kv[0]
else
@key = params[:key]
end
if params[:value].nil?
@value = kv[1]
else
@value = params[:value]
end
@tag = @key + '=' + @value
@key_uri = escape(@key)
@value_uri = escape(@value)
@title = [@key + '=' + @value, t.osm.tags]
section :tags
@filter_type = get_filter()
@sel = Hash.new('')
@sel[@filter_type] = ' selected="selected"'
@filter_xapi = { 'all' => '*', nil => '*', 'nodes' => 'node', 'ways' => 'way', 'relations' => 'relation' }[@filter_type];
@josm_count = @db.count('josm_style_rules').condition('k=? AND v=?', @key, @value).get_first_i
@wiki_count = @db.count('wiki.wikipages').condition('key=? AND value=?', @key, @value).get_first_i
if @wiki_count == 0
@wiki_count_key = @db.count('wiki.wikipages').condition('key=? AND value IS NULL', @key).get_first_i
end
@count_all = @db.select("SELECT count_#{@filter_type} FROM db.tags").condition('key = ? AND value = ?', @key, @value).get_first_i
@desc = h(@db.select("SELECT description FROM wiki.wikipages WHERE lang=? AND key=? AND value=?", r18n.locale.code, @key, @value).get_first_value())
@desc = h(@db.select("SELECT description FROM wiki.wikipages WHERE lang='en' AND key=? AND value=?", @key, @value).get_first_value()) if @desc == ''
if @desc == ''
@desc = "<span class='empty'>#{ t.pages.tag.no_description_in_wiki }</span>"
else
@desc = "<span title='#{ t.pages.tag.description_from_wiki }' tipsy='w'>#{ @desc }</span>"
end
@db.select("SELECT width, height, image_url, thumb_url_prefix, thumb_url_suffix FROM wiki.wikipages LEFT OUTER JOIN wiki.wiki_images USING(image) WHERE lang=? AND key=? AND value=? UNION SELECT width, height, image_url, thumb_url_prefix, thumb_url_suffix FROM wiki.wikipages LEFT OUTER JOIN wiki.wiki_images USING(image) WHERE lang='en' AND key=? AND value=? LIMIT 1", r18n.locale.code, @key, @value, @key, @value).
execute() do |row|
@image_url = build_image_url(row)
end
@has_rtype_link = false
if @key == 'type' && @db.count('relation_types').condition('rtype = ?', @value).get_first_i > 0
@has_rtype_link = true
end
@has_map = @db.count('tag_distributions').condition('key=? AND value=?', @key, @value).get_first_i > 0
@img_width = TaginfoConfig.get('geodistribution.width') * TaginfoConfig.get('geodistribution.scale_image')
@img_height = TaginfoConfig.get('geodistribution.height') * TaginfoConfig.get('geodistribution.scale_image')
javascript_for(:flexigrid)
javascript "#{ r18n.locale.code }/tag"
erb :tag
end
end
|