<h2>User details</h2>
<%= error_messages_for 'user' %>
-<%= start_form_tag :controller => 'user', :action => 'edit', :display_name => @user.display_name %>
+<% form_tag :controller => 'user', :action => 'account', :display_name => @user.display_name do %>
<table style="width : 100%">
<tr><td>Name</td><td><%= @user.email %></td></tr>
<tr><td>Mapper since</td><td><%= @user.creation_time %> (<%= time_ago_in_words(@user.creation_time) %> ago)</td></tr>
<tr><td>Display Name</td><td><%= text_field :user, :display_name, :value => @user.display_name %></td></tr>
+ <tr><td>Password</td><td><%= password_field('user', 'pass_crypt',{:value => '', :size => 50, :maxlength => 255}) %></td></tr>
+ <tr><td>Confirm Password</td><td><%= password_field('user', 'pass_crypt_confirmation',{:value => '', :size => 50, :maxlength => 255}) %></td></tr>
<tr id="homerow" <% unless @user.home_lat and @user.home_lon %> class="nohome" <%end%> ><td>Your home</td><td><em class="message">You have not entered your home location.</em><span class="location">Latitude: <%= text_field :user, :home_lat, :value => @user.home_lat, :size => 20, :id => "home_lat" %> Longitude <%= text_field :user, :home_lon, :value => @user.home_lon, :size => 20, :id => "home_lon" %></span> </td></tr>
<tr><td></td><td>
<tr><td valign="top">Description</td><td><%= text_area :user, :description, :value => @user.description, :class => "editDescription" %></td></tr>
</table>
<%= submit_tag 'Save Changes' %>
-<%= end_form_tag %>
+<% end %>
<% nearest_str = "" %>
<% if @user.home_lat and @user.home_lon %>
<table>
<tr>
<th>Name</th>
+ <th>Distance</th>
<th>Contact</th>
</tr>
- <% @user.nearby(1,1).each do |nearby| %>
- <% nearest_str = "nearest.push( { 'display_name' : '#{nearby.display_name}', 'home_lat' : #{nearby.home_lat}, 'home_lon' : #{nearby.home_lon} } )" %>
+ <% @user.nearby.each do |nearby| %>
+ <% nearest_str += "nearest.push( { 'display_name' : '#{nearby.display_name}', 'home_lat' : #{nearby.home_lat}, 'home_lon' : #{nearby.home_lon} } );\n" %>
<tr>
<td><%= link_to nearby.display_name, :controller => 'user', :action => 'view', :display_name => nearby.display_name %></td>
+ <td><%= @user.distance(nearby).round %>km away</td>
<td><%= link_to 'send message', :controller => 'message', :action => 'new', :user_id => nearby.id %></td>
</tr>
<%end%>
<%end%>
</script>
-<script type="text/javascript" src="/javascripts/OpenLayers.js"></script>
+<script type="text/javascript" src="/openlayers/OpenLayers.js"></script>
<script type="text/javascript">
<!--
var map, layer, markers, marker, popup;
-
function mercator2lonlat( merc ) {
var lon_deg = (merc.lon / 20037508.34) * 180;
var lat_deg = (merc.lat / 20037508.34) * 180;
function init(){
OpenLayers.Util.onImageLoadError = function() {
- this.src = "http://www.openstreetmap.org/javascripts/img/404.png";
+ this.src = OpenLayers.Util.getImagesLocation() + "404.png";
}
map = new OpenLayers.Map( "map",
- {maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34), maxZoomLevel:18, maxResolution:156543, units:'meters', projection: "EPSG:41001"} );
- layer = new OpenLayers.Layer.LikeGoogle( "Mapnik", "http://tile.openstreetmap.org/", {type:'png'} );
+ {maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34), maxZoomLevel:18, maxResolution:156543, units:'m', projection: "EPSG:41001"} );
+ layer = new OpenLayers.Layer.TMS( "Mapnik", "http://tile.openstreetmap.org/", {type:'png', getURL:getTileURL} );
map.addLayer(layer);
- layer = new OpenLayers.Layer.LikeGoogle( "Osmarender", "http://dev.openstreetmap.org/~ojw/Tiles/tile.php/", {type:'png'} );
+ layer = new OpenLayers.Layer.TMS( "Osmarender", "http://dev.openstreetmap.org/~ojw/Tiles/tile.php/", {type:'png', getURL:getTileURL} );
map.addLayer(layer);
//Marker stuff
near_icon.url = OpenLayers.Util.getImagesLocation() + "marker-green.png";;
var i = nearest.length;
while( i-- ) {
- var nearmarker = new OpenLayers.Marker( lonlat2mercator( new OpenLayers.LonLat( nearest[i].home_lon, nearest[i].home_lat ) ), near_icon );
+ var nearmarker = new OpenLayers.Marker( lonlat2mercator( new OpenLayers.LonLat( nearest[i].home_lon, nearest[i].home_lat ) ), near_icon.clone() );
markers.addMarker( nearmarker );
nearmarker.events.register("click", "nearmarker", makeMarkerFunction( i ) );
}
- map.addControl(new OpenLayers.Control.LayerSwitcher());
+ map.addControl(new OpenLayers.Control.LayerSwitcher());
map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
map.events.register("click", map, setHome);
}
+ function getTileURL( bounds ) {
+ var res = this.map.getResolution();
+ var x = Math.round ((bounds.left - this.maxExtent.left) / (res * this.tileSize.w));
+ var y = Math.round ((this.maxExtent.top - bounds.top) / (res * this.tileSize.h));
+ var z = this.map.getZoom();
+ return this.url + z + "/" + x + "/" + y + "." + this.type;
+ }
+
function makeMarkerFunction( i ) {
return function() { markerOnClick( i ); };
}
<% else %>
Currently your edits are anonymous and people can't find out where you are located. To show what you edited and allow people to contact you through the website, click the button below. This action cannot be reversed.
<br /><br />
- <%= start_form_tag :controller => 'user', :action => 'go_public'%>
+ <% form_tag :controller => 'user', :action => 'go_public' do %>
<%= submit_tag 'Make all my edits public, forever' %>
- <%= end_form_tag %>
+ <% end %>
<% end %>