X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/acbc99ac16103e1be5c1ef1841794f259e3b6a03..fb4d003ebee8842ace3807bb1a60b9b36d94723e:/app/views/site/index.html.erb diff --git a/app/views/site/index.html.erb b/app/views/site/index.html.erb index 9098c1a88..c0f783499 100644 --- a/app/views/site/index.html.erb +++ b/app/views/site/index.html.erb @@ -1,6 +1,6 @@ <% content_for :greeting do %> <% if @user and !@user.home_lon.nil? and !@user.home_lat.nil? %> - <%= link_to_function t('layouts.home'), "setPosition(#{@user.home_lat}, #{@user.home_lon}, 10)", { :title => t('layouts.home_tooltip') } %> | + <%= link_to_function t('layouts.home'), "setPosition(#{@user.home_lat}, #{@user.home_lon}, 15)", { :title => t('layouts.home_tooltip') } %> | <% end %> <% end %> @@ -17,12 +17,16 @@
- -
+ + + + +
@@ -41,7 +45,7 @@ <% -if params['mlon'] and params['mlat'] +if params['mlon'] and params['mlat'] marker = true mlon = h(params['mlon']) mlat = h(params['mlat']) @@ -63,32 +67,31 @@ if params['node'] or params['way'] or params['relation'] end end +# Decide on a lat lon to initialise the map with. Various ways of doing this if params['minlon'] and params['minlat'] and params['maxlon'] and params['maxlat'] bbox = true minlon = h(params['minlon']) minlat = h(params['minlat']) maxlon = h(params['maxlon']) maxlat = h(params['maxlat']) - box = true if params['box']=="yes" + layers = h(params['layers']) + box = true if params['box']=="yes" object_zoom = false -end - -# Decide on a lat lon to initialise the map with. Various ways of doing this -if params['lon'] and params['lat'] +elsif params['lon'] and params['lat'] lon = h(params['lon']) lat = h(params['lat']) zoom = h(params['zoom'] || '5') layers = h(params['layers']) object_zoom = false elsif params['mlon'] and params['mlat'] - lon = h(params['mlon']) + lon = h(params['mlon']) lat = h(params['mlat']) zoom = h(params['zoom'] || '12') layers = h(params['layers']) object_zoom = false elsif cookies.key?("_osm_location") lon,lat,zoom,layers = cookies["_osm_location"].split("|") -elsif @user and !@user.home_lon.nil? and !@user.home_lat.nil? +elsif @user and !@user.home_lon.nil? and !@user.home_lat.nil? lon = @user.home_lon lat = @user.home_lat zoom = '10' @@ -102,12 +105,12 @@ else maxlon = session[:location][:maxlon] maxlat = session[:location][:maxlat] else - lon = '-0.1' - lat = '51.5' - zoom = h(params['zoom'] || '5') + lon = '-0.1' + lat = '51.5' + zoom = h(params['zoom'] || '5') end - layers = h(params['layers']) + layers = h(params['layers']) end %> @@ -126,41 +129,36 @@ end OpenLayers.Lang.setCode("<%= I18n.locale.to_s %>"); - function createBugCallBack() { - map.osbControl.deactivate(); - document.getElementById("map_OpenLayers_Container").style.cursor = "default"; - } + <% if @user %> + var loginName = "<%= @user.display_name %>" + <% end %> function mapInit(){ map = createMap("map"); - <% unless OSM_STATUS == :api_offline or OSM_STATUS == :database_offline %> + <% unless STATUS == :api_offline or STATUS == :database_offline %> map.dataLayer = new OpenLayers.Layer("<%= I18n.t 'browse.start_rjs.data_layer_name' %>", { "visibility": false }); map.dataLayer.events.register("visibilitychanged", map.dataLayer, toggleData); map.addLayer(map.dataLayer); map.osbLayer = new OpenLayers.Layer.OpenStreetBugs("OpenStreetBugs", { - serverURL : "/api/0.6/", - iconOpen : new OpenLayers.Icon("http://openstreetbugs.schokokeks.org/client/open_bug_marker.png", new OpenLayers.Size(22, 22), new OpenLayers.Pixel(-11, -11)), - iconClosed : new OpenLayers.Icon("http://openstreetbugs.schokokeks.org/client/closed_bug_marker.png", new OpenLayers.Size(22, 22), new OpenLayers.Pixel(-11, -11)), - readonly : false, - setCookie : false, - cookieLifetime : 1000, - cookiePath : "/my/map/", - permalinkURL : "http://www.openstreetmap.org/", - theme : "http://osm.cdauth.de/map/openstreetbugs.css" + serverURL: "/api/0.6/", + iconOpen: new OpenLayers.Icon("<%= image_path "open_bug_marker.png" %>", new OpenLayers.Size(22, 22), new OpenLayers.Pixel(-11, -11)), + iconClosed: new OpenLayers.Icon("<%= image_path "closed_bug_marker.png" %>", new OpenLayers.Size(22, 22), new OpenLayers.Pixel(-11, -11)), + readonly: false, + setCookie: false, + permalinkURL: "http://www.openstreetmap.org/", + theme: "<%= stylesheet_path "openstreetbugs" %>", + visibility: false }); - map.addLayer(map.osbLayer); map.osbControl = new OpenLayers.Control.OpenStreetBugs(map.osbLayer); map.addControl(map.osbControl); - - var lBug = document.getElementById('ReportBug'); - lBug.addEventListener('click',function (e) { - map.osbControl.activate(); document.getElementById("map_OpenLayers_Container").style.cursor = "crosshair"; if (e.stopPropagation) e.stopPropagation(); },false); + $("reportbuganchor").observe("click", addBug); + map.events.register("zoomend", map, allowBugReports); <% end %> <% unless object_zoom %> @@ -261,7 +259,7 @@ end updatelinks(lonlat.lon, lonlat.lat, zoom, layers, extents.left, extents.bottom, extents.right, extents.top, objtype, objid); - expiry.setYear(expiry.getFullYear() + 10); + expiry.setYear(expiry.getFullYear() + 10); document.cookie = "_osm_location=" + lonlat.lon + "|" + lonlat.lat + "|" + zoom + "|" + layers + "; expires=" + expiry.toGMTString(); } @@ -273,7 +271,7 @@ end content.style.width = document.documentElement.clientWidth - content.offsetLeft - rightMargin; content.style.height = document.documentElement.clientHeight - content.offsetTop - bottomMargin; } - + function resizeMap() { var centre = map.getCenter(); var zoom = map.getZoom(); @@ -297,11 +295,51 @@ end resizeMap(); } - + + function remoteEditHandler(event) { + var extent = getMapExtent(); + var loaded = false; + + $("linkloader").observe("load", function () { loaded = true; }); + $("linkloader").src = "http://127.0.0.1:8111/load_and_zoom?left=" + extent.left + "&top=" + extent.top + "&right=" + extent.right + "&bottom=" + extent.bottom; + + setTimeout(function () { + if (!loaded) alert("<%= escape_javascript(t('site.index.remote_failed')) %>"); + }, 1000); + + event.stop(); + } + + function installEditHandler() { + $("remoteanchor").observe("click", remoteEditHandler); + + <% if preferred_editor == "remote" %> + $("editanchor").observe("click", remoteEditHandler); + + <% if params[:action] == "edit" %> + remoteEditHandler(); + <% end %> + <% end %> + } + + function addBug() { + map.osbControl.activate(); + map.osbControl.addTemporaryMarker(map.getCenter()); + } + + function allowBugReports() { + if (map.getZoom() > 11) { + $("reportbuganchor").style.visibility = "visible"; + } else { + $("reportbuganchor").style.visibility = "hidden"; + } + } + mapInit(); - window.onload = handleResize; - window.onresize = handleResize; + Event.observe(window, "load", installEditHandler); + Event.observe(window, "load", handleResize); + Event.observe(window, "resize", handleResize); <% if params['action'] == 'export' %> <%= remote_function :url => { :controller => 'export', :action => 'start' } %>