Commit b621535285b8d00974c9bd172687c196d133a41f
Committed by
Daniela Feitosa
1 parent
ce1d83e9
Exists in
staging
and in
42 other branches
Show "post a comment" top button only if there is more than one comment
(ActionItem1771)
Showing
4 changed files
with
37 additions
and
10 deletions
Show diff stats
app/controllers/public/content_viewer_controller.rb
@@ -100,6 +100,7 @@ class ContentViewerController < ApplicationController | @@ -100,6 +100,7 @@ class ContentViewerController < ApplicationController | ||
100 | end | 100 | end |
101 | 101 | ||
102 | @comments = @page.comments(true).as_thread | 102 | @comments = @page.comments(true).as_thread |
103 | + @comments_count = @page.comments.count | ||
103 | if params[:slideshow] | 104 | if params[:slideshow] |
104 | render :action => 'slideshow', :layout => 'slideshow' | 105 | render :action => 'slideshow', :layout => 'slideshow' |
105 | end | 106 | end |
app/views/content_viewer/view_page.rhtml
@@ -125,7 +125,7 @@ | @@ -125,7 +125,7 @@ | ||
125 | <h3 <%= 'class="no-comments-yet"' if @comments.size == 0 %>> | 125 | <h3 <%= 'class="no-comments-yet"' if @comments.size == 0 %>> |
126 | <%= number_of_comments(@page) %> | 126 | <%= number_of_comments(@page) %> |
127 | </h3> | 127 | </h3> |
128 | - <% if @comments.size > 0 %> | 128 | + <% if @comments_count > 1 %> |
129 | <p class="post-comment-button"><a href="#comment_form" onclick="jQuery('#page-comment-form h4').first().trigger('click')"><%= _('Post a comment') %></a></p> | 129 | <p class="post-comment-button"><a href="#comment_form" onclick="jQuery('#page-comment-form h4').first().trigger('click')"><%= _('Post a comment') %></a></p> |
130 | <% end %> | 130 | <% end %> |
131 | <ul class="article-comments-list"> | 131 | <ul class="article-comments-list"> |
features/comment.feature
@@ -7,8 +7,13 @@ Feature: comment | @@ -7,8 +7,13 @@ Feature: comment | ||
7 | | login | | 7 | | login | |
8 | | booking | | 8 | | booking | |
9 | And the following articles | 9 | And the following articles |
10 | - | owner | name | | ||
11 | - | booking | article to comment | | 10 | + | owner | name | |
11 | + | booking | article to comment | | ||
12 | + | booking | article with comment | | ||
13 | + And the following comments | ||
14 | + | article | author | title | body | | ||
15 | + | article with comment | booking | hi | how are you? | | ||
16 | + | article with comment | booking | hello | i am fine | | ||
12 | 17 | ||
13 | Scenario: not post a comment without javascript | 18 | Scenario: not post a comment without javascript |
14 | Given I am on /booking/article-to-comment | 19 | Given I am on /booking/article-to-comment |
@@ -71,11 +76,8 @@ Feature: comment | @@ -71,11 +76,8 @@ Feature: comment | ||
71 | 76 | ||
72 | @selenium | 77 | @selenium |
73 | Scenario: render comment form and go to bottom | 78 | Scenario: render comment form and go to bottom |
74 | - Given the following comment | ||
75 | - | article | author | title | body | | ||
76 | - | article to comment | booking | hi | how are you? | | ||
77 | - Given I am on /booking/article-to-comment | 79 | + Given I am on /booking/article-with-comment |
78 | When I follow "Post a comment" within ".post-comment-button" | 80 | When I follow "Post a comment" within ".post-comment-button" |
79 | Then I should see "Enter your comment" within "div#page-comment-form div.post_comment_box.opened" | 81 | Then I should see "Enter your comment" within "div#page-comment-form div.post_comment_box.opened" |
80 | - And I should be exactly on /booking/article-to-comment | 82 | + And I should be exactly on /booking/article-with-comment |
81 | And I should be moved to anchor "comment_form" | 83 | And I should be moved to anchor "comment_form" |
test/functional/content_viewer_controller_test.rb
@@ -1324,14 +1324,14 @@ class ContentViewerControllerTest < Test::Unit::TestCase | @@ -1324,14 +1324,14 @@ class ContentViewerControllerTest < Test::Unit::TestCase | ||
1324 | assert_tag :a, :attributes => { :href => "http://" + url}, :content => url.scan(/.{4}/).join('​') | 1324 | assert_tag :a, :attributes => { :href => "http://" + url}, :content => url.scan(/.{4}/).join('​') |
1325 | end | 1325 | end |
1326 | 1326 | ||
1327 | - should 'show a post comment button on top if there are comments' do | 1327 | + should 'not show a post comment button on top if there is only one comment' do |
1328 | profile = create_user('testuser').person | 1328 | profile = create_user('testuser').person |
1329 | article = profile.articles.build(:name => 'test') | 1329 | article = profile.articles.build(:name => 'test') |
1330 | article.save! | 1330 | article.save! |
1331 | comment = article.comments.build(:author => profile, :title => 'hi', :body => 'hello') | 1331 | comment = article.comments.build(:author => profile, :title => 'hi', :body => 'hello') |
1332 | comment.save! | 1332 | comment.save! |
1333 | get :view_page, :profile => 'testuser', :page => [ 'test' ] | 1333 | get :view_page, :profile => 'testuser', :page => [ 'test' ] |
1334 | - assert_tag :tag => 'p', :attributes => { :class => 'post-comment-button' } | 1334 | + assert_no_tag :tag => 'p', :attributes => { :class => 'post-comment-button' } |
1335 | end | 1335 | end |
1336 | 1336 | ||
1337 | should 'not show a post comment button on top if there are no comments' do | 1337 | should 'not show a post comment button on top if there are no comments' do |
@@ -1342,4 +1342,28 @@ class ContentViewerControllerTest < Test::Unit::TestCase | @@ -1342,4 +1342,28 @@ class ContentViewerControllerTest < Test::Unit::TestCase | ||
1342 | assert_no_tag :tag => 'p', :attributes => { :class => 'post-comment-button' } | 1342 | assert_no_tag :tag => 'p', :attributes => { :class => 'post-comment-button' } |
1343 | end | 1343 | end |
1344 | 1344 | ||
1345 | + should 'show a post comment button on top if there are at least two comments' do | ||
1346 | + profile = create_user('testuser').person | ||
1347 | + article = profile.articles.build(:name => 'test') | ||
1348 | + article.save! | ||
1349 | + comment1 = article.comments.build(:author => profile, :title => 'hi', :body => 'hello') | ||
1350 | + comment1.save! | ||
1351 | + comment2 = article.comments.build(:author => profile, :title => 'hi', :body => 'hello', :reply_of_id => comment1.id) | ||
1352 | + comment2.save! | ||
1353 | + get :view_page, :profile => 'testuser', :page => [ 'test' ] | ||
1354 | + assert_tag :tag => 'p', :attributes => { :class => 'post-comment-button' } | ||
1355 | + end | ||
1356 | + | ||
1357 | + should 'store number of comments' do | ||
1358 | + profile = create_user('testuser').person | ||
1359 | + article = profile.articles.build(:name => 'test') | ||
1360 | + article.save! | ||
1361 | + comment1 = article.comments.build(:author => profile, :title => 'hi', :body => 'hello') | ||
1362 | + comment1.save! | ||
1363 | + comment2 = article.comments.build(:author => profile, :title => 'hi', :body => 'hello', :reply_of_id => comment1.id) | ||
1364 | + comment2.save! | ||
1365 | + get :view_page, :profile => 'testuser', :page => [ 'test' ] | ||
1366 | + assert_equal 2, assigns(:comments_count) | ||
1367 | + end | ||
1368 | + | ||
1345 | end | 1369 | end |