From: Tom Hughes Date: Wed, 24 Jun 2009 23:30:41 +0000 (+0000) Subject: Rework the translatable map key to be driven by a YAML file listing the X-Git-Tag: live~6973 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/817434a2e6f1510bf805e35f0c879b005ebe11dd Rework the translatable map key to be driven by a YAML file listing the entries to show for each layer and zoom level. --- diff --git a/app/controllers/site_controller.rb b/app/controllers/site_controller.rb index daf8fead7..2a826770d 100644 --- a/app/controllers/site_controller.rb +++ b/app/controllers/site_controller.rb @@ -1,4 +1,6 @@ class SiteController < ApplicationController + layout 'site',:except => [:key] + before_filter :authorize_web before_filter :set_locale before_filter :require_user, :only => [:edit] @@ -6,4 +8,8 @@ class SiteController < ApplicationController def export render :action => 'index' end + + def key + expires_in 7.days, :public => true + end end diff --git a/app/views/site/_key.html.erb b/app/views/site/_key.html.erb index 62ab2105e..22261900d 100644 --- a/app/views/site/_key.html.erb +++ b/app/views/site/_key.html.erb @@ -1,190 +1,33 @@ -<% content_for :left_menu do %> -<%= link_to_function t('site.key.map_key'), "showKey();", { :title => t('site.key.map_key_tooltip') } %> -<% end %> - + +<% content_for :left_menu do %> + <%= link_to_function t('site.key.map_key'), "openMapKey()", :title => t('site.key.map_key_tooltip') %> +<% end %> diff --git a/app/views/site/_sidebar.html.erb b/app/views/site/_sidebar.html.erb index dd15ef7ba..2dbcef432 100644 --- a/app/views/site/_sidebar.html.erb +++ b/app/views/site/_sidebar.html.erb @@ -21,6 +21,8 @@ onclose = null; } + if (options.title) { $("sidebar_title").innerHTML = options.title; } + if (options.width) { $("sidebar").style.width = options.width; } else { $("sidebar").style.width = "30%"; } @@ -46,10 +48,5 @@ $("sidebar_title").innerHTML = title; $("sidebar_content").innerHTML = content; } - - function sidebarOpen(title) { - return $("sidebar").style.display == "block" && - $("sidebar_title").innerHTML == title; - } // --> diff --git a/app/views/site/index.html.erb b/app/views/site/index.html.erb index a69a6b4ee..ecb732c9b 100644 --- a/app/views/site/index.html.erb +++ b/app/views/site/index.html.erb @@ -139,8 +139,6 @@ end marker = addMarkerToMap(new OpenLayers.LonLat(<%= mlon %>, <%= mlat %>)); <% end %> - map.events.register("zoomend", map, updateKey); - map.events.register("moveend", map, updateLocation); map.events.register("changelayer", map, updateLocation); updateLocation(); diff --git a/app/views/site/key.html.erb b/app/views/site/key.html.erb new file mode 100644 index 000000000..975442426 --- /dev/null +++ b/app/views/site/key.html.erb @@ -0,0 +1,21 @@ +
+

<%= t "site.key.table.heading", :zoom_level => params[:zoom] %>

+ + <% YAML.load_file("#{RAILS_ROOT}/config/key.yml").each do |name,data| %> + <% if params[:layer] == name %> + <% data.each do |entry| %> + <% if params[:zoom].to_i >= entry['min_zoom'] && params[:zoom].to_i <= entry['max_zoom'] %> + + + + + <% end %> + <% end %> + <% end %> + <% end %> +
+ <%= image_tag "key/#{name}/#{entry['image']}" %> + + <%= t "site.key.table.entry.#{entry['name']}" %> +
+
diff --git a/config/key.yml b/config/key.yml new file mode 100644 index 000000000..bd775a18a --- /dev/null +++ b/config/key.yml @@ -0,0 +1,52 @@ +mapnik: + - { min_zoom: 0, max_zoom: 18, name: motorway, image: motorway.png } + - { min_zoom: 0, max_zoom: 11, name: trunk, image: trunk.png } + - { min_zoom: 12, max_zoom: 18, name: trunk, image: trunk12.png } + - { min_zoom: 7, max_zoom: 11, name: primary, image: primary.png } + - { min_zoom: 12, max_zoom: 18, name: primary, image: primary12.png } + - { min_zoom: 9, max_zoom: 11, name: secondary, image: secondary.png } + - { min_zoom: 12, max_zoom: 18, name: secondary, image: secondary12.png } + - { min_zoom: 13, max_zoom: 18, name: unsurfaced, image: unsurfaced.png } + - { min_zoom: 13, max_zoom: 18, name: track, image: track.png } + - { min_zoom: 13, max_zoom: 18, name: byway, image: byway.png } + - { min_zoom: 13, max_zoom: 18, name: bridleway, image: bridleway.png } + - { min_zoom: 13, max_zoom: 18, name: cycleway, image: cycleway.png } + - { min_zoom: 13, max_zoom: 18, name: footway, image: footway.png } + - { min_zoom: 8, max_zoom: 12, name: rail, image: rail.png } + - { min_zoom: 13, max_zoom: 18, name: rail, image: rail13.png } + - { min_zoom: 13, max_zoom: 18, name: subway, image: subway.png } + - { min_zoom: 13, max_zoom: 18, name: tram, image: tram.png } + - { min_zoom: 12, max_zoom: 18, name: cable, image: cable.png } + - { min_zoom: 11, max_zoom: 18, name: runway, image: runway.png } + - { min_zoom: 12, max_zoom: 18, name: apron, image: apron.png } + - { min_zoom: 0, max_zoom: 18, name: admin, image: admin.png } + - { min_zoom: 9, max_zoom: 18, name: forest, image: forest.png } + - { min_zoom: 10, max_zoom: 18, name: wood, image: wood.png } + - { min_zoom: 10, max_zoom: 18, name: golf, image: golf.png } + - { min_zoom: 10, max_zoom: 18, name: park, image: park.png } + - { min_zoom: 8, max_zoom: 18, name: resident, image: resident.png } + - { min_zoom: 10, max_zoom: 18, name: tourist, image: tourist.png } + - { min_zoom: 10, max_zoom: 18, name: common, image: common.png } + - { min_zoom: 10, max_zoom: 18, name: retail, image: retail.png } + - { min_zoom: 10, max_zoom: 18, name: industrial, image: industrial.png } + - { min_zoom: 10, max_zoom: 18, name: commercial, image: commercial.png } + - { min_zoom: 10, max_zoom: 18, name: heathland, image: heathland.png } + - { min_zoom: 8, max_zoom: 18, name: lake, image: lake.png } + - { min_zoom: 10, max_zoom: 18, name: farm, image: farm.png } + - { min_zoom: 10, max_zoom: 18, name: brownfield, image: brownfield.png } + - { min_zoom: 11, max_zoom: 18, name: cemetery, image: cemetery.png } + - { min_zoom: 11, max_zoom: 18, name: allotments, image: allotments.png } + - { min_zoom: 11, max_zoom: 18, name: pitch, image: pitch.png } + - { min_zoom: 11, max_zoom: 18, name: centre, image: centre.png } + - { min_zoom: 11, max_zoom: 18, name: reserve, image: reserve.png } + - { min_zoom: 11, max_zoom: 18, name: military, image: military.png } + - { min_zoom: 12, max_zoom: 18, name: school, image: school.png } + - { min_zoom: 12, max_zoom: 18, name: building, image: building.png } + - { min_zoom: 12, max_zoom: 18, name: station, image: station.png } + - { min_zoom: 12, max_zoom: 18, name: summit, image: summit.png } + - { min_zoom: 12, max_zoom: 18, name: tunnel, image: tunnel.png } + - { min_zoom: 13, max_zoom: 18, name: bridge, image: bridge.png } + - { min_zoom: 15, max_zoom: 18, name: private, image: private.png } + - { min_zoom: 15, max_zoom: 18, name: permissive, image: permissive.png } + - { min_zoom: 15, max_zoom: 18, name: destination, image: destination.png } + - { min_zoom: 12, max_zoom: 18, name: construction, image: construction.png } diff --git a/config/locales/de.yml b/config/locales/de.yml index b2b02fe1f..fb2804bef 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -569,7 +569,7 @@ de: map_key: "Legende" map_key_tooltip: "Legende für die Mapnik-Karte bei diesem Zoom-Level" table: - heading: "Legende für Zoomstufe [[zoom_level]]" + heading: "Legende für Zoomstufe {{zoom_level}}" entry: motorway: "Autobahn" trunk: "Schnellstraße" diff --git a/config/locales/en.yml b/config/locales/en.yml index 4b90f9c7f..ad24fa16c 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -569,7 +569,7 @@ en: map_key: "Map key" map_key_tooltip: "Map key for the mapnik rendering at this zoom level" table: - heading: "Legend for z[[zoom_level]]" + heading: "Legend for z{{zoom_level}}" entry: motorway: "Motorway" trunk: "Trunk road" diff --git a/public/images/mapkey/admin.png b/public/images/key/mapnik/admin.png similarity index 100% rename from public/images/mapkey/admin.png rename to public/images/key/mapnik/admin.png diff --git a/public/images/mapkey/allotments.png b/public/images/key/mapnik/allotments.png similarity index 100% rename from public/images/mapkey/allotments.png rename to public/images/key/mapnik/allotments.png diff --git a/public/images/mapkey/apron.png b/public/images/key/mapnik/apron.png similarity index 100% rename from public/images/mapkey/apron.png rename to public/images/key/mapnik/apron.png diff --git a/public/images/mapkey/bridge.png b/public/images/key/mapnik/bridge.png similarity index 100% rename from public/images/mapkey/bridge.png rename to public/images/key/mapnik/bridge.png diff --git a/public/images/mapkey/bridleway.png b/public/images/key/mapnik/bridleway.png similarity index 100% rename from public/images/mapkey/bridleway.png rename to public/images/key/mapnik/bridleway.png diff --git a/public/images/mapkey/brownfield.png b/public/images/key/mapnik/brownfield.png similarity index 100% rename from public/images/mapkey/brownfield.png rename to public/images/key/mapnik/brownfield.png diff --git a/public/images/mapkey/building.png b/public/images/key/mapnik/building.png similarity index 100% rename from public/images/mapkey/building.png rename to public/images/key/mapnik/building.png diff --git a/public/images/mapkey/byway.png b/public/images/key/mapnik/byway.png similarity index 100% rename from public/images/mapkey/byway.png rename to public/images/key/mapnik/byway.png diff --git a/public/images/mapkey/cable.png b/public/images/key/mapnik/cable.png similarity index 100% rename from public/images/mapkey/cable.png rename to public/images/key/mapnik/cable.png diff --git a/public/images/mapkey/cemetery.png b/public/images/key/mapnik/cemetery.png similarity index 100% rename from public/images/mapkey/cemetery.png rename to public/images/key/mapnik/cemetery.png diff --git a/public/images/mapkey/centre.png b/public/images/key/mapnik/centre.png similarity index 100% rename from public/images/mapkey/centre.png rename to public/images/key/mapnik/centre.png diff --git a/public/images/mapkey/commercial.png b/public/images/key/mapnik/commercial.png similarity index 100% rename from public/images/mapkey/commercial.png rename to public/images/key/mapnik/commercial.png diff --git a/public/images/mapkey/common.png b/public/images/key/mapnik/common.png similarity index 100% rename from public/images/mapkey/common.png rename to public/images/key/mapnik/common.png diff --git a/public/images/mapkey/construction.png b/public/images/key/mapnik/construction.png similarity index 100% rename from public/images/mapkey/construction.png rename to public/images/key/mapnik/construction.png diff --git a/public/images/mapkey/cycleway.png b/public/images/key/mapnik/cycleway.png similarity index 100% rename from public/images/mapkey/cycleway.png rename to public/images/key/mapnik/cycleway.png diff --git a/public/images/mapkey/destination.png b/public/images/key/mapnik/destination.png similarity index 100% rename from public/images/mapkey/destination.png rename to public/images/key/mapnik/destination.png diff --git a/public/images/mapkey/farm.png b/public/images/key/mapnik/farm.png similarity index 100% rename from public/images/mapkey/farm.png rename to public/images/key/mapnik/farm.png diff --git a/public/images/mapkey/footway.png b/public/images/key/mapnik/footway.png similarity index 100% rename from public/images/mapkey/footway.png rename to public/images/key/mapnik/footway.png diff --git a/public/images/mapkey/forest.png b/public/images/key/mapnik/forest.png similarity index 100% rename from public/images/mapkey/forest.png rename to public/images/key/mapnik/forest.png diff --git a/public/images/mapkey/golf.png b/public/images/key/mapnik/golf.png similarity index 100% rename from public/images/mapkey/golf.png rename to public/images/key/mapnik/golf.png diff --git a/public/images/mapkey/heathland.png b/public/images/key/mapnik/heathland.png similarity index 100% rename from public/images/mapkey/heathland.png rename to public/images/key/mapnik/heathland.png diff --git a/public/images/mapkey/industrial.png b/public/images/key/mapnik/industrial.png similarity index 100% rename from public/images/mapkey/industrial.png rename to public/images/key/mapnik/industrial.png diff --git a/public/images/mapkey/lake.png b/public/images/key/mapnik/lake.png similarity index 100% rename from public/images/mapkey/lake.png rename to public/images/key/mapnik/lake.png diff --git a/public/images/mapkey/military.png b/public/images/key/mapnik/military.png similarity index 100% rename from public/images/mapkey/military.png rename to public/images/key/mapnik/military.png diff --git a/public/images/mapkey/motorway.png b/public/images/key/mapnik/motorway.png similarity index 100% rename from public/images/mapkey/motorway.png rename to public/images/key/mapnik/motorway.png diff --git a/public/images/mapkey/park.png b/public/images/key/mapnik/park.png similarity index 100% rename from public/images/mapkey/park.png rename to public/images/key/mapnik/park.png diff --git a/public/images/mapkey/permissive.png b/public/images/key/mapnik/permissive.png similarity index 100% rename from public/images/mapkey/permissive.png rename to public/images/key/mapnik/permissive.png diff --git a/public/images/mapkey/pitch.png b/public/images/key/mapnik/pitch.png similarity index 100% rename from public/images/mapkey/pitch.png rename to public/images/key/mapnik/pitch.png diff --git a/public/images/mapkey/primary.png b/public/images/key/mapnik/primary.png similarity index 100% rename from public/images/mapkey/primary.png rename to public/images/key/mapnik/primary.png diff --git a/public/images/mapkey/primary12.png b/public/images/key/mapnik/primary12.png similarity index 100% rename from public/images/mapkey/primary12.png rename to public/images/key/mapnik/primary12.png diff --git a/public/images/mapkey/private.png b/public/images/key/mapnik/private.png similarity index 100% rename from public/images/mapkey/private.png rename to public/images/key/mapnik/private.png diff --git a/public/images/mapkey/rail.png b/public/images/key/mapnik/rail.png similarity index 100% rename from public/images/mapkey/rail.png rename to public/images/key/mapnik/rail.png diff --git a/public/images/mapkey/rail13.png b/public/images/key/mapnik/rail13.png similarity index 100% rename from public/images/mapkey/rail13.png rename to public/images/key/mapnik/rail13.png diff --git a/public/images/mapkey/reserve.png b/public/images/key/mapnik/reserve.png similarity index 100% rename from public/images/mapkey/reserve.png rename to public/images/key/mapnik/reserve.png diff --git a/public/images/mapkey/resident.png b/public/images/key/mapnik/resident.png similarity index 100% rename from public/images/mapkey/resident.png rename to public/images/key/mapnik/resident.png diff --git a/public/images/mapkey/retail.png b/public/images/key/mapnik/retail.png similarity index 100% rename from public/images/mapkey/retail.png rename to public/images/key/mapnik/retail.png diff --git a/public/images/mapkey/runway.png b/public/images/key/mapnik/runway.png similarity index 100% rename from public/images/mapkey/runway.png rename to public/images/key/mapnik/runway.png diff --git a/public/images/mapkey/school.png b/public/images/key/mapnik/school.png similarity index 100% rename from public/images/mapkey/school.png rename to public/images/key/mapnik/school.png diff --git a/public/images/mapkey/secondary.png b/public/images/key/mapnik/secondary.png similarity index 100% rename from public/images/mapkey/secondary.png rename to public/images/key/mapnik/secondary.png diff --git a/public/images/mapkey/secondary12.png b/public/images/key/mapnik/secondary12.png similarity index 100% rename from public/images/mapkey/secondary12.png rename to public/images/key/mapnik/secondary12.png diff --git a/public/images/mapkey/station.png b/public/images/key/mapnik/station.png similarity index 100% rename from public/images/mapkey/station.png rename to public/images/key/mapnik/station.png diff --git a/public/images/mapkey/subway.png b/public/images/key/mapnik/subway.png similarity index 100% rename from public/images/mapkey/subway.png rename to public/images/key/mapnik/subway.png diff --git a/public/images/mapkey/summit.png b/public/images/key/mapnik/summit.png similarity index 100% rename from public/images/mapkey/summit.png rename to public/images/key/mapnik/summit.png diff --git a/public/images/mapkey/tourist.png b/public/images/key/mapnik/tourist.png similarity index 100% rename from public/images/mapkey/tourist.png rename to public/images/key/mapnik/tourist.png diff --git a/public/images/mapkey/track.png b/public/images/key/mapnik/track.png similarity index 100% rename from public/images/mapkey/track.png rename to public/images/key/mapnik/track.png diff --git a/public/images/mapkey/tram.png b/public/images/key/mapnik/tram.png similarity index 100% rename from public/images/mapkey/tram.png rename to public/images/key/mapnik/tram.png diff --git a/public/images/mapkey/trunk.png b/public/images/key/mapnik/trunk.png similarity index 100% rename from public/images/mapkey/trunk.png rename to public/images/key/mapnik/trunk.png diff --git a/public/images/mapkey/trunk12.png b/public/images/key/mapnik/trunk12.png similarity index 100% rename from public/images/mapkey/trunk12.png rename to public/images/key/mapnik/trunk12.png diff --git a/public/images/mapkey/tunnel.png b/public/images/key/mapnik/tunnel.png similarity index 100% rename from public/images/mapkey/tunnel.png rename to public/images/key/mapnik/tunnel.png diff --git a/public/images/mapkey/unclassified.png b/public/images/key/mapnik/unclassified.png similarity index 100% rename from public/images/mapkey/unclassified.png rename to public/images/key/mapnik/unclassified.png diff --git a/public/images/mapkey/unclassified13.png b/public/images/key/mapnik/unclassified13.png similarity index 100% rename from public/images/mapkey/unclassified13.png rename to public/images/key/mapnik/unclassified13.png diff --git a/public/images/mapkey/unsurfaced.png b/public/images/key/mapnik/unsurfaced.png similarity index 100% rename from public/images/mapkey/unsurfaced.png rename to public/images/key/mapnik/unsurfaced.png diff --git a/public/images/mapkey/wood.png b/public/images/key/mapnik/wood.png similarity index 100% rename from public/images/mapkey/wood.png rename to public/images/key/mapnik/wood.png