]> git.openstreetmap.org Git - rails.git/blobdiff - app/views/site/index.html.erb
Use prototype based event handling for consistency
[rails.git] / app / views / site / index.html.erb
index f9158463af899c8ca1aa12d7c4a5e535e82a3093..9d883daf90c6b0f84757c6a5150ed646c16d337c 100644 (file)
@@ -270,17 +270,25 @@ end
     resizeMap();
   }
 
-  function josmEditHandler() {
+  function josmEditHandler(event) {
     var extent = getMapExtent();
+    var loaded = false;
 
+    $("linkloader").observe("load", function () { loaded = true; });
     $("linkloader").src = "http://127.0.0.1:8111/load_and_zoom?left=" + extent.left + "&top=" + extent.top + "&right=" + extent.right + "&bottom=" + extent.bottom;
 
-    return false;
+    setTimeout(function () {
+      if (!loaded) alert("<%= t('site.index.josm_failed') %>");
+    }, 1000);
+
+    event.stop();
   }
 
   function installEditHandler() {
+    $("josmanchor").observe("click", josmEditHandler);
+
     <% if preferred_editor == "josm" %>
-      $("editanchor").onclick =josmEditHandler;
+      $("editanchor").observe("click", josmEditHandler);
 
       <% if params[:action] == "edit" %>
         josmEditHandler();
@@ -290,12 +298,9 @@ end
 
   mapInit();
 
-  window.onload = handleResize;
-  window.onresize = handleResize;
-
-  Event.observe(window, 'load', installEditHandler);
-  Event.observe(window, 'load', handleResize);
-  Event.observe(window, 'resize', handleResize);
+  Event.observe(window, "load", installEditHandler);
+  Event.observe(window, "load", handleResize);
+  Event.observe(window, "resize", handleResize);
 
   <% if params['action'] == 'export' %>
   <%= remote_function :url => { :controller => 'export', :action => 'start' } %>