- map.attributionControl.setPrefix('');
-
- layers = [{
- layer: new L.OSM.Mapnik({
- attribution: ''
- }),
- keyid: "mapnik",
- layerCode: "M",
- name: I18n.t("javascripts.map.base.standard")
- }, {
- layer: new 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")
- }, {
- layer: new 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")
- }, {
- layer: new 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")
- }];
-
- layers[0].layer.addTo(map);
-
- $("#map").on("resized", function () {
- map.invalidateSize();
+ OSM.loadSidebarContent = function (path, callback) {
+ var content_path = path;
+
+ map.setSidebarOverlaid(false);
+
+ clearTimeout(loaderTimeout);
+
+ loaderTimeout = setTimeout(function () {
+ $("#sidebar_loader").show();
+ }, 200);
+
+ // IE<10 doesn't respect Vary: X-Requested-With header, so
+ // prevent caching the XHR response as a full-page URL.
+ if (content_path.indexOf("?") >= 0) {
+ content_path += "&xhr=1";
+ } else {
+ content_path += "?xhr=1";
+ }
+
+ $("#sidebar_content")
+ .empty();
+
+ $.ajax({
+ url: content_path,
+ dataType: "html",
+ complete: function (xhr) {
+ clearTimeout(loaderTimeout);
+ $("#flash").empty();
+ $("#sidebar_loader").hide();
+
+ var content = $(xhr.responseText);
+
+ if (xhr.getResponseHeader("X-Page-Title")) {
+ var title = xhr.getResponseHeader("X-Page-Title");
+ document.title = decodeURIComponent(title);
+ }
+
+ $("head")
+ .find("link[type=\"application/atom+xml\"]")
+ .remove();
+
+ $("head")
+ .append(content.filter("link[type=\"application/atom+xml\"]"));
+
+ $("#sidebar_content").html(content.not("link[type=\"application/atom+xml\"]"));
+
+ if (callback) {
+ callback();
+ }
+ }
+ });
+ };
+
+ var params = OSM.mapParams();
+
+ map.attributionControl.setPrefix("");
+
+ map.updateLayers(params.layers);
+
+ map.on("baselayerchange", function (e) {
+ if (map.getZoom() > e.layer.options.maxZoom) {
+ map.setView(map.getCenter(), e.layer.options.maxZoom, { reset: true });
+ }