]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/index/browse.js
Consolidate search-related JavaScript
[rails.git] / app / assets / javascripts / index / browse.js
index dcea8e0c0b209ca1528c7765f8efa933bc0a4552..f00d3999f184d73df82b910127dec5d446b1e44b 100644 (file)
@@ -2,7 +2,7 @@
 //= require templates/browse/feature_list
 //= require templates/browse/feature_history
 
-$(document).ready(function () {
+function initializeBrowse(map) {
   var browseBounds;
   var layersById;
   var selectedLayer;
@@ -10,20 +10,20 @@ $(document).ready(function () {
   var areasHidden = false;
   var locationFilter;
 
-  var dataLayer = new L.OSM.DataLayer(null, {
-    styles: {
-      way: {
-        weight: 3,
-        color: "#000000",
-        opacity: 0.4
-      },
-      area: {
-        weight: 3,
-        color: "#ff0000"
-      },
-      node: {
-        color: "#00ff00"
-      }
+  var dataLayer = map.dataLayer;
+
+  dataLayer.setStyle({
+    way: {
+      weight: 3,
+      color: "#000000",
+      opacity: 0.4
+    },
+    area: {
+      weight: 3,
+      color: "#ff0000"
+    },
+    node: {
+      color: "#00ff00"
     }
   });
 
@@ -35,10 +35,6 @@ $(document).ready(function () {
     onSelect(e.layer);
   });
 
-  if (OSM.STATUS != 'api_offline' && OSM.STATUS != 'database_offline') {
-    map.layersControl.addOverlay(dataLayer, I18n.t("browse.start_rjs.data_layer_name"));
-  }
-
   map.on('layeradd', function (e) {
     if (e.layer === dataLayer) {
       $.ajax({ url: "/browse/start", success: function (sidebarHtml) {
@@ -61,10 +57,9 @@ $(document).ready(function () {
 
     locationFilter.on("change", getData);
 
-    $("#sidebar_title").html(I18n.t('browse.start_rjs.data_frame_title'));
     $("#sidebar_content").html(sidebarHtml);
 
-    openSidebar();
+    if (browseObjectList) loadObjectList();
 
     map.on("moveend", updateData);
     updateData();
@@ -109,7 +104,9 @@ $(document).ready(function () {
     getData();
   }
 
-  function toggleAreas() {
+  function toggleAreas(e) {
+    e.preventDefault();
+
     if (areasHidden) {
       $("#browse_hide_areas_box").html(I18n.t('browse.start_rjs.hide_areas'));
       areasHidden = false;
@@ -140,6 +137,8 @@ $(document).ready(function () {
     $("#browse_content").append(div);
   }
 
+  var dataLoader;
+
   function getData() {
     var bounds = locationFilter.isEnabled() ? locationFilter.getBounds() : map.getBounds();
     var size = bounds.getSize();
@@ -151,7 +150,7 @@ $(document).ready(function () {
 
     setStatus(I18n.t('browse.start_rjs.loading'));
 
-    var url = "/api/" + OSM.API_VERSION + "/map?bbox=" + bounds.toBBOX();
+    var url = "/api/" + OSM.API_VERSION + "/map?bbox=" + bounds.toBBoxString();
 
     /*
      * Modern browsers are quite happy showing far more than 100 features in
@@ -168,7 +167,9 @@ $(document).ready(function () {
       }
     @*/
 
-    $.ajax({
+    if (dataLoader) dataLoader.abort();
+
+    dataLoader = $.ajax({
       url: url,
       success: function (xml) {
         clearStatus();
@@ -207,6 +208,8 @@ $(document).ready(function () {
         } else {
           displayFeatureWarning(features.length, maxFeatures, addFeatures);
         }
+
+        dataLoader = null;
       }
     });
   }
@@ -327,4 +330,4 @@ $(document).ready(function () {
     $("#browse_status").html("");
     $("#browse_status").hide();
   }
-});
+}