]> git.openstreetmap.org Git - rails.git/blobdiff - app/views/user/account.rhtml
Use {{count}} instead of {{(node|way_relation)_count}} since {{count}}
[rails.git] / app / views / user / account.rhtml
index 5014b43afdc14f34cf8cf6edf17b787474cad47e..15a8f6827054cd2d50a4cbf371a578ac10264c26 100644 (file)
-<h2>User details</h2>
+<h2><%= t 'user.account.my settings' %></h2>
 <%= error_messages_for 'user' %>
-<% 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>
-  <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;">
-    <% # This now just used to detect the width/height required for the popup. %>
-    <p id="highlightinfo"></p>
-  </div>
-  </td></tr>
-
-  <tr><td valign="top">Description</td><td><%= text_area :user, :description, :value => @user.description, :class => "editDescription" %></td></tr>
-</table>
-<%= submit_tag 'Save Changes' %>
-<% end %>
-
-<% nearest_str = "" %>
-<% if @user.home_lat and @user.home_lon %>
-    <h2>Users in your area</h2>
-
-    <% if @user.nearby.empty? %>
-    There are no users who admit to mapping in your area.  Better go out and spread the word about OSM!
-    <% else %>
-
-    <p>These users are mapping in your area:</p>
-    <table>
-    <tr>
-    <th>Name</th>
-    <th>Distance</th>
-    <th>Contact</th>
-    </tr>
-    <% @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%>
-    </table>
-
-    <%end%>
-    <br />
-<% end %>
-<script type="text/javascript">
-    var nearest = [], friends = [];
-    <%= nearest_str %>
-</script>
-
-<% if @user.home_lat and @user.home_lon %>
-    <% marker = true %>
-    <% mlon = @user.home_lon %> 
-    <% mlat = @user.home_lat %>
-    <% lon =  @user.home_lon %>
-    <% lat =  @user.home_lat  %>
-    <% zoom =  '12' %>
-<script type="text/javascript">
-  var mlat = <%= mlat %>;
-  var mlon = <%= mlon %>;
-</script>
+<% form_for :user, @user do |f| %>
+<table id="accountForm">
+  <tr><td class="fieldName"><%= t 'user.new.display name' %></td><td><%= f.text_field :display_name %></td></tr>
+  <tr><td class="fieldName"><%= t 'user.new.email address' %></td><td><%= f.text_field :email, {:size => 50, :maxlength => 255} %> <span class="minorNote"><%= t 'user.account.email never displayed publicly' %></span></td></tr>
+  <tr><td class="fieldName" style="padding-bottom:0px;"><%= t 'user.new.password' %></td><td style="padding-bottom:0px;"><%= f.password_field :pass_crypt, {:value => '', :size => 30, :maxlength => 255} %></td></tr>
+  <tr><td class="fieldName"><%= t 'user.new.confirm password' %></td><td><%= f.password_field :pass_crypt_confirmation, {:value => '', :size => 30, :maxlength => 255} %></td></tr>
+
+  <tr>
+  <td class="fieldName" valign="top"><%= t 'user.account.public editing.heading' %></td>
+  <td>
+<% if @user.data_public? %>
+  <%= t 'user.account.public editing.enabled' %> <span class="minorNote">(<a href="<%= t 'user.account.public editing.enabled link' %>" target="_new"><%= t 'user.account.public editing.enabled link text' %></a>)</span>
 <% else %>
-    <% lon =  params['lon'] || '-0.1' %>
-    <% lat =  params['lat'] || '51.5' %>
-    <% zoom =  params['zoom'] || '4' %> 
+  <%= t 'user.account.public editing.disabled' %><span class="minorNote">(<a href="#public"><%= t 'user.account.public editing.disabled link text' %></a>)</span>
 <% end %>
+  </td>
+  </tr>
 
+  <tr><td class="fieldName" valign="top"><%= t 'user.account.profile description' %></td><td><%= f.text_area :description, :rows => '5', :cols => '60' %></td></tr>
 
+  <tr><td class="fieldName" valign="top"><%= t 'user.account.preferred languages' %></td><td><%= f.text_field :languages %></td></tr>
 
-<script type="text/javascript">
-  var lat = <%= lat %>;
-  var lon = <%= lon %>;
-  var zoom = <%= zoom %>;
-  var PI = 3.14159265358979323846;
-
-
-
-  <% if params['scale'] and params['scale'].length > 0 then %>
-  zoom = Math.log(360.0/(( <% print params['scale'].to_f() %> ) * 512.0)) / Math.log(2.0);
-  <% end %>
-  zoom = zoom;
-  lon = lon * 20037508.34 / 180;
-  lat = Math.log(Math.tan( (90 + lat) * PI / 360)) / (PI / 180);
-  lat = lat * 20037508.34 / 180;
-  <% if marker %>
-  mlon = mlon * 20037508.34 / 180;
-  mlat = Math.log(Math.tan( (90 + mlat) * PI / 360)) / (PI / 180);
-  mlat = mlat * 20037508.34 / 180;
-  <%end%>
-
-</script>
-<script type="text/javascript" src="/openlayers/OpenLayers.js"></script>
-
-<script type="text/javascript">
-  <!--
-  var map, layer, markers, marker, popup;
+  <tr id="homerow" <% unless @user.home_lat and @user.home_lon %> class="nohome" <%end%> ><td class="fieldName"><%= t 'user.account.home location' %></td><td><em class="message"><%= t 'user.account.no home location' %></em><span class="location"><%= t 'user.account.latitude' %> <%= f.text_field :home_lat, :size => 20, :id => "home_lat" %><%= t 'user.account.longitude' %><%= f.text_field :home_lon, :size => 20, :id => "home_lon" %></span></td></tr>
 
-  function mercator2lonlat( merc ) {
-    var lon_deg = (merc.lon / 20037508.34) * 180;
-    var lat_deg = (merc.lat / 20037508.34) * 180;
-    var PI = 3.14159265358979323846;
-    lat_deg = 180/PI * (2 * Math.atan(Math.exp(lat_deg * PI / 180)) - PI / 2);
-    return new OpenLayers.LonLat(lon_deg,lat_deg);
-  }
-
-  function lonlat2mercator( ll ) {
-      var lon = ll.lon * 20037508.34 / 180;
-      var lat = Math.log(Math.tan( (90 + ll.lat) * PI / 360)) / (PI / 180);
-      lat = lat * 20037508.34 / 180;
-      return new OpenLayers.LonLat(lon,lat);
-  }
-
-  function init(){
-
-    OpenLayers.Util.onImageLoadError = function() {
-      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.TMS( "Mapnik", "http://tile.openstreetmap.org/", {type:'png', getURL:getTileURL} );
-    map.addLayer(layer);
-    layer = new OpenLayers.Layer.TMS( "Osmarender", "http://dev.openstreetmap.org/~ojw/Tiles/tile.php/", {type:'png', getURL:getTileURL} );
-    map.addLayer(layer);
-
-    //Marker stuff
-
-    markers = new OpenLayers.Layer.Markers("markers");
-    map.addLayer(markers); 
-
-    <% if marker %>
-    marker = new OpenLayers.Marker(new OpenLayers.LonLat(mlon,mlat));
-    marker.events.register("click", "marker", markerOnClick );
-    markers.addMarker(marker);
-    <%end%>
-
-    var near_icon = OpenLayers.Marker.defaultIcon();
-    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.clone() );
-        markers.addMarker( nearmarker );
-        nearmarker.events.register("click", "nearmarker", makeMarkerFunction( i ) );
-    }
-
-    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 ); };
-  }
-
-  function markerOnClick( i ) {
-    var html, position;
-    if( typeof( i ) == 'number'  ) {
-        html = '<p>Nearby mapper: <a href="/user/'+nearest[i].display_name+'">'+nearest[i].display_name+'</a></p>';
-        html += '<p style="text-align:right">(<a href="#" onclick="return closePopup();">close</a>)</p>';
-        position = lonlat2mercator( new OpenLayers.LonLat( nearest[i].home_lon, nearest[i].home_lat ) );
-    } else {
-        html = '<p>Your location (<a href="#" onclick="return closePopup()">close</a>)</p>';
-        position = new OpenLayers.LonLat(mlon,mlat);
-    }
-    var box = document.getElementById( 'highlightinfo' );
-    box.innerHTML = html;
-    closePopup();
-    popup = new OpenLayers.Popup.AnchoredBubble( 'popup', position, new OpenLayers.Size( box.offsetWidth, box.offsetHeight ), html, OpenLayers.Marker.defaultIcon(), true );
-    map.addPopup( popup );
-  }
+  <tr><td></td><td>
+  <p><%= t 'user.account.update home location on click' %> <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:500px; height:400px;"></div>
+  </td></tr>
   
-    function closePopup() {
-        if( popup ) {
-            map.removePopup( popup );
-            delete popup;
-        }
-        return false;
-    }
-
-    function setHome( e ) { 
-        closePopup();
-        if( ! document.getElementById( 'updatehome' ).checked )
-            return;
-        var lonlat = map.getLonLatFromViewPortPx(e.xy)
+  <tr><td></td><td align=right><br/></br><%= submit_tag t('user.account.save changes button') %></td></tr>
+</table>
+<br/>
 
-        var lon_deg = (lonlat.lon / 20037508.34) * 180;
-        var lat_deg = (lonlat.lat / 20037508.34) * 180;
-        var PI = 3.14159265358979323846;
-        lat_deg = 180/PI * (2 * Math.atan(Math.exp(lat_deg * PI / 180)) - PI / 2);
-        var homerow = document.getElementById( 'homerow' );
-        var home_lat = document.getElementById( 'home_lat' );
-        var home_lon = document.getElementById( 'home_lon' );
-        homerow.className = '';
-        home_lat.value = lat_deg;
-        home_lon.value = lon_deg;
-        if( marker ) {
-            markers.removeMarker(marker);
-        }
-        marker = new OpenLayers.Marker(lonlat);
-        markers.addMarker(marker);
-    }
-window.onload = init;
-// -->
-</script>
+<% end %>
 
-<h2>Privacy</h2>
-<% if @user.data_public? %>
-  All your edits are public.
-<% 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.
+<%= render :partial => 'friend_map' %>
+<% unless @user.data_public? %>
+<a name="public"></a>
+<h2>Public editing</h2>
+  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>Since the 0.6 API changeover, only public users can edit map data</b>. (<a href="http://wiki.openstreetmap.org/wiki/Anonymous_edits">find out why</a>).<br />
+  Your email address will not be revealed by becoming public.<br />
+  This action cannot be reversed and all new users are now public by default.<br />
   <br /><br />
-  <% form_tag :controller => 'user', :action => 'go_public' do %>
-  <%= submit_tag 'Make all my edits public, forever' %>
-  <% end %>
+  <%= button_to t('user.account.make all my edits public button'), :action => :go_public %>
 <% end %>
+<br/>
+<br/>
+<%= link_to t('user.account.return to profile'), :controller => 'user', :action => @user.display_name %>
+<br/>
+<br/>