Display no diary comments message when empty

Display a 'No diary comments' message when there are no diary comments to display, rather than an empty table.
This commit is contained in:
Harry Wood 2021-04-09 18:06:05 +01:00
parent de8ee536b1
commit 95d682119a
3 changed files with 28 additions and 23 deletions

View file

@ -2,24 +2,30 @@
<h1><%= t(".has_commented_on", :display_name => @user.display_name) %></h1>
<% end %>
<table class="table table-striped" width="100%">
<thead>
<tr>
<th width="25%"><%= t ".post" %></th>
<th width="25%"><%= t ".when" %></th>
<th width="50%"><%= t ".comment" %></th>
</tr>
</thead>
<% @comments.each do |comment| -%>
<tr class="<%= "text-muted" unless comment.visible? %>">
<td width="25%"><%= link_to comment.diary_entry.title, diary_entry_path(comment.diary_entry.user, comment.diary_entry) %></td>
<td width="25%"><span title="<%= l comment.created_at, :format => :friendly %>"><%= time_ago_in_words(comment.created_at, :scope => :'datetime.distance_in_words_ago') %></span></td>
<td width="50%" class="richtext text-break"><%= comment.body.to_html %></td>
</tr>
<% end -%>
</table>
<% if @comments.empty? %>
<h4><%= t ".no_comments" %></h4>
<div class='secondary-actions clearfix'>
<span><%= link_to t(".older_comments"), :page => @comment_pages.current.next if @comment_pages.current.next %>
<%= link_to t(".newer_comments"), :page => @comment_pages.current.previous if @comment_pages.current.previous %></span>
</div>
<% else %>
<table class="table table-striped" width="100%">
<thead>
<tr>
<th width="25%"><%= t ".post" %></th>
<th width="25%"><%= t ".when" %></th>
<th width="50%"><%= t ".comment" %></th>
</tr>
</thead>
<% @comments.each do |comment| -%>
<tr class="<%= "text-muted" unless comment.visible? %>">
<td width="25%"><%= link_to comment.diary_entry.title, diary_entry_path(comment.diary_entry.user, comment.diary_entry) %></td>
<td width="25%"><span title="<%= l comment.created_at, :format => :friendly %>"><%= time_ago_in_words(comment.created_at, :scope => :'datetime.distance_in_words_ago') %></span></td>
<td width="50%" class="richtext text-break"><%= comment.body.to_html %></td>
</tr>
<% end -%>
</table>
<div class='secondary-actions clearfix'>
<span><%= link_to t(".older_comments"), :page => @comment_pages.current.next if @comment_pages.current.next %>
<%= link_to t(".newer_comments"), :page => @comment_pages.current.previous if @comment_pages.current.previous %></span>
</div>
<% end -%>

View file

@ -474,6 +474,7 @@ en:
description: "Recent diary entries from users of OpenStreetMap"
comments:
has_commented_on: "%{display_name} has commented on the following diary entries"
no_comments: "No diary comments"
post: Post
when: When
comment: Comment

View file

@ -848,9 +848,7 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest
get diary_comments_path(:display_name => user.display_name)
assert_response :success
assert_template :comments
assert_select "table.table-striped" do
assert_select "tr", :count => 1 # header, no comments
end
assert_select "h4", :html => "No diary comments"
# Test a user with a comment
create(:diary_comment, :user => other_user)