From d0d7d38c03ddaff2c5daf7c5a53a01df220e9f20 Mon Sep 17 00:00:00 2001 From: Simon Date: Wed, 6 May 2026 12:14:22 +0200 Subject: [PATCH] feat: add open button to join link in settings --- lib/mv_web/live/global_settings_live.ex | 10 ++++++++++ priv/gettext/de/LC_MESSAGES/default.po | 8 +++++++- priv/gettext/default.pot | 6 ++++++ priv/gettext/en/LC_MESSAGES/default.po | 6 ++++++ test/mv_web/live/global_settings_live_test.exs | 15 +++++++++++++++ 5 files changed, 44 insertions(+), 1 deletion(-) diff --git a/lib/mv_web/live/global_settings_live.ex b/lib/mv_web/live/global_settings_live.ex index cb57631..b6f232b 100644 --- a/lib/mv_web/live/global_settings_live.ex +++ b/lib/mv_web/live/global_settings_live.ex @@ -186,6 +186,16 @@ defmodule MvWeb.GlobalSettingsLive do <.icon name="hero-clipboard-document" class="size-4" /> {gettext("Copy")} + <.link + href={@join_url} + target="_blank" + rel="noopener noreferrer" + class="btn btn-secondary btn-sm" + aria-label={gettext("Open join page URL in a new tab")} + > + <.icon name="hero-arrow-top-right-on-square" class="size-4" /> + {gettext("Open")} + diff --git a/priv/gettext/de/LC_MESSAGES/default.po b/priv/gettext/de/LC_MESSAGES/default.po index 383fb1c..432fd33 100644 --- a/priv/gettext/de/LC_MESSAGES/default.po +++ b/priv/gettext/de/LC_MESSAGES/default.po @@ -2396,10 +2396,11 @@ msgstr "Nur Administrator*innen oder die verknüpfte*n Benutzer*in(nen) können msgid "Only possible if no members are assigned to this type." msgstr "Nur möglich, wenn diesem Typ keine Mitglieder zugewiesen sind." +#: lib/mv_web/live/global_settings_live.ex #: lib/mv_web/live/member_live/show/membership_fees_component.ex #, elixir-autogen, elixir-format msgid "Open" -msgstr "Offen" +msgstr "Öffnen" #: lib/mv_web/live/member_live/index.html.heex #, elixir-autogen, elixir-format @@ -3905,3 +3906,8 @@ msgstr "Nur OIDC-Anmeldung ist aktiv. Diese Option ist deaktiviert." #, elixir-autogen, elixir-format msgid "Only sign-in via Single Sign-On (SSO) is allowed." msgstr "Nur Anmeldung per Single Sign-On (SSO) ist erlaubt." + +#: lib/mv_web/live/global_settings_live.ex +#, elixir-autogen, elixir-format +msgid "Open join page URL in a new tab" +msgstr "" diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot index 3e2eb5d..5039253 100644 --- a/priv/gettext/default.pot +++ b/priv/gettext/default.pot @@ -2397,6 +2397,7 @@ msgstr "" msgid "Only possible if no members are assigned to this type." msgstr "" +#: lib/mv_web/live/global_settings_live.ex #: lib/mv_web/live/member_live/show/membership_fees_component.ex #, elixir-autogen, elixir-format msgid "Open" @@ -3905,3 +3906,8 @@ msgstr "" #, elixir-autogen, elixir-format msgid "Only sign-in via Single Sign-On (SSO) is allowed." msgstr "" + +#: lib/mv_web/live/global_settings_live.ex +#, elixir-autogen, elixir-format +msgid "Open join page URL in a new tab" +msgstr "" diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po index 21314a5..b63ce04 100644 --- a/priv/gettext/en/LC_MESSAGES/default.po +++ b/priv/gettext/en/LC_MESSAGES/default.po @@ -2397,6 +2397,7 @@ msgstr "" msgid "Only possible if no members are assigned to this type." msgstr "" +#: lib/mv_web/live/global_settings_live.ex #: lib/mv_web/live/member_live/show/membership_fees_component.ex #, elixir-autogen, elixir-format msgid "Open" @@ -3905,3 +3906,8 @@ msgstr "" #, elixir-autogen, elixir-format msgid "Only sign-in via Single Sign-On (SSO) is allowed." msgstr "" + +#: lib/mv_web/live/global_settings_live.ex +#, elixir-autogen, elixir-format +msgid "Open join page URL in a new tab" +msgstr "" diff --git a/test/mv_web/live/global_settings_live_test.exs b/test/mv_web/live/global_settings_live_test.exs index 92da11b..2edaf74 100644 --- a/test/mv_web/live/global_settings_live_test.exs +++ b/test/mv_web/live/global_settings_live_test.exs @@ -64,6 +64,21 @@ defmodule MvWeb.GlobalSettingsLiveTest do assert html =~ "must be present" end + + test "shows open button for join page URL in same row as copy", %{conn: conn} do + {:ok, settings} = Membership.get_settings() + {:ok, _} = Membership.update_settings(settings, %{join_form_enabled: true}) + + {:ok, view, _html} = live(conn, ~p"/settings") + + assert has_element?(view, "#copy-join-url-btn") + + assert has_element?( + view, + "a[href][target=\"_blank\"][rel=\"noopener noreferrer\"]", + "Open" + ) + end end describe "SMTP / E-Mail section" do