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 c181da3..5b6222a 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 a73bb53..17f4ed3 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 881750c..92c3705 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 372bd66..865c389 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 4784768..1e6e49d 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 738a16e..d2fdea5 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;
+}