]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/leaflet.map.js
Merge remote-tracking branch 'upstream/pull/4221'
[rails.git] / app / assets / javascripts / leaflet.map.js
index 83cb73ec59dba6a31303f9918df09f83d4bd37ab..6e61100f2effb01dbfdc7c255a1d51245c1f6741 100644 (file)
@@ -15,13 +15,55 @@ L.OSM.Map = L.Map.extend({
   initialize: function (id, options) {
     L.Map.prototype.initialize.call(this, id, options);
 
   initialize: function (id, options) {
     L.Map.prototype.initialize.call(this, id, options);
 
-    var copyright = I18n.t("javascripts.map.copyright", { copyright_url: "/copyright" });
-    var donate = I18n.t("javascripts.map.donate_link_text", { donate_url: "https://donate.openstreetmap.org" });
-    var terms = I18n.t("javascripts.map.terms", { terms_url: "https://wiki.osmfoundation.org/wiki/Terms_of_Use" });
-    var cyclosm = I18n.t("javascripts.map.cyclosm", { cyclosm_url: "https://www.cyclosm.org", osmfrance_url: "https://openstreetmap.fr/" });
-    var thunderforest = I18n.t("javascripts.map.thunderforest", { thunderforest_url: "https://www.thunderforest.com/" });
-    var memomaps = I18n.t("javascripts.map.opnvkarte", { memomaps_url: "https://memomaps.de/" });
-    var hotosm = I18n.t("javascripts.map.hotosm", { hotosm_url: "https://www.hotosm.org/", osmfrance_url: "https://openstreetmap.fr/" });
+    var copyright_link = $("<a>", {
+      href: "/copyright",
+      text: I18n.t("javascripts.map.openstreetmap_contributors")
+    }).prop("outerHTML");
+    var copyright = I18n.t("javascripts.map.copyright_text", { copyright_link: copyright_link });
+
+    var donate = $("<a>", {
+      "href": "https://supporting.openstreetmap.org",
+      "class": "donate-attr",
+      "text": I18n.t("javascripts.map.make_a_donation")
+    }).prop("outerHTML");
+
+    var terms = $("<a>", {
+      href: "https://wiki.osmfoundation.org/wiki/Terms_of_Use",
+      text: I18n.t("javascripts.map.website_and_api_terms")
+    }).prop("outerHTML");
+
+    var cyclosm_link = $("<a>", {
+      href: "https://www.cyclosm.org",
+      target: "_blank",
+      text: I18n.t("javascripts.map.cyclosm_name")
+    }).prop("outerHTML");
+    var osm_france_link = $("<a>", {
+      href: "https://openstreetmap.fr/",
+      target: "_blank",
+      text: I18n.t("javascripts.map.osm_france")
+    }).prop("outerHTML");
+    var cyclosm = I18n.t("javascripts.map.cyclosm_credit", { cyclosm_link: cyclosm_link, osm_france_link: osm_france_link });
+
+    var thunderforest_link = $("<a>", {
+      href: "https://www.thunderforest.com/",
+      target: "_blank",
+      text: I18n.t("javascripts.map.andy_allan")
+    }).prop("outerHTML");
+    var thunderforest = I18n.t("javascripts.map.thunderforest_credit", { thunderforest_link: thunderforest_link });
+
+    var memomaps_link = $("<a>", {
+      href: "https://memomaps.de/",
+      target: "_blank",
+      text: I18n.t("javascripts.map.memomaps")
+    }).prop("outerHTML");
+    var memomaps = I18n.t("javascripts.map.opnvkarte_credit", { memomaps_link: memomaps_link });
+
+    var hotosm_link = $("<a>", {
+      href: "https://www.hotosm.org/",
+      target: "_blank",
+      text: I18n.t("javascripts.map.hotosm_name")
+    }).prop("outerHTML");
+    var hotosm = I18n.t("javascripts.map.hotosm_credit", { hotosm_link: hotosm_link, osm_france_link: osm_france_link });
 
     this.baseLayers = [];
 
 
     this.baseLayers = [];
 
@@ -255,14 +297,20 @@ L.OSM.Map = L.Map.extend({
       this._objectLoader = {
         abort: function () {}
       };
       this._objectLoader = {
         abort: function () {}
       };
+
       this._object = object;
       this._objectLayer = L.featureGroup().addTo(this);
       this._object = object;
       this._objectLayer = L.featureGroup().addTo(this);
+
       L.circleMarker(object.latLng, haloStyle).addTo(this._objectLayer);
       L.circleMarker(object.latLng, haloStyle).addTo(this._objectLayer);
-      L.marker(object.latLng, {
-        icon: object.icon,
-        opacity: 1,
-        interactive: true
-      }).addTo(this._objectLayer);
+
+      if (object.icon) {
+        L.marker(object.latLng, {
+          icon: object.icon,
+          opacity: 1,
+          interactive: true
+        }).addTo(this._objectLayer);
+      }
+
       if (callback) callback(this._objectLayer.getBounds());
     } else { // element or changeset handled by L.OSM.DataLayer
       var map = this;
       if (callback) callback(this._objectLayer.getBounds());
     } else { // element or changeset handled by L.OSM.DataLayer
       var map = this;