]> git.openstreetmap.org Git - rails.git/commitdiff
Rework the user details screen to be less crap... Highlights include:
authorTom Hughes <tom@compton.nu>
Sat, 27 Feb 2010 18:11:04 +0000 (18:11 +0000)
committerTom Hughes <tom@compton.nu>
Sat, 27 Feb 2010 18:11:04 +0000 (18:11 +0000)
  - Map is smaller and placed to the side with lists of friends
    and nearby users (now excluding friends) beside it.

  - Map includes friends as well as nearby users.

  - Friend and nearby user lists include photos and links to
    friend/unfriend as appropriate.

  - OAuth settings link moved up with all the other links in the
    main navigation bar.

The addition of friends to the map also carries through to the user
settings page.

app/controllers/user_controller.rb
app/views/user/_contact.html.erb [new file with mode: 0644]
app/views/user/_map.html.erb [moved from app/views/user/_friend_map.html.erb with 58% similarity]
app/views/user/account.html.erb
app/views/user/view.html.erb
config/locales/en.yml
public/images/anon_large.png [new file with mode: 0644]
public/images/anon_small.png [new file with mode: 0644]
public/stylesheets/common.css

index c181da305862f81bdd721fb9098d154f98e46b90..5b6222a98d91f25c02ce429f09d4732ddc8dc610 100644 (file)
@@ -287,7 +287,11 @@ class UserController < ApplicationController
         flash[:warning] = t 'user.make_friend.already_a_friend', :name => name
       end
 
-      redirect_to :controller => 'user', :action => 'view'
+      if params[:referer]
+        redirect_to params[:referer]
+      else
+        redirect_to :controller => 'user', :action => 'view'
+      end
     end
   end
 
@@ -302,7 +306,11 @@ class UserController < ApplicationController
         flash[:error] = t 'user.remove_friend.not_a_friend', :name => friend.display_name
       end
 
-      redirect_to :controller => 'user', :action => 'view'
+      if params[:referer]
+        redirect_to params[:referer]
+      else
+        redirect_to :controller => 'user', :action => 'view'
+      end
     end
   end
 
diff --git a/app/views/user/_contact.html.erb b/app/views/user/_contact.html.erb
new file mode 100644 (file)
index 0000000..be1c241
--- /dev/null
@@ -0,0 +1,31 @@
+<tr>
+  <td rowspan="2">
+    <% if contact.image %>
+      <%= image_tag url_for_file_column(contact, "image"), :class => "user_thumbnail" %>
+    <% else %>
+      <%= image_tag "anon_small.png" %>
+    <% end %>
+  </td>
+  <td>
+    <%= link_to h(contact.display_name), :controller => 'user', :action => 'view',  :display_name => contact.display_name %>
+    <% if contact.home_lon and contact.home_lat %>
+      <% distance = @this_user.distance(contact) %>
+      <% if distance < 1 %>
+        (<%= t 'user.view.m away', :count => (distance * 1000).round %>)
+      <% else %>
+        (<%= t 'user.view.km away', :count => distance.round %>)
+      <% end %>
+    <% end %>
+  </td>
+</tr>
+<tr>
+  <td>
+    <%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :display_name => contact.display_name %>
+    |
+    <% if @user.is_friends_with?(contact) %>
+      <%= link_to t('user.view.remove as friend'), :controller => 'user', :action => 'remove_friend', :display_name => contact.display_name, :referer => request.request_uri %>
+    <% else %>
+      <%= link_to t('user.view.add as friend'), :controller => 'user', :action => 'make_friend', :display_name => contact.display_name, :referer => request.request_uri %>
+    <% end %>
+  </td>
+</tr>
similarity index 58%
rename from app/views/user/_friend_map.html.erb
rename to app/views/user/_map.html.erb
index a73bb53b8250a5bad816f6e624d52b8bea8e3520..17f4ed3445d59ea34da81c5e8415015ae66b885e 100644 (file)
@@ -1,14 +1,23 @@
-<% 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' : '#{escape_javascript(nearby.display_name)}', 'home_lat' : #{nearby.home_lat}, 'home_lon' : #{nearby.home_lon} } );\n" %>
+<script type="text/javascript">
+  var nearest = [], friends = [];
+  <% friends = @user.friends.collect { |f| f.befriendee } %>
+  <% friends.each do |friend| %>
+    <% if !friend.home_lat.nil? and !friend.home_lon.nil? %>
+      friends.push({
+        display_name : "<%= escape_javascript(friend.display_name) %>",
+        home_lat : <%= friend.home_lat %>,
+        home_lon : <%= friend.home_lon %>
+      });
     <% end %>
   <% end %>
-<% end %>
-<script type="text/javascript">
-    var nearest = [], friends = [];
-    <%= nearest_str %>
+  <% nearest = @user.nearby - friends %>
+  <% nearest.each do |nearby| %>
+    nearest.push({
+      display_name : "<%= escape_javascript(nearby.display_name) %>",
+      home_lat : <%= nearby.home_lat %>,
+      home_lon : <%= nearby.home_lon %>
+    });
+  <% end %>
 </script>
 
 <% if @user.home_lat.nil? or @user.home_lon.nil? %>
     setMapCenter(centre, zoom);
 
     <% if marker %>
-    marker = addMarkerToMap(new OpenLayers.LonLat(<%= mlon %>, <%= mlat %>), null, "<%= t 'user.friend_map.your location' %>");
+    marker = addMarkerToMap(new OpenLayers.LonLat(<%= mlon %>, <%= mlat %>), null, "<%= t 'user.map.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 = i18n('<%= t 'user.friend_map.nearby mapper'%>', { nearby_user: '<a href="/user/'+nearest[i].display_name+'">'+nearest[i].display_name+'</a>' });
+      var description = i18n('<%= t 'user.map.nearby mapper'%>', { nearby_user: '<a href="/user/'+nearest[i].display_name+'">'+nearest[i].display_name+'</a>' });
       var nearmarker = addMarkerToMap(new OpenLayers.LonLat(nearest[i].home_lon, nearest[i].home_lat), near_icon.clone(), description);
     }
 
+    var friend_icon = OpenLayers.Marker.defaultIcon();
+    friend_icon.url = OpenLayers.Util.getImagesLocation() + "marker-blue.png";;
+    var i = friends.length;
+    while( i-- ) {
+      var description = i18n('<%= t 'user.map.friend'%>', { friend_user: '<a href="/user/'+friends[i].display_name+'">'+friends[i].display_name+'</a>' });
+      var friendmarker = addMarkerToMap(new OpenLayers.LonLat(friends[i].home_lon, friends[i].home_lat), friend_icon.clone(), description);
+    }
+
     if (document.getElementById('updatehome')) {
       map.events.register("click", map, setHome);
     }
@@ -77,7 +94,7 @@
         removeMarkerFromMap(marker);
       }
 
-      marker = addMarkerToMap(lonlat, null, "<%= t 'user.friend_map.your location' %>");
+      marker = addMarkerToMap(lonlat, null, "<%= t 'user.map.your location' %>");
     }
   }
 
index 881750c36504a2264c475258adf9770fd5bf9dcf..92c37056b848235859886518cbe24496b54bede5 100644 (file)
@@ -59,7 +59,7 @@
       <% else %>
         <table>
           <tr>
-            <td rowspan="3" valign="top"><%= image_tag url_for_file_column(@user, "image") %></td>
+            <td rowspan="3" valign="top"><%= image_tag url_for_file_column(@user, "image"), :class => "user_image" %></td>
             <td><%= radio_button_tag "image_action", "keep", true %></td>
             <td><%= t 'user.account.keep image' %></td>
           </tr>
@@ -96,7 +96,7 @@
 </table>
 <% end %>
 
-<%= render :partial => 'friend_map' %>
+<%= render :partial => 'map' %>
 
 <% unless @user.data_public? %>
 <a name="public"></a>
index 372bd660d28cde0abfa97895196b3cf8d92e4fcf..865c38959193df6009670d7924a101ca4d8e793c 100644 (file)
 <% if @this_user.image %>
-<%= image_tag url_for_file_column(@this_user, "image"), :align => "right", :float => "left" %>
+  <%= image_tag url_for_file_column(@this_user, "image"), :style => "float: right; margin-top: 19px", :class => "user_image" %>
 <% end %>
+
 <h2><%= h(@this_user.display_name) %>
+
 <% UserRole::ALL_ROLES.each do |role| %>
-<% if @user and @user.administrator? %>
-<% if @this_user.has_role? role %>
-<%= link_to(image_tag("roles/#{role}.png", :size => "20x20", :border => 0, :alt => t("user.view.role.revoke.#{role}"), :title => t("user.view.role.revoke.#{role}")), :controller => 'user_roles', :action => 'revoke', :display_name => @this_user.display_name, :role => role) %>
-<% else %>
-<%= link_to(image_tag("roles/blank_#{role}.png", :size => "20x20", :border => 0, :alt => t("user.view.role.grant.#{role}"), :title => t("user.view.role.grant.#{role}")), :controller => 'user_roles', :action => 'grant', :display_name => @this_user.display_name, :role => role) %>
-<% end %>
-<% elsif @this_user.has_role? role %>
-<%= image_tag("roles/#{role}.png", :size => "20x20", :border => 0, :alt => t("user.view.role.#{role}"), :title => t("user.view.role.#{role}")) %>
-<% end %>
+  <% if @user and @user.administrator? %>
+    <% if @this_user.has_role? role %>
+      <%= link_to(image_tag("roles/#{role}.png", :size => "20x20", :border => 0, :alt => t("user.view.role.revoke.#{role}"), :title => t("user.view.role.revoke.#{role}")), :controller => 'user_roles', :action => 'revoke', :display_name => @this_user.display_name, :role => role) %>
+    <% else %>
+      <%= link_to(image_tag("roles/blank_#{role}.png", :size => "20x20", :border => 0, :alt => t("user.view.role.grant.#{role}"), :title => t("user.view.role.grant.#{role}")), :controller => 'user_roles', :action => 'grant', :display_name => @this_user.display_name, :role => role) %>
+    <% end %>
+  <% elsif @this_user.has_role? role %>
+    <%= image_tag("roles/#{role}.png", :size => "20x20", :border => 0, :alt => t("user.view.role.#{role}"), :title => t("user.view.role.#{role}")) %>
+  <% end %>
 <% end %></h2>
+
 <div id="userinformation">
-<% if @user and @this_user.id == @user.id %>
-<!-- Displaying user's own profile page -->
-<%= link_to t('user.view.my diary'), :controller => 'diary_entry', :action => 'list', :display_name => @user.display_name %>
-| <%= link_to t('user.view.new diary entry'), :controller => 'diary_entry', :action => 'new', :display_name => @user.display_name %>
-| <%= link_to t('user.view.my edits'), :controller => 'changeset', :action => 'list', :display_name => @user.display_name %>
-| <%= link_to t('user.view.my traces'), :controller => 'trace', :action=>'mine' %>
-| <%= link_to t('user.view.my settings'), :controller => 'user', :action => 'account', :display_name => @user.display_name %>
-| <%= link_to t('user.view.blocks on me'), :controller => 'user_blocks', :action => 'blocks_on', :display_name => @user.display_name %>
-<% if @user and @user.moderator? %>
-| <%= link_to t('user.view.blocks by me'), :controller => 'user_blocks', :action => 'blocks_by', :display_name => @user.display_name %>
-<% end %>
-<% else %>
-<!-- Displaying another user's profile page -->
-<%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :display_name => @this_user.display_name %>
-| <%= link_to t('user.view.diary'), :controller => 'diary_entry', :action => 'list', :display_name => @this_user.display_name %>
-| <%= link_to t('user.view.edits'), :controller => 'changeset', :action => 'list', :display_name => @this_user.display_name %>
-| <%= link_to t('user.view.traces'), :controller => 'trace', :action => 'view', :display_name => @this_user.display_name %>
-| <% if @user and @user.is_friends_with?(@this_user) %>
-  <%= link_to t('user.view.remove as friend'), :controller => 'user', :action => 'remove_friend', :display_name => @this_user.display_name %>
-<% else %>
-  <%= link_to t('user.view.add as friend'), :controller => 'user', :action => 'make_friend', :display_name => @this_user.display_name %>
-<% end %>
-| <%= link_to t('user.view.block_history'), :controller => 'user_blocks', :action => 'blocks_on', :display_name => @this_user.display_name %>
-<% if @this_user.moderator? %>
-| <%= link_to t('user.view.moderator_history'), :controller => 'user_blocks', :action => 'blocks_by', :display_name => @this_user.display_name %>
-<% end %>
-<% if @user and @user.moderator? %>
-| <%= link_to t('user.view.create_block'), :controller => 'user_blocks', :action => 'new', :display_name => @this_user.display_name %>
-<% end %>
-<% end %>
-<% if @user and @user.administrator? %>
-<br/>
-<% if @this_user.active? %>
-<%= link_to t('user.view.deactivate_user'), {:controller => 'user', :action => 'deactivate', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %>
-<% else %>
-<%= link_to t('user.view.activate_user'), {:controller => 'user', :action => 'activate', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %>
-<% end %>
-<% if @this_user.visible? %>
-| <%= link_to t('user.view.hide_user'), {:controller => 'user', :action => 'hide', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %>
-| <%= link_to t('user.view.delete_user'), {:controller => 'user', :action => 'delete', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %>
-<% else %>
-| <%= link_to t('user.view.unhide_user'), {:controller => 'user', :action => 'unhide', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %>
-<% end %>
-<% end %>
+  <% if @user and @this_user.id == @user.id %>
+    <!-- Displaying user's own profile page -->
+    <%= link_to t('user.view.my diary'), :controller => 'diary_entry', :action => 'list', :display_name => @user.display_name %>
+    |
+    <%= link_to t('user.view.new diary entry'), :controller => 'diary_entry', :action => 'new', :display_name => @user.display_name %>
+    |
+    <%= link_to t('user.view.my edits'), :controller => 'changeset', :action => 'list', :display_name => @user.display_name %>
+    |
+    <%= link_to t('user.view.my traces'), :controller => 'trace', :action=>'mine' %>
+    |
+    <%= link_to t('user.view.my settings'), :controller => 'user', :action => 'account', :display_name => @user.display_name %>
+    |
+    <%= link_to t('user.view.oauth settings'), :controller => 'oauth_clients', :action => 'index' %>
+    |
+    <%= link_to t('user.view.blocks on me'), :controller => 'user_blocks', :action => 'blocks_on', :display_name => @user.display_name %>
+    <% if @user and @user.moderator? %>
+      | <%= link_to t('user.view.blocks by me'), :controller => 'user_blocks', :action => 'blocks_by', :display_name => @user.display_name %>
+    <% end %>
+  <% else %>
+    <!-- Displaying another user's profile page -->
+    <%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :display_name => @this_user.display_name %>
+    |
+    <%= link_to t('user.view.diary'), :controller => 'diary_entry', :action => 'list', :display_name => @this_user.display_name %>
+    |
+    <%= link_to t('user.view.edits'), :controller => 'changeset', :action => 'list', :display_name => @this_user.display_name %>
+    |
+    <%= link_to t('user.view.traces'), :controller => 'trace', :action => 'view', :display_name => @this_user.display_name %>
+    |
+    <% if @user and @user.is_friends_with?(@this_user) %>
+      <%= link_to t('user.view.remove as friend'), :controller => 'user', :action => 'remove_friend', :display_name => @this_user.display_name %>
+    <% else %>
+      <%= link_to t('user.view.add as friend'), :controller => 'user', :action => 'make_friend', :display_name => @this_user.display_name %>
+    <% end %>
+    |
+    <%= link_to t('user.view.block_history'), :controller => 'user_blocks', :action => 'blocks_on', :display_name => @this_user.display_name %>
+    <% if @this_user.moderator? %>
+      | <%= link_to t('user.view.moderator_history'), :controller => 'user_blocks', :action => 'blocks_by', :display_name => @this_user.display_name %>
+    <% end %>
+    <% if @user and @user.moderator? %>
+      | <%= link_to t('user.view.create_block'), :controller => 'user_blocks', :action => 'new', :display_name => @this_user.display_name %>
+    <% end %>
+  <% end %>
+  <% if @user and @user.administrator? %>
+    <br/>
+    <% if @this_user.active? %>
+      <%= link_to t('user.view.deactivate_user'), {:controller => 'user', :action => 'deactivate', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %>
+    <% else %>
+      <%= link_to t('user.view.activate_user'), {:controller => 'user', :action => 'activate', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %>
+    <% end %>
+    |
+    <% if @this_user.visible? %>
+      <%= link_to t('user.view.hide_user'), {:controller => 'user', :action => 'hide', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %>
+      |
+      <%= link_to t('user.view.delete_user'), {:controller => 'user', :action => 'delete', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %>
+    <% else %>
+      <%= link_to t('user.view.unhide_user'), {:controller => 'user', :action => 'unhide', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %>
+    <% end %>
+  <% end %>
 </div>
 
 <p><b><%= t 'user.view.mapper since' %></b> <%= l @this_user.creation_time %> <%= t 'user.view.ago', :time_in_words_ago => time_ago_in_words(@this_user.creation_time) %></p>
 
 <% if @user and @user.administrator? %>
-<p><b><%= t 'user.view.email address' %></b> <%= @this_user.email %></p>  
-<p><b><%= t 'user.view.created from' %></b> <%= @this_user.creation_ip %></p>
+  <p><b><%= t 'user.view.email address' %></b> <%= @this_user.email %></p>  
+  <p><b><%= t 'user.view.created from' %></b> <%= @this_user.creation_ip %></p>
 <% end %>
 
 <h3><%= t 'user.view.description' %></h3>
-<div id="description"><%= htmlize(@this_user.description) %></div>
 
-<% if @this_user.home_lat.nil? or @this_user.home_lon.nil? %>
-<h3><%= t 'user.view.user location' %></h3>
-
-  <%= t 'user.view.no home location' %>
-  <% if @user and @this_user.id == @user.id %>
-  <%= t 'user.view.if set location', :settings_link => (link_to t('user.view.settings_link_text'), :controller => 'user', :action => 'account', :display_name => @user.display_name) %>
-  <% end %>
-<% else %>
+<div id="description"><%= htmlize(@this_user.description) %></div>
 
-  <% if @user and @this_user.id == @user.id %>
-    <h3><%= t 'user.view.your friends' %></h3>
-    <% if @this_user.friends.empty? %>
-      <%= t 'user.view.no friends' %>
+<% if @user and @this_user.id == @user.id %>
+  <div id="map" style="border: 1px solid black; position: relative; width: 400px; height: 400px; float: right;">
+    <% if @this_user.home_lat.nil? or @this_user.home_lon.nil? %>
+      <p style="position: absolute; top: 0; bottom: 0; width: 90%; height: 30%; margin: auto 5%">
+        <%= t 'user.view.if set location', :settings_link => (link_to t('user.view.settings_link_text'), :controller => 'user', :action => 'account', :display_name => @user.display_name) %>
+      </p>
     <% else %>
-      <table id="friends">
-      <% @this_user.friends.each do |friend| %>
-      <% @friend = User.find_by_id(friend.friend_user_id) %>
-      <tr>
-      <td class="image">
-      <% if @friend.image %>
-        <%= image_tag url_for_file_column(@friend, "image") %>
-      <% end %>
-      </td>
-      <td class="username"><%= link_to h(@friend.display_name), :controller => 'user', :action => 'view',  :display_name => @friend.display_name %></td>
-      <td>
-        <% if @friend.home_lon and @friend.home_lat %>
-          <% distance = @this_user.distance(@friend) %>
-          <% if distance < 1 %>
-            <%= t 'user.view.m away', :count => (distance * 1000).round %>
-          <% else %>
-            <%= t 'user.view.km away', :count => distance.round %>
-          <% end %>
-        <% end %>
-      </td>
-      <td class="message">(<%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :display_name => @friend.display_name %>)</td>
-      </tr>
-      <%end%>
-      </table>
-    <%end%>
-    <br/>
-  <%end%>
+      <%= render :partial => 'map' %>
+    <% end %>
+  </div>
 
+  <% friends = @this_user.friends.collect { |f| f.befriendee } %>
+  <% nearby = @this_user.nearby - friends %>
 
-  <% if @user and @this_user.id == @user.id %>
-    <h3><%= t 'user.view.nearby users' %></h3>
-    <% if @this_user.nearby.empty? %>
-      <%= t 'user.view.no nearby users' %>
-    <% else %>
+  <h3 style="margin-top: 0"><%= t 'user.view.your friends' %></h3>
 
-    <div id="map" style="border: 1px solid black; position: relative; width : 90%; height : 400px;"></div>
-    <%= render :partial => 'friend_map' %>
-      <table id="nearbyusers">
-      <% @this_user.nearby.each do |nearby| %>
-      <tr>
-      <td class="username"><%= link_to h(nearby.display_name), :controller => 'user', :action => 'view',  :display_name => nearby.display_name %></td>
-      <td>
-        <% distance = @this_user.distance(nearby) %>
-        <% if distance < 1 %>
-          <%= t 'user.view.m away', :count => (distance * 1000).round %>
-        <% else %>
-          <%= t 'user.view.km away', :count => distance.round %>
-        <% end %>
-      </td>
-      <td class="message">(<%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :display_name => nearby.display_name %>)</td>
-      </tr>
-      <% end %>
-      </table>
-    <% end %>
+  <% if friends.empty? %>
+    <%= t 'user.view.no friends' %>
+  <% else %>
+    <table id="friends">
+      <%= render :partial => "contact", :collection => friends %>
+    </table>
   <% end %>
-<% end %>
 
-<br/>
-<br/>
-<% if @user and @this_user.id == @user.id %>
-<%= link_to t('user.view.my_oauth_details'), :controller => 'oauth_clients', :action => 'index' %>
+  <h3><%= t 'user.view.nearby users' %></h3>
+
+  <% if nearby.empty? %>
+    <%= t 'user.view.no nearby users' %>
+  <% else %>
+    <table id="nearbyusers">
+      <%= render :partial => "contact", :collection => nearby %>
+    </table>
+  <% end %>
 <% end %>
index 47847680f79dae6f5502ccd3c148425edce6a060..1e6e49dba019be3a778b814a62856808fa547852 100644 (file)
@@ -1397,6 +1397,7 @@ en:
       my edits: my edits
       my traces: my traces
       my settings: my settings
+      oauth settings: oauth settings
       blocks on me: blocks on me
       blocks by me: blocks by me
       send message: send message
@@ -1411,16 +1412,14 @@ en:
       created from: "Created from:"
       description: Description
       user location: User location
-      no home location: "No home location has been set."
-      if set location: "If you set your location, a pretty map and stuff will appear below. You can set your home location on your {{settings_link}} page."
+      if set location: "If you set your location, a pretty map and stuff will appear here. You can set your home location on your {{settings_link}} page."
       settings_link_text: settings
       your friends: Your friends
       no friends: You have not added any friends yet.
       km away: "{{count}}km away"
       m away: "{{count}}m away"
-      nearby users: "Nearby users:"
-      no nearby users: "There are no users who admit to mapping nearby yet."
-      my_oauth_details: "View my OAuth details"
+      nearby users: "Other nearby users"
+      no nearby users: "There are no other users who admit to mapping nearby yet."
       role:
         administrator: "This user is an administrator"
         moderator: "This user is a moderator"
@@ -1439,9 +1438,10 @@ en:
       unhide_user: "unhide this user"
       delete_user: "delete this user"
       confirm: "Confirm"
-    friend_map:
+    map:
       your location: Your location
       nearby mapper: "Nearby mapper: [[nearby_user]]"
+      friend: "Friend: [[friend_user]]"
     account:
       title: "Edit account"
       my settings: My settings
diff --git a/public/images/anon_large.png b/public/images/anon_large.png
new file mode 100644 (file)
index 0000000..761aa60
Binary files /dev/null and b/public/images/anon_large.png differ
diff --git a/public/images/anon_small.png b/public/images/anon_small.png
new file mode 100644 (file)
index 0000000..0f3e49e
Binary files /dev/null and b/public/images/anon_small.png differ
index 738a16e62d86f2e82e1aaf00eb39b969755802d5..d2fdea511d94f370174884e752496d2b5a558c9e 100644 (file)
@@ -704,3 +704,13 @@ input[type="submit"] {
 abbr.geo {
   border-bottom: none;
 }
+
+img.user_image {
+  width: 100px;
+  height: 100px;
+}
+
+img.user_thumbnail {
+  width: 50px;
+  height: 50px;
+}