Implement dropdown to show/hide columns in member overview closes #209 #240

Merged
moritz merged 28 commits from feature/209_hide_field_dropdown into main 2025-12-03 19:01:15 +01:00
Showing only changes of commit fabfe64468 - Show all commits

View file

@ -45,13 +45,13 @@ defmodule MvWeb.Components.FieldVisibilityDropdownComponent do
custom_fields = assigns.custom_fields || []
all_items =
Enum.map(member_fields(all_fields), fn field ->
Enum.map(extract_member_field_keys(all_fields), fn field ->
%{
value: field_to_string(field),
label: format_field_label(field)
}
end) ++
Enum.map(custom_fields(all_fields), fn field ->
Enum.map(extract_custom_field_keys(all_fields), fn field ->
%{
value: field,
label: format_custom_field_label(field, custom_fields)
@ -128,18 +128,18 @@ defmodule MvWeb.Components.FieldVisibilityDropdownComponent do
# HELPERS (with defensive nil guards)
# ---------------------------------------------------------------------------
defp member_fields(nil), do: []
defp extract_member_field_keys(nil), do: []
defp member_fields(fields) do
defp extract_member_field_keys(fields) do
Enum.filter(fields, fn field ->
is_atom(field) ||
(is_binary(field) && not String.starts_with?(field, "custom_field_"))
end)
end
defp custom_fields(nil), do: []
defp extract_custom_field_keys(nil), do: []
defp custom_fields(fields) do
defp extract_custom_field_keys(fields) do
Enum.filter(fields, fn field ->
is_binary(field) && String.starts_with?(field, "custom_field_")
end)