Commit 30b2a8e5600d95cefcd9de537d7197ce472398ff
Exists in
master
and in
28 other branches
Merge commit 'refs/merge-requests/232' of git://gitorious.org/noosfero/noosfero …
…into merge-requests/232
Showing
3 changed files
with
47 additions
and
3 deletions
Show diff stats
app/views/profile/_comment.rhtml
@@ -5,19 +5,35 @@ | @@ -5,19 +5,35 @@ | ||
5 | <li class="article-comment" style='border-bottom:none;'> | 5 | <li class="article-comment" style='border-bottom:none;'> |
6 | <div class="article-comment-inner"> | 6 | <div class="article-comment-inner"> |
7 | 7 | ||
8 | - <div class="comment-content comment-logged-in"> | 8 | + <div class="comment-content comment-logged-<%= comment.author ? 'in' : 'out' %>"> |
9 | 9 | ||
10 | <% if comment.author %> | 10 | <% if comment.author %> |
11 | <%= link_to image_tag(profile_icon(comment.author, :minor)), | 11 | <%= link_to image_tag(profile_icon(comment.author, :minor)), |
12 | - Person.find(comment.author_id).url, | 12 | + comment.author_url, |
13 | :class => 'comment-picture', | 13 | :class => 'comment-picture', |
14 | :title => comment.author_name | 14 | :title => comment.author_name |
15 | %> | 15 | %> |
16 | + <% else %> | ||
17 | + <% url_image, status_class = comment.author_id ? | ||
18 | + [comment.removed_user_image, 'icon-user-removed'] : | ||
19 | + [str_gravatar_url_for( comment.email ), 'icon-user-unknown'] %> | ||
20 | + | ||
21 | + <%= link_to( | ||
22 | + image_tag(url_image, :onerror=>'gravatarCommentFailback(this)', | ||
23 | + 'data-gravatar'=>str_gravatar_url_for(comment.email)) + | ||
24 | + content_tag('span', comment.author_name, :class => 'comment-info') + | ||
25 | + content_tag('span', comment.message, | ||
26 | + :class => 'comment-user-status comment-user-status-wall ' + status_class), | ||
27 | + gravatar_profile_url(comment.email), | ||
28 | + :target => '_blank', | ||
29 | + :class => 'comment-picture', | ||
30 | + :title => '%s %s' % [comment.author_name, comment.message] | ||
31 | + )%> | ||
16 | <% end %> | 32 | <% end %> |
17 | 33 | ||
18 | <div class="comment-details"> | 34 | <div class="comment-details"> |
19 | <div class="comment-text"> | 35 | <div class="comment-text"> |
20 | - <%= link_to(comment.author_name, comment.author.url) %> | 36 | + <%= comment.author.present? ? link_to(comment.author_name, comment.author.url) : content_tag('strong', comment.author_name) %> |
21 | <% unless comment.title.blank? %> | 37 | <% unless comment.title.blank? %> |
22 | <span class="comment-title"><%= comment.title %></span><br/> | 38 | <span class="comment-title"><%= comment.title %></span><br/> |
23 | <% end %> | 39 | <% end %> |
public/stylesheets/application.css
@@ -1096,6 +1096,10 @@ a.comment-picture { | @@ -1096,6 +1096,10 @@ a.comment-picture { | ||
1096 | left: 33px; | 1096 | left: 33px; |
1097 | background-repeat: no-repeat; | 1097 | background-repeat: no-repeat; |
1098 | } | 1098 | } |
1099 | +.comment-user-status-wall { | ||
1100 | + top: 16px; | ||
1101 | + left: 16px; | ||
1102 | +} | ||
1099 | #article .article-comments-list, #article .article-comments-list ul, #article .article-comments-list li { | 1103 | #article .article-comments-list, #article .article-comments-list ul, #article .article-comments-list li { |
1100 | padding: 0; | 1104 | padding: 0; |
1101 | margin: 0; | 1105 | margin: 0; |
test/functional/profile_controller_test.rb
@@ -1300,4 +1300,28 @@ class ProfileControllerTest < ActionController::TestCase | @@ -1300,4 +1300,28 @@ class ProfileControllerTest < ActionController::TestCase | ||
1300 | assert_response :success | 1300 | assert_response :success |
1301 | assert_equal "Comment successfully added.", assigns(:message) | 1301 | assert_equal "Comment successfully added.", assigns(:message) |
1302 | end | 1302 | end |
1303 | + | ||
1304 | + should 'display comment in wall if user was removed' do | ||
1305 | + UserStampSweeper.any_instance.stubs(:current_user).returns(profile) | ||
1306 | + article = TinyMceArticle.create!(:profile => profile, :name => 'An article about free software') | ||
1307 | + to_be_removed = create_user('removed_user').person | ||
1308 | + comment = Comment.create!(:author => to_be_removed, :title => 'Test Comment', :body => 'My author does not exist =(', :source_id => article.id, :source_type => 'Article') | ||
1309 | + to_be_removed.destroy | ||
1310 | + | ||
1311 | + login_as(profile.identifier) | ||
1312 | + get :index, :profile => profile.identifier | ||
1313 | + | ||
1314 | + assert_tag :tag => 'span', :content => '(removed user)', :attributes => {:class => 'comment-user-status comment-user-status-wall icon-user-removed'} | ||
1315 | + end | ||
1316 | + | ||
1317 | + should 'display comment in wall from non logged users' do | ||
1318 | + UserStampSweeper.any_instance.stubs(:current_user).returns(profile) | ||
1319 | + article = TinyMceArticle.create!(:profile => profile, :name => 'An article about free software') | ||
1320 | + comment = Comment.create!(:name => 'outside user', :email => 'outside@localhost.localdomain', :title => 'Test Comment', :body => 'My author does not exist =(', :source_id => article.id, :source_type => 'Article') | ||
1321 | + | ||
1322 | + login_as(profile.identifier) | ||
1323 | + get :index, :profile => profile.identifier | ||
1324 | + | ||
1325 | + assert_tag :tag => 'span', :content => '(unauthenticated user)', :attributes => {:class => 'comment-user-status comment-user-status-wall icon-user-unknown'} | ||
1326 | + end | ||
1303 | end | 1327 | end |