diff --git a/.drone.yml b/.drone.yml index 4dec17d..483a08a 100644 --- a/.drone.yml +++ b/.drone.yml @@ -166,7 +166,7 @@ environment: steps: - name: renovate - image: renovate/renovate:42.44 + image: renovate/renovate:41.173 environment: RENOVATE_CONFIG_FILE: "renovate_backend_config.js" RENOVATE_TOKEN: diff --git a/lib/mv_web/components/core_components.ex b/lib/mv_web/components/core_components.ex index a23381d..d19b1eb 100644 --- a/lib/mv_web/components/core_components.ex +++ b/lib/mv_web/components/core_components.ex @@ -153,7 +153,7 @@ defmodule MvWeb.CoreComponents do aria-haspopup="menu" aria-expanded={@open} aria-controls={@id} - class="btn" + class="btn btn-ghost" phx-click="toggle_dropdown" phx-target={@phx_target} data-testid="dropdown-button" @@ -236,30 +236,6 @@ defmodule MvWeb.CoreComponents do """ end - @doc """ - Renders a section in with a border similar to cards. - - - ## Examples - - <.form_section title={gettext("Personal Data")}> -

input

- - """ - attr :title, :string, required: true - slot :inner_block, required: true - - def form_section(assigns) do - ~H""" -
-

{@title}

-
- {render_slot(@inner_block)} -
-
- """ - end - @doc """ Renders an input with label and error messages. @@ -458,7 +434,7 @@ defmodule MvWeb.CoreComponents do ~H"""
-

+

{render_slot(@inner_block)}

@@ -498,7 +474,6 @@ defmodule MvWeb.CoreComponents do slot :col, required: true do attr :label, :string - attr :class, :string attr :col_click, :any, doc: "optional column-specific click handler that overrides row_click" end @@ -515,7 +490,7 @@ defmodule MvWeb.CoreComponents do - +
{col[:label]}{col[:label]} <.live_component module={MvWeb.Components.SortHeaderComponent} @@ -539,34 +514,7 @@ defmodule MvWeb.CoreComponents do (col[:col_click] && col[:col_click].(@row_item.(row))) || (@row_click && @row_click.(row)) } - class={ - col_class = Map.get(col, :class) - has_click = col[:col_click] || @row_click - classes = ["max-w-xs"] - - classes = - if col_class == nil || (col_class && !String.contains?(col_class, "text-center")) do - ["truncate" | classes] - else - classes - end - - classes = - if has_click do - ["hover:cursor-pointer" | classes] - else - classes - end - - classes = - if col_class do - [col_class | classes] - else - classes - end - - Enum.join(classes, " ") - } + class={["max-w-xs truncate", (col[:col_click] || @row_click) && "hover:cursor-pointer"]} > {render_slot(col, @row_item.(row))} diff --git a/lib/mv_web/live/components/field_visibility_dropdown_component.ex b/lib/mv_web/live/components/field_visibility_dropdown_component.ex index 5fc0abf..642273c 100644 --- a/lib/mv_web/live/components/field_visibility_dropdown_component.ex +++ b/lib/mv_web/live/components/field_visibility_dropdown_component.ex @@ -152,25 +152,9 @@ defmodule MvWeb.Components.FieldVisibilityDropdownComponent do defp field_to_string(field) when is_atom(field), do: Atom.to_string(field) defp field_to_string(field) when is_binary(field), do: field - defp format_field_label(field) when is_atom(field) do - MvWeb.Translations.MemberFields.label(field) - end - - defp format_field_label(field) when is_binary(field) do - case safe_to_existing_atom(field) do - {:ok, atom} -> MvWeb.Translations.MemberFields.label(atom) - :error -> fallback_label(field) - end - end - - defp safe_to_existing_atom(string) do - {:ok, String.to_existing_atom(string)} - rescue - ArgumentError -> :error - end - - defp fallback_label(field) do + defp format_field_label(field) do field + |> field_to_string() |> String.replace("_", " ") |> String.split() |> Enum.map_join(" ", &String.capitalize/1) diff --git a/lib/mv_web/live/components/payment_filter_component.ex b/lib/mv_web/live/components/payment_filter_component.ex index 47556dd..c9dc731 100644 --- a/lib/mv_web/live/components/payment_filter_component.ex +++ b/lib/mv_web/live/components/payment_filter_component.ex @@ -44,7 +44,7 @@ defmodule MvWeb.Components.PaymentFilterComponent do - +
+ +
+ {@custom_field_to_delete.slug} +
+
+ +
- - + + + + """ end diff --git a/lib/mv_web/live/global_settings_live.ex b/lib/mv_web/live/global_settings_live.ex index 0b3ec1c..bb919cb 100644 --- a/lib/mv_web/live/global_settings_live.ex +++ b/lib/mv_web/live/global_settings_live.ex @@ -46,22 +46,22 @@ defmodule MvWeb.GlobalSettingsLive do <%!-- Club Settings Section --%> - <.form_section title={gettext("Club Settings")}> - <.form for={@form} id="settings-form" phx-change="validate" phx-submit="save"> -
- <.input - field={@form[:club_name]} - type="text" - label={gettext("Association Name")} - required - /> -
+ <.header> + {gettext("Club Settings")} + + <.form for={@form} id="settings-form" phx-change="validate" phx-submit="save"> + <.input + field={@form[:club_name]} + type="text" + label={gettext("Association Name")} + required + /> + + <.button phx-disable-with={gettext("Saving...")} variant="primary"> + {gettext("Save Settings")} + + - <.button phx-disable-with={gettext("Saving...")} variant="primary"> - {gettext("Save Settings")} - - - <%!-- Custom Fields Section --%> <.live_component module={MvWeb.CustomFieldLive.IndexComponent} diff --git a/lib/mv_web/live/member_live/form.ex b/lib/mv_web/live/member_live/form.ex index 87148ad..5380d0f 100644 --- a/lib/mv_web/live/member_live/form.ex +++ b/lib/mv_web/live/member_live/form.ex @@ -348,6 +348,25 @@ defmodule MvWeb.MemberLive.Form do defp return_path("show", nil), do: ~p"/members" defp return_path("show", member), do: ~p"/members/#{member.id}" + # ----------------------------------------------------------------- + # Helper Components + # ----------------------------------------------------------------- + + # Renders a form section box with border and title. + attr :title, :string, required: true + slot :inner_block, required: true + + defp form_section(assigns) do + ~H""" +
+

{@title}

+
+ {render_slot(@inner_block)} +
+
+ """ + end + # ----------------------------------------------------------------- # Helper Functions for Custom Fields # ----------------------------------------------------------------- diff --git a/lib/mv_web/translations/field_types.ex b/lib/mv_web/translations/field_types.ex deleted file mode 100644 index 969f20b..0000000 --- a/lib/mv_web/translations/field_types.ex +++ /dev/null @@ -1,21 +0,0 @@ -defmodule MvWeb.Translations.FieldTypes do - @moduledoc """ - Helper module to dynamically translate field types. - - ## Features - - Can be used in templates to dynamically translate technical field type words to human friendly text - - ## Example - assigns = assign(assigns, :field_type_label, &MvWeb.Translations.FieldTypes.label/1) - In template: - <%= @field_type_label.(custom_field.value_type) %> - """ - use Gettext, backend: MvWeb.Gettext - - @spec label(atom()) :: String.t() - def label(:string), do: gettext("Text") - def label(:integer), do: gettext("Number") - def label(:boolean), do: gettext("Yes/No-Selection") - def label(:date), do: gettext("Date") - def label(:email), do: gettext("E-Mail") -end diff --git a/lib/mv_web/translations/member_fields.ex b/lib/mv_web/translations/member_fields.ex deleted file mode 100644 index 3750bcb..0000000 --- a/lib/mv_web/translations/member_fields.ex +++ /dev/null @@ -1,41 +0,0 @@ -defmodule MvWeb.Translations.MemberFields do - @moduledoc """ - Helper module to dynamically translate member field names. - - ## Features - - Translates technical field names (atoms) to human-friendly localized text - - Used primarily in the field visibility dropdown component - - ## Example - - iex> MvWeb.Translations.MemberFields.label(:first_name) - "Vorname" # when locale is "de" - - iex> MvWeb.Translations.MemberFields.label(:first_name) - "First Name" # when locale is "en" - """ - use Gettext, backend: MvWeb.Gettext - - @spec label(atom()) :: String.t() - def label(:first_name), do: gettext("First Name") - def label(:last_name), do: gettext("Last Name") - def label(:email), do: gettext("Email") - def label(:paid), do: gettext("Paid") - def label(:phone_number), do: gettext("Phone") - def label(:join_date), do: gettext("Join Date") - def label(:exit_date), do: gettext("Exit Date") - def label(:notes), do: gettext("Notes") - def label(:city), do: gettext("City") - def label(:street), do: gettext("Street") - def label(:house_number), do: gettext("House Number") - def label(:postal_code), do: gettext("Postal Code") - - # Fallback for unknown fields - def label(field) do - field - |> to_string() - |> String.replace("_", " ") - |> String.split() - |> Enum.map_join(" ", &String.capitalize/1) - end -end diff --git a/priv/gettext/de/LC_MESSAGES/default.po b/priv/gettext/de/LC_MESSAGES/default.po index 25f685d..bb781f7 100644 --- a/priv/gettext/de/LC_MESSAGES/default.po +++ b/priv/gettext/de/LC_MESSAGES/default.po @@ -29,7 +29,6 @@ msgstr "Verbindung wird wiederhergestellt" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/index.html.heex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "City" msgstr "Stadt" @@ -49,7 +48,7 @@ msgstr "Löschen" #: lib/mv_web/live/user_live/index.html.heex #, elixir-autogen, elixir-format msgid "Edit" -msgstr "Bearbeiten" +msgstr "Bearbeite" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show.ex @@ -64,14 +63,12 @@ msgstr "Mitglied bearbeiten" #: lib/mv_web/live/user_live/form.ex #: lib/mv_web/live/user_live/index.html.heex #: lib/mv_web/live/user_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Email" msgstr "E-Mail" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "First Name" msgstr "Vorname" @@ -79,14 +76,12 @@ msgstr "Vorname" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/index.html.heex #: lib/mv_web/live/member_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Join Date" msgstr "Beitrittsdatum" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Last Name" msgstr "Nachname" @@ -120,13 +115,11 @@ msgstr "schließen" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Exit Date" msgstr "Austrittsdatum" #: lib/mv_web/live/member_live/index.html.heex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "House Number" msgstr "Hausnummer" @@ -134,7 +127,6 @@ msgstr "Hausnummer" #: lib/mv_web/live/contribution_period_live/show.ex #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Notes" msgstr "Notizen" @@ -144,7 +136,6 @@ msgstr "Notizen" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/index.html.heex #: lib/mv_web/live/member_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Paid" msgstr "Bezahlt" @@ -156,7 +147,6 @@ msgstr "Telefonnummer" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/index.html.heex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Postal Code" msgstr "Postleitzahl" @@ -177,7 +167,6 @@ msgstr "Speichern..." #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/index.html.heex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Street" msgstr "Straße" @@ -225,7 +214,7 @@ msgstr "Falsche E-Mail oder Passwort" #: lib/mv_web/live/member_live/form.ex #, elixir-autogen, elixir-format msgid "Member %{action} successfully" -msgstr "Mitglied wurde erfolgreich %{action}" +msgstr "Mitglied %{action} erfolgreich" #: lib/mv_web/controllers/auth_controller.ex #, elixir-autogen, elixir-format @@ -429,9 +418,9 @@ msgid "Admin Note" msgstr "Administrator*innen-Hinweis" #: lib/mv_web/live/user_live/form.ex -#, elixir-autogen, elixir-format, fuzzy +#, elixir-autogen, elixir-format msgid "As an administrator, you can directly set a new password for this user using the same secure Ash Authentication system." -msgstr "Als Administrator*in können Sie direkt ein neues Passwort für diese*n Benutzer*in setzen." +msgstr "Als Administrator*in können Sie direkt ein neues Passwort für diese*n Benutzer*in setzen, wobei das gleiche sichere Ash Authentication System verwendet wird." #: lib/mv_web/live/user_live/form.ex #, elixir-autogen, elixir-format @@ -667,10 +656,9 @@ msgid "To confirm deletion, please enter this text:" msgstr "Um die Löschung zu bestätigen, gib bitte folgenden Text ein:" #: lib/mv_web/live/custom_field_live/form_component.ex -#: lib/mv_web/live/custom_field_live/index_component.ex #, elixir-autogen, elixir-format msgid "Show in overview" -msgstr "In Übersicht anzeigen" +msgstr "In der Mitglieder-Übersicht anzeigen" #: lib/mv_web/live/global_settings_live.ex #, elixir-autogen, elixir-format @@ -881,7 +869,6 @@ msgstr "Persönliche Daten" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Phone" msgstr "Telefon" @@ -917,96 +904,96 @@ msgstr "Mitglied erstellen" #, elixir-autogen, elixir-format msgid "%{count} period selected" msgid_plural "%{count} periods selected" -msgstr[0] "%{count} Zyklus ausgewählt" -msgstr[1] "%{count} Zyklen ausgewählt" +msgstr[0] "" +msgstr[1] "" #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "About Contribution Types" -msgstr "Über Beitragsarten" +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "Amount" -msgstr "Betrag" +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #, elixir-autogen, elixir-format msgid "Back to Settings" -msgstr "Zurück zu den Einstellungen" +msgstr "" #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "Can be changed at any time. Amount changes affect future periods only." -msgstr "Kann jederzeit geändert werden. Änderungen des Betrags betreffen nur zukünftige Zyklen." +msgstr "" #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "Cannot delete - members assigned" -msgstr "Löschen nicht möglich – es sind Mitglieder zugewiesen" +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #, elixir-autogen, elixir-format msgid "Change Contribution Type" -msgstr "Beitragsart ändern" +msgstr "" #: lib/mv_web/live/contribution_settings_live.ex #, elixir-autogen, elixir-format msgid "Configure global settings for membership contributions." -msgstr "Globale Einstellungen für Mitgliedsbeiträge konfigurieren." +msgstr "" #: lib/mv_web/components/layouts/navbar.ex #: lib/mv_web/live/contribution_settings_live.ex #, elixir-autogen, elixir-format, fuzzy msgid "Contribution Settings" -msgstr "Beitragseinstellungen" +msgstr "Beitrag" #: lib/mv_web/live/contribution_period_live/show.ex #, elixir-autogen, elixir-format, fuzzy msgid "Contribution Start" -msgstr "Beitragsbeginn" +msgstr "Beitrag" #: lib/mv_web/components/layouts/navbar.ex #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format, fuzzy msgid "Contribution Types" -msgstr "Beitragsarten" +msgstr "Beitrag" #: lib/mv_web/live/contribution_settings_live.ex #, elixir-autogen, elixir-format, fuzzy msgid "Contribution start" -msgstr "Beitragsbeginn" +msgstr "Beitrag" #: lib/mv_web/live/contribution_period_live/show.ex #, elixir-autogen, elixir-format, fuzzy msgid "Contribution type" -msgstr "Beitragsart" +msgstr "Beitrag" #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "Contribution types define different membership fee structures. Each type has a fixed interval (monthly, quarterly, half-yearly, yearly) that cannot be changed after creation." -msgstr "Beitragsarten definieren verschiedene Beitragsmodelle. Jede Art hat einen festen Zyklus (monatlich, vierteljährlich, halbjährlich, jährlich), der nach Erstellung nicht mehr geändert werden kann." +msgstr "" #: lib/mv_web/components/layouts/navbar.ex #, elixir-autogen, elixir-format, fuzzy msgid "Contributions" -msgstr "Beiträge" +msgstr "Beitrag" #: lib/mv_web/live/contribution_period_live/show.ex #, elixir-autogen, elixir-format, fuzzy msgid "Contributions for %{name}" -msgstr "Beiträge für %{name}" +msgstr "Beitrag" #: lib/mv_web/live/contribution_period_live/show.ex #, elixir-autogen, elixir-format msgid "Current" -msgstr "Aktuell" +msgstr "" #: lib/mv_web/live/contribution_settings_live.ex #, elixir-autogen, elixir-format msgid "Default Contribution Type" -msgstr "Standard-Beitragsart" +msgstr "" #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format, fuzzy @@ -1016,28 +1003,28 @@ msgstr "Löschen" #: lib/mv_web/live/contribution_settings_live.ex #, elixir-autogen, elixir-format msgid "Example: Member Contribution View" -msgstr "Beispiel: Ansicht Mitgliedsbeiträge" +msgstr "" #: lib/mv_web/live/contribution_settings_live.ex #, elixir-autogen, elixir-format msgid "Examples" -msgstr "Beispiele" +msgstr "" #: lib/mv_web/live/contribution_settings_live.ex #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "Family" -msgstr "Familie" +msgstr "" #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "Fixed after creation. Members can only switch between types with the same interval." -msgstr "Festgelegt nach der Erstellung. Mitglieder können nur zwischen Beitragsarten mit gleichem Intervall wechseln." +msgstr "" #: lib/mv_web/live/contribution_settings_live.ex #, elixir-autogen, elixir-format msgid "Generated periods" -msgstr "Generierte Zyklen" +msgstr "" #: lib/mv_web/live/contribution_settings_live.ex #, elixir-autogen, elixir-format, fuzzy @@ -1049,29 +1036,29 @@ msgstr "Vereinsdaten" #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "Half-yearly" -msgstr "Halbjährlich" +msgstr "" #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "Half-yearly contribution for supporting members" -msgstr "Halbjährlicher Beitrag für Fördermitglieder" +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "Honorary" -msgstr "Ehrenamtlich" +msgstr "" #: lib/mv_web/live/contribution_settings_live.ex #, elixir-autogen, elixir-format msgid "Include joining period" -msgstr "Beitrittsdatum einbeziehen" +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "Interval" -msgstr "Zyklus" +msgstr "" #: lib/mv_web/live/contribution_settings_live.ex #, elixir-autogen, elixir-format, fuzzy @@ -1081,240 +1068,240 @@ msgstr "Beitrittsdatum" #: lib/mv_web/live/contribution_period_live/show.ex #, elixir-autogen, elixir-format msgid "Joining year - reduced to 0" -msgstr "Beitrittsjahr – auf 0 reduziert" +msgstr "" #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "Manage contribution types for membership fees." -msgstr "Beitragsarten für Mitgliedsbeiträge verwalten." +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #, elixir-autogen, elixir-format msgid "Mark as Paid" -msgstr "Als bezahlt markieren" +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #, elixir-autogen, elixir-format msgid "Mark as Suspended" -msgstr "Als pausiert markieren" +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #, elixir-autogen, elixir-format msgid "Mark as Unpaid" -msgstr "Als unbezahlt markieren" +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #, elixir-autogen, elixir-format msgid "Member Contributions" -msgstr "Mitgliedsbeiträge" +msgstr "" #: lib/mv_web/live/contribution_settings_live.ex #, elixir-autogen, elixir-format msgid "Member pays for the year they joined" -msgstr "Mitglied zahlt für das Beitrittsjahr" +msgstr "" #: lib/mv_web/live/contribution_settings_live.ex #, elixir-autogen, elixir-format msgid "Member pays from the joining month" -msgstr "Mitglied zahlt ab Beitrittsmonat" +msgstr "" #: lib/mv_web/live/contribution_settings_live.ex #, elixir-autogen, elixir-format msgid "Member pays from the next full quarter" -msgstr "Mitglied zahlt ab dem nächsten vollständigen Quartal" +msgstr "" #: lib/mv_web/live/contribution_settings_live.ex #, elixir-autogen, elixir-format msgid "Member pays from the next full year" -msgstr "Mitglied zahlt ab dem nächsten vollständigen Jahr" +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #, elixir-autogen, elixir-format, fuzzy msgid "Member since" -msgstr "Mitglied seit" +msgstr "Mitglieder" #: lib/mv_web/live/contribution_period_live/show.ex #, elixir-autogen, elixir-format msgid "Members can only switch between contribution types with the same payment interval (e.g., yearly to yearly). This prevents complex period overlaps." -msgstr "Mitglieder können nur zwischen Beitragsarten mit demselben Zahlungszyklus wechseln (z. B. jährlich zu jährlich). Dadurch werden komplexe Überlappungen vermieden." +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #: lib/mv_web/live/contribution_settings_live.ex #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format, fuzzy msgid "Monthly" -msgstr "Monatlich" +msgstr "monatlich" #: lib/mv_web/live/contribution_settings_live.ex #, elixir-autogen, elixir-format msgid "Monthly Interval - Joining Period Included" -msgstr "Monatliches Intervall – Beitrittszeitraum einbezogen" +msgstr "" #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "Monthly fee for students and trainees" -msgstr "Monatlicher Beitrag für Studierende und Auszubildende" +msgstr "" #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "Name & Amount" -msgstr "Name & Betrag" +msgstr "" #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format, fuzzy msgid "New Contribution Type" -msgstr "Neue Beitragsart" +msgstr "Beitrag" #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "No fee for honorary members" -msgstr "Kein Beitrag für ehrenamtliche Mitglieder" +msgstr "" #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "Only possible if no members are assigned to this type." -msgstr "Nur möglich, wenn diesem Typ keine Mitglieder zugewiesen sind." +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #, elixir-autogen, elixir-format msgid "Open Contributions" -msgstr "Offene Beiträge" +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #, elixir-autogen, elixir-format msgid "Paid via bank transfer" -msgstr "Bezahlt durch Überweisung" +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #: lib/mv_web/live/contribution_settings_live.ex #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "Preview Mockup" -msgstr "Vorschau" +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #: lib/mv_web/live/contribution_settings_live.ex #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "Quarterly" -msgstr "Vierteljährlich" +msgstr "" #: lib/mv_web/live/contribution_settings_live.ex #, elixir-autogen, elixir-format msgid "Quarterly Interval - Joining Period Excluded" -msgstr "Vierteljährliches Intervall – Beitrittszeitraum nicht einbezogen" +msgstr "" #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "Quarterly fee for family memberships" -msgstr "Vierteljährlicher Beitrag für Familienmitgliedschaften" +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #: lib/mv_web/live/contribution_settings_live.ex #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "Reduced" -msgstr "Reduziert" +msgstr "" #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "Reduced fee for unemployed, pensioners, or low income" -msgstr "Ermäßigter Beitrag für Arbeitslose, Rentner*innen oder Geringverdienende" +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #: lib/mv_web/live/contribution_settings_live.ex #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "Regular" -msgstr "Regulär" +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #, elixir-autogen, elixir-format msgid "Reopen" -msgstr "Wieder öffnen" +msgstr "" #: lib/mv_web/live/contribution_settings_live.ex #, elixir-autogen, elixir-format msgid "See how the contribution periods will be displayed for an individual member. This example shows Maria Weber with multiple contribution periods." -msgstr "Beispielhafte Anzeige der Beitragsperioden für ein einzelnes Mitglied. In diesem Beispiel wird Maria Weber mit mehreren Zyklen angezeigt." +msgstr "" #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "Standard membership fee for regular members" -msgstr "Regulärer Mitgliedsbeitrag für Vollmitglieder" +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #, elixir-autogen, elixir-format msgid "Status" -msgstr "Status" +msgstr "" #: lib/mv_web/live/contribution_settings_live.ex #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "Student" -msgstr "Student" +msgstr "" #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "Supporting Member" -msgstr "Fördermitglied" +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #, elixir-autogen, elixir-format msgid "Suspend" -msgstr "Pausieren" +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #, elixir-autogen, elixir-format msgid "Suspended" -msgstr "Pausiert" +msgstr "" #: lib/mv_web/live/contribution_settings_live.ex #, elixir-autogen, elixir-format msgid "This contribution type is automatically assigned to all new members. Can be changed individually per member." -msgstr "Dieser Beitragstyp wird automatisch neuen Mitgliedern zugewiesen. Kann individuell angepasst werden." +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #: lib/mv_web/live/contribution_settings_live.ex #: lib/mv_web/live/contribution_type_live/index.ex #, elixir-autogen, elixir-format msgid "This page is not functional and only displays the planned features." -msgstr "Diese Seite ist nicht funktionsfähig und zeigt nur geplante Funktionen." +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #, elixir-autogen, elixir-format msgid "Time Period" -msgstr "Zeitraum" +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #, elixir-autogen, elixir-format msgid "Total Contributions" -msgstr "Gesamtbeiträge" +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #, elixir-autogen, elixir-format msgid "Unpaid" -msgstr "Unbezahlt" +msgstr "" #: lib/mv_web/live/contribution_settings_live.ex #, elixir-autogen, elixir-format msgid "View Example Member" -msgstr "Beispielmitglied anzeigen" +msgstr "" #: lib/mv_web/live/contribution_settings_live.ex #, elixir-autogen, elixir-format msgid "When active: Members pay from the period of their joining." -msgstr "Wenn aktiviert: Mitglieder zahlen ab dem Zeitraum ihres Beitritts." +msgstr "" #: lib/mv_web/live/contribution_settings_live.ex #, elixir-autogen, elixir-format msgid "When inactive: Members pay from the next full period after joining." -msgstr "Wenn deaktiviert: Mitglieder zahlen ab dem nächsten vollen Beitragszyklus nach dem Beitritt." +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #, elixir-autogen, elixir-format msgid "Why are not all contribution types shown?" -msgstr "Warum werden nicht alle Beitragsarten angezeigt?" +msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #: lib/mv_web/live/contribution_settings_live.ex @@ -1326,12 +1313,12 @@ msgstr "jährlich" #: lib/mv_web/live/contribution_settings_live.ex #, elixir-autogen, elixir-format msgid "Yearly Interval - Joining Period Excluded" -msgstr "Jährliches Intervall – Beitrittszeitraum nicht einbezogen" +msgstr "" #: lib/mv_web/live/contribution_settings_live.ex #, elixir-autogen, elixir-format msgid "Yearly Interval - Joining Period Included" -msgstr "Jährliches Intervall – Beitrittszeitraum einbezogen" +msgstr "" #: lib/mv_web/live/components/field_visibility_dropdown_component.ex #, elixir-autogen, elixir-format @@ -1376,7 +1363,7 @@ msgstr "Zurück zur Felderliste" #: lib/mv_web/live/global_settings_live.ex #, elixir-autogen, elixir-format, fuzzy msgid "Custom field deleted successfully" -msgstr "Benutzerdefiniertes Feld erfolgreich gelöscht" +msgstr "Benutzerdefiniertes Feld erfolgreich %{action}" #: lib/mv_web/live/custom_field_live/form_component.ex #, elixir-autogen, elixir-format, fuzzy @@ -1398,6 +1385,11 @@ msgstr "Benutzerdefiniertes Feld speichern" msgid "New Custom field" msgstr "Benutzerdefiniertes Feld speichern" +#: lib/mv_web/live/custom_field_live/index_component.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Show in Overview" +msgstr "In der Mitglieder-Übersicht anzeigen" + #: lib/mv_web/live/global_settings_live.ex #, elixir-autogen, elixir-format msgid "Slug does not match. Deletion cancelled." @@ -1413,31 +1405,6 @@ msgstr "Diese Felder können zusätzlich zu den normalen Daten ausgefüllt werde msgid "Value Type" msgstr "Wertetyp" -#: lib/mv_web/translations/field_types.ex -#, elixir-autogen, elixir-format -msgid "Date" -msgstr "Datum" - -#: lib/mv_web/translations/field_types.ex -#, elixir-autogen, elixir-format, fuzzy -msgid "E-Mail" -msgstr "E-Mail" - -#: lib/mv_web/translations/field_types.ex -#, elixir-autogen, elixir-format -msgid "Number" -msgstr "Zahl" - -#: lib/mv_web/translations/field_types.ex -#, elixir-autogen, elixir-format -msgid "Text" -msgstr "Textfeld" - -#: lib/mv_web/translations/field_types.ex -#, elixir-autogen, elixir-format -msgid "Yes/No-Selection" -msgstr "Ja/Nein-Auswahl" - #~ #: lib/mv_web/live/custom_field_live/show.ex #~ #, elixir-autogen, elixir-format #~ msgid "Auto-generated identifier (immutable)" @@ -1483,11 +1450,6 @@ msgstr "Ja/Nein-Auswahl" #~ msgid "OIDC ID" #~ msgstr "OIDC ID" -#~ #: lib/mv_web/live/custom_field_live/index_component.ex -#~ #, elixir-autogen, elixir-format, fuzzy -#~ msgid "Show in Overview" -#~ msgstr "In der Mitglieder-Übersicht anzeigen" - #~ #: lib/mv_web/live/member_live/show.ex #~ #, elixir-autogen, elixir-format #~ msgid "This is a member record from your database." diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot index a7ab36b..7581d62 100644 --- a/priv/gettext/default.pot +++ b/priv/gettext/default.pot @@ -30,7 +30,6 @@ msgstr "" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/index.html.heex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "City" msgstr "" @@ -65,14 +64,12 @@ msgstr "" #: lib/mv_web/live/user_live/form.ex #: lib/mv_web/live/user_live/index.html.heex #: lib/mv_web/live/user_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Email" msgstr "" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "First Name" msgstr "" @@ -80,14 +77,12 @@ msgstr "" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/index.html.heex #: lib/mv_web/live/member_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Join Date" msgstr "" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Last Name" msgstr "" @@ -121,13 +116,11 @@ msgstr "" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Exit Date" msgstr "" #: lib/mv_web/live/member_live/index.html.heex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "House Number" msgstr "" @@ -135,7 +128,6 @@ msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Notes" msgstr "" @@ -145,7 +137,6 @@ msgstr "" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/index.html.heex #: lib/mv_web/live/member_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Paid" msgstr "" @@ -157,7 +148,6 @@ msgstr "" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/index.html.heex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Postal Code" msgstr "" @@ -178,7 +168,6 @@ msgstr "" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/index.html.heex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Street" msgstr "" @@ -668,7 +657,6 @@ msgid "To confirm deletion, please enter this text:" msgstr "" #: lib/mv_web/live/custom_field_live/form_component.ex -#: lib/mv_web/live/custom_field_live/index_component.ex #, elixir-autogen, elixir-format msgid "Show in overview" msgstr "" @@ -882,7 +870,6 @@ msgstr "" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Phone" msgstr "" @@ -1399,6 +1386,11 @@ msgstr "" msgid "New Custom field" msgstr "" +#: lib/mv_web/live/custom_field_live/index_component.ex +#, elixir-autogen, elixir-format +msgid "Show in Overview" +msgstr "" + #: lib/mv_web/live/global_settings_live.ex #, elixir-autogen, elixir-format msgid "Slug does not match. Deletion cancelled." @@ -1413,28 +1405,3 @@ msgstr "" #, elixir-autogen, elixir-format msgid "Value Type" msgstr "" - -#: lib/mv_web/translations/field_types.ex -#, elixir-autogen, elixir-format -msgid "Date" -msgstr "" - -#: lib/mv_web/translations/field_types.ex -#, elixir-autogen, elixir-format -msgid "E-Mail" -msgstr "" - -#: lib/mv_web/translations/field_types.ex -#, elixir-autogen, elixir-format -msgid "Number" -msgstr "" - -#: lib/mv_web/translations/field_types.ex -#, elixir-autogen, elixir-format -msgid "Text" -msgstr "" - -#: lib/mv_web/translations/field_types.ex -#, elixir-autogen, elixir-format -msgid "Yes/No-Selection" -msgstr "" diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po index e2a1876..dc86840 100644 --- a/priv/gettext/en/LC_MESSAGES/default.po +++ b/priv/gettext/en/LC_MESSAGES/default.po @@ -30,7 +30,6 @@ msgstr "" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/index.html.heex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "City" msgstr "" @@ -65,14 +64,12 @@ msgstr "" #: lib/mv_web/live/user_live/form.ex #: lib/mv_web/live/user_live/index.html.heex #: lib/mv_web/live/user_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Email" msgstr "" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "First Name" msgstr "" @@ -80,14 +77,12 @@ msgstr "" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/index.html.heex #: lib/mv_web/live/member_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Join Date" msgstr "" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Last Name" msgstr "" @@ -121,13 +116,11 @@ msgstr "" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Exit Date" msgstr "" #: lib/mv_web/live/member_live/index.html.heex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "House Number" msgstr "" @@ -135,7 +128,6 @@ msgstr "" #: lib/mv_web/live/contribution_period_live/show.ex #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Notes" msgstr "" @@ -145,7 +137,6 @@ msgstr "" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/index.html.heex #: lib/mv_web/live/member_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Paid" msgstr "" @@ -157,7 +148,6 @@ msgstr "" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/index.html.heex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Postal Code" msgstr "" @@ -178,7 +168,6 @@ msgstr "" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/index.html.heex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format msgid "Street" msgstr "" @@ -209,14 +198,14 @@ msgstr "" #: lib/mv_web/live/member_live/form.ex #, elixir-autogen, elixir-format msgid "create" -msgstr "created" +msgstr "" #: lib/mv_web/live/custom_field_live/form_component.ex #: lib/mv_web/live/custom_field_value_live/form.ex #: lib/mv_web/live/member_live/form.ex #, elixir-autogen, elixir-format msgid "update" -msgstr "updated" +msgstr "" #: lib/mv_web/controllers/auth_controller.ex #, elixir-autogen, elixir-format @@ -668,7 +657,6 @@ msgid "To confirm deletion, please enter this text:" msgstr "" #: lib/mv_web/live/custom_field_live/form_component.ex -#: lib/mv_web/live/custom_field_live/index_component.ex #, elixir-autogen, elixir-format msgid "Show in overview" msgstr "" @@ -882,7 +870,6 @@ msgstr "" #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show.ex -#: lib/mv_web/translations/member_fields.ex #, elixir-autogen, elixir-format, fuzzy msgid "Phone" msgstr "" @@ -1399,6 +1386,11 @@ msgstr "" msgid "New Custom field" msgstr "" +#: lib/mv_web/live/custom_field_live/index_component.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Show in Overview" +msgstr "" + #: lib/mv_web/live/global_settings_live.ex #, elixir-autogen, elixir-format msgid "Slug does not match. Deletion cancelled." @@ -1414,31 +1406,6 @@ msgstr "" msgid "Value Type" msgstr "" -#: lib/mv_web/translations/field_types.ex -#, elixir-autogen, elixir-format -msgid "Date" -msgstr "" - -#: lib/mv_web/translations/field_types.ex -#, elixir-autogen, elixir-format, fuzzy -msgid "E-Mail" -msgstr "" - -#: lib/mv_web/translations/field_types.ex -#, elixir-autogen, elixir-format -msgid "Number" -msgstr "" - -#: lib/mv_web/translations/field_types.ex -#, elixir-autogen, elixir-format -msgid "Text" -msgstr "" - -#: lib/mv_web/translations/field_types.ex -#, elixir-autogen, elixir-format -msgid "Yes/No-Selection" -msgstr "" - #~ #: lib/mv_web/live/custom_field_live/show.ex #~ #, elixir-autogen, elixir-format #~ msgid "Auto-generated identifier (immutable)" @@ -1482,11 +1449,6 @@ msgstr "" #~ msgid "OIDC ID" #~ msgstr "" -#~ #: lib/mv_web/live/custom_field_live/index_component.ex -#~ #, elixir-autogen, elixir-format, fuzzy -#~ msgid "Show in Overview" -#~ msgstr "" - #~ #: lib/mv_web/live/member_live/show.ex #~ #, elixir-autogen, elixir-format #~ msgid "This is a member record from your database." diff --git a/test/mv_web/member_live/index_test.exs b/test/mv_web/member_live/index_test.exs index 30b61c7..9e3323f 100644 --- a/test/mv_web/member_live/index_test.exs +++ b/test/mv_web/member_live/index_test.exs @@ -51,7 +51,7 @@ defmodule MvWeb.MemberLive.IndexTest do |> render_submit() |> follow_redirect(conn, "/members") - assert has_element?(index_view, "#flash-group", "Mitglied wurde erfolgreich erstellt") + assert has_element?(index_view, "#flash-group", "Mitglied erstellt erfolgreich") end test "shows translated flash message after creating a member in English", %{conn: conn} do @@ -71,7 +71,7 @@ defmodule MvWeb.MemberLive.IndexTest do |> render_submit() |> follow_redirect(conn, "/members") - assert has_element?(index_view, "#flash-group", "Member created successfully") + assert has_element?(index_view, "#flash-group", "Member create successfully") end describe "sorting integration" do