Display type stats

This commit is contained in:
Claudio Ortolina
2024-10-14 22:33:05 +01:00
parent 7a0d017965
commit 2661c9f60d
3 changed files with 33 additions and 3 deletions
@@ -8,11 +8,16 @@ defmodule MusicLibraryWeb.StatsController do
Records.count_records_by_format()
|> Enum.sort_by(fn {_format, count} -> count end, :desc)
records_count_by_type =
Records.count_records_by_type()
|> Enum.sort_by(fn {_type, count} -> count end, :desc)
records_count = Enum.reduce(records_count_by_format, 0, fn {_, count}, acc -> acc + count end)
latest_record = Records.get_latest_record!()
render(conn, :index,
records_count_by_format: records_count_by_format,
records_count_by_type: records_count_by_type,
records_count: records_count,
latest_record: latest_record,
nav_section: :stats
@@ -54,3 +54,20 @@
</div>
</dl>
</div>
<div>
<dl class="mt-5 grid divide-y divide-gray-200 overflow-hidden rounded-lg bg-white shadow grid-cols-6 md:divide-x md:divide-y-0">
<div :for={{type, count} <- @records_count_by_type} class="px-4 py-5 sm:p-6">
<dt class="text-base max-sm:text-xs font-normal text-gray-900 break-keep">
<%= Record.type_long_label(type) %>
</dt>
<dd class="mt-1 flex items-baseline justify-between md:block lg:flex">
<div class="flex items-baseline text-2xl font-semibold">
<a href={~p"/records?query=type:#{type}"}>
<%= count %>
</a>
</div>
</dd>
</div>
</dl>
</div>