]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/index/browse.js
Move instance creation to the top of the test methods.
[rails.git] / app / assets / javascripts / index / browse.js
index 2fa38bca1b8c24a233f55fce78e89047a577336d..28a830858f2534168629fb1f86385b0d19285a69 100644 (file)
@@ -1,4 +1,4 @@
-function initializeBrowse(map) {
+OSM.initializeBrowse = function (map) {
   var browseBounds;
   var selectedLayer;
   var dataLayer = map.dataLayer;
@@ -26,19 +26,6 @@ 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);
@@ -60,14 +47,17 @@ function initializeBrowse(map) {
     }
   }
 
-  function displayFeatureWarning(count, limit, callback) {
+  function displayFeatureWarning(count, limit, add, cancel) {
     $('#browse_status').html(
       $("<p class='warning'></p>")
         .text(I18n.t("browse.start_rjs.feature_warning", { num_features: count, max_features: limit }))
+        .prepend(
+          $("<span class='icon close'></span>")
+            .click(cancel))
         .append(
           $("<input type='submit'>")
             .val(I18n.t('browse.start_rjs.load_data'))
-            .click(callback)));
+            .click(add)));
   }
 
   var dataLoader;
@@ -104,16 +94,20 @@ function initializeBrowse(map) {
         function addFeatures() {
           $('#browse_status').empty();
           dataLayer.addData(features);
+          browseBounds = bounds;
+        }
+
+        function cancelAddFeatures() {
+          $('#browse_status').empty();
         }
 
         if (features.length < maxFeatures) {
           addFeatures();
         } else {
-          displayFeatureWarning(features.length, maxFeatures, addFeatures);
+          displayFeatureWarning(features.length, maxFeatures, addFeatures, cancelAddFeatures);
         }
 
         dataLoader = null;
-        browseBounds = bounds;
       }
     });
   }
@@ -133,4 +127,4 @@ function initializeBrowse(map) {
     // Stash the currently drawn feature
     selectedLayer = layer;
   }
-}
+};