]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/diary_entry.js
iD: listen to manual hashchanges from iframe parent
[rails.git] / app / assets / javascripts / diary_entry.js
index 7dc988de79133744b17355a9ef88d84d4b392dd6..625d43a5228f0b07a391f988a43cae3327364e67 100644 (file)
@@ -1,33 +1,43 @@
-var marker;
+$(document).ready(function () {
+  var marker, map;
 
-function setLocation( e ) {
-  closeMapPopup();
+  function setLocation(e) {
+    $("#latitude").val(e.latlng.lat);
+    $("#longitude").val(e.latlng.lng);
 
-  var lonlat = getEventPosition(e);
+    if (marker) {
+      map.removeLayer(marker);
+    }
 
-  $("#latitude").val(lonlat.lat);
-  $("#longitude").val(lonlat.lon);
-
-  if (marker) {
-    removeMarkerFromMap(marker);
+    marker = L.marker(e.latlng, { icon: OSM.getUserIcon() }).addTo(map)
+      .bindPopup(I18n.t("diary_entries.edit.marker_text"));
   }
 
-  marker = addMarkerToMap(lonlat, null, I18n.t('diary_entry.edit.marker_text'));
-}
+  $("#usemap").click(function (e) {
+    e.preventDefault();
 
-function openMap() {
-  $("#map").show();
-  $("#usemap").hide();
+    $("#map").show();
+    $("#usemap").hide();
 
-  var params = $("#map").data();
-  var centre = new OpenLayers.LonLat(params.lon, params.lat);
-  var map = createMap("map");
+    var params = $("#map").data();
+    var centre = [params.lat, params.lon];
+    var position = $("html").attr("dir") === "rtl" ? "topleft" : "topright";
 
-  setMapCenter(centre, params.zoom);
+    map = L.map("map", {
+      attributionControl: false,
+      zoomControl: false
+    }).addLayer(new L.OSM.Mapnik());
 
-  if ($("#latitude").val() && $("#longitude").val()) {
-    marker = addMarkerToMap(centre, null, I18n.t('diary_entry.edit.marker_text'));
-  }
+    L.OSM.zoom({ position: position })
+      .addTo(map);
+
+    map.setView(centre, params.zoom);
+
+    if ($("#latitude").val() && $("#longitude").val()) {
+      marker = L.marker(centre, { icon: OSM.getUserIcon() }).addTo(map)
+        .bindPopup(I18n.t("diary_entries.edit.marker_text"));
+    }
 
-  map.events.register("click", map, setLocation);
-}
+    map.on("click", setLocation);
+  });
+});