]> git.openstreetmap.org Git - rails.git/blobdiff - app/views/site/id.html.erb
Update iD frame parameters if the parent URL changes
[rails.git] / app / views / site / id.html.erb
index 1b4cdf1bbb778f3bd6a76d27d543ed452c8ca1d9..d1ac6b02f8342ae20a920e605d749b85349fd997 100644 (file)
@@ -2,29 +2,30 @@
 <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 %>",
       });
 
     id.map().on('move.embed', parent.$.throttle(250, function() {
-      var extent = id.map().extent(),
-          zoom = ~~id.map().zoom(),
-          center = id.map().center();
+      if (id.inIntro()) return;
+      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);
 
       // Manually resolve URL to avoid iframe JS context weirdness.
       // http://bl.ocks.org/jfirebaugh/5439412
-      var hash = parent.OSM.formatHash({ lon: center[0], lat: center[1], zoom: zoom });
+      var hash = parent.OSM.formatHash(llz);
       if (hash !== parent.location.hash) {
         parent.location.replace(parent.location.href.replace(/(#.*|$)/, hash));
       }
       }, 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>