Fix tab breakage and make key update as zoom level changes.
authorTom Hughes <tom@compton.nu>
Sun, 28 Oct 2007 16:46:10 +0000 (16:46 +0000)
committerTom Hughes <tom@compton.nu>
Sun, 28 Oct 2007 16:46:10 +0000 (16:46 +0000)
app/views/site/_key.rhtml
app/views/site/_sidebar.rhtml
app/views/site/index.rhtml

index 54ec829096681301d7ff41242e990d43d14be82c..3208900788dbe37421be3865245132d309137c89 100644 (file)
@@ -5,12 +5,21 @@
 <script type="text/javascript">
 <!--
   function showKey() {
-       var zoomlevel=map.getZoom();
-       if      (zoomlevel<7 ) { var imgname='keymapnik6.png'; }
-       else if (zoomlevel<12) { var imgname='keymapnik'+zoomlevel+'.png'; }
-       else                   { var imgname='keymapnik12.png'; }
+    var zoomlevel = map.getZoom();
+
+    if (zoomlevel<7 )      { var imgname = 'keymapnik6.png'; }
+    else if (zoomlevel<12) { var imgname = 'keymapnik'+zoomlevel+'.png'; }
+    else                   { var imgname = 'keymapnik12.png'; }
+
     updateSidebar("Map key", "<p><img src='images/"+imgname+"' /></p>");
     openSidebar("210px");
   }
+
+  function updateKey() {
+    if (sidebarOpen("Map key")) 
+    {
+      showKey();
+    }
+  }
 // -->
 </script>
index 8cf1ce62c114f5828101147a3902a78999bcc21b..7addbe177a19fe40d100ce7f259480a187fe484f 100644 (file)
 <script type="text/javascript">
 <!--
   function openSidebar() {
-       if (arguments.length) { $("sidebar").style.width = arguments[0]; }
-                        else { $("sidebar").style.width = "30%"; }
+    if (arguments.length) { $("sidebar").style.width = arguments[0]; }
+    else { $("sidebar").style.width = "30%"; }
+
     $("sidebar").style.display = "block";
+
     <%= onopen %>
   }
 
   function closeSidebar() {
     $("sidebar").style.display = "none";
+
     <%= onclose %>
   }
 
     $("sidebar_title").innerHTML = title;
     $("sidebar_content").innerHTML = content;
   }
+
+  function sidebarOpen(title) {
+    return $("sidebar").style.display == "block" &&
+           $("sidebar_title").innerHTML == title;
+  }
 // -->
 </script>
index 625f17a109f62f0de68689338e8a63e9fd8dabfa..5ca8b0339b0d4af168bea33403b64e6a665ee7d5 100644 (file)
@@ -96,6 +96,8 @@
     marker = addMarkerToMap(lonLatToMercator(new OpenLayers.LonLat(<%= mlon %>, <%= mlat %>)));
     <% end %>
 
+    map.events.register("zoomend", map, updateKey);
+
     map.events.register("moveend", map, updateLocation);
     updateLocation();