]> git.openstreetmap.org Git - rails.git/blobdiff - app/views/user/_map.html.erb
Fixup make_friend and remove_friend properly
[rails.git] / app / views / user / _map.html.erb
index 55f23cd0dc8b687b8436f2463ab99de66c57254c..2d886527ccf437c2c2b0e5285af2776b9ef82a1f 100644 (file)
@@ -1,21 +1,19 @@
-<% friends = @user.friends.collect { |f| f.befriendee }.select { |f| !f.home_lat.nil? and !f.home_lon.nil? } %>
-<% nearest = @user.nearby - friends %>
-
-<% if @user.home_lat.nil? or @user.home_lon.nil? %>
-  <% lon = h(params['lon'] || '0') %>
-  <% lat = h(params['lat'] || '20') %>
-  <% zoom = h(params['zoom'] || '1') %> 
-<% else %>
-  <% marker = true %>
-  <% mlon = @user.home_lon %> 
-  <% mlat = @user.home_lat %>
-  <% lon =  @user.home_lon %>
-  <% lat =  @user.home_lat %>
-  <% zoom =  '12' %>
-<% end %>
-
-<%= javascript_include_tag '/openlayers/OpenLayers.js' %>
-<%= javascript_include_tag '/openlayers/OpenStreetMap.js' %>
+<%
+if @user.home_lat.nil? or @user.home_lon.nil?
+  lon = h(params['lon'] || '0') 
+  lat = h(params['lat'] || '20') 
+  zoom = h(params['zoom'] || '1') 
+else 
+  marker = true
+  mlon = @user.home_lon 
+  mlat = @user.home_lat
+  lon =  @user.home_lon 
+  lat =  @user.home_lat 
+  zoom =  '12'
+end
+%>
+
+<%= javascript_include_tag 'openlayers.js' %>
 <%= javascript_include_tag 'map.js' %>
 
 <script type="text/javascript">
 
   function init(){
     var centre = new OpenLayers.LonLat(<%= lon %>, <%= lat %>);
+    <% if params[:scale].to_f > 0 then -%>
+    var zoom = <%= scale_to_zoom params[:scale] %>;
+    <% else -%>
     var zoom = <%= zoom %>;
-
-    <% if params['scale'] and params['scale'].length > 0 then %>
-    zoom = scaleToZoom(<%= params['scale'].to_f() %>);
-    <% end %>
+    <% end -%>
 
     var map = createMap("map");
 
 
     <% if marker %>
     marker = addMarkerToMap(
-      new OpenLayers.LonLat(<%= mlon %>, <%= mlat %>), null,
-      '<%= escape_javascript(render(:partial => "popup", :object => @user, :locals => { :type => "your location" })) %>'
+      new OpenLayers.LonLat(<%= mlon %>, <%= mlat %>)
+      <% if not setting_location %>
+        , null, '<%=escape_javascript(render(:partial => "popup", :object => @user, :locals => { :type => "your location" })) %>'
+      <% end %>
     );
     <% end %>
-
-    var near_icon = OpenLayers.Marker.defaultIcon();
-    near_icon.url = OpenLayers.Util.getImagesLocation() + "marker-green.png";
-    <% nearest.each do |u| %>
-      addMarkerToMap(new OpenLayers.LonLat(
-        <%= u.home_lon %>, <%= u.home_lat %>), near_icon.clone(),
-        '<%= escape_javascript(render(:partial => "popup", :object => u, :locals => { :type => "nearby mapper" })) %>'
-      );
+    
+    <% if setting_location %>
+    map.events.register("click", map, setHome);
     <% end %>
-
-    var friend_icon = OpenLayers.Marker.defaultIcon();
-    friend_icon.url = OpenLayers.Util.getImagesLocation() + "marker-blue.png";
-    <% friends.each do |u| %>
-      addMarkerToMap(new OpenLayers.LonLat(
-        <%= u.home_lon %>, <%= u.home_lat %>), friend_icon.clone(),
-        '<%= escape_javascript(render(:partial => "popup", :object => u, :locals => { :type => "friend" })) %>'
-      );
+    
+    <% if show_other_users %>
+      <% friends = @user.friends.collect { |f| f.befriendee }.select { |f| !f.home_lat.nil? and !f.home_lon.nil? } %>
+      <% nearest = @user.nearby - friends %>
+
+      var near_icon = OpenLayers.Marker.defaultIcon();
+      near_icon.url = OpenLayers.Util.getImageLocation("marker-green.png");
+      <% nearest.each do |u| %>
+        addMarkerToMap(new OpenLayers.LonLat(
+          <%= u.home_lon %>, <%= u.home_lat %>), near_icon.clone(),
+          '<%= escape_javascript(render(:partial => "popup", :object => u, :locals => { :type => "nearby mapper" })) %>'
+        );
+      <% end %>
+
+      var friend_icon = OpenLayers.Marker.defaultIcon();
+      friend_icon.url = OpenLayers.Util.getImageLocation("marker-blue.png");
+      <% friends.each do |u| %>
+        addMarkerToMap(new OpenLayers.LonLat(
+          <%= u.home_lon %>, <%= u.home_lat %>), friend_icon.clone(),
+          '<%= escape_javascript(render(:partial => "popup", :object => u, :locals => { :type => "friend" })) %>'
+        );
+      <% end %>
     <% end %>
-
-    if (document.getElementById('updatehome')) {
-      map.events.register("click", map, setHome);
-    }
   }        
 
+  <% if setting_location %>
   function setHome( e ) { 
     closeMapPopup();
 
         removeMarkerFromMap(marker);
       }
 
-      marker = addMarkerToMap(
-        lonlat, null, 
-        '<%= escape_javascript(render(:partial => "popup", :object => @user, :locals => { :type => "your location" })) %>'
-      );
+      marker = addMarkerToMap(lonlat);
     }
   }
+  <% end %>
 
   window.onload = init;
 // -->