]> git.openstreetmap.org Git - rails.git/blob - app/views/changesets/_changeset_line.html.erb
Show created/modified/deleted counts in changeset line if available
[rails.git] / app / views / changesets / _changeset_line.html.erb
1 <%# locals: (changeset:, show_num_changes: true, show_num_comments: true) %>
2 <div class="changeset_line d-flex gap-2 align-items-center">
3   <span class="me-auto">
4     <%= yield %>
5   </span>
6
7   <% if show_num_changes %>
8     <% if changeset.num_type_changes_in_sync? %>
9       <span class="d-flex rounded overflow-hidden lh-sm text-body-emphasis">
10         <%= tag.span :class => ["px-1 bg-success bg-opacity-50",
11                                 { "text-body-secondary" => changeset.num_created_elements.zero? }],
12                      :title => t(".n_elements_created", :count => changeset.num_created_elements) do %>
13           <%= changeset.num_created_elements %>
14         <% end %>
15         <%= tag.span :class => ["px-1 bg-warning bg-opacity-50",
16                                 { "text-body-secondary" => changeset.num_modified_elements.zero? }],
17                      :title => t(".n_elements_modified", :count => changeset.num_modified_elements) do %>
18           <%= changeset.num_modified_elements %>
19         <% end %>
20         <%= tag.span :class => ["px-1 bg-danger bg-opacity-50",
21                                 { "text-body-secondary" => changeset.num_deleted_elements.zero? }],
22                      :title => t(".n_elements_deleted", :count => changeset.num_deleted_elements) do %>
23           <%= changeset.num_deleted_elements %>
24         <% end %>
25       </span>
26     <% else %>
27       <% num_changes = changeset.num_changes %>
28       <%= tag.span :class => ["d-flex align-items-baseline gap-1", { "opacity-50" => num_changes.zero? }],
29                    :title => t(".changes", :count => num_changes) do %>
30         <%= num_changes %>
31         <svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor">
32           <path d="M12.146.146a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1 0 .708l-10 10a.5.5 0 0 1-.168.11l-5 2a.5.5 0 0 1-.65-.65l2-5a.5.5 0 0 1 .11-.168zM11.207 2.5 13.5 4.793 14.793 3.5 12.5 1.207zm1.586 3L10.5 3.207 4 9.707V10h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.293zm-9.761 5.175-.106.106-1.528 3.821 3.821-1.528.106-.106A.5.5 0 0 1 5 12.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.468-.325" />
33         </svg>
34       <% end %>
35     <% end %>
36   <% end %>
37
38   <% if show_num_comments %>
39     <% num_comments = changeset.comments.length %>
40     <%= tag.span :class => ["changeset_num_comments d-flex align-items-baseline gap-1 justify-content-end", { "opacity-50" => num_comments.zero? }],
41                  :title => t(".comments", :count => num_comments) do %>
42       <%= num_comments %>
43       <svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor">
44         <% if num_comments.zero? %>
45           <path d="M2.678 11.894a1 1 0 0 1 .287.801 11 11 0 0 1-.398 2c1.395-.323 2.247-.697 2.634-.893a1 1 0 0 1 .71-.074A8 8 0 0 0 8 14c3.996 0 7-2.807 7-6s-3.004-6-7-6-7 2.808-7 6c0 1.468.617 2.83 1.678 3.894m-.493 3.905a22 22 0 0 1-.713.129c-.2.032-.352-.176-.273-.362a10 10 0 0 0 .244-.637l.003-.01c.248-.72.45-1.548.524-2.319C.743 11.37 0 9.76 0 8c0-3.866 3.582-7 8-7s8 3.134 8 7-3.582 7-8 7a9 9 0 0 1-2.347-.306c-.52.263-1.639.742-3.468 1.105" />
46         <% else %>
47           <path d="M8 15c4.418 0 8-3.134 8-7s-3.582-7-8-7-8 3.134-8 7c0 1.76.743 3.37 1.97 4.6-.097 1.016-.417 2.13-.771 2.966-.079.186.074.394.273.362 2.256-.37 3.597-.938 4.18-1.234A9 9 0 0 0 8 15" />
48         <% end %>
49       </svg>
50     <% end %>
51   <% end %>
52 </div>