user bits
authorSteve Coast <steve@asklater.com>
Sat, 7 Apr 2007 19:33:20 +0000 (19:33 +0000)
committerSteve Coast <steve@asklater.com>
Sat, 7 Apr 2007 19:33:20 +0000 (19:33 +0000)
app/controllers/user_controller.rb
app/views/layouts/site.rhtml
app/views/trace/_trace.rhtml
app/views/user/account.rhtml
app/views/user/edit.rhtml [moved from app/views/user/rename.rhtml with 100% similarity]
config/routes.rb
db/migrate.sql

index f3ec2e243535b56a285a2390508736dadb9999df..d79041b4fd94da2ec6c876bb04d31b4d8af1c33a 100644 (file)
@@ -2,8 +2,8 @@ class UserController < ApplicationController
   layout 'site'
 
   before_filter :authorize, :only => [:preferences, :api_details, :api_gpx_files]
-  before_filter :authorize_web, :only => [:rename, :account, :go_public]
-  before_filter :require_user, :only => [:rename, :account, :go_public]
+  before_filter :authorize_web, :only => [:edit, :account, :go_public]
+  before_filter :require_user, :only => [:edit, :account, :go_public]
  
   def save
     @user = User.new(params[:user])
@@ -18,11 +18,12 @@ class UserController < ApplicationController
     end
   end
 
-  def rename
-    if params[:user] and params[:user][:display_name]
+  def edit
+    if params[:user] and params[:user][:display_name] and params[:user][:description]
       @user.display_name = params[:user][:display_name]
+      @user.description = params[:user][:description]
       if @user.save
-        flash[:notice] = "User display name updated OK."
+        flash[:notice] = "User edited OK."
         redirect_to :controller => 'user', :action => 'account'
       end
     end
@@ -137,5 +138,12 @@ class UserController < ApplicationController
     end
     render :text => doc.to_s
   end
+
+
+  def view
+    @this_user = User.find_by_display_name(params[:display_name])
+  end
+
+
 end
 
index d32490729f6cd5fd86edbf92a742e554b0f26d3f..c7670e79581797c884f4f2621811ccd8dcdd9b50 100644 (file)
@@ -23,7 +23,7 @@
     </div>
 
     <span id="greeting">
-        <% if @user %>
+      <% if @user %>
         Welcome, <%= @user.display_name %> |
         <%= link_to 'account', {:controller => 'user', :action => 'account'}, {:id => 'loginanchor'}%> |
         <%= link_to 'logout', {:controller => 'user', :action => 'logout'}, {:id => 'loginanchor'}%>
index f6c00448be28fd93fc4060f35759ad3cecf96d7a..b79638d1729b5830198070116ab751763d3e0c60 100644 (file)
@@ -2,7 +2,7 @@
   <% cl = cycle('table0', 'table1') %>
   <td class="<%= cl %>">
     <% if trace.inserted %>
-    <a href="<%= url_for :controller => 'trace', :action => 'view', :id => trace.id, :user_login => trace.user.display_name %>"><img src="<%= url_for :controller => 'trace', :action => 'icon', :id => trace.id, :user_login => trace.user.display_name %>" border="0"></a>
+    <a href="<%= url_for :controller => 'trace', :action => 'view', :id => trace.id, :display_name => trace.user.display_name %>"><img src="<%= url_for :controller => 'trace', :action => 'icon', :id => trace.id, :display_name => trace.user.display_name %>" border="0"></a>
     <% else %>
     <span style="color:red">PENDING</span>
     <% end %>
@@ -17,7 +17,7 @@
     <a href="/edit.html?lat=<%= trace.latitude %>&lon=<%= trace.longitude %>&zoom=14" title="create maps">map</a><br />
       <%= trace.description %>
     <br />
-    by <%= link_to trace.user.display_name, {:controller => 'trace', :action => 'list', :display_name => trace.user.display_name} %>
+    by <%= link_to trace.user.display_name, {:controller => 'user', :action => 'view', :display_name => trace.user.display_name} %>
     in 
     <% if trace.tags %>
       <% trace.tags.each do |tag| %>
index bfa247904c0941d1c0de3f9ff5cecc6453793c28..81f72fe04fb4ad5bfa7618c21c0c36bf91e9faaf 100644 (file)
@@ -2,8 +2,9 @@
 <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 => 'rename' %>)</td></tr>
-  <tr><td>account created</td><td><%= @user.creation_time %></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>description</td><td><%= @user.description %>  (<%= link_to 'change...', :controller => 'user', :action => 'edit' %>)</td></tr>
 </table>
 
 <h2>Privacy</h2>
index 9d26eb0fac7134aaef2349582dd0b558547700a6..039eea09fe841845efb045689cb6539330a927bb 100644 (file)
@@ -33,6 +33,7 @@ ActionController::Routing::Routes.draw do |map|
   map.connect '/search.html', :controller => 'way_tag', :action => 'search'
   map.connect '/login.html', :controller => 'user', :action => 'login'
   map.connect '/logout.html', :controller => 'user', :action => 'logout'
+  map.connect '/account', :controller => 'user', :action => 'account'
   map.connect '/create-account.html', :controller => 'user', :action => 'new'
   map.connect '/forgot-password.html', :controller => 'user', :action => 'lost_password'
 
@@ -44,13 +45,18 @@ ActionController::Routing::Routes.draw do |map|
   map.connect '/traces/mine/tag/:tag', :controller => 'trace', :action => 'mine'
   map.connect '/traces/mine/tag/:tag/page/:page', :controller => 'trace', :action => 'mine'
   map.connect '/traces/rss', :controller => 'trace', :action => 'georss'
-  map.connect '/user/:display_name/traces', :controller => 'trace', :action => 'list', :id => nil\r
-  map.connect '/user/:display_name/traces/page/:page', :controller => 'trace', :action => 'list', :id => nil\r
+  map.connect '/user/:display_name/traces', :controller => 'trace', :action => 'list', :id => nil
+  map.connect '/user/:display_name/traces/page/:page', :controller => 'trace', :action => 'list', :id => nil
   map.connect '/user/:display_name/traces/:id', :controller => 'trace', :action => 'view', :id => nil
   map.connect '/user/:display_name/traces/:id/picture', :controller => 'trace', :action => 'picture', :id => nil
   map.connect '/user/:display_name/traces/:id/icon', :controller => 'trace', :action => 'icon', :id => nil
   map.connect '/traces/tag/:tag', :controller => 'trace', :action => 'list', :id => nil
-  map.connect '/traces/tag/:tag/page/:page', :controller => 'trace', :action => 'list', :id => nil\r
+  map.connect '/traces/tag/:tag/page/:page', :controller => 'trace', :action => 'list', :id => nil
+
+  # user pages
+  
+  map.connect '/user/:display_name', :controller => 'user', :action => 'view'
+  map.connect '/user/:display_name/diary', :controller => 'diary', :action => 'view'
 
   # test pages
   map.connect '/test/populate/:table/:from/:count', :controller => 'test', :action => 'populate'
index 6073c96a7dae960dd67cb9a41fb2b498deefddf9..f6d2fc40844681919cf4d8ab700bfcf6047c8d21 100644 (file)
@@ -33,3 +33,5 @@ create index users_display_name_idx on users(display_name);
 alter table users add data_public boolean default false;
 
 alter table gpx_files drop column tmpname;
+
+alter table users add column description text not null;