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) }
|
.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) {
|
private fun pilotMentionTypeLabel(type: String?, zh: Boolean): String = when (type) {
|
||||||
"member" -> if (zh) "人" else "Person"
|
"member" -> if (zh) "人" else "Person"
|
||||||
"agent" -> "Agent"
|
"agent" -> "Agent"
|
||||||
@@ -6877,8 +6888,7 @@ private fun PilotIssueForm(
|
|||||||
)
|
)
|
||||||
else -> {
|
else -> {
|
||||||
val options = loaded.getOrThrow()
|
val options = loaded.getOrThrow()
|
||||||
val assignees = pilotMentionOptions(
|
val assignees = pilotIssueFormAssigneeOptions(
|
||||||
true,
|
|
||||||
if (zh) "未分配" else "Unassigned",
|
if (zh) "未分配" else "Unassigned",
|
||||||
session.user,
|
session.user,
|
||||||
options.members,
|
options.members,
|
||||||
|
|||||||
@@ -230,6 +230,31 @@ final class Models {
|
|||||||
return list;
|
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> {
|
static final class Page<T> {
|
||||||
final List<T> items;
|
final List<T> items;
|
||||||
final boolean hasMore;
|
final boolean hasMore;
|
||||||
|
|||||||
Reference in New Issue
Block a user