]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/edit/id.js.erb
Remove inline javascript from id views
[rails.git] / app / assets / javascripts / edit / id.js.erb
diff --git a/app/assets/javascripts/edit/id.js.erb b/app/assets/javascripts/edit/id.js.erb
new file mode 100644 (file)
index 0000000..bedabb1
--- /dev/null
@@ -0,0 +1,35 @@
+$(document).ready(function () {
+  var id = $("#id-embed");
+
+  if (id.data("key")) {
+    var hashParams = OSM.params(location.hash.substring(1)),
+        mapParams = OSM.mapParams(),
+        params = {};
+
+    if (mapParams.object) {
+      params.id = mapParams.object.type[0] + mapParams.object.id;
+      mapParams = OSM.parseHash(location.hash);
+      if (mapParams.center) {
+        params.map = mapParams.zoom + '/' + mapParams.center.lat + '/' + mapParams.center.lng;
+      }
+    } else if (id.data("lat") && id.data("lon")) {
+      params.map = "16/" + id.data("lat") + "/" + id.data("lon");
+    } else {
+      params.map = (mapParams.zoom || 17) + '/' + mapParams.lat + '/' + mapParams.lon;
+    }
+
+    if (hashParams.background) params.background = hashParams.background;
+    if (hashParams.comment) params.comment = hashParams.comment;
+    if (hashParams.offset) params.offset = hashParams.offset;
+
+    if (id.data("gpx")) {
+      params.gpx = id.data("gpx");
+    } else if (hashParams.gpx) {
+      params.gpx = hashParams.gpx;
+    }
+
+    id.attr("src", id.data("url") + "#" + querystring.stringify(params));
+  } else {
+    alert(I18n.t("site.edit.id_not_configured"));
+  }
+});