]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/index/query.js
Add an error handler for overpass AJAX calls
[rails.git] / app / assets / javascripts / index / query.js
index 5ce9969274f41edbbfef81db065dbfa0d85eb39c..f2281d007050096af259f79e73b9ff15f58bc837 100644 (file)
@@ -198,6 +198,13 @@ OSM.Query = function(map) {
             .text(I18n.t("javascripts.query.nothing_found"))
             .appendTo($ul);
         }
+      },
+      error: function(xhr, status, error) {
+        $section.find(".loader").stopTime("loading").hide();
+
+        $("<li>")
+          .text(I18n.t("javascripts.query." + status, { server: OSM.OVERPASS_URL, error: error }))
+          .appendTo($ul);
       }
     }));
   }
@@ -256,17 +263,23 @@ OSM.Query = function(map) {
 
   page.pushstate = page.popstate = function(path) {
     OSM.loadSidebarContent(path, function () {
-      page.load(path);
+      page.load(path, true);
     });
   };
 
-  page.load = function(path) {
-    var params = querystring.parse(path.substring(path.indexOf('?') + 1));
+  page.load = function(path, noCentre) {
+    var params = querystring.parse(path.substring(path.indexOf('?') + 1)),
+      latlng = L.latLng(params.lat, params.lon);
+
+    if (!window.location.hash &&
+        (!noCentre || !map.getBounds().contains(latlng))) {
+      OSM.router.withoutMoveListener(function () {
+        map.setView(latlng, 15);
+      });
+    }
 
     queryOverpass(params.lat, params.lon);
     enableQueryMode();
-
-    return map.getState();
   };
 
   page.unload = function() {