<html>
<head>
<meta charset='utf-8'>
- <%= stylesheet_link_tag 'iD' %>
+ <%= stylesheet_link_tag 'id' %>
<!--[if !IE || gte IE 9]><!-->
- <%= javascript_include_tag 'iD' %>
+ <%= javascript_include_tag 'id' %>
<!-- <![endif]-->
</head>
<body>
<div id='id-container'></div>
<script>
- if (typeof iD == 'undefined') {
+ if (typeof iD == 'undefined' || !iD.Detect().support) {
document.getElementById('id-container').innerHTML = 'This editor is supported ' +
- 'in Firefox, Chrome, Safari, Opera, and Internet Explorer 9 and above. ' +
+ 'in Firefox, Chrome, Safari, Opera, Edge, and Internet Explorer 11. ' +
'Please upgrade your browser or use Potlatch 2 to edit the map.';
document.getElementById('id-container').className = 'unsupported';
} else {
- <% locale = select_locale(ID::LOCALES).to_s %>
+ <% locale = ID::LOCALES.preferred(preferred_languages).to_s %>
- var id = iD()
+ var id = iD.Context()
.embed(true)
- .assetPath("/assets/iD/") <%# Can't use asset_path('iD/') in production. %>
+ .assetPath("iD/")
+ .assetMap(<%= assets("iD").to_json.html_safe %>)
.locale("<%= locale %>", "<%= asset_path("iD/locales/#{locale}.json") %>")
.preauth({
<% token = @user.access_token(ID_KEY) %>
- url: "<%= request.protocol + request.host_with_port %>",
+ urlroot: "<%= request.protocol + request.host_with_port %>",
oauth_consumer_key: "<%= token.client_application.key %>",
oauth_secret: "<%= token.client_application.secret %>",
oauth_token: "<%= token.token %>",
oauth_token_secret: "<%= token.secret %>"
});
- id.map().on('move.embed', function() {
- var extent = id.map().extent(),
- zoom = ~~id.map().zoom(),
- center = id.map().center();
+ id.map().on('move.embed', parent.$.throttle(250, function() {
+ if (id.inIntro()) return;
+ var zoom = ~~id.map().zoom(),
+ center = id.map().center(),
+ llz = { lon: center[0], lat: center[1], zoom: zoom };
- parent.updatelinks(
- center[0],
- center[1],
- zoom,
- null,
- extent[0][0],
- extent[0][1],
- extent[1][0],
- extent[1][1]);
- });
+ parent.updateLinks(llz, zoom);
+
+ // Manually resolve URL to avoid iframe JS context weirdness.
+ // http://bl.ocks.org/jfirebaugh/5439412
+ 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) {
e.preventDefault();
}, 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());
+ id.ui()(document.getElementById("id-container"));
}
</script>
</body>