openstreetmap-website/app/views/site/edit.rhtml
Tom Hughes a03c584a98 Resize the map div when the page load is complete (via onload) in case the
page layout has changed since the initial sizing by the deferred script.
2008-03-07 00:26:57 +00:00

112 lines
3.9 KiB
Text

<% if API_STATUS == :offline %>
<p>The OpenStreetMap database is currently offline while
essential database maintenance work is carried out.
</p>
<% elsif API_STATUS == :readonly %>
<p>The OpenStreetMap database is currently in read-only mode while
essential database maintenance work is carried out.
</p>
<% elsif !@user.data_public? %>
<p>You haven't set your edits to be public.</p>
<p>You can't use the online editor unless you do so. You can set your edits as public from your
<%= link_to 'user page', {:controller => 'user', :action => 'account', :display_name => @user.display_name}%>.</p>
<p>(<a href="http://wiki.openstreetmap.org/index.php/Disabling_anonymous_edits">Find out why this is the case.</a>)</p>
<% else %>
<% content_for :greeting do %>
<% if @user and !@user.home_lon.nil? and !@user.home_lat.nil? %>
<%= link_to_function 'home', "setPosition(#{@user.home_lat}, #{@user.home_lon}, 10)" %> |
<% end %>
<% end %>
<%= render :partial => 'sidebar', :locals => { :onopen => "resizeMap();", :onclose => "resizeMap();" } %>
<%= render :partial => 'search' %>
<% session[:token] = @user.tokens.create.token unless session[:token] %>
<% if params['mlon'] and params['mlat'] %>
<% lon = h(params['mlon']) %>
<% lat = h(params['mlat']) %>
<% zoom = h(params['zoom'] || '12') %>
<% elsif @user and params['lon'].nil? and params['lat'].nil? %>
<% lon = @user.home_lon %>
<% lat = @user.home_lat %>
<% zoom = '12' %>
<%else%>
<% lon = h(params['lon'] || '-0.1') %>
<% lat = h(params['lat'] || '51.5') %>
<% zoom = h(params['zoom'] || '12') %>
<% end %>
<div id="map">You need a Flash player to use Potlatch, the
OpenStreetMap Flash editor. You can <a href="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">download Flash Player from Adobe.com</a>.
<a href="http://wiki.openstreetmap.org/index.php/Editing">Several other options</a> are also available
for editing OpenStreetMap.
</div>
<%= javascript_include_tag 'swfobject.js' %>
<script type="text/javascript" defer="defer">
var brokenContentSize = $("content").offsetWidth == 0;
var fo = new SWFObject("/potlatch/potlatch.swf?d="+Math.round(Math.random()*1000), "potlatch", "100%", "100%", "6", "#FFFFFF");
// 700,600 for fixed size, 100%,100% for resizable
var changesaved=true;
var winie=false; if (document.all && window.print) { winie=true; }
window.onbeforeunload=function() {
if (!changesaved && !winie) {
return "You have unsaved changes. (To save in Potlatch, you should deselect the current way or point.)";
}
}
function doSWF(lat,lon,sc) {
if (sc < 11) sc = 11;
fo.addVariable('lat',lat);
fo.addVariable('long',lon);
fo.addVariable('scale',sc);
fo.addVariable('token','<%= session[:token] %>');
<% if params['gpx'] %>
fo.addVariable('gpx','<%= h(params['gpx']) + "/data.xml" %>');
<% end %>
fo.write("map");
}
doSWF(<%= lat %>,<%= lon %>,<%= zoom %>);
function setPosition(lat, lon, zoom) {
doSWF(lat, lon, zoom);
}
function resizeContent() {
var content = $("content");
var rightMargin = parseInt(getStyle(content, "right"));
var bottomMargin = parseInt(getStyle(content, "bottom"));
content.style.width = document.documentElement.clientWidth - content.offsetLeft - rightMargin;
content.style.height = document.documentElement.clientHeight - content.offsetTop - bottomMargin;
}
function resizeMap() {
var sidebar_width = $("sidebar").offsetWidth;
if (sidebar_width > 0) {
sidebar_width = sidebar_width + 5
}
$("map").style.left = (sidebar_width) + "px";
$("map").style.width = ($("content").offsetWidth - sidebar_width) + "px";
$("map").style.height = ($("content").offsetHeight - 2) + "px";
}
function handleResize() {
if (brokenContentSize) {
resizeContent();
}
resizeMap();
}
handleResize();
window.onload = handleResize;
window.onresize = handleResize;
</script>
<% end %>