]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/index/browse.js
Display the size warning when the data layer is disabled
[rails.git] / app / assets / javascripts / index / browse.js
index 752c84fecee841505b14bc402ce324c9f5cde7d6..2fa38bca1b8c24a233f55fce78e89047a577336d 100644 (file)
@@ -26,6 +26,19 @@ function initializeBrowse(map) {
     onSelect(e.layer);
   });
 
+  dataLayer.on('statechange', function (e) {
+    if (e.checked) {
+      if (e.disabled) {
+        var size = map.getBounds().getSize();
+        $('#browse_status').html(
+          $("<p class='warning'></p>")
+            .text(I18n.t("browse.start_rjs.unable_to_load_size", { max_bbox_size: OSM.MAX_REQUEST_AREA, bbox_size: size.toFixed(2) })));
+      } else {
+        $('#browse_status').empty();
+      }
+    }
+  });
+
   map.on('layeradd', function (e) {
     if (e.layer === dataLayer) {
       map.on("moveend", updateData);
@@ -42,14 +55,15 @@ function initializeBrowse(map) {
 
   function updateData() {
     var bounds = map.getBounds();
-    getData(!browseBounds || !browseBounds.contains(bounds));
-    browseBounds = bounds;
+    if (!browseBounds || !browseBounds.contains(bounds)) {
+      getData();
+    }
   }
 
   function displayFeatureWarning(count, limit, callback) {
     $('#browse_status').html(
       $("<p class='warning'></p>")
-        .text(I18n.t("browse.start_rjs.loaded_an_area_with_num_features", { num_features: count, max_features: limit }))
+        .text(I18n.t("browse.start_rjs.feature_warning", { num_features: count, max_features: limit }))
         .append(
           $("<input type='submit'>")
             .val(I18n.t('browse.start_rjs.load_data'))
@@ -58,19 +72,8 @@ function initializeBrowse(map) {
 
   var dataLoader;
 
-  function getData(inPrevious) {
+  function getData() {
     var bounds = map.getBounds();
-    var size = bounds.getSize();
-
-    if (size > OSM.MAX_REQUEST_AREA) {
-      $('#browse_status').html(
-        $("<p class='warning'></p>")
-          .text(I18n.t("browse.start_rjs.unable_to_load_size", { max_bbox_size: OSM.MAX_REQUEST_AREA, bbox_size: size.toFixed(2) })));
-      return;
-    }
-
-    if (inPrevious) return;
-
     var url = "/api/" + OSM.API_VERSION + "/map?bbox=" + bounds.toBBoxString();
 
     /*
@@ -110,6 +113,7 @@ function initializeBrowse(map) {
         }
 
         dataLoader = null;
+        browseBounds = bounds;
       }
     });
   }
@@ -124,7 +128,7 @@ function initializeBrowse(map) {
     layer.originalStyle = layer.options;
     layer.setStyle({color: '#0000ff', weight: 8});
 
-    OSM.route('/browse/' + layer.feature.type + '/' + layer.feature.id);
+    OSM.router.route('/' + layer.feature.type + '/' + layer.feature.id);
 
     // Stash the currently drawn feature
     selectedLayer = layer;