From e1938f698cbdbd55f8ddc091e3cde6863b649eeb Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Mon, 5 May 2025 16:18:21 +0100 Subject: [PATCH] Display medium title if available --- lib/music_brainz/release.ex | 5 +++-- lib/music_library_web/live/collection_live/show.ex | 8 ++++++++ lib/music_library_web/live/collection_live/show.html.heex | 2 +- priv/gettext/default.pot | 2 +- priv/gettext/en/LC_MESSAGES/default.po | 2 +- 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/lib/music_brainz/release.ex b/lib/music_brainz/release.ex index d11da676..a3911755 100644 --- a/lib/music_brainz/release.ex +++ b/lib/music_brainz/release.ex @@ -8,8 +8,8 @@ defmodule MusicBrainz.Release do end defmodule Medium do - @enforce_keys [:format, :number, :track_count, :tracks] - defstruct [:format, :number, :track_count, :tracks] + @enforce_keys [:title, :format, :number, :track_count, :tracks] + defstruct [:title, :format, :number, :track_count, :tracks] end defmodule Track do @@ -38,6 +38,7 @@ defmodule MusicBrainz.Release do defp parse_media(media) do Enum.map(media, fn m -> %Medium{ + title: m["title"], format: m["format"], number: m["position"], track_count: m["track-count"], diff --git a/lib/music_library_web/live/collection_live/show.ex b/lib/music_library_web/live/collection_live/show.ex index 9db9288d..c243a978 100644 --- a/lib/music_library_web/live/collection_live/show.ex +++ b/lib/music_library_web/live/collection_live/show.ex @@ -179,4 +179,12 @@ defmodule MusicLibraryWeb.CollectionLive.Show do |> MusicBrainz.Release.medium_duration() |> format_duration() end + + defp medium_title(medium) do + if medium.title !== "" do + medium.title + else + gettext("Disc %{no}", %{no: medium.number}) + end + end end diff --git a/lib/music_library_web/live/collection_live/show.html.heex b/lib/music_library_web/live/collection_live/show.html.heex index 88a62548..3e54ce70 100644 --- a/lib/music_library_web/live/collection_live/show.html.heex +++ b/lib/music_library_web/live/collection_live/show.html.heex @@ -305,7 +305,7 @@ :if={MusicBrainz.Release.media_count(release_with_tracks) > 1} class="text-sm font-semibold" > - {gettext("Disc %{no}", %{no: medium.number})} + {medium_title(medium)}