When invoking Potlatch on a node/way/relation object we should normally have valid location information in the map parameters, so use any zoom which is there if possible, otherwise fall back to an object type specific default value. Fixes #605.
98 lines
3.3 KiB
Text
98 lines
3.3 KiB
Text
<div id="map">
|
|
<div id="potlatch"><%= raw t 'site.edit.flash_player_required' %></div>
|
|
</div>
|
|
|
|
<%= javascript_include_tag 'swfobject.js' %>
|
|
|
|
<% if defined? POTLATCH2_KEY %>
|
|
<% token = @user.access_token(POTLATCH2_KEY) %>
|
|
<% else%>
|
|
<script type="text/javascript">alert("<%= t 'site.edit.potlatch2_not_configured' %>")</script>
|
|
<% end %>
|
|
|
|
<% locale = select_locale(Potlatch2::LOCALES.keys).to_s %>
|
|
|
|
<script type="text/javascript" defer="defer">
|
|
var changesaved=true;
|
|
|
|
window.onbeforeunload=function() {
|
|
if (!changesaved) {
|
|
return '<%= escape_javascript(t('site.edit.potlatch2_unsaved_changes')) %>';
|
|
}
|
|
}
|
|
|
|
function markChanged(a) { changesaved=a; }
|
|
|
|
function doSWF(lat,lon,zoom) {
|
|
var flashvars = {};
|
|
if (lat) { flashvars.lat = lat; }
|
|
if (lon) { flashvars.lon = lon; }
|
|
flashvars.zoom = zoom;
|
|
flashvars.assets = "<%= asset_path "potlatch2/assets.zip" %>";
|
|
flashvars.font_library = "<%= asset_path "potlatch2/FontLibrary.swf" %>";
|
|
flashvars.locale = "<%= Potlatch2::LOCALES[locale] %>";
|
|
flashvars.locale_paths = "<%= Potlatch2::LOCALES[locale] %>=<%= asset_path("potlatch2/locales/#{Potlatch2::LOCALES[locale]}.swf") %>";
|
|
flashvars.intro_image = "<%= asset_path "help/introduction.jpg" %>";
|
|
flashvars.intro_video = "<%= asset_path "help/introduction.mp4" %>";
|
|
<% if params['gpx'] %>
|
|
flashvars.gpx = '<%= h(params['gpx']) %>';
|
|
<% end %>
|
|
<% if params['tileurl'] %>
|
|
flashvars.tileurl = '<%= h(params['tileurl']) %>';
|
|
<% end %>
|
|
flashvars.api = "<%= request.protocol + request.host_with_port %>/api/<%= API_VERSION %>/";
|
|
flashvars.policy = "<%= request.protocol + request.host_with_port %>/api/crossdomain.xml";
|
|
flashvars.connection = "XML";
|
|
flashvars.show_help = "once";
|
|
flashvars.user_check = "warn";
|
|
<% if token %>
|
|
flashvars.oauth_token = "<%= token.token %>";
|
|
flashvars.oauth_token_secret = "<%= token.secret %>";
|
|
flashvars.oauth_consumer_key = "<%= token.client_application.key %>";
|
|
flashvars.oauth_consumer_secret = "<%= token.client_application.secret %>";
|
|
<% end %>
|
|
flashvars.maximise_function = "maximiseMap";
|
|
flashvars.minimise_function = "minimiseMap";
|
|
flashvars.move_function = "mapMoved";
|
|
|
|
var params = {};
|
|
params.base = "/potlatch2";
|
|
|
|
var attributes = {};
|
|
attributes.id = "potlatch";
|
|
attributes.bgcolor = "#FFFFFF";
|
|
|
|
swfobject.embedSWF("<%= asset_path("potlatch2.swf") %>", "potlatch", "100%", "100%", "10.1.102","<%= asset_path("expressInstall.swf") %>", flashvars, params, attributes);
|
|
// 700,600 for fixed size, 100%,100% for resizable
|
|
|
|
if (lat && lon) {
|
|
updateLinks({ lon: lon, lat: lat }, zoom);
|
|
}
|
|
}
|
|
|
|
var mapParams = OSM.mapParams();
|
|
<% if @lat && @lon -%>
|
|
doSWF(<%= @lat %>, <%= @lon %>, mapParams.zoom || <%= @zoom %>);
|
|
<% else -%>
|
|
doSWF(mapParams.lat, mapParams.lon, mapParams.zoom || 17);
|
|
<% end -%>
|
|
|
|
$("body").on("click", "a.set_position", function (e) {
|
|
e.preventDefault();
|
|
|
|
var data = $(this).data();
|
|
|
|
$("#potlatch").each(function () {
|
|
this.setPosition(data.lat, data.lon, Math.max(data.zoom || 15, 13));
|
|
});
|
|
});
|
|
|
|
var mapMoved = $.throttle(250, function(lon, lat, zoom) {
|
|
updateLinks({ lon: lon, lat: lat }, zoom);
|
|
|
|
var hash = OSM.formatHash({ lon: lon, lat: lat, zoom: zoom });
|
|
if (hash !== location.hash) {
|
|
location.replace(hash);
|
|
}
|
|
});
|
|
</script>
|