Extract OSM.apiUrl
authorJohn Firebaugh <john.firebaugh@gmail.com>
Fri, 5 Oct 2012 02:15:24 +0000 (19:15 -0700)
committerTom Hughes <tom@compton.nu>
Fri, 5 Oct 2012 14:26:54 +0000 (15:26 +0100)
app/assets/javascripts/browse.js
app/assets/javascripts/index.js
app/assets/javascripts/map.js.erb
app/assets/javascripts/osm.js.erb

index 7df6d67d68bd11dd769cfd8c74d3702d4751ea88..e98aa2ed682f2b5aa6b97f783618bffa5f8a4b68 100644 (file)
@@ -42,19 +42,16 @@ $(document).ready(function () {
 
     updatelinks(centre.lon, centre.lat, 16, null, params.minlon, params.minlat, params.maxlon, params.maxlat);
   } else {
-    var url = "/api/" + OSM.API_VERSION + "/" + params.type + "/" + params.id;
-
-    if (params.type != "node") {
-      url += "/full";
-    } else if (!params.visible) {
-      var previous_version = params.version - 1;
-      url += "/" + previous_version;
-    }
-
     $("#object_larger_map").hide();
     $("#object_edit").hide();
 
-    addObjectToMap(url, true, function(extent) {
+    var object = {type: params.type, id: params.id};
+
+    if (!params.visible) {
+      object.version = params.version - 1;
+    }
+
+    addObjectToMap(object, true, function(extent) {
       $("#loading").hide();
       $("#browse_map .geolink").show();
 
index 2216a0352c0ea163d42b26377090654217483b06..75b3fa1a80163dbf2d6a41143d5c1e87d90a5f2e 100644 (file)
@@ -33,13 +33,7 @@ $(document).ready(function () {
   }
 
   if (params.object) {
-    var url = "/api/" + OSM.API_VERSION + "/" + params.object_type + "/" + params.object_id;
-
-    if (params.object_type != "node") {
-      url += "/full";
-    }
-
-    addObjectToMap(url, params.object_zoom);
+    addObjectToMap({type: params.object_type, id: params.object_id}, params.object_zoom);
   }
 
   handleResize();
index fc2f955a8400ebb10b74892506fe6e8c2faf4296..fd5962d4fc56041815cdb5de5b9e21bebc312584 100644 (file)
@@ -106,13 +106,13 @@ function addMarkerToMap(position, icon, description) {
    return marker;
 }
 
-function addObjectToMap(url, zoom, callback) {
+function addObjectToMap(object, zoom, callback) {
    var layer = new OpenLayers.Layer.Vector("Objects", {
       strategies: [ 
           new OpenLayers.Strategy.Fixed()
       ],
       protocol: new OpenLayers.Protocol.HTTP({
-          url: url,
+          url: OSM.apiUrl(object),
           format: new OpenLayers.Format.OSM()
       }),
       style: {
index 3c3378f98b0c558ecc0c2130f97c8f0f3f31cf75..22a1023b41c4b1fbebee423f464f51389a31dc6a 100644 (file)
@@ -8,6 +8,18 @@ OSM = {
   SERVER_URL:       <%= SERVER_URL.to_json %>,
   API_VERSION:      <%= API_VERSION.to_json %>,
 
+  apiUrl: function (object) {
+    var url = "/api/" + OSM.API_VERSION + "/" + object.type + "/" + object.id;
+
+    if (object.type != "node") {
+      url += "/full";
+    } else if (object.version) {
+      url += "/" + object.version;
+    }
+
+    return url;
+  },
+
   mapParams: function (search) {
     var params = {}, mapParams = {}, loc;