feat(member-live): sort the composite Member column by first or last name
This commit is contained in:
parent
ca2aaa069c
commit
f7005f395f
11 changed files with 443 additions and 34 deletions
|
|
@ -254,12 +254,19 @@ defmodule MvWeb.MemberLive.Index.OverviewQuery do
|
|||
defp apply_sort(query, nil, _order, _custom_fields), do: Ash.Query.sort(query, id: :asc)
|
||||
defp apply_sort(query, _field, nil, _custom_fields), do: Ash.Query.sort(query, id: :asc)
|
||||
|
||||
# Composite "Member" column: sort by last name then first name. The email that
|
||||
# shares the cell is display-only and does not affect the sort key (§1.21).
|
||||
defp apply_sort(query, field, order, _custom_fields) when field in [:name, "name"] do
|
||||
# Composite "Member" column sub-fields (§1.21). Sorting by one name part uses
|
||||
# the other name part (then id) as a stable tie-breaker; the email that shares
|
||||
# the cell is display-only and never a sort key. Shared by the composite
|
||||
# sub-field menu and the separate first/last-name columns.
|
||||
defp apply_sort(query, field, order, _custom_fields) when field in [:last_name, "last_name"] do
|
||||
Ash.Query.sort(query, [{:last_name, order}, {:first_name, order}, {:id, :asc}])
|
||||
end
|
||||
|
||||
defp apply_sort(query, field, order, _custom_fields)
|
||||
when field in [:first_name, "first_name"] do
|
||||
Ash.Query.sort(query, [{:first_name, order}, {:last_name, order}, {:id, :asc}])
|
||||
end
|
||||
|
||||
# Composite "Address" column: sort by city, then postal code, then street.
|
||||
defp apply_sort(query, field, order, _custom_fields) when field in [:address, "address"] do
|
||||
Ash.Query.sort(query, [
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue