Added library size to homepage (#264)

This commit is contained in:
Kieran
2024-05-27 10:43:50 -07:00
committed by GitHub
parent 3a5c06fe64
commit b2e16d50cd
5 changed files with 75 additions and 5 deletions
@@ -20,14 +20,14 @@ defmodule PinchflatWeb.Pages.PageController do
end
defp render_home_page(conn) do
downloaded_media_items = where(MediaQuery.new(), ^MediaQuery.downloaded())
conn
|> render(:home,
media_profile_count: Repo.aggregate(MediaProfile, :count, :id),
source_count: Repo.aggregate(Source, :count, :id),
media_item_count:
MediaQuery.new()
|> where(^MediaQuery.downloaded())
|> Repo.aggregate(:count, :id)
media_item_size: Repo.aggregate(downloaded_media_items, :sum, :media_size_bytes),
media_item_count: Repo.aggregate(downloaded_media_items, :count, :id)
)
end
@@ -1,5 +1,13 @@
defmodule PinchflatWeb.Pages.PageHTML do
use PinchflatWeb, :html
alias Pinchflat.Utils.NumberUtils
embed_templates "page_html/*"
def readable_media_filesize(media_filesize) do
{num, suffix} = NumberUtils.human_byte_size(media_filesize, precision: 1)
"#{Float.round(num)} #{suffix}"
end
end
@@ -1,4 +1,4 @@
<div class="grid grid-cols-1 gap-4 md:grid-cols-3">
<div class="grid grid-cols-1 gap-4 md:grid-cols-4">
<div class="rounded-sm border px-7.5 py-6 shadow-default border-strokedark bg-boxdark">
<a href={~p"/media_profiles"} class="mt-4 flex flex-col items-center justify-center">
<span class="text-md font-medium">Media Profile(s)</span>
@@ -23,6 +23,14 @@
</h4>
</span>
</div>
<div class="rounded-sm border px-7.5 py-6 shadow-default border-strokedark bg-boxdark">
<span class="mt-4 flex flex-col items-center justify-center">
<span class="text-md font-medium">Library Size</span>
<h4 class="text-title-md font-bold text-white">
<%= readable_media_filesize(@media_item_size) %>
</h4>
</span>
</div>
</div>
<div class="rounded-sm border shadow-default border-strokedark bg-boxdark mt-4 p-5">