]> git.openstreetmap.org Git - rails.git/blobdiff - app/views/site/_key.html.erb
Get rid of the sidebar's onclose global state
[rails.git] / app / views / site / _key.html.erb
index 22261900d60ad3ba61ce94c8378c6d7a737c9463..b596692ee0408c7bd899d313600cf8947652a29a 100644 (file)
@@ -1,33 +1,28 @@
 <script type="text/javascript">
-  function openMapKey() {
+$(document).ready(function () {
+  var updateMapKey = function () {
+    $("#sidebar_content").load("<%= url_for :action => :key %>", {
+      layer: map.baseLayer.keyid,
+      zoom: map.getZoom()
+    });
+  }
+
+  $("#open_map_key").click(function () {
     updateMapKey();
 
-    openSidebar({ 
-      title: "<%= t('site.key.map_key') %>",
-      onclose: closeMapKey
+    openSidebar({ title: "<%= t('site.key.map_key') %>" });
+
+    $("#sidebar").one("closed", function () {
+      map.events.unregister("zoomend", map, updateMapKey);
+      map.events.unregister("changelayer", map, updateMapKey);
     });
 
     map.events.register("zoomend", map, updateMapKey);
     map.events.register("changelayer", map, updateMapKey);
-  }
-
-  function closeMapKey() {
-    map.events.unregister("zoomend", map, updateMapKey);
-    map.events.unregister("changelayer", map, updateMapKey);
-  }
-
-  function updateMapKey() {
-    var layer = map.baseLayer.name.toLowerCase().replace(/\s+/g, "_");
-    var zoom = map.getZoom();
-
-    <%= remote_function :update => "sidebar_content",
-                        :url => { :action => "key" },
-                        :with => "'layer=' + layer + '&zoom=' + zoom",
-                        :method => :get
-    %>
-  }
+  });
+});
 </script>
 
 <% content_for :left_menu do %>
-  <%= link_to_function t('site.key.map_key'), "openMapKey()", :title => t('site.key.map_key_tooltip') %>
+  <li><%= link_to t("site.key.map_key"), "#", :id => "open_map_key", :title => t("site.key.map_key_tooltip") %></li>
 <% end %>