Show total and per disc duration
This commit is contained in:
@@ -21,6 +21,10 @@ defmodule MusicBrainz.Release do
|
||||
Enum.count(release.media)
|
||||
end
|
||||
|
||||
def medium_duration(medium) do
|
||||
Enum.sum_by(medium.tracks, fn track -> track.length end)
|
||||
end
|
||||
|
||||
def from_api_response(r) do
|
||||
%__MODULE__{
|
||||
id: r["id"],
|
||||
|
||||
@@ -173,4 +173,10 @@ defmodule MusicLibraryWeb.CollectionLive.Show do
|
||||
|
||||
defp title_segment(:show), do: gettext("Show")
|
||||
defp title_segment(:edit), do: gettext("Edit")
|
||||
|
||||
defp medium_duration(medium) do
|
||||
medium
|
||||
|> MusicBrainz.Release.medium_duration()
|
||||
|> format_duration()
|
||||
end
|
||||
end
|
||||
|
||||
@@ -279,6 +279,7 @@
|
||||
id="tracks-sheet"
|
||||
placement="right"
|
||||
on_open={JS.push("load_release_with_tracks")}
|
||||
open
|
||||
>
|
||||
<h3 class="text-lg font-semibold mb-4">{gettext("Tracks")}</h3>
|
||||
|
||||
@@ -326,6 +327,10 @@
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<Fluxon.Components.Separator.separator />
|
||||
<p class="text-xs text-right text-zinc-700 dark:text-zinc-300">
|
||||
{medium_duration(medium)}
|
||||
</p>
|
||||
</div>
|
||||
</.async_result>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user