Show squads first in issue assignee picker
This commit is contained in:
@@ -453,6 +453,17 @@ private fun pilotMentionOptions(
|
||||
.map { PilotMentionOption(it.id, it.type, it.name) }
|
||||
}
|
||||
|
||||
private fun pilotIssueFormAssigneeOptions(
|
||||
emptyLabel: String,
|
||||
currentUser: Models.User?,
|
||||
members: List<Models.Member>,
|
||||
agents: List<Models.Agent>,
|
||||
squads: List<Models.Squad>,
|
||||
): List<PilotMentionOption> {
|
||||
return Models.issueFormAssigneeOptions(emptyLabel, currentUser, members, agents, squads)
|
||||
.map { PilotMentionOption(it.id, it.type, it.name) }
|
||||
}
|
||||
|
||||
private fun pilotMentionTypeLabel(type: String?, zh: Boolean): String = when (type) {
|
||||
"member" -> if (zh) "人" else "Person"
|
||||
"agent" -> "Agent"
|
||||
@@ -6877,8 +6888,7 @@ private fun PilotIssueForm(
|
||||
)
|
||||
else -> {
|
||||
val options = loaded.getOrThrow()
|
||||
val assignees = pilotMentionOptions(
|
||||
true,
|
||||
val assignees = pilotIssueFormAssigneeOptions(
|
||||
if (zh) "未分配" else "Unassigned",
|
||||
session.user,
|
||||
options.members,
|
||||
|
||||
@@ -230,6 +230,31 @@ final class Models {
|
||||
return list;
|
||||
}
|
||||
|
||||
static List<Assignee> issueFormAssigneeOptions(String emptyLabel, User currentUser,
|
||||
List<Member> members, List<Agent> agents, List<Squad> squads) {
|
||||
List<Assignee> list = new ArrayList<>();
|
||||
list.add(new Assignee(null, null, emptyLabel));
|
||||
for (Squad squad : squads) {
|
||||
if (squad.id == null || squad.id.isEmpty()) continue;
|
||||
list.add(new Assignee(squad.id, "squad", squad.name));
|
||||
}
|
||||
for (Agent agent : agents) {
|
||||
if (agent.id == null || agent.id.isEmpty()) continue;
|
||||
list.add(new Assignee(agent.id, "agent", agent.name));
|
||||
}
|
||||
List<String> seenMemberIds = new ArrayList<>();
|
||||
if (currentUser != null && currentUser.id != null && !currentUser.id.isEmpty()) {
|
||||
list.add(new Assignee(currentUser.id, "member", currentUser.name));
|
||||
seenMemberIds.add(currentUser.id);
|
||||
}
|
||||
for (Member member : members) {
|
||||
if (member.id == null || member.id.isEmpty() || seenMemberIds.contains(member.id)) continue;
|
||||
list.add(new Assignee(member.id, "member", member.displayName));
|
||||
seenMemberIds.add(member.id);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
static final class Page<T> {
|
||||
final List<T> items;
|
||||
final boolean hasMore;
|
||||
|
||||
Reference in New Issue
Block a user