Make translated map layer names work
authorTom Hughes <tom@compton.nu>
Fri, 24 May 2013 23:21:19 +0000 (00:21 +0100)
committerTom Hughes <tom@compton.nu>
Fri, 24 May 2013 23:21:19 +0000 (00:21 +0100)
Delay initialising the layers array until the first map is created
so that we can be sure that I18n.locale has been initialised.

app/assets/javascripts/map.js.erb

index ba331f313b4da6167ccaad4fbfa0fba934e895b6..bb1c9a35858f7b45523b25ccc10b1bae3d38d7d0 100644 (file)
@@ -49,41 +49,44 @@ L.extend(L.Bounds.prototype, {
 L.Icon.Default.imagePath = <%= "#{asset_prefix}/images".to_json %>;
 
 var map;
+var layers;
 var objectLayer;
 var objectLoader;
 
-var layers = [
-  {
-    klass: L.OSM.Mapnik,
-    attribution: "",
-    keyid: "mapnik",
-    layerCode: "M",
-    name: I18n.t("javascripts.map.base.standard")
-  },
-  {
-    klass: L.OSM.CycleMap,
-    attribution: "Tiles courtesy of <a href='http://www.opencyclemap.org/' target='_blank'>Andy Allan</a>",
-    keyid: "cyclemap",
-    layerCode: "C",
-    name: I18n.t("javascripts.map.base.cycle_map")
-  },
-  {
-    klass: L.OSM.TransportMap,
-    attribution: "Tiles courtesy of <a href='http://www.opencyclemap.org/' target='_blank'>Andy Allan</a>",
-    keyid: "transportmap",
-    layerCode: "T",
-    name: I18n.t("javascripts.map.base.transport_map")
-  },
-  {
-    klass: L.OSM.MapQuestOpen,
-    attribution: "Tiles courtesy of <a href='http://www.mapquest.com/' target='_blank'>MapQuest</a> <img src='http://developer.mapquest.com/content/osm/mq_logo.png'>",
-    keyid: "mapquest",
-    layerCode: "Q",
-    name: I18n.t("javascripts.map.base.mapquest")
+function createMap(divName, options) {
+  if (!layers) {
+    layers = [
+      {
+        klass: L.OSM.Mapnik,
+        attribution: "",
+        keyid: "mapnik",
+        layerCode: "M",
+        name: I18n.t("javascripts.map.base.standard")
+      },
+      {
+        klass: L.OSM.CycleMap,
+        attribution: "Tiles courtesy of <a href='http://www.opencyclemap.org/' target='_blank'>Andy Allan</a>",
+        keyid: "cyclemap",
+        layerCode: "C",
+        name: I18n.t("javascripts.map.base.cycle_map")
+      },
+      {
+        klass: L.OSM.TransportMap,
+        attribution: "Tiles courtesy of <a href='http://www.opencyclemap.org/' target='_blank'>Andy Allan</a>",
+        keyid: "transportmap",
+        layerCode: "T",
+        name: I18n.t("javascripts.map.base.transport_map")
+      },
+      {
+        klass: L.OSM.MapQuestOpen,
+        attribution: "Tiles courtesy of <a href='http://www.mapquest.com/' target='_blank'>MapQuest</a> <img src='http://developer.mapquest.com/content/osm/mq_logo.png'>",
+        keyid: "mapquest",
+        layerCode: "Q",
+        name: I18n.t("javascripts.map.base.mapquest")
+      }
+    ];
   }
-];
 
-function createMap(divName, options) {
   options = $.extend({zoomControl: true, panZoomControl: true, layerControl: true}, options);
 
   map = L.map(divName, $.extend({}, options, {panControl: false, zoomsliderControl: false, maxZoom: 18}));