diff --git a/app/controllers/user_controller.rb b/app/controllers/user_controller.rb
index f3ec2e243..d79041b4f 100644
--- a/app/controllers/user_controller.rb
+++ b/app/controllers/user_controller.rb
@@ -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
diff --git a/app/views/layouts/site.rhtml b/app/views/layouts/site.rhtml
index d32490729..c7670e795 100644
--- a/app/views/layouts/site.rhtml
+++ b/app/views/layouts/site.rhtml
@@ -23,7 +23,7 @@
- <% 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'}%>
diff --git a/app/views/trace/_trace.rhtml b/app/views/trace/_trace.rhtml
index f6c00448b..b79638d17 100644
--- a/app/views/trace/_trace.rhtml
+++ b/app/views/trace/_trace.rhtml
@@ -2,7 +2,7 @@
<% cl = cycle('table0', 'table1') %>
<% if trace.inserted %>
-
+
<% else %>
PENDING
<% end %>
@@ -17,7 +17,7 @@
map
<%= trace.description %>
- 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| %>
diff --git a/app/views/user/account.rhtml b/app/views/user/account.rhtml
index bfa247904..81f72fe04 100644
--- a/app/views/user/account.rhtml
+++ b/app/views/user/account.rhtml
@@ -2,8 +2,9 @@
id | <%= @user.id %> |
email | <%= @user.email %> |
- display name | <%= @user.display_name %> (<%= link_to 'change...', :controller => 'user', :action => 'rename' %>) |
- account created | <%= @user.creation_time %> |
+ display name | <%= @user.display_name %> (<%= link_to 'change...', :controller => 'user', :action => 'edit' %>) |
+ account created | <%= @user.creation_time %> (<%= time_ago_in_words(@user.creation_time) %> ago) |
+ description | <%= @user.description %> (<%= link_to 'change...', :controller => 'user', :action => 'edit' %>) |
Privacy
diff --git a/app/views/user/rename.rhtml b/app/views/user/edit.rhtml
similarity index 100%
rename from app/views/user/rename.rhtml
rename to app/views/user/edit.rhtml
diff --git a/config/routes.rb b/config/routes.rb
index 9d26eb0fa..039eea09f 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -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
- map.connect '/user/:display_name/traces/page/:page', :controller => 'trace', :action => 'list', :id => nil
+ 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
+ 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'
diff --git a/db/migrate.sql b/db/migrate.sql
index 6073c96a7..f6d2fc408 100644
--- a/db/migrate.sql
+++ b/db/migrate.sql
@@ -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;
|