]> git.openstreetmap.org Git - rails.git/blobdiff - lib/potlatch.rb
Fix escaping of unicode character in edit menu name
[rails.git] / lib / potlatch.rb
index b2f8eb479cffe025b98518528cd135321ffc322a..ef3be79a80f748ebff407c6aeaf29f1e6d5ab41a 100644 (file)
@@ -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,8 +92,12 @@ 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)
+        Rails.logger.error("Unexpected Ruby type for AMF conversion: "+n.class.to_s)
       end
     end
 
@@ -126,7 +130,7 @@ module Potlatch
     #                          [3] colours, [4] casing, [5] areas, [6] autotags
     #                          (all hashes)
     def self.get_presets
-      RAILS_DEFAULT_LOGGER.info("  Message: getpresets")
+      Rails.logger.info("  Message: getpresets")
 
       # Read preset menus
       presets={}
@@ -135,7 +139,7 @@ module Potlatch
       presettype=''
       presetcategory=''
       #        StringIO.open(txt) do |file|
-      File.open("#{RAILS_ROOT}/config/potlatch/presets.txt") do |file|
+      File.open("#{Rails.root}/config/potlatch/presets.txt") do |file|
         file.each_line {|line|
           t=line.chomp
           if (t=~/(\w+)\/(\w+)/) then
@@ -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]={}
@@ -156,7 +160,7 @@ module Potlatch
 
       # Read colours/styling
       colours={}; casing={}; areas={}
-      File.open("#{RAILS_ROOT}/config/potlatch/colours.txt") do |file|
+      File.open("#{Rails.root}/config/potlatch/colours.txt") do |file|
         file.each_line {|line|
           t=line.chomp
           if (t=~/(\w+)\s+([^\s]+)\s+([^\s]+)\s+([^\s]+)/) then
@@ -168,12 +172,37 @@ 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_tags={};
+      File.open("#{Rails.root}/config/potlatch/icon_presets.txt") do |file|
+        file.each_line {|line|
+          (icon,tags)=line.chomp.split("\t")
+          icon_list.push(icon)
+          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.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 +210,7 @@ module Potlatch
         }
       end
 
-      [presets,presetmenus,presetnames,colours,casing,areas,autotags]
+      [presets,presetmenus,presetnames,colours,casing,areas,autotags,relcolours,relalphas,relwidths,icon_list,{},icon_tags]
     end
   end