X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/a1cb0f04d476101116087286ff072d3a137355cb..7c98b41cc89068d049a18f8738276f19cd47095e:/app/views/site/index.html.erb diff --git a/app/views/site/index.html.erb b/app/views/site/index.html.erb index 305df63c0..a61baca81 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 %> @@ -19,10 +19,13 @@
+ +
@@ -64,18 +67,17 @@ 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']) + 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') @@ -112,9 +114,7 @@ else end %> - - - +<%= javascript_include_tag '/openlayers/OpenLayers.js' %> <%= javascript_include_tag '/openlayers/OpenStreetMap.js' %> <%= javascript_include_tag 'openstreetbugs.js' %> <%= javascript_include_tag 'map.js' %> @@ -127,10 +127,9 @@ 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"); @@ -140,28 +139,24 @@ end 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" + map.osbLayer = new OpenLayers.Layer.OpenStreetBugs("Notes", { + serverURL: "/api/0.6/", + iconOpen: new OpenLayers.Icon("<%= image_path "open_note_marker.png" %>", new OpenLayers.Size(22, 22), new OpenLayers.Pixel(-11, -11)), + iconClosed: new OpenLayers.Icon("<%= image_path "closed_noe_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 %> @@ -299,10 +294,50 @@ 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' } %>