78 lines
2.8 KiB
Plaintext
78 lines
2.8 KiB
Plaintext
<div>
|
|
<dl class="mt-5 grid grid-cols-1 gap-5 sm:grid-cols-3">
|
|
<div
|
|
class="relative overflow-hidden rounded-lg bg-white px-4 pb-3 pt-5 shadow sm:px-6 sm:pt-6 sm:col-span-2 cursor-pointer"
|
|
phx-click={JS.navigate(~p"/records/#{@latest_record}")}
|
|
>
|
|
<dt>
|
|
<img
|
|
class="absolute w-20 rounded-lg shadow"
|
|
src={~p"/covers/#{@latest_record.id}"}
|
|
alt={@latest_record.title}
|
|
/>
|
|
<p class="ml-24 truncate text-xs sm:text-sm font-medium text-gray-500">
|
|
Latest record
|
|
</p>
|
|
</dt>
|
|
<dd class="ml-24 flex items-baseline pb-6 sm:pb-7">
|
|
<p class="font-semibold">
|
|
<.link
|
|
:for={artist <- @latest_record.artists}
|
|
class="text-sm md:text-base lg:text-2xl text-gray-900 hover:text-gray-500"
|
|
patch={~p"/records?query=mbid:#{artist.musicbrainz_id}"}
|
|
>
|
|
<%= artist.name %>
|
|
</.link>
|
|
<span class="text-sm md:text-base block text-gray-600">
|
|
<%= @latest_record.title %>
|
|
</span>
|
|
</p>
|
|
</dd>
|
|
</div>
|
|
<div class="overflow-hidden rounded-lg bg-white px-4 pb-3 pt-5 shadow sm:px-6 sm:pt-6">
|
|
<dt>
|
|
<p class="truncate text-sm font-medium text-gray-500">Total Records</p>
|
|
</dt>
|
|
<dd class="flex items-baseline pb-6 sm:pb-7">
|
|
<a href={~p"/records"} class="text-2xl font-semibold text-gray-900 hover:text-gray-500">
|
|
<%= @records_count %>
|
|
</a>
|
|
</dd>
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
|
|
<div>
|
|
<dl class="mt-5 grid divide-y divide-gray-200 overflow-hidden rounded-lg bg-white shadow grid-cols-5 md:divide-x md:divide-y-0">
|
|
<div :for={{format, count} <- @records_count_by_format} class="px-4 py-5 sm:p-6">
|
|
<dt class="text-base max-sm:text-xs font-normal text-gray-900 break-keep">
|
|
<%= Record.format_long_label(format) %>
|
|
</dt>
|
|
<dd class="mt-1 flex items-baseline justify-between md:block lg:flex">
|
|
<div class="flex items-baseline text-2xl font-semibold">
|
|
<a class="hover:text-gray-500" href={~p"/records?query=format:#{format}"}>
|
|
<%= count %>
|
|
</a>
|
|
</div>
|
|
</dd>
|
|
</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 class="hover:text-gray-500" href={~p"/records?query=type:#{type}"}>
|
|
<%= count %>
|
|
</a>
|
|
</div>
|
|
</dd>
|
|
</div>
|
|
</dl>
|
|
</div>
|