Media UI v1 (#17)

* Updated comments

* Added basic media tables to sources#show

* Adds a very basic listing and show page for media
This commit is contained in:
Kieran
2024-02-09 19:21:51 -08:00
committed by GitHub
parent e0637331bb
commit 77f06bfbc8
8 changed files with 102 additions and 2 deletions
@@ -2,6 +2,7 @@ defmodule PinchflatWeb.MediaSources.SourceController do
use PinchflatWeb, :controller
alias Pinchflat.Repo
alias Pinchflat.Media
alias Pinchflat.Profiles
alias Pinchflat.MediaSource
alias Pinchflat.MediaSource.Source
@@ -36,7 +37,10 @@ defmodule PinchflatWeb.MediaSources.SourceController do
|> MediaSource.get_source!()
|> Repo.preload(:media_profile)
render(conn, :show, source: source)
pending_media = Media.list_pending_media_items_for(source)
downloaded_media = Media.list_downloaded_media_items_for(source)
render(conn, :show, source: source, pending_media: pending_media, downloaded_media: downloaded_media)
end
def edit(conn, %{"id" => id}) do
@@ -33,6 +33,44 @@
<h3 class="font-bold text-xl">Attributes</h3>
<.list_items_from_map map={Map.from_struct(@source)} />
<h3 class="font-bold text-xl">Downloaded Media</h3>
<%= if length(@downloaded_media) > 0 do %>
<.table rows={@downloaded_media} table_class="text-black dark:text-white">
<:col :let={media_item} label="Title">
<%= String.slice(media_item.title, 0..50) %>...
</:col>
<:col :let={media_item} label="" class="flex place-content-evenly">
<.link
navigate={~p"/sources/#{@source.id}/media/#{media_item.id}"}
class="hover:text-secondary duration-200 ease-in-out mx-0.5"
>
<.icon name="hero-eye" />
</.link>
</:col>
</.table>
<% else %>
<p class="text-black dark:text-white">Nothing Here!</p>
<% end %>
<h3 class="font-bold text-xl">Pending Media</h3>
<%= if length(@pending_media) > 0 do %>
<.table rows={@pending_media} table_class="text-black dark:text-white">
<:col :let={media_item} label="Title">
<%= String.slice(media_item.title, 0..50) %>...
</:col>
<:col :let={media_item} label="" class="flex place-content-evenly">
<.link
navigate={~p"/sources/#{@source.id}/media/#{media_item.id}"}
class="hover:text-secondary duration-200 ease-in-out mx-0.5"
>
<.icon name="hero-eye" />
</.link>
</:col>
</.table>
<% else %>
<p class="text-black dark:text-white">Nothing Here!</p>
<% end %>
</div>
</div>
</div>