]> git.openstreetmap.org Git - rails.git/blobdiff - app/views/user/account.rhtml
Adding trace link to logged in user's profile too.
[rails.git] / app / views / user / account.rhtml
index f4af984e92c99bccd01c2e1f3e46dde137d22ce3..e9e8901d8396258a87da1d850bedb9ecb9f4a3e6 100644 (file)
@@ -1,10 +1,12 @@
 <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>
@@ -18,7 +20,7 @@
   <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 ); };
   }
@@ -214,7 +225,7 @@ window.onload = init;
 <% 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 %>