X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/2e2f2124728ca755b2db8f83f022eaea24b647f0..434e603cd6ab73ac37b2919c89c09bfbf6e8fe62:/app/views/site/index.html.erb diff --git a/app/views/site/index.html.erb b/app/views/site/index.html.erb index a69a6b4ee..877bc1771 100644 --- a/app/views/site/index.html.erb +++ b/app/views/site/index.html.erb @@ -1,10 +1,16 @@ -<% 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') } %> | -<% end %> + <% content_for :greeting do %> + <%= link_to t("layouts.home"), "#", :class => "set_position", :data => { :lat => @user.home_lat, :lon => @user.home_lon, :zoom => 15 }, :title => t("layouts.home_tooltip") %> | + <% end %> <% end %> -<%= render :partial => 'sidebar', :locals => { :onopen => "resizeMap();", :onclose => "resizeMap();" } %> +<% unless STATUS == :api_offline or STATUS == :database_offline -%> + <% content_for :editmenu do -%> +
  • <%= link_to t("browse.start_rjs.data_layer_name"), { :controller => :browse, :action => :start }, :id => "show_data" %>
  • + <% end -%> +<% end -%> + +<%= render :partial => 'sidebar' %> <%= render :partial => 'key' %> <%= render :partial => 'search' %> @@ -12,22 +18,27 @@

    <%= t 'site.index.js_1' %>

    <%= t 'site.index.js_2' %>

    -

    <%= t 'site.index.js_3' %>

    - -
    + + + +
    - - + + -
    <%= t'site.index.license.license_url' %><%= t'site.index.license.project_url' %><%= t'site.index.license.license_url' %><%= t'site.index.license.project_url' %>
    <%= + <%= t'site.index.license.notice', :license_name => t('site.index.license.license_name'), :project_name => t('site.index.license.project_name') @@ -37,193 +48,256 @@ <% -if params['mlon'] and params['mlat'] - marker = true - mlon = h(params['mlon']) - mlat = h(params['mlat']) +if params[:mlon] and params[:mlat] + marker = true + mlon = params[:mlon].to_f + mlat = params[:mlat].to_f end -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" +if params[:node] or params[:way] or params[:relation] + object = true + object_zoom = true + + if params[:node] + object_type = 'node' + object_id = params[:node].to_i + elsif params[:way] + object_type = 'way' + object_id = params[:way].to_i + elsif params[:relation] + object_type = 'relation' + object_id = params[:relation].to_i + end end # Decide on a lat lon to initialise the map with. Various ways of doing this -if params['lon'] and params['lat'] - lon = h(params['lon']) - lat = h(params['lat']) - zoom = h(params['zoom'] || '5') - layers = h(params['layers']) - -elsif params['mlon'] and params['mlat'] - lon = h(params['mlon']) - lat = h(params['mlat']) - zoom = h(params['zoom'] || '12') - layers = h(params['layers']) - +if params[:bbox] + bbox = true + minlon, minlat, maxlon, maxlat = params[:bbox].split(",").collect { |c| c.to_f } + layers = params[:layers] + box = true if params[:box] == "yes" + object_zoom = false +elsif params[:minlon] and params[:minlat] and params[:maxlon] and params[:maxlat] + bbox = true + minlon = params[:minlon].to_f + minlat = params[:minlat].to_f + maxlon = params[:maxlon].to_f + maxlat = params[:maxlat].to_f + layers = params[:layers] + box = true if params[:box]=="yes" + object_zoom = false +elsif params[:lon] and params[:lat] + lon = params[:lon].to_f + lat = params[:lat].to_f + zoom = params.fetch(:zoom, 5).to_i + layers = params[:layers] + object_zoom = false +elsif params[:mlon] and params[:mlat] + lon = params[:mlon].to_f + lat = params[:mlat].to_f + zoom = params.fetch(:zoom, 12).to_i + layers = 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' + 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']) + unless STATUS == :database_readonly or STATUS == :database_offline + session[:location] = OSM::IPLocation(request.env['REMOTE_ADDR']) unless session[:location] + end + + 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 = params.fetch(:zoom, 5).to_i + end + + layers = params[:layers] end %> -<%= javascript_include_tag '/openlayers/OpenLayers.js' %> -<%= javascript_include_tag '/openlayers/OpenStreetMap.js' %> -<%= javascript_include_tag 'map.js' %> - +<%= render :partial => 'resize' %> -