Update iD frame parameters if the parent URL changes
[rails.git] / app / views / site / _id.html.erb
1 <% if defined? ID_KEY %>
2   <div id="map">
3     <iframe frameBorder="0" id="id-embed" class="id-embed" allowfullscreen></iframe>
4   </div>
5   <script>
6     var params = {};
7
8     function getParams(params) {
9       var mapParams = OSM.mapParams();
10       if (mapParams.object) {
11         params.id = mapParams.object.type[0] + mapParams.object.id;
12         mapParams = OSM.parseHash(location.hash);
13         if (mapParams.center) {
14           params.map = mapParams.zoom + '/' + mapParams.center.lat + '/' + mapParams.center.lng;
15         }
16       } else {
17         params.map = (mapParams.zoom || 17) + '/' + mapParams.lat + '/' + mapParams.lon;
18       }
19     }
20
21     getParams(params);
22
23 <% if @lat && @lon -%>
24     params.map = '16/<%= @lat %>/<%= @lon %>';
25 <% end -%>
26
27     var hashParams = OSM.params(location.hash.substring(1));
28
29     if (hashParams.background) {
30       params.background = hashParams.background;
31     }
32     if (hashParams.comment) {
33       params.comment = hashParams.comment;
34     }
35     if (hashParams.offset) {
36       params.offset = hashParams.offset;
37     }
38
39 <% if params[:gpx] -%>
40     params.gpx = '<%= trace_data_url(params[:gpx], :format => :xml) %>';
41 <% else -%>
42     if (hashParams.gpx) {
43       params.gpx = hashParams.gpx;
44     }
45 <% end -%>
46
47     var baseUrl = '<%= id_url :locale => params[:locale] %>#';
48
49     $('#id-embed').attr('src', baseUrl + querystring.stringify(params));
50
51     $(window).on('hashchange', function () {
52       getParams(params);
53       $('#id-embed').attr('src', baseUrl + querystring.stringify(params));
54     });
55   </script>
56 <% else %>
57   <script type="text/javascript">alert("<%= t 'site.edit.id_not_configured' %>")</script>
58 <% end %>