X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/63e0486ca13f2fc444eec195105727f52b25b06b..7499fbc6e43897d30e088f14391c1203777cf929:/lib/potlatch.rb?ds=sidebyside diff --git a/lib/potlatch.rb b/lib/potlatch.rb index b2f8eb479..7a7926f04 100644 --- a/lib/potlatch.rb +++ b/lib/potlatch.rb @@ -83,7 +83,7 @@ module Potlatch when 'Hash' a=3.chr n.each do |k,v| - a+=encodestring(k)+encodevalue(v) + a+=encodestring(k.to_s)+encodevalue(v) end a+0.chr+0.chr+9.chr when 'String' @@ -92,6 +92,10 @@ module Potlatch 0.chr+encodedouble(n) when 'NilClass' 5.chr + when 'TrueClass' + 0.chr+encodedouble(1) + when 'FalseClass' + 0.chr+encodedouble(0) else RAILS_DEFAULT_LOGGER.error("Unexpected Ruby type for AMF conversion: "+n.class.to_s) end @@ -143,7 +147,7 @@ module Potlatch presetcategory=$2 presetmenus[presettype].push(presetcategory) presetnames[presettype][presetcategory]=["(no preset)"] - elsif (t=~/^(.+):\s?(.+)$/) then + elsif (t=~/^([\w\s]+):\s?(.+)$/) then pre=$1; kv=$2 presetnames[presettype][presetcategory].push(pre) presets[pre]={} @@ -168,12 +172,38 @@ module Potlatch } end + # Read relations colours/styling + relcolours={}; relalphas={}; relwidths={} + File.open("#{RAILS_ROOT}/config/potlatch/relation_colours.txt") do |file| + file.each_line {|line| + t=line.chomp + if (t=~/(\w+)\s+([^\s]+)\s+([^\s]+)\s+([^\s]+)/) then + tag=$1 + if ($2!='-') then relcolours[tag]=$2.hex end + if ($3!='-') then relalphas[tag]=$3.to_i end + if ($4!='-') then relwidths[tag]=$4.to_i end + end + } + end + + # Read POI presets + icon_list=[]; icon_names={}; icon_tags={}; + File.open("#{RAILS_ROOT}/config/potlatch/icon_presets.txt") do |file| + file.each_line {|line| + (icon,name,tags)=line.chomp.split("\t") + icon_list.push(icon) + icon_names[icon]=name + icon_tags[icon]=Hash[*tags.scan(/([^;=]+)=([^;=]+)/).flatten] + } + end + icon_list.reverse! + # Read auto-complete autotags={}; autotags['point']={}; autotags['way']={}; autotags['POI']={}; File.open("#{RAILS_ROOT}/config/potlatch/autocomplete.txt") do |file| file.each_line {|line| t=line.chomp - if (t=~/^(\w+)\/(\w+)\s+(.+)$/) then + if (t=~/^([\w:]+)\/(\w+)\s+(.+)$/) then tag=$1; type=$2; values=$3 if values=='-' then autotags[type][tag]=[] else autotags[type][tag]=values.split(',').sort.reverse end @@ -181,7 +211,7 @@ module Potlatch } end - [presets,presetmenus,presetnames,colours,casing,areas,autotags] + [presets,presetmenus,presetnames,colours,casing,areas,autotags,relcolours,relalphas,relwidths,icon_list,icon_names,icon_tags] end end