]> git.openstreetmap.org Git - rails.git/blobdiff - app/views/user/account.rhtml
Add warnings not to reply to message notifications directly.
[rails.git] / app / views / user / account.rhtml
index 77930d0b0ec02670dceb7cad06c566092dc1d162..53c3553165b015d4c707c18fd8fc8987e5e599e9 100644 (file)
 <h2>User details</h2>
-<table>
-  <tr><td>id</td><td><%= @user.id %></td></tr>
-  <tr><td>email</td><td><%= @user.email %></td></tr>
-  <tr><td>display name</td><td><%= @user.display_name %> (<%= link_to 'change...', :controller => 'user', :action => 'edit' %>)</td></tr>
-  <tr><td>account created</td><td><%= @user.creation_time %> (<%= time_ago_in_words(@user.creation_time) %> ago)</td></tr>
-  <tr><td>user home</td><td>Latitude: <%=@user.home_lat%> Longitude <%=@user.home_lon%>  (<%= link_to 'change...', :controller => 'user', :action => 'edit' %>) </td></tr>
-  <tr><td valign="top">description</td><td><%= simple_format(@user.description) %>  (<%= link_to 'change...', :controller => 'user', :action => 'edit' %>)</td></tr>
+<%= error_messages_for 'user' %>
+<% form_for :user, @user do |f| %>
+<table style="width : 100%">
+  <tr><td>Email</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><%= f.text_field :display_name %></td></tr>
+  <tr><td>Password</td><td><%= f.password_field :pass_crypt, {:value => '', :size => 50, :maxlength => 255} %></td></tr>
+  <tr><td>Confirm Password</td><td><%= f.password_field :pass_crypt_confirmation, {:value => '', :size => 50, :maxlength => 255} %></td></tr>
+
+  <tr><td valign="top">Description</td><td><%= f.text_area :description, :class => "editDescription" %></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: <%= f.text_field :home_lat, :size => 20, :id => "home_lat" %> Longitude <%= f.text_field :home_lon, :size => 20, :id => "home_lon" %></span></td></tr>
+
+  <tr><td></td><td>
+  <p>Update home location when I click on the map? <input type="checkbox" value="1" <% unless @user.home_lat and @user.home_lon %> checked="checked" <% end %> id="updatehome" /> </p>
+  <div id="map" style="border: 1px solid black; position: relative; width : 90%; height : 300px;"></div>
+  </td></tr>
 </table>
+<%= submit_tag 'Save Changes' %>
+<% end %>
 
-<h2>Users in your area</h2>
+<% nearest_str = "" %>
+<% if !@user.home_lat.nil? and !@user.home_lon.nil? %>
+  <% if !@user.nearby.empty? %>
+    <% @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" %>
+    <% end %>
+  <% end %>
+<% end %>
+<script type="text/javascript">
+    var nearest = [], friends = [];
+    <%= nearest_str %>
+</script>
 
-<% if @user.nearby.empty? %>
-There are no users mapping in your area.  Better go out and spread the word about OSM!
+<% if @user.home_lat.nil? or @user.home_lon.nil? %>
+  <% lon =  params['lon'] || '-0.1' %>
+  <% lat =  params['lat'] || '51.5' %>
+  <% zoom =  params['zoom'] || '4' %> 
 <% else %>
+  <% marker = true %>
+  <% mlon = @user.home_lon %> 
+  <% mlat = @user.home_lat %>
+  <% lon =  @user.home_lon %>
+  <% lat =  @user.home_lat %>
+  <% zoom =  '12' %>
+<% end %>
 
-<p>These users are mapping in your area:</p>
-<table>
-<tr>
-<th>Email</th>
-<th>Name</th>
-<th>Contact</th>
-</tr>
-<% @user.nearby(1,1).each do |nearby| %>
-
-<tr>
-<td><%= nearby.email %></td>
-<td><%= nearby.display_name %></td>
-<td>FIXME: send user an email</td>
-</tr>
-<%end%>
-</table>
+<script type="text/javascript" src="/openlayers/OpenLayers.js"></script>
+<%= javascript_include_tag 'map.js' %>
+
+<script type="text/javascript">
+  <!--
+  var marker;
+
+  function init(){
+    var centre = lonLatToMercator(new OpenLayers.LonLat(<%= lon %>, <%= lat %>));
+    var zoom = <%= zoom %>;
+
+    <% if params['scale'] and params['scale'].length > 0 then %>
+    zoom = scaleToZoom(<%= params['scale'].to_f() %>);
+    <% end %>
+
+    var map = createMap("map");
+
+    map.setCenter(centre, zoom);
+
+    <% if marker %>
+    marker = addMarkerToMap(lonLatToMercator(new OpenLayers.LonLat(<%= mlon %>, <%= mlat %>)), null, "Your location");
+    <% end %>
+
+    var near_icon = OpenLayers.Marker.defaultIcon();
+    near_icon.url = OpenLayers.Util.getImagesLocation() + "marker-green.png";;
+    var i = nearest.length;
+    while( i-- ) {
+      var description = 'Nearby mapper: <a href="/user/'+nearest[i].display_name+'">'+nearest[i].display_name+'</a>'
+      var nearmarker = addMarkerToMap(lonLatToMercator(new OpenLayers.LonLat(nearest[i].home_lon, nearest[i].home_lat)), near_icon.clone(), description);
+    }
+
+    map.events.register("click", map, setHome);
+  }        
+
+  function setHome( e ) { 
+    closeMapPopup();
+
+    if (document.getElementById('updatehome').checked) {
+      var merc = map.getLonLatFromViewPortPx(e.xy);
+      var lonlat = mercatorToLonLat(merc);
+
+      document.getElementById('homerow').className = '';
+      document.getElementById('home_lat').value = lonlat.lat;
+      document.getElementById('home_lon').value = lonlat.lon;
+
+      if (marker) {
+        removeMarkerFromMap(marker);
+      }
+
+      marker = addMarkerToMap(merc, null, "Your location");
+    }
+  }
 
-<%end%>
-<br />
-FIXME: OL Map showing the users on
+  window.onload = init;
+// -->
+</script>
 
-<h2>Privacy</h2>
+<h2>Public editing</h2>
 <% if @user.data_public? %>
   All your edits are public.
 <% else %>
-  Currently your edits are ananymous 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.
+  Currently your edits are anonymous and people can't send you messages or see your location. To show what you edited and allow people to contact you through the website, click the button below. <b>You will need to do this if you want to use the online editor after mid-November</b> (<a href="http://wiki.openstreetmap.org/index.php/Disabling_anonymous_edits">find out why</a>). This action cannot be reversed.
   <br /><br />
-  <%= start_form_tag :controller => 'user', :action => 'go_public'%>
-  <%= submit_tag 'Make all my edits public, forever' %>
-  <%= end_form_tag %>
+  <%= button_to "Make all my edits public, forever", :action => :go_public %>
 <% end %>