Replace submitted note table color with created/resolved
This commit is contained in:
parent
847d2c544b
commit
78c2752670
6 changed files with 92 additions and 10 deletions
|
@ -64,7 +64,13 @@ time[title] {
|
||||||
.table-success {
|
.table-success {
|
||||||
--bs-table-bg: rgb(var(--bs-success-rgb), .25);
|
--bs-table-bg: rgb(var(--bs-success-rgb), .25);
|
||||||
}
|
}
|
||||||
.table-primary, .table-secondary, .table-success {
|
.table-warning {
|
||||||
|
--bs-table-bg: rgb(var(--bs-warning-rgb), .25);
|
||||||
|
}
|
||||||
|
.table-danger {
|
||||||
|
--bs-table-bg: rgb(var(--bs-danger-rgb), .25);
|
||||||
|
}
|
||||||
|
.table-primary, .table-secondary, .table-success, .table-warning, .table-danger {
|
||||||
--bs-table-color: initial;
|
--bs-table-color: initial;
|
||||||
border-color: inherit;
|
border-color: inherit;
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,4 +32,17 @@ module NoteHelper
|
||||||
:class => "mw-100 d-inline-block align-bottom text-truncate text-wrap", :dir => "auto"
|
:class => "mw-100 d-inline-block align-bottom text-truncate text-wrap", :dir => "auto"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def note_list_row_class(note, user)
|
||||||
|
opened_by_user = note.author == user
|
||||||
|
closed_by_user = note.comments.last&.author == user && note.comments.last&.event == "closed"
|
||||||
|
|
||||||
|
if opened_by_user && closed_by_user
|
||||||
|
"table-warning"
|
||||||
|
elsif opened_by_user
|
||||||
|
"table-danger"
|
||||||
|
elsif closed_by_user
|
||||||
|
"table-success"
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
<% content_for :heading do %>
|
<% content_for :heading do %>
|
||||||
<h1><%= t ".heading", :user => @user.display_name %></h1>
|
<h1><%= t ".heading", :user => @user.display_name %></h1>
|
||||||
<p><%= t ".subheading_html",
|
<p class="lh-lg"><%= t ".legend_html",
|
||||||
:user => link_to(@user.display_name, @user),
|
:user => link_to(@user.display_name, @user),
|
||||||
:submitted => tag.span(t(".subheading_submitted"), :class => "px-2 py-1 bg-primary bg-opacity-25"),
|
:created => tag.span(t(".legend_created"), :class => "px-2 py-1 bg-danger bg-opacity-25"),
|
||||||
:commented => tag.span(t(".subheading_commented"), :class => "px-2 py-1 bg-body") %></p>
|
:created_and_resolved => tag.span(t(".legend_created_and_resolved"), :class => "px-2 py-1 bg-warning bg-opacity-25"),
|
||||||
|
:resolved => tag.span(t(".legend_resolved"), :class => "px-2 py-1 bg-success bg-opacity-25"),
|
||||||
|
:interacted => tag.span(t(".legend_interacted"), :class => "px-2 py-1 bg-body") %></p>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= form_with :url => user_notes_path(@user), :method => :get, :data => { :turbo => true } do %>
|
<%= form_with :url => user_notes_path(@user), :method => :get, :data => { :turbo => true } do %>
|
||||||
|
@ -38,7 +40,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<% @notes.each do |note| -%>
|
<% @notes.each do |note| -%>
|
||||||
<tr<% if note.author == @user %> class="table-primary"<% end %>>
|
<%= tag.tr :class => note_list_row_class(note, @user) do %>
|
||||||
<td>
|
<td>
|
||||||
<% if note.closed? %>
|
<% if note.closed? %>
|
||||||
<%= image_tag("closed_note_marker.svg", :alt => "closed", :width => 25, :height => 40) %>
|
<%= image_tag("closed_note_marker.svg", :alt => "closed", :width => 25, :height => 40) %>
|
||||||
|
@ -51,7 +53,7 @@
|
||||||
<td><%= note_description(note.author, note.description, current_user&.moderator? ? note.comments.unscope(:where => :visible).first : note.comments.first).to_html %></td>
|
<td><%= note_description(note.author, note.description, current_user&.moderator? ? note.comments.unscope(:where => :visible).first : note.comments.first).to_html %></td>
|
||||||
<td><%= friendly_date_ago(note.created_at) %></td>
|
<td><%= friendly_date_ago(note.created_at) %></td>
|
||||||
<td><%= friendly_date_ago(note.updated_at) %></td>
|
<td><%= friendly_date_ago(note.updated_at) %></td>
|
||||||
</tr>
|
<% end %>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|
|
@ -3083,9 +3083,11 @@ en:
|
||||||
index:
|
index:
|
||||||
title: "Notes submitted or commented on by %{user}"
|
title: "Notes submitted or commented on by %{user}"
|
||||||
heading: "%{user}'s Notes"
|
heading: "%{user}'s Notes"
|
||||||
subheading_html: "Notes %{submitted} or %{commented} by %{user}"
|
legend_html: "Notes %{created}, %{created_and_resolved}, %{resolved} or %{interacted} by %{user}"
|
||||||
subheading_submitted: "submitted"
|
legend_created: "created"
|
||||||
subheading_commented: "commented on"
|
legend_created_and_resolved: "created and resolved"
|
||||||
|
legend_resolved: "resolved"
|
||||||
|
legend_interacted: "with other interactions"
|
||||||
no_notes: No notes
|
no_notes: No notes
|
||||||
id: "Id"
|
id: "Id"
|
||||||
creator: "Creator"
|
creator: "Creator"
|
||||||
|
|
|
@ -67,6 +67,17 @@ class NotesControllerTest < ActionDispatch::IntegrationTest
|
||||||
assert_response :not_found
|
assert_response :not_found
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_index_interaction_created_and_resolved
|
||||||
|
user = create(:user)
|
||||||
|
note = create(:note)
|
||||||
|
create(:note_comment, :note => note, :author => user)
|
||||||
|
create(:note_comment, :note => note, :author => user, :event => "closed")
|
||||||
|
|
||||||
|
get user_notes_path(user)
|
||||||
|
assert_response :success
|
||||||
|
assert_dom "table.note_list tbody tr:not(.table-danger).table-warning:not(.table-success)", :count => 1
|
||||||
|
end
|
||||||
|
|
||||||
def test_index_paged
|
def test_index_paged
|
||||||
user = create(:user)
|
user = create(:user)
|
||||||
|
|
||||||
|
|
|
@ -47,4 +47,52 @@ class NoteHelperTest < ActionView::TestCase
|
||||||
assert_dom "> @href", "http://test.host/user/#{ERB::Util.u(user.display_name)}"
|
assert_dom "> @href", "http://test.host/user/#{ERB::Util.u(user.display_name)}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_note_list_row_class_created
|
||||||
|
user = create(:user)
|
||||||
|
note = create(:note)
|
||||||
|
create(:note_comment, :note => note, :author => user)
|
||||||
|
|
||||||
|
assert_equal "table-danger", note_list_row_class(note, user)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_note_list_row_class_created_and_resolved
|
||||||
|
user = create(:user)
|
||||||
|
note = create(:note)
|
||||||
|
create(:note_comment, :note => note, :author => user)
|
||||||
|
create(:note_comment, :note => note, :author => user, :event => "closed")
|
||||||
|
|
||||||
|
assert_equal "table-warning", note_list_row_class(note, user)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_note_list_row_class_resolved
|
||||||
|
user = create(:user)
|
||||||
|
other_user = create(:user)
|
||||||
|
note = create(:note)
|
||||||
|
create(:note_comment, :note => note, :author => other_user)
|
||||||
|
create(:note_comment, :note => note, :author => user, :event => "closed")
|
||||||
|
|
||||||
|
assert_equal "table-success", note_list_row_class(note, user)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_note_list_row_class_resolved_and_reopened_by_other_user
|
||||||
|
user = create(:user)
|
||||||
|
other_user = create(:user)
|
||||||
|
note = create(:note)
|
||||||
|
create(:note_comment, :note => note, :author => other_user)
|
||||||
|
create(:note_comment, :note => note, :author => user, :event => "closed")
|
||||||
|
create(:note_comment, :note => note, :author => other_user, :event => "reopened")
|
||||||
|
|
||||||
|
assert_nil note_list_row_class(note, user)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_note_list_row_class_commented
|
||||||
|
user = create(:user)
|
||||||
|
other_user = create(:user)
|
||||||
|
note = create(:note)
|
||||||
|
create(:note_comment, :note => note, :author => other_user)
|
||||||
|
create(:note_comment, :note => note, :author => user, :event => "commented")
|
||||||
|
|
||||||
|
assert_nil note_list_row_class(note, user)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue