Compare commits

..

4 commits

Author SHA1 Message Date
b34d5ec99f
Move custom fields to global admin settings
Some checks reported errors
continuous-integration/drone/push Build was killed
2025-12-03 14:31:09 +01:00
09c75212b2
chore: add remove-gettext-conflicts to Justfile
All checks were successful
continuous-integration/drone/push Build is passing
2025-12-03 13:46:55 +01:00
0cafdbafcd Merge pull request 'Fix mailto email formatting' (#243) from fix_mailto into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #243
2025-12-03 12:36:50 +01:00
125f9ae77b
fix: mailto formatting
All checks were successful
continuous-integration/drone/push Build is passing
2025-12-03 10:14:57 +01:00
6 changed files with 135 additions and 124 deletions

View file

@ -84,4 +84,10 @@ regen-migrations migration_name commit_hash='':
clean:
mix clean
rm -rf .elixir_ls
rm -rf _build
rm -rf _build
# Remove Git merge conflict markers from gettext files
remove-gettext-conflicts:
#!/usr/bin/env bash
set -euo pipefail
find priv/gettext -type f -exec sed -i '/^<<<<<<< HEAD$/d; /^=======$/d; /^>>>>>>>/d' {} \;

View file

@ -137,13 +137,7 @@ defmodule MvWeb.MemberLive.Index do
selected_ids = socket.assigns.selected_members
# Filter members that are in the selection and have email addresses
formatted_emails =
socket.assigns.members
|> Enum.filter(fn member ->
MapSet.member?(selected_ids, member.id) && member.email && member.email != ""
end)
|> Enum.map(&format_member_email/1)
formatted_emails = format_selected_member_emails(socket.assigns.members, selected_ids)
email_count = length(formatted_emails)
cond do
@ -887,9 +881,20 @@ defmodule MvWeb.MemberLive.Index do
end
end
# Filters selected members with email addresses and formats them.
# Returns a list of formatted email strings in the format "First Last <email>".
# Used by both copy_emails and mailto links.
def format_selected_member_emails(members, selected_members) do
members
|> Enum.filter(fn member ->
MapSet.member?(selected_members, member.id) && member.email && member.email != ""
end)
|> Enum.map(&format_member_email/1)
end
# Formats a member's email in the format "First Last <email>"
# Used for copy_emails feature to create email-client-friendly format.
defp format_member_email(member) do
# Used for copy_emails feature and mailto links to create email-client-friendly format.
def format_member_email(member) do
first_name = member.first_name || ""
last_name = member.last_name || ""

View file

@ -14,7 +14,12 @@
</.button>
<.button
:if={Enum.any?(@members, &MapSet.member?(@selected_members, &1.id))}
href={"mailto:?bcc=#{@members |> Enum.filter(&(MapSet.member?(@selected_members, &1.id) && &1.email)) |> Enum.map(& &1.email) |> Enum.join(",")}"}
href={
"mailto:?bcc=" <>
(MvWeb.MemberLive.Index.format_selected_member_emails(@members, @selected_members)
|> Enum.join(", ")
|> URI.encode())
}
aria-label={gettext("Open email program with BCC recipients")}
>
<.icon name="hero-envelope" />

View file

@ -15,7 +15,7 @@ msgstr ""
msgid "Actions"
msgstr "Aktionen"
#: lib/mv_web/live/member_live/index.html.heex:243
#: lib/mv_web/live/member_live/index.html.heex:248
#: lib/mv_web/live/user_live/index.html.heex:72
#, elixir-autogen, elixir-format
msgid "Are you sure?"
@ -28,21 +28,21 @@ msgid "Attempting to reconnect"
msgstr "Verbindung wird wiederhergestellt"
#: lib/mv_web/live/member_live/form.ex:53
#: lib/mv_web/live/member_live/index.html.heex:179
#: lib/mv_web/live/member_live/index.html.heex:184
#: lib/mv_web/live/member_live/show.ex:58
#, elixir-autogen, elixir-format
msgid "City"
msgstr "Stadt"
#: lib/mv_web/live/custom_field_live/index_component.ex:82
#: lib/mv_web/live/member_live/index.html.heex:245
#: lib/mv_web/live/member_live/index.html.heex:250
#: lib/mv_web/live/user_live/index.html.heex:74
#, elixir-autogen, elixir-format
msgid "Delete"
msgstr "Löschen"
#: lib/mv_web/live/custom_field_live/index_component.ex:76
#: lib/mv_web/live/member_live/index.html.heex:237
#: lib/mv_web/live/member_live/index.html.heex:242
#: lib/mv_web/live/user_live/form.ex:265
#: lib/mv_web/live/user_live/index.html.heex:66
#, elixir-autogen, elixir-format
@ -56,7 +56,7 @@ msgid "Edit Member"
msgstr "Mitglied bearbeiten"
#: lib/mv_web/live/member_live/form.ex:47
#: lib/mv_web/live/member_live/index.html.heex:107
#: lib/mv_web/live/member_live/index.html.heex:112
#: lib/mv_web/live/member_live/show.ex:50
#: lib/mv_web/live/user_live/form.ex:46
#: lib/mv_web/live/user_live/index.html.heex:44
@ -72,7 +72,7 @@ msgid "First Name"
msgstr "Vorname"
#: lib/mv_web/live/member_live/form.ex:50
#: lib/mv_web/live/member_live/index.html.heex:215
#: lib/mv_web/live/member_live/index.html.heex:220
#: lib/mv_web/live/member_live/show.ex:55
#, elixir-autogen, elixir-format
msgid "Join Date"
@ -84,12 +84,12 @@ msgstr "Beitrittsdatum"
msgid "Last Name"
msgstr "Nachname"
#: lib/mv_web/live/member_live/index.html.heex:24
#: lib/mv_web/live/member_live/index.html.heex:29
#, elixir-autogen, elixir-format
msgid "New Member"
msgstr "Neues Mitglied"
#: lib/mv_web/live/member_live/index.html.heex:234
#: lib/mv_web/live/member_live/index.html.heex:239
#: lib/mv_web/live/user_live/index.html.heex:63
#, elixir-autogen, elixir-format
msgid "Show"
@ -117,7 +117,7 @@ msgid "Exit Date"
msgstr "Austrittsdatum"
#: lib/mv_web/live/member_live/form.ex:55
#: lib/mv_web/live/member_live/index.html.heex:143
#: lib/mv_web/live/member_live/index.html.heex:148
#: lib/mv_web/live/member_live/show.ex:60
#, elixir-autogen, elixir-format
msgid "House Number"
@ -132,21 +132,21 @@ msgstr "Notizen"
#: lib/mv_web/live/components/payment_filter_component.ex:94
#: lib/mv_web/live/components/payment_filter_component.ex:144
#: lib/mv_web/live/member_live/form.ex:48
#: lib/mv_web/live/member_live/index.html.heex:224
#: lib/mv_web/live/member_live/index.html.heex:229
#: lib/mv_web/live/member_live/show.ex:51
#, elixir-autogen, elixir-format
msgid "Paid"
msgstr "Bezahlt"
#: lib/mv_web/live/member_live/form.ex:49
#: lib/mv_web/live/member_live/index.html.heex:197
#: lib/mv_web/live/member_live/index.html.heex:202
#: lib/mv_web/live/member_live/show.ex:54
#, elixir-autogen, elixir-format
msgid "Phone Number"
msgstr "Telefonnummer"
#: lib/mv_web/live/member_live/form.ex:56
#: lib/mv_web/live/member_live/index.html.heex:161
#: lib/mv_web/live/member_live/index.html.heex:166
#: lib/mv_web/live/member_live/show.ex:61
#, elixir-autogen, elixir-format
msgid "Postal Code"
@ -159,7 +159,7 @@ msgstr "Mitglied speichern"
#: lib/mv_web/live/custom_field_live/form_component.ex:63
#: lib/mv_web/live/custom_field_value_live/form.ex:74
#: lib/mv_web/live/global_settings_live.ex:61
#: lib/mv_web/live/global_settings_live.ex:60
#: lib/mv_web/live/member_live/form.ex:78
#: lib/mv_web/live/user_live/form.ex:248
#, elixir-autogen, elixir-format
@ -167,7 +167,7 @@ msgid "Saving..."
msgstr "Speichern..."
#: lib/mv_web/live/member_live/form.ex:54
#: lib/mv_web/live/member_live/index.html.heex:125
#: lib/mv_web/live/member_live/index.html.heex:130
#: lib/mv_web/live/member_live/show.ex:59
#, elixir-autogen, elixir-format
msgid "Street"
@ -179,7 +179,7 @@ msgid "Id"
msgstr "ID"
#: lib/mv_web/live/custom_field_live/index_component.ex:68
#: lib/mv_web/live/member_live/index.html.heex:229
#: lib/mv_web/live/member_live/index.html.heex:234
#: lib/mv_web/live/member_live/index/formatter.ex:61
#: lib/mv_web/live/member_live/show.ex:52
#, elixir-autogen, elixir-format
@ -197,7 +197,7 @@ msgid "This is a member record from your database."
msgstr "Dies ist ein Mitglied aus deiner Datenbank."
#: lib/mv_web/live/custom_field_live/index_component.ex:65
#: lib/mv_web/live/member_live/index.html.heex:229
#: lib/mv_web/live/member_live/index.html.heex:234
#: lib/mv_web/live/member_live/index/formatter.ex:60
#: lib/mv_web/live/member_live/show.ex:52
#, elixir-autogen, elixir-format
@ -365,12 +365,12 @@ msgstr "Profil"
msgid "Required"
msgstr "Erforderlich"
#: lib/mv_web/live/member_live/index.html.heex:63
#: lib/mv_web/live/member_live/index.html.heex:68
#, elixir-autogen, elixir-format
msgid "Select all members"
msgstr "Alle Mitglieder auswählen"
#: lib/mv_web/live/member_live/index.html.heex:77
#: lib/mv_web/live/member_live/index.html.heex:82
#, elixir-autogen, elixir-format
msgid "Select member"
msgstr "Mitglied auswählen"
@ -378,7 +378,7 @@ msgstr "Mitglied auswählen"
#: lib/mv_web/components/layouts/navbar.ex:26
#: lib/mv_web/components/layouts/navbar.ex:99
#: lib/mv_web/live/global_settings_live.ex:32
#: lib/mv_web/live/global_settings_live.ex:43
#: lib/mv_web/live/global_settings_live.ex:42
#, elixir-autogen, elixir-format
msgid "Settings"
msgstr "Einstellungen"
@ -559,7 +559,7 @@ msgid "Toggle dark mode"
msgstr "Dunklen Modus umschalten"
#: lib/mv_web/live/components/search_bar_component.ex:15
#: lib/mv_web/live/member_live/index.html.heex:34
#: lib/mv_web/live/member_live/index.html.heex:39
#, elixir-autogen, elixir-format
msgid "Search..."
msgstr "Suchen..."
@ -575,7 +575,7 @@ msgstr "Benutzer*innen"
msgid "Click to sort"
msgstr "Klicke um zu sortieren"
#: lib/mv_web/live/member_live/index.html.heex:89
#: lib/mv_web/live/member_live/index.html.heex:94
#, elixir-autogen, elixir-format
msgid "First name"
msgstr "Vorname"
@ -627,7 +627,7 @@ msgstr "Benutzerdefinierte Feldwerte"
msgid "Custom field"
msgstr "Benutzerdefiniertes Feld"
#: lib/mv_web/live/global_settings_live.ex:108
#: lib/mv_web/live/global_settings_live.ex:105
#, elixir-autogen, elixir-format
msgid "Custom field %{action} successfully"
msgstr "Benutzerdefiniertes Feld erfolgreich %{action}"
@ -699,27 +699,27 @@ msgstr "Um die Löschung zu bestätigen, gib bitte folgenden Text ein:"
msgid "Show in overview"
msgstr "In der Mitglieder-Übersicht anzeigen"
#: lib/mv_web/live/global_settings_live.ex:57
#: lib/mv_web/live/global_settings_live.ex:56
#, elixir-autogen, elixir-format
msgid "Association Name"
msgstr "Vereinsname"
#: lib/mv_web/live/global_settings_live.ex:51
#: lib/mv_web/live/global_settings_live.ex:50
#, elixir-autogen, elixir-format, fuzzy
msgid "Club Settings"
msgstr "Vereinsdaten"
#: lib/mv_web/live/global_settings_live.ex:45
#: lib/mv_web/live/global_settings_live.ex:44
#, elixir-autogen, elixir-format
msgid "Manage global settings for the association."
msgstr "Passe übergreifende Einstellungen für den Verein an."
#: lib/mv_web/live/global_settings_live.ex:62
#: lib/mv_web/live/global_settings_live.ex:61
#, elixir-autogen, elixir-format, fuzzy
msgid "Save Settings"
msgstr "Einstellungen speichern"
#: lib/mv_web/live/global_settings_live.ex:88
#: lib/mv_web/live/global_settings_live.ex:87
#, elixir-autogen, elixir-format
msgid "Settings updated successfully"
msgstr "Einstellungen erfolgreich gespeichert"
@ -774,7 +774,7 @@ msgstr "Mitglied entverknüpfen"
msgid "Unlinking scheduled"
msgstr "Entverknüpfung geplant"
#: lib/mv_web/live/member_live/index.ex:165
#: lib/mv_web/live/member_live/index.ex:159
#, elixir-autogen, elixir-format
msgid "Copied %{count} email address to clipboard"
msgid_plural "Copied %{count} email addresses to clipboard"
@ -791,27 +791,27 @@ msgstr "E-Mail-Adressen der ausgewählten Mitglieder kopieren"
msgid "Copy emails"
msgstr "E-Mails kopieren"
#: lib/mv_web/live/member_live/index.ex:154
#: lib/mv_web/live/member_live/index.ex:148
#, elixir-autogen, elixir-format
msgid "No email addresses found"
msgstr "Keine E-Mail-Adressen gefunden"
#: lib/mv_web/live/member_live/index.ex:151
#: lib/mv_web/live/member_live/index.ex:145
#, elixir-autogen, elixir-format
msgid "No members selected"
msgstr "Keine Mitglieder ausgewählt"
#: lib/mv_web/live/member_live/index.html.heex:18
#: lib/mv_web/live/member_live/index.html.heex:23
#, elixir-autogen, elixir-format
msgid "Open email program with BCC recipients"
msgstr "E-Mail-Programm mit BCC-Empfänger*innen öffnen"
#: lib/mv_web/live/member_live/index.html.heex:21
#: lib/mv_web/live/member_live/index.html.heex:26
#, elixir-autogen, elixir-format
msgid "Open in email program"
msgstr "Im E-Mail-Programm öffnen"
#: lib/mv_web/live/member_live/index.ex:174
#: lib/mv_web/live/member_live/index.ex:168
#, elixir-autogen, elixir-format
msgid "Tip: Paste email addresses into the BCC field for privacy compliance"
msgstr "Tipp: E-Mail-Adressen ins BCC-Feld einfügen für Datenschutzkonformität"
@ -851,7 +851,7 @@ msgstr "Nicht bezahlt"
msgid "Payment filter"
msgstr "Zahlungsfilter"
#: lib/mv_web/live/global_settings_live.ex:118
#: lib/mv_web/live/global_settings_live.ex:110
#, elixir-autogen, elixir-format, fuzzy
msgid "Custom field deleted successfully"
msgstr "Benutzerdefiniertes Feld erfolgreich %{action}"
@ -861,7 +861,7 @@ msgstr "Benutzerdefiniertes Feld erfolgreich %{action}"
msgid "Edit Custom Field"
msgstr "Benutzerdefiniertes Feld bearbeiten"
#: lib/mv_web/live/global_settings_live.ex:127
#: lib/mv_web/live/global_settings_live.ex:119
#, elixir-autogen, elixir-format
msgid "Failed to delete custom field: %{error}"
msgstr "Konnte benutzerdefiniertes Feld nicht löschen: %{error}"
@ -881,7 +881,7 @@ msgstr "Neues Benutzerdefiniertes Feld"
msgid "Show in Overview"
msgstr "In der Mitglieder-Übersicht anzeigen"
#: lib/mv_web/live/global_settings_live.ex:133
#: lib/mv_web/live/global_settings_live.ex:125
#, elixir-autogen, elixir-format
msgid "Slug does not match. Deletion cancelled."
msgstr "Eingegebener Text war nicht korrekt. Löschen wurde abgebrochen."

View file

@ -16,7 +16,7 @@ msgstr ""
msgid "Actions"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:243
#: lib/mv_web/live/member_live/index.html.heex:248
#: lib/mv_web/live/user_live/index.html.heex:72
#, elixir-autogen, elixir-format
msgid "Are you sure?"
@ -29,21 +29,21 @@ msgid "Attempting to reconnect"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:53
#: lib/mv_web/live/member_live/index.html.heex:179
#: lib/mv_web/live/member_live/index.html.heex:184
#: lib/mv_web/live/member_live/show.ex:58
#, elixir-autogen, elixir-format
msgid "City"
msgstr ""
#: lib/mv_web/live/custom_field_live/index_component.ex:82
#: lib/mv_web/live/member_live/index.html.heex:245
#: lib/mv_web/live/member_live/index.html.heex:250
#: lib/mv_web/live/user_live/index.html.heex:74
#, elixir-autogen, elixir-format
msgid "Delete"
msgstr ""
#: lib/mv_web/live/custom_field_live/index_component.ex:76
#: lib/mv_web/live/member_live/index.html.heex:237
#: lib/mv_web/live/member_live/index.html.heex:242
#: lib/mv_web/live/user_live/form.ex:265
#: lib/mv_web/live/user_live/index.html.heex:66
#, elixir-autogen, elixir-format
@ -57,7 +57,7 @@ msgid "Edit Member"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:47
#: lib/mv_web/live/member_live/index.html.heex:107
#: lib/mv_web/live/member_live/index.html.heex:112
#: lib/mv_web/live/member_live/show.ex:50
#: lib/mv_web/live/user_live/form.ex:46
#: lib/mv_web/live/user_live/index.html.heex:44
@ -73,7 +73,7 @@ msgid "First Name"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:50
#: lib/mv_web/live/member_live/index.html.heex:215
#: lib/mv_web/live/member_live/index.html.heex:220
#: lib/mv_web/live/member_live/show.ex:55
#, elixir-autogen, elixir-format
msgid "Join Date"
@ -85,12 +85,12 @@ msgstr ""
msgid "Last Name"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:24
#: lib/mv_web/live/member_live/index.html.heex:29
#, elixir-autogen, elixir-format
msgid "New Member"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:234
#: lib/mv_web/live/member_live/index.html.heex:239
#: lib/mv_web/live/user_live/index.html.heex:63
#, elixir-autogen, elixir-format
msgid "Show"
@ -118,7 +118,7 @@ msgid "Exit Date"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:55
#: lib/mv_web/live/member_live/index.html.heex:143
#: lib/mv_web/live/member_live/index.html.heex:148
#: lib/mv_web/live/member_live/show.ex:60
#, elixir-autogen, elixir-format
msgid "House Number"
@ -133,21 +133,21 @@ msgstr ""
#: lib/mv_web/live/components/payment_filter_component.ex:94
#: lib/mv_web/live/components/payment_filter_component.ex:144
#: lib/mv_web/live/member_live/form.ex:48
#: lib/mv_web/live/member_live/index.html.heex:224
#: lib/mv_web/live/member_live/index.html.heex:229
#: lib/mv_web/live/member_live/show.ex:51
#, elixir-autogen, elixir-format
msgid "Paid"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:49
#: lib/mv_web/live/member_live/index.html.heex:197
#: lib/mv_web/live/member_live/index.html.heex:202
#: lib/mv_web/live/member_live/show.ex:54
#, elixir-autogen, elixir-format
msgid "Phone Number"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:56
#: lib/mv_web/live/member_live/index.html.heex:161
#: lib/mv_web/live/member_live/index.html.heex:166
#: lib/mv_web/live/member_live/show.ex:61
#, elixir-autogen, elixir-format
msgid "Postal Code"
@ -160,7 +160,7 @@ msgstr ""
#: lib/mv_web/live/custom_field_live/form_component.ex:63
#: lib/mv_web/live/custom_field_value_live/form.ex:74
#: lib/mv_web/live/global_settings_live.ex:61
#: lib/mv_web/live/global_settings_live.ex:60
#: lib/mv_web/live/member_live/form.ex:78
#: lib/mv_web/live/user_live/form.ex:248
#, elixir-autogen, elixir-format
@ -168,7 +168,7 @@ msgid "Saving..."
msgstr ""
#: lib/mv_web/live/member_live/form.ex:54
#: lib/mv_web/live/member_live/index.html.heex:125
#: lib/mv_web/live/member_live/index.html.heex:130
#: lib/mv_web/live/member_live/show.ex:59
#, elixir-autogen, elixir-format
msgid "Street"
@ -180,7 +180,7 @@ msgid "Id"
msgstr ""
#: lib/mv_web/live/custom_field_live/index_component.ex:68
#: lib/mv_web/live/member_live/index.html.heex:229
#: lib/mv_web/live/member_live/index.html.heex:234
#: lib/mv_web/live/member_live/index/formatter.ex:61
#: lib/mv_web/live/member_live/show.ex:52
#, elixir-autogen, elixir-format
@ -198,7 +198,7 @@ msgid "This is a member record from your database."
msgstr ""
#: lib/mv_web/live/custom_field_live/index_component.ex:65
#: lib/mv_web/live/member_live/index.html.heex:229
#: lib/mv_web/live/member_live/index.html.heex:234
#: lib/mv_web/live/member_live/index/formatter.ex:60
#: lib/mv_web/live/member_live/show.ex:52
#, elixir-autogen, elixir-format
@ -366,12 +366,12 @@ msgstr ""
msgid "Required"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:63
#: lib/mv_web/live/member_live/index.html.heex:68
#, elixir-autogen, elixir-format
msgid "Select all members"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:77
#: lib/mv_web/live/member_live/index.html.heex:82
#, elixir-autogen, elixir-format
msgid "Select member"
msgstr ""
@ -379,7 +379,7 @@ msgstr ""
#: lib/mv_web/components/layouts/navbar.ex:26
#: lib/mv_web/components/layouts/navbar.ex:99
#: lib/mv_web/live/global_settings_live.ex:32
#: lib/mv_web/live/global_settings_live.ex:43
#: lib/mv_web/live/global_settings_live.ex:42
#, elixir-autogen, elixir-format
msgid "Settings"
msgstr ""
@ -560,7 +560,7 @@ msgid "Toggle dark mode"
msgstr ""
#: lib/mv_web/live/components/search_bar_component.ex:15
#: lib/mv_web/live/member_live/index.html.heex:34
#: lib/mv_web/live/member_live/index.html.heex:39
#, elixir-autogen, elixir-format
msgid "Search..."
msgstr ""
@ -576,7 +576,7 @@ msgstr ""
msgid "Click to sort"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:89
#: lib/mv_web/live/member_live/index.html.heex:94
#, elixir-autogen, elixir-format
msgid "First name"
msgstr ""
@ -628,7 +628,7 @@ msgstr ""
msgid "Custom field"
msgstr ""
#: lib/mv_web/live/global_settings_live.ex:108
#: lib/mv_web/live/global_settings_live.ex:105
#, elixir-autogen, elixir-format
msgid "Custom field %{action} successfully"
msgstr ""
@ -700,27 +700,27 @@ msgstr ""
msgid "Show in overview"
msgstr ""
#: lib/mv_web/live/global_settings_live.ex:57
#: lib/mv_web/live/global_settings_live.ex:56
#, elixir-autogen, elixir-format
msgid "Association Name"
msgstr ""
#: lib/mv_web/live/global_settings_live.ex:51
#: lib/mv_web/live/global_settings_live.ex:50
#, elixir-autogen, elixir-format
msgid "Club Settings"
msgstr ""
#: lib/mv_web/live/global_settings_live.ex:45
#: lib/mv_web/live/global_settings_live.ex:44
#, elixir-autogen, elixir-format
msgid "Manage global settings for the association."
msgstr ""
#: lib/mv_web/live/global_settings_live.ex:62
#: lib/mv_web/live/global_settings_live.ex:61
#, elixir-autogen, elixir-format
msgid "Save Settings"
msgstr ""
#: lib/mv_web/live/global_settings_live.ex:88
#: lib/mv_web/live/global_settings_live.ex:87
#, elixir-autogen, elixir-format
msgid "Settings updated successfully"
msgstr ""
@ -775,7 +775,7 @@ msgstr ""
msgid "Unlinking scheduled"
msgstr ""
#: lib/mv_web/live/member_live/index.ex:165
#: lib/mv_web/live/member_live/index.ex:159
#, elixir-autogen, elixir-format
msgid "Copied %{count} email address to clipboard"
msgid_plural "Copied %{count} email addresses to clipboard"
@ -792,27 +792,27 @@ msgstr ""
msgid "Copy emails"
msgstr ""
#: lib/mv_web/live/member_live/index.ex:154
#: lib/mv_web/live/member_live/index.ex:148
#, elixir-autogen, elixir-format
msgid "No email addresses found"
msgstr ""
#: lib/mv_web/live/member_live/index.ex:151
#: lib/mv_web/live/member_live/index.ex:145
#, elixir-autogen, elixir-format
msgid "No members selected"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:18
#: lib/mv_web/live/member_live/index.html.heex:23
#, elixir-autogen, elixir-format
msgid "Open email program with BCC recipients"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:21
#: lib/mv_web/live/member_live/index.html.heex:26
#, elixir-autogen, elixir-format
msgid "Open in email program"
msgstr ""
#: lib/mv_web/live/member_live/index.ex:174
#: lib/mv_web/live/member_live/index.ex:168
#, elixir-autogen, elixir-format
msgid "Tip: Paste email addresses into the BCC field for privacy compliance"
msgstr ""
@ -852,7 +852,7 @@ msgstr ""
msgid "Payment filter"
msgstr ""
#: lib/mv_web/live/global_settings_live.ex:118
#: lib/mv_web/live/global_settings_live.ex:110
#, elixir-autogen, elixir-format
msgid "Custom field deleted successfully"
msgstr ""
@ -862,7 +862,7 @@ msgstr ""
msgid "Edit Custom Field"
msgstr ""
#: lib/mv_web/live/global_settings_live.ex:127
#: lib/mv_web/live/global_settings_live.ex:119
#, elixir-autogen, elixir-format
msgid "Failed to delete custom field: %{error}"
msgstr ""
@ -882,7 +882,7 @@ msgstr ""
msgid "Show in Overview"
msgstr ""
#: lib/mv_web/live/global_settings_live.ex:133
#: lib/mv_web/live/global_settings_live.ex:125
#, elixir-autogen, elixir-format
msgid "Slug does not match. Deletion cancelled."
msgstr ""

View file

@ -16,7 +16,7 @@ msgstr ""
msgid "Actions"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:243
#: lib/mv_web/live/member_live/index.html.heex:248
#: lib/mv_web/live/user_live/index.html.heex:72
#, elixir-autogen, elixir-format
msgid "Are you sure?"
@ -29,21 +29,21 @@ msgid "Attempting to reconnect"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:53
#: lib/mv_web/live/member_live/index.html.heex:179
#: lib/mv_web/live/member_live/index.html.heex:184
#: lib/mv_web/live/member_live/show.ex:58
#, elixir-autogen, elixir-format
msgid "City"
msgstr ""
#: lib/mv_web/live/custom_field_live/index_component.ex:82
#: lib/mv_web/live/member_live/index.html.heex:245
#: lib/mv_web/live/member_live/index.html.heex:250
#: lib/mv_web/live/user_live/index.html.heex:74
#, elixir-autogen, elixir-format
msgid "Delete"
msgstr ""
#: lib/mv_web/live/custom_field_live/index_component.ex:76
#: lib/mv_web/live/member_live/index.html.heex:237
#: lib/mv_web/live/member_live/index.html.heex:242
#: lib/mv_web/live/user_live/form.ex:265
#: lib/mv_web/live/user_live/index.html.heex:66
#, elixir-autogen, elixir-format
@ -57,7 +57,7 @@ msgid "Edit Member"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:47
#: lib/mv_web/live/member_live/index.html.heex:107
#: lib/mv_web/live/member_live/index.html.heex:112
#: lib/mv_web/live/member_live/show.ex:50
#: lib/mv_web/live/user_live/form.ex:46
#: lib/mv_web/live/user_live/index.html.heex:44
@ -73,7 +73,7 @@ msgid "First Name"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:50
#: lib/mv_web/live/member_live/index.html.heex:215
#: lib/mv_web/live/member_live/index.html.heex:220
#: lib/mv_web/live/member_live/show.ex:55
#, elixir-autogen, elixir-format
msgid "Join Date"
@ -85,12 +85,12 @@ msgstr ""
msgid "Last Name"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:24
#: lib/mv_web/live/member_live/index.html.heex:29
#, elixir-autogen, elixir-format
msgid "New Member"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:234
#: lib/mv_web/live/member_live/index.html.heex:239
#: lib/mv_web/live/user_live/index.html.heex:63
#, elixir-autogen, elixir-format
msgid "Show"
@ -118,7 +118,7 @@ msgid "Exit Date"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:55
#: lib/mv_web/live/member_live/index.html.heex:143
#: lib/mv_web/live/member_live/index.html.heex:148
#: lib/mv_web/live/member_live/show.ex:60
#, elixir-autogen, elixir-format
msgid "House Number"
@ -133,21 +133,21 @@ msgstr ""
#: lib/mv_web/live/components/payment_filter_component.ex:94
#: lib/mv_web/live/components/payment_filter_component.ex:144
#: lib/mv_web/live/member_live/form.ex:48
#: lib/mv_web/live/member_live/index.html.heex:224
#: lib/mv_web/live/member_live/index.html.heex:229
#: lib/mv_web/live/member_live/show.ex:51
#, elixir-autogen, elixir-format
msgid "Paid"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:49
#: lib/mv_web/live/member_live/index.html.heex:197
#: lib/mv_web/live/member_live/index.html.heex:202
#: lib/mv_web/live/member_live/show.ex:54
#, elixir-autogen, elixir-format
msgid "Phone Number"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:56
#: lib/mv_web/live/member_live/index.html.heex:161
#: lib/mv_web/live/member_live/index.html.heex:166
#: lib/mv_web/live/member_live/show.ex:61
#, elixir-autogen, elixir-format
msgid "Postal Code"
@ -160,7 +160,7 @@ msgstr ""
#: lib/mv_web/live/custom_field_live/form_component.ex:63
#: lib/mv_web/live/custom_field_value_live/form.ex:74
#: lib/mv_web/live/global_settings_live.ex:61
#: lib/mv_web/live/global_settings_live.ex:60
#: lib/mv_web/live/member_live/form.ex:78
#: lib/mv_web/live/user_live/form.ex:248
#, elixir-autogen, elixir-format
@ -168,7 +168,7 @@ msgid "Saving..."
msgstr ""
#: lib/mv_web/live/member_live/form.ex:54
#: lib/mv_web/live/member_live/index.html.heex:125
#: lib/mv_web/live/member_live/index.html.heex:130
#: lib/mv_web/live/member_live/show.ex:59
#, elixir-autogen, elixir-format
msgid "Street"
@ -180,7 +180,7 @@ msgid "Id"
msgstr ""
#: lib/mv_web/live/custom_field_live/index_component.ex:68
#: lib/mv_web/live/member_live/index.html.heex:229
#: lib/mv_web/live/member_live/index.html.heex:234
#: lib/mv_web/live/member_live/index/formatter.ex:61
#: lib/mv_web/live/member_live/show.ex:52
#, elixir-autogen, elixir-format
@ -198,7 +198,7 @@ msgid "This is a member record from your database."
msgstr ""
#: lib/mv_web/live/custom_field_live/index_component.ex:65
#: lib/mv_web/live/member_live/index.html.heex:229
#: lib/mv_web/live/member_live/index.html.heex:234
#: lib/mv_web/live/member_live/index/formatter.ex:60
#: lib/mv_web/live/member_live/show.ex:52
#, elixir-autogen, elixir-format
@ -366,12 +366,12 @@ msgstr ""
msgid "Required"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:63
#: lib/mv_web/live/member_live/index.html.heex:68
#, elixir-autogen, elixir-format
msgid "Select all members"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:77
#: lib/mv_web/live/member_live/index.html.heex:82
#, elixir-autogen, elixir-format
msgid "Select member"
msgstr ""
@ -379,7 +379,7 @@ msgstr ""
#: lib/mv_web/components/layouts/navbar.ex:26
#: lib/mv_web/components/layouts/navbar.ex:99
#: lib/mv_web/live/global_settings_live.ex:32
#: lib/mv_web/live/global_settings_live.ex:43
#: lib/mv_web/live/global_settings_live.ex:42
#, elixir-autogen, elixir-format
msgid "Settings"
msgstr ""
@ -560,7 +560,7 @@ msgid "Toggle dark mode"
msgstr ""
#: lib/mv_web/live/components/search_bar_component.ex:15
#: lib/mv_web/live/member_live/index.html.heex:34
#: lib/mv_web/live/member_live/index.html.heex:39
#, elixir-autogen, elixir-format
msgid "Search..."
msgstr ""
@ -576,7 +576,7 @@ msgstr ""
msgid "Click to sort"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:89
#: lib/mv_web/live/member_live/index.html.heex:94
#, elixir-autogen, elixir-format, fuzzy
msgid "First name"
msgstr ""
@ -628,7 +628,7 @@ msgstr ""
msgid "Custom field"
msgstr ""
#: lib/mv_web/live/global_settings_live.ex:108
#: lib/mv_web/live/global_settings_live.ex:105
#, elixir-autogen, elixir-format
msgid "Custom field %{action} successfully"
msgstr ""
@ -700,27 +700,27 @@ msgstr ""
msgid "Show in overview"
msgstr ""
#: lib/mv_web/live/global_settings_live.ex:57
#: lib/mv_web/live/global_settings_live.ex:56
#, elixir-autogen, elixir-format
msgid "Association Name"
msgstr ""
#: lib/mv_web/live/global_settings_live.ex:51
#: lib/mv_web/live/global_settings_live.ex:50
#, elixir-autogen, elixir-format, fuzzy
msgid "Club Settings"
msgstr ""
#: lib/mv_web/live/global_settings_live.ex:45
#: lib/mv_web/live/global_settings_live.ex:44
#, elixir-autogen, elixir-format
msgid "Manage global settings for the association."
msgstr ""
#: lib/mv_web/live/global_settings_live.ex:62
#: lib/mv_web/live/global_settings_live.ex:61
#, elixir-autogen, elixir-format, fuzzy
msgid "Save Settings"
msgstr ""
#: lib/mv_web/live/global_settings_live.ex:88
#: lib/mv_web/live/global_settings_live.ex:87
#, elixir-autogen, elixir-format
msgid "Settings updated successfully"
msgstr ""
@ -775,7 +775,7 @@ msgstr ""
msgid "Unlinking scheduled"
msgstr ""
#: lib/mv_web/live/member_live/index.ex:165
#: lib/mv_web/live/member_live/index.ex:159
#, elixir-autogen, elixir-format
msgid "Copied %{count} email address to clipboard"
msgid_plural "Copied %{count} email addresses to clipboard"
@ -792,27 +792,27 @@ msgstr ""
msgid "Copy emails"
msgstr ""
#: lib/mv_web/live/member_live/index.ex:154
#: lib/mv_web/live/member_live/index.ex:148
#, elixir-autogen, elixir-format
msgid "No email addresses found"
msgstr ""
#: lib/mv_web/live/member_live/index.ex:151
#: lib/mv_web/live/member_live/index.ex:145
#, elixir-autogen, elixir-format, fuzzy
msgid "No members selected"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:18
#: lib/mv_web/live/member_live/index.html.heex:23
#, elixir-autogen, elixir-format
msgid "Open email program with BCC recipients"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:21
#: lib/mv_web/live/member_live/index.html.heex:26
#, elixir-autogen, elixir-format
msgid "Open in email program"
msgstr ""
#: lib/mv_web/live/member_live/index.ex:174
#: lib/mv_web/live/member_live/index.ex:168
#, elixir-autogen, elixir-format
msgid "Tip: Paste email addresses into the BCC field for privacy compliance"
msgstr ""
@ -852,7 +852,7 @@ msgstr ""
msgid "Payment filter"
msgstr ""
#: lib/mv_web/live/global_settings_live.ex:118
#: lib/mv_web/live/global_settings_live.ex:110
#, elixir-autogen, elixir-format, fuzzy
msgid "Custom field deleted successfully"
msgstr ""
@ -862,7 +862,7 @@ msgstr ""
msgid "Edit Custom Field"
msgstr ""
#: lib/mv_web/live/global_settings_live.ex:127
#: lib/mv_web/live/global_settings_live.ex:119
#, elixir-autogen, elixir-format
msgid "Failed to delete custom field: %{error}"
msgstr ""
@ -882,7 +882,7 @@ msgstr ""
msgid "Show in Overview"
msgstr ""
#: lib/mv_web/live/global_settings_live.ex:133
#: lib/mv_web/live/global_settings_live.ex:125
#, elixir-autogen, elixir-format
msgid "Slug does not match. Deletion cancelled."
msgstr ""
@ -908,11 +908,6 @@ msgstr ""
#~ msgid "Birth Date"
#~ msgstr ""
#~ #: lib/mv_web/live/custom_field_live/index_component.ex:22
#~ #, elixir-autogen, elixir-format
#~ msgid "Manage custom field definitions for members."
#~ msgstr ""
#~ #: lib/mv_web/live/custom_field_live/form.ex:46
#~ #, elixir-autogen, elixir-format, fuzzy
#~ msgid "Use this form to manage custom_field records in your database."