Update iD frame parameters if the parent URL changes

Fixes #1468
This commit is contained in:
Tom Hughes 2017-02-27 13:23:27 +00:00
parent b23bb317c6
commit a6fa8cc273

View file

@ -5,21 +5,25 @@
<script> <script>
var params = {}; var params = {};
var mapParams = OSM.mapParams(); function getParams(params) {
if (mapParams.object) { var mapParams = OSM.mapParams();
params.id = mapParams.object.type[0] + mapParams.object.id; if (mapParams.object) {
mapParams = OSM.parseHash(location.hash); params.id = mapParams.object.type[0] + mapParams.object.id;
if (mapParams.center) { mapParams = OSM.parseHash(location.hash);
params.map = mapParams.zoom + '/' + mapParams.center.lat + '/' + mapParams.center.lng; if (mapParams.center) {
params.map = mapParams.zoom + '/' + mapParams.center.lat + '/' + mapParams.center.lng;
}
} else {
params.map = (mapParams.zoom || 17) + '/' + mapParams.lat + '/' + mapParams.lon;
} }
} else {
<% if @lat && @lon -%>
params.map = '16/<%= @lat %>/<%= @lon %>';
<% else -%>
params.map = (mapParams.zoom || 17) + '/' + mapParams.lat + '/' + mapParams.lon;
<% end -%>
} }
getParams(params);
<% if @lat && @lon -%>
params.map = '16/<%= @lat %>/<%= @lon %>';
<% end -%>
var hashParams = OSM.params(location.hash.substring(1)); var hashParams = OSM.params(location.hash.substring(1));
if (hashParams.background) { if (hashParams.background) {
@ -40,7 +44,14 @@
} }
<% end -%> <% end -%>
$('#id-embed').attr('src', '<%= id_url :locale => params[:locale] %>#' + querystring.stringify(params)); var baseUrl = '<%= id_url :locale => params[:locale] %>#';
$('#id-embed').attr('src', baseUrl + querystring.stringify(params));
$(window).on('hashchange', function () {
getParams(params);
$('#id-embed').attr('src', baseUrl + querystring.stringify(params));
});
</script> </script>
<% else %> <% else %>
<script type="text/javascript">alert("<%= t 'site.edit.id_not_configured' %>")</script> <script type="text/javascript">alert("<%= t 'site.edit.id_not_configured' %>")</script>