X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/d7afad93958e6accdc1bb7ef055ddc09add22ce1..fa7ba58d5e22040f5e0d6c171bcceb59b58145ad:/app/views/site/index.html.erb diff --git a/app/views/site/index.html.erb b/app/views/site/index.html.erb index 633a7ba3b..aaf24ac1a 100644 --- a/app/views/site/index.html.erb +++ b/app/views/site/index.html.erb @@ -1,341 +1,2 @@ -<% 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}, 15)", { :title => t('layouts.home_tooltip') } %> | -<% end %> -<% end %> - -<%= render :partial => 'sidebar', :locals => { :onopen => "resizeMap();", :onclose => "resizeMap();" } %> -<%= render :partial => 'key' %> -<%= render :partial => 'search' %> - -<noscript> - <div id="noscript"> - <p><%= t 'site.index.js_1' %></p> - <p><%= t 'site.index.js_2' %></p> - <p><%= t 'site.index.js_3' %></p> - </div> -</noscript> - -<div id="map"> -</div> - -<iframe id="linkloader" style="display: none"> -</iframe> - -<div id="permalink"> - <a href="/" id="permalinkanchor"><%= t 'site.index.permalink' %></a><br/> - <a href="/" id="shortlinkanchor"><%= t 'site.index.shortlink' %></a><br/> - <a href="javascript:void()" id="ReportBug">Report a problem</a> -</div> - -<div id="attribution"> - <table width="100%"> - <tr> - <td align="left"><%= t'site.index.license.license_url' %></td> - <td align="right"><%= t'site.index.license.project_url' %></td> - </tr> - <tr> - <td colspan="2" align="center"><%= - t'site.index.license.notice', - :license_name => t('site.index.license.license_name'), - :project_name => t('site.index.license.project_name') - %></td> - </tr> - </table> -</div> - -<% -if params['mlon'] and params['mlat'] - marker = true - mlon = h(params['mlon']) - mlat = h(params['mlat']) -end - -if params['node'] or params['way'] or params['relation'] - object = true - object_zoom = true - - if params['node'] - object_type = 'node' - object_id = h(params['node']) - elsif params['way'] - object_type = 'way' - object_id = h(params['way']) - elsif params['relation'] - object_type = 'relation' - object_id = h(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 -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']) - 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? - lon = @user.home_lon - lat = @user.home_lat - zoom = '10' -else - session[:location] = OSM::IPLocation(request.env['REMOTE_ADDR']) unless session[:location] - - if session[:location] - bbox = true - minlon = session[:location][:minlon] - minlat = session[:location][:minlat] - maxlon = session[:location][:maxlon] - maxlat = session[:location][:maxlat] - else - lon = '-0.1' - lat = '51.5' - zoom = h(params['zoom'] || '5') - end - - layers = h(params['layers']) -end -%> - -<!--Use stock OpenLayers for now, as the OSM one is missing some needed classes--> -<script src="http://www.openlayers.org/api/OpenLayers.js"></script> -<!-- < %= javascript_include_tag '/openlayers/OpenLayers.js' % > --> -<%= javascript_include_tag '/openlayers/OpenStreetMap.js' %> -<%= javascript_include_tag 'openstreetbugs.js' %> -<%= javascript_include_tag 'map.js' %> - -<script type="text/javascript" defer="defer"> - <!-- - var brokenContentSize = $("content").offsetWidth == 0; - var marker; - var map; - - OpenLayers.Lang.setCode("<%= I18n.locale.to_s %>"); - - function createBugCallBack() { - map.osbControl.deactivate(); - document.getElementById("OpenLayers.Map_18_OpenLayers_Container").style.cursor = "default"; - } - - function mapInit(){ - map = createMap("map"); - - <% 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("/images/open_bug_marker.png", new OpenLayers.Size(22, 22), new OpenLayers.Pixel(-11, -11)), - iconClosed : new OpenLayers.Icon("/images/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 : "/stylesheets/openstreetbugs.css" - }); - - 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("OpenLayers.Map_18_OpenLayers_Container").style.cursor = "crosshair" },false); - - - <% end %> - - <% unless object_zoom %> - <% if bbox %> - var bbox = new OpenLayers.Bounds(<%= minlon %>, <%= minlat %>, <%= maxlon %>, <%= maxlat %>); - - setMapExtent(bbox); - - <% if box %> - // IE requires Vector layers be initialised on page load, and not under deferred script conditions - Event.observe(window, 'load', function() { addBoxToMap(bbox) }); - <% end %> - <% else %> - var centre = new OpenLayers.LonLat(<%= lon %>, <%= lat %>); - var zoom = <%= zoom %>; - - <% if params['scale'] and params['scale'].length > 0 then %> - zoom = scaleToZoom(<%= params['scale'].to_f() %>); - <% end %> - - setMapCenter(centre, zoom); - <% end %> - - updateLocation(); - <% end %> - - <% if !layers.nil? and !layers.empty? %> - setMapLayers("<%= layers %>"); - <% end %> - - <% if marker %> - marker = addMarkerToMap(new OpenLayers.LonLat(<%= mlon %>, <%= mlat %>)); - <% end %> - - <% if object %> - var url = "/api/<%= "#{API_VERSION}" %>/<%= object_type %>/<%= object_id %>"; - - <% if object_type != "node" %> - url += "/full"; - <% end %> - - // IE requires Vector layers be initialised on page load, and not under deferred script conditions - Event.observe(window, 'load', function() { addObjectToMap(url, <%= object_zoom %>) }); - <% end %> - - map.events.register("moveend", map, updateLocation); - map.events.register("changelayer", map, updateLocation); - - handleResize(); - } - - function toggleData() { - if (map.dataLayer.visibility) { - <%= remote_function :url => { :controller => 'browse', :action => 'start' } %> - } else if (map.dataLayer.active) { - closeSidebar(); - } - } - - function getPosition() { - return getMapCenter(); - } - - function getZoom() { - return getMapZoom(); - } - - function setPosition(lat, lon, zoom, min_lon, min_lat, max_lon, max_lat) { - var centre = new OpenLayers.LonLat(lon, lat); - - if (min_lon && min_lat && max_lon && max_lat) { - var bbox = new OpenLayers.Bounds(min_lon, min_lat, max_lon, max_lat); - - setMapExtent(bbox); - } else { - setMapCenter(centre, zoom); - } - - if (marker) - removeMarkerFromMap(marker); - - marker = addMarkerToMap(centre, getArrowIcon()); - } - - function updateLocation() { - var lonlat = getMapCenter(); - var zoom = map.getZoom(); - var layers = getMapLayers(); - var extents = getMapExtent(); - var expiry = new Date(); - var objtype; - var objid; - - <% if object %> - objtype = "<%= object_type %>"; - objid = <%= object_id %>; - <% end %> - - updatelinks(lonlat.lon, lonlat.lat, zoom, layers, extents.left, extents.bottom, extents.right, extents.top, objtype, objid); - - expiry.setYear(expiry.getFullYear() + 10); - document.cookie = "_osm_location=" + lonlat.lon + "|" + lonlat.lat + "|" + zoom + "|" + layers + "; expires=" + expiry.toGMTString(); - } - - 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 centre = map.getCenter(); - var zoom = map.getZoom(); - 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"; - - map.setCenter(centre, zoom); - } - - function handleResize() { - if (brokenContentSize) { - resizeContent(); - } - - 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 %> - } - - mapInit(); - - 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' } %> - <% end %> -// --> -</script> +<% set_title + content_for(:content_class) { "overlay-sidebar" } %>