diff --git a/lib/music_library_web/live/scrobble_live/index.ex b/lib/music_library_web/live/scrobble_live/index.ex index ffabdb9c..d8bd14b7 100644 --- a/lib/music_library_web/live/scrobble_live/index.ex +++ b/lib/music_library_web/live/scrobble_live/index.ex @@ -116,7 +116,7 @@ defmodule MusicLibraryWeb.ScrobbleLive.Index do socket = socket - |> assign(:page_title, gettext("Scrobble")) + |> assign(:page_title, gettext("Scrobble Anything")) |> assign(:search_query, query) if String.trim(query) != "" do diff --git a/lib/music_library_web/live/scrobble_live/release_group_show.ex b/lib/music_library_web/live/scrobble_live/release_group_show.ex index f7e11064..3fc4a192 100644 --- a/lib/music_library_web/live/scrobble_live/release_group_show.ex +++ b/lib/music_library_web/live/scrobble_live/release_group_show.ex @@ -107,8 +107,7 @@ defmodule MusicLibraryWeb.ScrobbleLive.ReleaseGroupShow do assign(socket, current_section: :scrobble, release_group_data: AsyncResult.loading(), - rg_id: nil, - page_title: gettext("Scrobble") + rg_id: nil )} end @@ -124,11 +123,12 @@ defmodule MusicLibraryWeb.ScrobbleLive.ReleaseGroupShow do @impl true def handle_async(:release_group_data, {:ok, {:ok, data}}, socket) do {:noreply, - assign( - socket, + socket + |> assign( :release_group_data, AsyncResult.ok(socket.assigns.release_group_data, data) - )} + ) + |> assign(:page_title, page_title(data.release_group))} end def handle_async(:release_group_data, {:ok, {:error, reason}}, socket) do @@ -166,4 +166,19 @@ defmodule MusicLibraryWeb.ScrobbleLive.ReleaseGroupShow do defp parse_release_group(_) do {:error, :invalid_release_group_response} end + + defp page_title(release_group) do + Enum.join( + [ + release_group.artists, + "-", + release_group.title, + "·", + gettext("Release Group"), + "·", + gettext("Scrobble Anything") + ], + " " + ) + end end diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot index 6d88c165..316f92ba 100644 --- a/priv/gettext/default.pot +++ b/priv/gettext/default.pot @@ -1250,12 +1250,6 @@ msgstr "" msgid "90d" msgstr "" -#: lib/music_library_web/live/scrobble_live/index.ex -#: lib/music_library_web/live/scrobble_live/release_group_show.ex -#, elixir-autogen, elixir-format -msgid "Scrobble" -msgstr "" - #: lib/music_library_web/live/scrobble_live/index.ex #, elixir-autogen, elixir-format msgid "Failed to search for release groups" @@ -1294,6 +1288,8 @@ msgid "Scrobble side" msgstr "" #: lib/music_library_web/components/layouts/app.html.heex +#: lib/music_library_web/live/scrobble_live/index.ex +#: lib/music_library_web/live/scrobble_live/release_group_show.ex #, elixir-autogen, elixir-format msgid "Scrobble Anything" msgstr "" @@ -2532,3 +2528,8 @@ msgstr "" #, elixir-autogen, elixir-format msgid "Scrobble Release" msgstr "" + +#: lib/music_library_web/live/scrobble_live/release_group_show.ex +#, elixir-autogen, elixir-format +msgid "Release Group" +msgstr "" diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po index 89b6a049..18794d80 100644 --- a/priv/gettext/en/LC_MESSAGES/default.po +++ b/priv/gettext/en/LC_MESSAGES/default.po @@ -1250,12 +1250,6 @@ msgstr "" msgid "90d" msgstr "" -#: lib/music_library_web/live/scrobble_live/index.ex -#: lib/music_library_web/live/scrobble_live/release_group_show.ex -#, elixir-autogen, elixir-format, fuzzy -msgid "Scrobble" -msgstr "" - #: lib/music_library_web/live/scrobble_live/index.ex #, elixir-autogen, elixir-format, fuzzy msgid "Failed to search for release groups" @@ -1294,6 +1288,8 @@ msgid "Scrobble side" msgstr "" #: lib/music_library_web/components/layouts/app.html.heex +#: lib/music_library_web/live/scrobble_live/index.ex +#: lib/music_library_web/live/scrobble_live/release_group_show.ex #, elixir-autogen, elixir-format, fuzzy msgid "Scrobble Anything" msgstr "" @@ -2532,3 +2528,8 @@ msgstr "" #, elixir-autogen, elixir-format, fuzzy msgid "Scrobble Release" msgstr "" + +#: lib/music_library_web/live/scrobble_live/release_group_show.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Release Group" +msgstr "" diff --git a/test/music_library_web/live/scrobble_live/release_group_show_test.exs b/test/music_library_web/live/scrobble_live/release_group_show_test.exs index c8df607a..347469b9 100644 --- a/test/music_library_web/live/scrobble_live/release_group_show_test.exs +++ b/test/music_library_web/live/scrobble_live/release_group_show_test.exs @@ -51,6 +51,14 @@ defmodule MusicLibraryWeb.ScrobbleLive.ReleaseGroupShowTest do |> visit(~p"/scrobble/#{@rg_id}") |> assert_has("a[href='/scrobble']", text: "Back to search") end + + test "sets the page title from the loaded release group", %{conn: conn} do + {:ok, view, _html} = Phoenix.LiveViewTest.live(conn, ~p"/scrobble/#{@rg_id}") + render_async(view) + + assert Phoenix.LiveViewTest.page_title(view) == + "Marillion - Marbles · Release Group · Scrobble Anything" + end end describe "fetch failure" do