]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/index.js
Add a close icon to the feature warning panel
[rails.git] / app / assets / javascripts / index.js
index 55f1f8f1e95a60ef680798f58503ca3f095ffde4..55e612f17668f6e3da055b2fdcf003b3a03c9285 100644 (file)
@@ -150,7 +150,8 @@ $(document).ready(function () {
       map.getLayersCode(),
       map._object);
 
-    $.cookie("_osm_location", cookieContent(map), { expires: expiry });
+    $.removeCookie("_osm_location");
+    $.cookie("_osm_location", cookieContent(map), { expires: expiry, path: "/" });
   });
 
   if ($.cookie('_osm_welcome') == 'hide') {
@@ -197,8 +198,9 @@ $(document).ready(function () {
   });
 
   $("a[data-editor=remote]").click(function(e) {
-      remoteEditHandler(map.getBounds());
-      e.preventDefault();
+    var params = OSM.mapParams(this.search);
+    remoteEditHandler(map.getBounds(), params.object);
+    e.preventDefault();
   });
 
   if (OSM.params().edit_help) {
@@ -222,15 +224,20 @@ $(document).ready(function () {
       $("#content").addClass("overlay-sidebar");
       map.invalidateSize({pan: false})
         .panBy([-350, 0], {animate: false});
+      document.title = I18n.t('layouts.project_name.title');
     };
 
     page.load = function() {
+      if (!("autofocus" in document.createElement("input"))) {
+        $("#sidebar .search_form input[name=query]").focus();
+      }
       return map.getState();
     };
 
     page.popstate = function() {
       $("#content").addClass("overlay-sidebar");
       map.invalidateSize({pan: false});
+      document.title = I18n.t('layouts.project_name.title');
     };
 
     page.unload = function() {
@@ -247,14 +254,24 @@ $(document).ready(function () {
 
     page.pushstate = page.popstate = function(path, id) {
       OSM.loadSidebarContent(path, function() {
-        page.load(path, id);
+        addObject(type, id);
       });
     };
 
     page.load = function(path, id) {
-      map.addObject({type: type, id: parseInt(id)});
+      addObject(type, id, true);
     };
 
+    function addObject(type, id, center) {
+      var bounds = map.addObject({type: type, id: parseInt(id)}, function(bounds) {
+        if (!window.location.hash && bounds.isValid()) {
+          OSM.router.moveListenerOff();
+          map.once('moveend', OSM.router.moveListenerOn);
+          if (center || !map.getBounds().contains(bounds)) map.fitBounds(bounds);
+        }
+      });
+    }
+
     page.unload = function() {
       map.removeObject();
     };
@@ -281,7 +298,7 @@ $(document).ready(function () {
   });
 
   if (OSM.preferred_editor == "remote" && document.location.pathname == "/edit") {
-    remoteEditHandler(map.getBounds());
+    remoteEditHandler(map.getBounds(), params.object);
     OSM.router.setCurrentPath("/");
   }