Merge pull request #1722 from basecamp/fwt-user-list-improvement

Prioritize current user and assigned users in assignment dropdown
This commit is contained in:
Mike Dalessio
2025-11-25 14:36:14 -05:00
committed by GitHub
3 changed files with 14 additions and 9 deletions
@@ -2,7 +2,8 @@ class Cards::AssignmentsController < ApplicationController
include CardScoped
def new
@users = @board.users.active.alphabetically
@assigned_to = @card.assignees.active.alphabetically.where.not(id: Current.user)
@users = @board.users.active.alphabetically.where.not(id: @card.assignees).where.not(id: Current.user)
fresh_when etag: [ @users, @card.assignees ]
end
@@ -0,0 +1,8 @@
<li class="popup__item" data-filter-target="item" data-navigable-list-target="item" aria-checked="<%= card.assignees.include?(user) %>">
<%= button_to card_assignments_path(card, params: { assignee_id: user.id }), method: :post,
class: "popup__btn btn", form_class: "max-width flex-item-grow" do %>
<span class="overflow-ellipsis flex-item-grow"><%= local_assigns.fetch(:user_label, user.name) %></span>
<%= yield if block_given? %>
<%= icon_tag "check", size: 18, class: "checked flex-item-no-shrink flex-item-justify-end", style: "--icon-size: 1em" %>
<% end %>
</li>
+4 -8
View File
@@ -15,15 +15,11 @@
type: "search", autocorrect: "off", autocomplete: "off", data: { "1p-ignore": "true", filter_target: "input", action: "input->filter#filter" } %>
<ul class="popup__list" data-filter-target="list">
<% @users.each do |user| %>
<li class="popup__item" data-filter-target="item" data-navigable-list-target="item" aria-checked="<%= @card.assignees.include?(user) %>">
<%= button_to card_assignments_path(@card, params: { assignee_id: user.id }), method: :post,
class: "popup__btn btn", form_class: "max-width flex-item-grow" do %>
<span class="overflow-ellipsis flex-item-grow"><%= user.name %></span>
<%= icon_tag "check", size: 18, class: "checked flex-item-no-shrink flex-item-justify-end", style: "--icon-size: 1em" %>
<% end %>
</li>
<%= render "user", card: @card, user: Current.user, user_label: "Me" do %>
<span class="visually-hidden"><%= Current.user.name %></span>
<% end %>
<%= render collection: @assigned_to, partial: "user", locals: { card: @card } %>
<%= render collection: @users, partial: "user", locals: { card: @card } %>
</ul>
<% end %>
<% end %>