diff --git a/lib/mv_web/live/group_live/form.ex b/lib/mv_web/live/group_live/form.ex index 49351b1..7db2345 100644 --- a/lib/mv_web/live/group_live/form.ex +++ b/lib/mv_web/live/group_live/form.ex @@ -27,40 +27,46 @@ defmodule MvWeb.GroupLive.Form do action = if params["slug"], do: :update, else: :create resource = Mv.Membership.Group - unless can?(actor, action, resource) do - {:ok, redirect(socket, to: ~p"/groups")} - else - socket = - case params["slug"] do - nil -> - # New group - socket - |> assign(:group, nil) - |> assign(:page_title, gettext("Create Group")) - |> assign(:return_to, "index") - - slug -> - # Edit existing group - case Membership.get_group_by_slug(slug, actor: actor) do - {:ok, nil} -> - socket - |> put_flash(:error, gettext("Group not found.")) - |> redirect(to: ~p"/groups") - - {:ok, group} -> - socket - |> assign(:group, group) - |> assign(:page_title, gettext("Edit Group")) - |> assign(:return_to, "show") - - {:error, _error} -> - socket - |> put_flash(:error, gettext("Failed to load group.")) - |> redirect(to: ~p"/groups") - end - end - + if can?(actor, action, resource) do + socket = load_group_for_form(socket, params, actor) {:ok, assign_form(socket)} + else + {:ok, redirect(socket, to: ~p"/groups")} + end + end + + defp load_group_for_form(socket, params, actor) do + case params["slug"] do + nil -> + # New group + socket + |> assign(:group, nil) + |> assign(:page_title, gettext("Create Group")) + |> assign(:return_to, "index") + + slug -> + # Edit existing group + load_existing_group(socket, slug, actor) + end + end + + defp load_existing_group(socket, slug, actor) do + case Membership.get_group_by_slug(slug, actor: actor) do + {:ok, nil} -> + socket + |> put_flash(:error, gettext("Group not found.")) + |> redirect(to: ~p"/groups") + + {:ok, group} -> + socket + |> assign(:group, group) + |> assign(:page_title, gettext("Edit Group")) + |> assign(:return_to, "show") + + {:error, _error} -> + socket + |> put_flash(:error, gettext("Failed to load group.")) + |> redirect(to: ~p"/groups") end end diff --git a/lib/mv_web/live/group_live/index.ex b/lib/mv_web/live/group_live/index.ex index 527bc96..80431e2 100644 --- a/lib/mv_web/live/group_live/index.ex +++ b/lib/mv_web/live/group_live/index.ex @@ -23,15 +23,15 @@ defmodule MvWeb.GroupLive.Index do actor = current_actor(socket) # Check if user can read groups - unless can?(actor, :read, Mv.Membership.Group) do - {:ok, redirect(socket, to: ~p"/members")} - else + if can?(actor, :read, Mv.Membership.Group) do groups = load_groups(actor) {:ok, socket |> assign(:page_title, gettext("Groups")) |> assign(:groups, groups)} + else + {:ok, redirect(socket, to: ~p"/members")} end end diff --git a/lib/mv_web/live/group_live/show.ex b/lib/mv_web/live/group_live/show.ex index 28117a2..676fa50 100644 --- a/lib/mv_web/live/group_live/show.ex +++ b/lib/mv_web/live/group_live/show.ex @@ -30,28 +30,32 @@ defmodule MvWeb.GroupLive.Show do actor = current_actor(socket) # Check if user can read groups - unless can?(actor, :read, Mv.Membership.Group) do - {:noreply, redirect(socket, to: ~p"/members")} + if can?(actor, :read, Mv.Membership.Group) do + load_group_by_slug(socket, slug, actor) else - case Membership.get_group_by_slug(slug, actor: actor, load: [:members, :member_count]) do - {:ok, nil} -> - {:noreply, - socket - |> put_flash(:error, gettext("Group not found.")) - |> redirect(to: ~p"/groups")} + {:noreply, redirect(socket, to: ~p"/members")} + end + end - {:ok, group} -> - {:noreply, - socket - |> assign(:page_title, group.name) - |> assign(:group, group)} + defp load_group_by_slug(socket, slug, actor) do + case Membership.get_group_by_slug(slug, actor: actor, load: [:members, :member_count]) do + {:ok, nil} -> + {:noreply, + socket + |> put_flash(:error, gettext("Group not found.")) + |> redirect(to: ~p"/groups")} - {:error, _error} -> - {:noreply, - socket - |> put_flash(:error, gettext("Failed to load group.")) - |> redirect(to: ~p"/groups")} - end + {:ok, group} -> + {:noreply, + socket + |> assign(:page_title, group.name) + |> assign(:group, group)} + + {:error, _error} -> + {:noreply, + socket + |> put_flash(:error, gettext("Failed to load group.")) + |> redirect(to: ~p"/groups")} end end @@ -101,7 +105,12 @@ defmodule MvWeb.GroupLive.Show do

{gettext("Members")}

- {gettext("Total: %{count} member(s)", count: @group.member_count || 0)} + {ngettext( + "Total: %{count} member", + "Total: %{count} members", + @group.member_count || 0, + count: @group.member_count || 0 + )}

<%= if Enum.empty?(@group.members || []) do %> @@ -243,33 +252,7 @@ defmodule MvWeb.GroupLive.Show do |> redirect(to: ~p"/groups")} {:ok, group} -> - if socket.assigns.name_confirmation == group.name do - case Membership.destroy_group(group, actor: actor) do - :ok -> - {:noreply, - socket - |> put_flash(:info, gettext("Group deleted successfully.")) - |> redirect(to: ~p"/groups")} - - {:error, error} -> - error_message = format_error(error) - - {:noreply, - socket - |> put_flash( - :error, - gettext("Failed to delete group: %{error}", error: error_message) - ) - |> assign(:show_delete_modal, false) - |> assign(:name_confirmation, "")} - end - else - {:noreply, - socket - |> put_flash(:error, gettext("Group name does not match.")) - |> assign(:show_delete_modal, false) - |> assign(:name_confirmation, "")} - end + handle_delete_confirmation(socket, group, actor) {:error, _error} -> {:noreply, @@ -279,6 +262,40 @@ defmodule MvWeb.GroupLive.Show do end end + defp handle_delete_confirmation(socket, group, actor) do + if socket.assigns.name_confirmation == group.name do + perform_group_deletion(socket, group, actor) + else + {:noreply, + socket + |> put_flash(:error, gettext("Group name does not match.")) + |> assign(:show_delete_modal, false) + |> assign(:name_confirmation, "")} + end + end + + defp perform_group_deletion(socket, group, actor) do + case Membership.destroy_group(group, actor: actor) do + :ok -> + {:noreply, + socket + |> put_flash(:info, gettext("Group deleted successfully.")) + |> redirect(to: ~p"/groups")} + + {:error, error} -> + error_message = format_error(error) + + {:noreply, + socket + |> put_flash( + :error, + gettext("Failed to delete group: %{error}", error: error_message) + ) + |> assign(:show_delete_modal, false) + |> assign(:name_confirmation, "")} + end + end + defp format_error(%{message: message}) when is_binary(message), do: message defp format_error(error), do: inspect(error) end diff --git a/priv/gettext/de/LC_MESSAGES/default.po b/priv/gettext/de/LC_MESSAGES/default.po index 5496213..cf83765 100644 --- a/priv/gettext/de/LC_MESSAGES/default.po +++ b/priv/gettext/de/LC_MESSAGES/default.po @@ -11,6 +11,7 @@ msgstr "" "Language: de\n" #: lib/mv_web/components/core_components.ex +#: lib/mv_web/live/group_live/index.ex #, elixir-autogen, elixir-format msgid "Actions" msgstr "Aktionen" @@ -37,6 +38,7 @@ msgid "City" msgstr "Stadt" #: lib/mv_web/live/custom_field_live/index_component.ex +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/member_live/index.html.heex #: lib/mv_web/live/member_live/show/membership_fees_component.ex #: lib/mv_web/live/role_live/index.html.heex @@ -46,6 +48,8 @@ msgid "Delete" msgstr "Löschen" #: lib/mv_web/live/custom_field_live/index_component.ex +#: lib/mv_web/live/group_live/index.ex +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/member_field_live/index_component.ex #: lib/mv_web/live/member_live/index.html.heex #: lib/mv_web/live/role_live/form.ex @@ -62,6 +66,7 @@ msgstr "Bearbeiten" msgid "Edit Member" msgstr "Mitglied bearbeiten" +#: lib/mv_web/live/group_live/show.ex #: 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 @@ -166,6 +171,7 @@ msgstr "Mitglied speichern" #: lib/mv_web/live/custom_field_live/form_component.ex #: lib/mv_web/live/global_settings_live.ex +#: lib/mv_web/live/group_live/form.ex #: lib/mv_web/live/member_field_live/form_component.ex #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/membership_fee_type_live/form.ex @@ -257,6 +263,7 @@ msgstr "Ihr Passwort wurde erfolgreich zurückgesetzt" #: lib/mv_web/live/custom_field_live/form_component.ex #: lib/mv_web/live/custom_field_live/index_component.ex +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/member_field_live/form_component.ex #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show/membership_fees_component.ex @@ -269,6 +276,9 @@ msgstr "Abbrechen" #: lib/mv_web/live/custom_field_live/form_component.ex #: lib/mv_web/live/custom_field_live/index_component.ex +#: lib/mv_web/live/group_live/form.ex +#: lib/mv_web/live/group_live/index.ex +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/member_field_live/form_component.ex #: lib/mv_web/live/member_field_live/index_component.ex #: lib/mv_web/live/membership_fee_type_live/form.ex @@ -301,6 +311,8 @@ msgid "Listing Users" msgstr "Benutzer*innen auflisten" #: lib/mv_web/components/layouts/sidebar.ex +#: lib/mv_web/live/group_live/index.ex +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/member_live/index.ex #: lib/mv_web/live/member_live/index.html.heex #: lib/mv_web/live/membership_fee_type_live/index.ex @@ -310,6 +322,9 @@ msgstr "Mitglieder" #: lib/mv_web/live/custom_field_live/form_component.ex #: lib/mv_web/live/custom_field_live/index_component.ex +#: lib/mv_web/live/group_live/form.ex +#: lib/mv_web/live/group_live/index.ex +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/member_field_live/form_component.ex #: lib/mv_web/live/member_field_live/index_component.ex #: lib/mv_web/live/membership_fee_type_live/form.ex @@ -752,6 +767,8 @@ msgstr "Alle" msgid "Address" msgstr "Adresse" +#: lib/mv_web/live/group_live/form.ex +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show.ex #, elixir-autogen, elixir-format @@ -791,6 +808,7 @@ msgstr "Zahlungen" msgid "Personal Data" msgstr "Persönliche Daten" +#: lib/mv_web/live/group_live/form.ex #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show/membership_fees_component.ex #, elixir-autogen, elixir-format @@ -1626,6 +1644,7 @@ msgstr "Hauptnavigation" msgid "New Role" msgstr "Neue Rolle" +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/role_live/index.html.heex #: lib/mv_web/live/role_live/show.ex #, elixir-autogen, elixir-format @@ -2125,3 +2144,111 @@ msgstr "E-Mail" #, elixir-autogen, elixir-format msgid "email %{email} has already been taken" msgstr "E-Mail %{email} wurde bereits verwendet" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Are you sure you want to delete this group? This action cannot be undone." +msgstr "Möchtest du diese Gruppe wirklich löschen?" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Back to groups list" +msgstr "Zurück zur Gruppenübersicht" + +#: lib/mv_web/live/group_live/form.ex +#: lib/mv_web/live/group_live/index.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Create Group" +msgstr "Gruppe erstellen" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Delete Group" +msgstr "Gruppe löschen" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Delete group" +msgstr "Gruppe löschen" + +#: lib/mv_web/live/group_live/form.ex +#, elixir-autogen, elixir-format +msgid "Edit Group" +msgstr "Gruppe bearbeiten" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "Enter the group name to confirm" +msgstr "Gebe zur Bestätigung den Gruppennamen ein" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Failed to delete group: %{error}" +msgstr "Gruppe konnte nicht gelöscht werden: %{error}" + +#: lib/mv_web/live/group_live/form.ex +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "Failed to load group." +msgstr "Gruppe konnte nicht geladen werden" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Group deleted successfully." +msgstr "Gruppe erfolgreich gelöscht" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "Group name does not match." +msgstr "Gruppenname stimmt nicht überein" + +#: lib/mv_web/live/group_live/form.ex +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Group not found." +msgstr "Gruppe nicht gefunden." + +#: lib/mv_web/live/group_live/form.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Group saved successfully." +msgstr "Gruppe erfolgreich gespeichert." + +#: lib/mv_web/components/layouts/sidebar.ex +#: lib/mv_web/live/group_live/index.ex +#, elixir-autogen, elixir-format +msgid "Groups" +msgstr "Gruppen" + +#: lib/mv_web/live/group_live/index.ex +#, elixir-autogen, elixir-format +msgid "No groups" +msgstr "Keine Gruppen" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "No members in this group" +msgstr "Keine Mitglieder in dieser Gruppe" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "This group has %{count} member. All member-group associations will be permanently deleted." +msgid_plural "This group has %{count} members. All member-group associations will be permanently deleted." +msgstr[0] "Diese Gruppe hat %{count} Mitglied. Alle Mitglied-Gruppen-Zuordnungen werden dauerhaft gelöscht." +msgstr[1] "Diese Gruppe hat %{count} Mitglieder. Alle Mitglied-Gruppen-Zuordnungen werden dauerhaft gelöscht." + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "To confirm deletion, please enter the group name:" +msgstr "Um die Löschung zu bestätigen, gib bitte den Gruppennamen ein:" + +#: lib/mv_web/live/group_live/index.ex +#, elixir-autogen, elixir-format +msgid "View" +msgstr "Anzeigen" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "Total: %{count} member" +msgid_plural "Total: %{count} members" +msgstr[0] "Insgesamt: %{count} Mitglied" +msgstr[1] "Insgesamt: %{count} Mitglieder" diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot index fc3a78c..a77a013 100644 --- a/priv/gettext/default.pot +++ b/priv/gettext/default.pot @@ -12,6 +12,7 @@ msgid "" msgstr "" #: lib/mv_web/components/core_components.ex +#: lib/mv_web/live/group_live/index.ex #, elixir-autogen, elixir-format msgid "Actions" msgstr "" @@ -38,6 +39,7 @@ msgid "City" msgstr "" #: lib/mv_web/live/custom_field_live/index_component.ex +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/member_live/index.html.heex #: lib/mv_web/live/member_live/show/membership_fees_component.ex #: lib/mv_web/live/role_live/index.html.heex @@ -47,6 +49,8 @@ msgid "Delete" msgstr "" #: lib/mv_web/live/custom_field_live/index_component.ex +#: lib/mv_web/live/group_live/index.ex +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/member_field_live/index_component.ex #: lib/mv_web/live/member_live/index.html.heex #: lib/mv_web/live/role_live/form.ex @@ -63,6 +67,7 @@ msgstr "" msgid "Edit Member" msgstr "" +#: lib/mv_web/live/group_live/show.ex #: 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 @@ -167,6 +172,7 @@ msgstr "" #: lib/mv_web/live/custom_field_live/form_component.ex #: lib/mv_web/live/global_settings_live.ex +#: lib/mv_web/live/group_live/form.ex #: lib/mv_web/live/member_field_live/form_component.ex #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/membership_fee_type_live/form.ex @@ -258,6 +264,7 @@ msgstr "" #: lib/mv_web/live/custom_field_live/form_component.ex #: lib/mv_web/live/custom_field_live/index_component.ex +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/member_field_live/form_component.ex #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show/membership_fees_component.ex @@ -270,6 +277,9 @@ msgstr "" #: lib/mv_web/live/custom_field_live/form_component.ex #: lib/mv_web/live/custom_field_live/index_component.ex +#: lib/mv_web/live/group_live/form.ex +#: lib/mv_web/live/group_live/index.ex +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/member_field_live/form_component.ex #: lib/mv_web/live/member_field_live/index_component.ex #: lib/mv_web/live/membership_fee_type_live/form.ex @@ -302,6 +312,8 @@ msgid "Listing Users" msgstr "" #: lib/mv_web/components/layouts/sidebar.ex +#: lib/mv_web/live/group_live/index.ex +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/member_live/index.ex #: lib/mv_web/live/member_live/index.html.heex #: lib/mv_web/live/membership_fee_type_live/index.ex @@ -311,6 +323,9 @@ msgstr "" #: lib/mv_web/live/custom_field_live/form_component.ex #: lib/mv_web/live/custom_field_live/index_component.ex +#: lib/mv_web/live/group_live/form.ex +#: lib/mv_web/live/group_live/index.ex +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/member_field_live/form_component.ex #: lib/mv_web/live/member_field_live/index_component.ex #: lib/mv_web/live/membership_fee_type_live/form.ex @@ -753,6 +768,8 @@ msgstr "" msgid "Address" msgstr "" +#: lib/mv_web/live/group_live/form.ex +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show.ex #, elixir-autogen, elixir-format @@ -792,6 +809,7 @@ msgstr "" msgid "Personal Data" msgstr "" +#: lib/mv_web/live/group_live/form.ex #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show/membership_fees_component.ex #, elixir-autogen, elixir-format @@ -1627,6 +1645,7 @@ msgstr "" msgid "New Role" msgstr "" +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/role_live/index.html.heex #: lib/mv_web/live/role_live/show.ex #, elixir-autogen, elixir-format @@ -2126,3 +2145,111 @@ msgstr "" #, elixir-autogen, elixir-format msgid "email %{email} has already been taken" msgstr "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "Are you sure you want to delete this group? This action cannot be undone." +msgstr "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "Back to groups list" +msgstr "" + +#: lib/mv_web/live/group_live/form.ex +#: lib/mv_web/live/group_live/index.ex +#, elixir-autogen, elixir-format +msgid "Create Group" +msgstr "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "Delete Group" +msgstr "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "Delete group" +msgstr "" + +#: lib/mv_web/live/group_live/form.ex +#, elixir-autogen, elixir-format +msgid "Edit Group" +msgstr "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "Enter the group name to confirm" +msgstr "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "Failed to delete group: %{error}" +msgstr "" + +#: lib/mv_web/live/group_live/form.ex +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "Failed to load group." +msgstr "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "Group deleted successfully." +msgstr "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "Group name does not match." +msgstr "" + +#: lib/mv_web/live/group_live/form.ex +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "Group not found." +msgstr "" + +#: lib/mv_web/live/group_live/form.ex +#, elixir-autogen, elixir-format +msgid "Group saved successfully." +msgstr "" + +#: lib/mv_web/components/layouts/sidebar.ex +#: lib/mv_web/live/group_live/index.ex +#, elixir-autogen, elixir-format +msgid "Groups" +msgstr "" + +#: lib/mv_web/live/group_live/index.ex +#, elixir-autogen, elixir-format +msgid "No groups" +msgstr "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "No members in this group" +msgstr "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "This group has %{count} member. All member-group associations will be permanently deleted." +msgid_plural "This group has %{count} members. All member-group associations will be permanently deleted." +msgstr[0] "" +msgstr[1] "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "To confirm deletion, please enter the group name:" +msgstr "" + +#: lib/mv_web/live/group_live/index.ex +#, elixir-autogen, elixir-format +msgid "View" +msgstr "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "Total: %{count} member" +msgid_plural "Total: %{count} members" +msgstr[0] "" +msgstr[1] "" diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po index 9432a47..b5a060b 100644 --- a/priv/gettext/en/LC_MESSAGES/default.po +++ b/priv/gettext/en/LC_MESSAGES/default.po @@ -12,6 +12,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/mv_web/components/core_components.ex +#: lib/mv_web/live/group_live/index.ex #, elixir-autogen, elixir-format msgid "Actions" msgstr "" @@ -38,6 +39,7 @@ msgid "City" msgstr "" #: lib/mv_web/live/custom_field_live/index_component.ex +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/member_live/index.html.heex #: lib/mv_web/live/member_live/show/membership_fees_component.ex #: lib/mv_web/live/role_live/index.html.heex @@ -47,6 +49,8 @@ msgid "Delete" msgstr "" #: lib/mv_web/live/custom_field_live/index_component.ex +#: lib/mv_web/live/group_live/index.ex +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/member_field_live/index_component.ex #: lib/mv_web/live/member_live/index.html.heex #: lib/mv_web/live/role_live/form.ex @@ -63,6 +67,7 @@ msgstr "" msgid "Edit Member" msgstr "" +#: lib/mv_web/live/group_live/show.ex #: 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 @@ -167,6 +172,7 @@ msgstr "" #: lib/mv_web/live/custom_field_live/form_component.ex #: lib/mv_web/live/global_settings_live.ex +#: lib/mv_web/live/group_live/form.ex #: lib/mv_web/live/member_field_live/form_component.ex #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/membership_fee_type_live/form.ex @@ -258,6 +264,7 @@ msgstr "" #: lib/mv_web/live/custom_field_live/form_component.ex #: lib/mv_web/live/custom_field_live/index_component.ex +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/member_field_live/form_component.ex #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show/membership_fees_component.ex @@ -270,6 +277,9 @@ msgstr "" #: lib/mv_web/live/custom_field_live/form_component.ex #: lib/mv_web/live/custom_field_live/index_component.ex +#: lib/mv_web/live/group_live/form.ex +#: lib/mv_web/live/group_live/index.ex +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/member_field_live/form_component.ex #: lib/mv_web/live/member_field_live/index_component.ex #: lib/mv_web/live/membership_fee_type_live/form.ex @@ -302,6 +312,8 @@ msgid "Listing Users" msgstr "" #: lib/mv_web/components/layouts/sidebar.ex +#: lib/mv_web/live/group_live/index.ex +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/member_live/index.ex #: lib/mv_web/live/member_live/index.html.heex #: lib/mv_web/live/membership_fee_type_live/index.ex @@ -311,6 +323,9 @@ msgstr "" #: lib/mv_web/live/custom_field_live/form_component.ex #: lib/mv_web/live/custom_field_live/index_component.ex +#: lib/mv_web/live/group_live/form.ex +#: lib/mv_web/live/group_live/index.ex +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/member_field_live/form_component.ex #: lib/mv_web/live/member_field_live/index_component.ex #: lib/mv_web/live/membership_fee_type_live/form.ex @@ -753,6 +768,8 @@ msgstr "" msgid "Address" msgstr "" +#: lib/mv_web/live/group_live/form.ex +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show.ex #, elixir-autogen, elixir-format @@ -792,6 +809,7 @@ msgstr "" msgid "Personal Data" msgstr "" +#: lib/mv_web/live/group_live/form.ex #: lib/mv_web/live/member_live/form.ex #: lib/mv_web/live/member_live/show/membership_fees_component.ex #, elixir-autogen, elixir-format, fuzzy @@ -1627,6 +1645,7 @@ msgstr "" msgid "New Role" msgstr "" +#: lib/mv_web/live/group_live/show.ex #: lib/mv_web/live/role_live/index.html.heex #: lib/mv_web/live/role_live/show.ex #, elixir-autogen, elixir-format, fuzzy @@ -2126,3 +2145,111 @@ msgstr "" #, elixir-autogen, elixir-format msgid "email %{email} has already been taken" msgstr "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Are you sure you want to delete this group? This action cannot be undone." +msgstr "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Back to groups list" +msgstr "" + +#: lib/mv_web/live/group_live/form.ex +#: lib/mv_web/live/group_live/index.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Create Group" +msgstr "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Delete Group" +msgstr "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Delete group" +msgstr "" + +#: lib/mv_web/live/group_live/form.ex +#, elixir-autogen, elixir-format +msgid "Edit Group" +msgstr "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "Enter the group name to confirm" +msgstr "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Failed to delete group: %{error}" +msgstr "" + +#: lib/mv_web/live/group_live/form.ex +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "Failed to load group." +msgstr "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Group deleted successfully." +msgstr "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "Group name does not match." +msgstr "" + +#: lib/mv_web/live/group_live/form.ex +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Group not found." +msgstr "" + +#: lib/mv_web/live/group_live/form.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Group saved successfully." +msgstr "" + +#: lib/mv_web/components/layouts/sidebar.ex +#: lib/mv_web/live/group_live/index.ex +#, elixir-autogen, elixir-format +msgid "Groups" +msgstr "" + +#: lib/mv_web/live/group_live/index.ex +#, elixir-autogen, elixir-format +msgid "No groups" +msgstr "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "No members in this group" +msgstr "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format +msgid "This group has %{count} member. All member-group associations will be permanently deleted." +msgid_plural "This group has %{count} members. All member-group associations will be permanently deleted." +msgstr[0] "" +msgstr[1] "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "To confirm deletion, please enter the group name:" +msgstr "" + +#: lib/mv_web/live/group_live/index.ex +#, elixir-autogen, elixir-format +msgid "View" +msgstr "" + +#: lib/mv_web/live/group_live/show.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Total: %{count} member" +msgid_plural "Total: %{count} members" +msgstr[0] "" +msgstr[1] ""