diff options
author | Marius Mathiesen <marius@shortcut.no> | 2009-12-08 15:35:27 +0100 |
---|---|---|
committer | Marius Mathiesen <marius@shortcut.no> | 2009-12-09 10:44:11 +0100 |
commit | 9ac31ff47b53c17341a6585ed04a020b7d108259 (patch) | |
tree | fe74f000a3d84a4c367b41d178a37df1a634ed46 | |
parent | 8745bf497049a62ee443026967c31ffc69934956 (diff) | |
download | gitorious-mainline-outdated-9ac31ff47b53c17341a6585ed04a020b7d108259.zip gitorious-mainline-outdated-9ac31ff47b53c17341a6585ed04a020b7d108259.tar.gz gitorious-mainline-outdated-9ac31ff47b53c17341a6585ed04a020b7d108259.tar.bz2 |
Display a summary of the user's messages on ~username
Only when the current user is accessing the page, of course
-rw-r--r-- | app/controllers/users_controller.rb | 2 | ||||
-rw-r--r-- | app/helpers/messages_helper.rb | 4 | ||||
-rw-r--r-- | app/helpers/users_helper.rb | 1 | ||||
-rw-r--r-- | app/views/users/show.html.erb | 18 | ||||
-rw-r--r-- | public/stylesheets/base.css | 13 | ||||
-rw-r--r-- | test/functional/users_controller_test.rb | 16 |
6 files changed, 54 insertions, 0 deletions
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 3e4b814..04d04fd 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -49,6 +49,8 @@ class UsersController < ApplicationController :include => [:user, :project]) end + @messages = @user.messages_in_inbox if @user == current_user + @favorites = @user.watched_objects @atom_auto_discovery_url = feed_user_path(@user, :format => :atom) diff --git a/app/helpers/messages_helper.rb b/app/helpers/messages_helper.rb index 10418b9..6d2578c 100644 --- a/app/helpers/messages_helper.rb +++ b/app/helpers/messages_helper.rb @@ -28,6 +28,10 @@ module MessagesHelper end end + def other_party(message,user) + message.recipient == user ? message.sender : message.recipient + end + def message_title(message) sender, recipient = sender_and_recipient_for(message) diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index 300803f..a17f3d7 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -21,6 +21,7 @@ module UsersHelper include FavoritesHelper + include MessagesHelper def encoded_mail_to(email) mail_to(email, nil, :replace_at => "AT@NOSPAM@", :replace_dot => "DOT", :encode => "javascript") diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb index 2f9336b..a9e86ee 100644 --- a/app/views/users/show.html.erb +++ b/app/views/users/show.html.erb @@ -120,6 +120,24 @@ </ul> <% end %> + <% if @messages %> + <% pull_box("Your conversations") do %> + <ul class="embedded_message_list"> + <% @messages.each do |message| %> + <li> + <%= link_to(h(message.title), message, + :title => truncate(h(message.body), :length => 25), + :class => message.aasm_state_for_user(@user)) %> + <span class="meta"> + with <%= other_party(message, @user).title %> + <%= distance_of_time_in_words_to_now(message.updated_at) %> ago + </span> + </li> + <% end %> + </ul> + <% end %> + <% end %> + <% pull_box("Open merge requests for you") do %> <ul> <% @user.review_repositories_with_open_merge_request_count.each do |repo| %> diff --git a/public/stylesheets/base.css b/public/stylesheets/base.css index 47a5f6b..8919b5c 100644 --- a/public/stylesheets/base.css +++ b/public/stylesheets/base.css @@ -3367,4 +3367,17 @@ body#users #right { width: 43%; } body#users h2.activities small { font-size: 12px; color: #666; +} + +.embedded_message_list { +} +.embedded_message_list a { + background-color: #fff; +} +.embedded_message_list a.unread { + font-weight: bold; +} +.embedded_message_list .meta { + font-size: 11px; + color: #555; }
\ No newline at end of file diff --git a/test/functional/users_controller_test.rb b/test/functional/users_controller_test.rb index 8b27a61..324be01 100644 --- a/test/functional/users_controller_test.rb +++ b/test/functional/users_controller_test.rb @@ -516,6 +516,22 @@ class UsersControllerTest < ActionController::TestCase assert_response :success end end + + context "Message privacy" do + setup {@username = :johan} + + should "not expose messages unless current user" do + login_as :moe + get :show, :id => @username.to_s + assert_nil assigns(:messages) + end + + should "expose messages if current user" do + login_as @username + get :show, :id => @username.to_s + assert_not_nil assigns(:messages) + end + end context 'Creation from OpenID' do setup do |