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