X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/1a5f14d338b1e809947232e0dc0a59040f265395..7318ee4b93a5dbcb7fece8553be65f2fb858e68a:/app/views/site/id.html.erb diff --git a/app/views/site/id.html.erb b/app/views/site/id.html.erb index ccdad9557..38f2e0d3d 100644 --- a/app/views/site/id.html.erb +++ b/app/views/site/id.html.erb @@ -20,7 +20,8 @@ var id = iD() .embed(true) - .assetPath("/assets/iD/") <%# Can't use asset_path('iD/') in production. %> + .assetPath("/iD/") <%# Can't use asset_path('iD/') in production. %> + .assetMap(<%= assets("iD").to_json.html_safe %>) .locale("<%= locale %>", "<%= asset_path("iD/locales/#{locale}.json") %>") .preauth({ <% token = @user.access_token(ID_KEY) %> @@ -32,29 +33,18 @@ }); id.map().on('move.embed', parent.$.throttle(250, function() { - var extent = id.map().extent(), - zoom = ~~id.map().zoom(), - center = id.map().center(); + var zoom = ~~id.map().zoom(), + center = id.map().center(), + llz = { lon: center[0], lat: center[1], zoom: zoom }; - parent.updatelinks({ - lon: center[0], - lat: center[1] - }, - zoom, - null, - [[extent[0][1], - extent[0][0]], - [extent[1][1], - extent[1][0]]]); + parent.updateLinks(llz, zoom); - // 0ms timeout to avoid iframe JS context weirdness. + // Manually resolve URL to avoid iframe JS context weirdness. // http://bl.ocks.org/jfirebaugh/5439412 - parent.setTimeout(function() { - var hash = parent.OSM.formatHash({ lon: center[0], lat: center[1], zoom: zoom }); - if (hash !== parent.location.hash) { - parent.location.replace(hash); - } - }, 0); + var hash = parent.OSM.formatHash(llz); + if (hash !== parent.location.hash) { + parent.location.replace(parent.location.href.replace(/(#.*|$)/, hash)); + } })); parent.$("body").on("click", "a.set_position", function (e) { @@ -63,23 +53,13 @@ // 0ms timeout to avoid iframe JS context weirdness. // http://bl.ocks.org/jfirebaugh/5439412 - parent.setTimeout(function() { + setTimeout(function() { id.map().centerZoom( [data.lon, data.lat], Math.max(data.zoom || 15, 13)); }, 0); }); - var maximized = false; - id.on('toggleFullscreen.embed', function() { - if (maximized) { - parent.minimiseMap(); - } else { - parent.maximiseMap(); - } - maximized = !maximized; - }); - d3.select('#id-container') .call(id.ui()); }