summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Mathiesen <marius@shortcut.no>2009-12-08 15:35:27 +0100
committerMarius Mathiesen <marius@shortcut.no>2009-12-09 10:44:11 +0100
commit9ac31ff47b53c17341a6585ed04a020b7d108259 (patch)
treefe74f000a3d84a4c367b41d178a37df1a634ed46
parent8745bf497049a62ee443026967c31ffc69934956 (diff)
downloadgitorious-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.rb2
-rw-r--r--app/helpers/messages_helper.rb4
-rw-r--r--app/helpers/users_helper.rb1
-rw-r--r--app/views/users/show.html.erb18
-rw-r--r--public/stylesheets/base.css13
-rw-r--r--test/functional/users_controller_test.rb16
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