diff --git a/lib/pinchflat_web/controllers/sources/source_html/media_item_table_live.ex b/lib/pinchflat_web/controllers/sources/source_html/media_item_table_live.ex index d15b20d..7e732c1 100644 --- a/lib/pinchflat_web/controllers/sources/source_html/media_item_table_live.ex +++ b/lib/pinchflat_web/controllers/sources/source_html/media_item_table_live.ex @@ -30,6 +30,9 @@ defmodule Pinchflat.Sources.MediaItemTableLive do <%= StringUtils.truncate(media_item.title, 50) %> + <:col :let={media_item} :if={@media_state == "other"} label="Manually Ignored?"> + <.icon name={if media_item.prevent_download, do: "hero-check", else: "hero-x-mark"} /> + <:col :let={media_item} label="" class="flex justify-end"> <.icon_link href={~p"/sources/#{@source.id}/media/#{media_item.id}/edit"} icon="hero-pencil-square" class="mr-4" /> @@ -42,14 +45,25 @@ defmodule Pinchflat.Sources.MediaItemTableLive do end def mount(_params, session, socket) do + PinchflatWeb.Endpoint.subscribe("media_table") + page = 1 media_state = session["media_state"] source = Sources.get_source!(session["source_id"]) base_query = generate_base_query(source, media_state) pagination_attrs = fetch_pagination_attributes(base_query, page) - PinchflatWeb.Endpoint.subscribe("media_table") - {:ok, assign(socket, Map.merge(pagination_attrs, %{base_query: base_query, source: source}))} + new_assigns = + Map.merge( + pagination_attrs, + %{ + base_query: base_query, + source: source, + media_state: media_state + } + ) + + {:ok, assign(socket, new_assigns)} end def handle_event("page_change", %{"direction" => direction}, %{assigns: assigns} = socket) do diff --git a/test/pinchflat_web/controllers/sources/media_item_table_live_test.exs b/test/pinchflat_web/controllers/sources/media_item_table_live_test.exs index 183712a..f584377 100644 --- a/test/pinchflat_web/controllers/sources/media_item_table_live_test.exs +++ b/test/pinchflat_web/controllers/sources/media_item_table_live_test.exs @@ -68,6 +68,14 @@ defmodule PinchflatWeb.Sources.MediaItemTableLiveTest do refute html =~ downloaded_media_item.title refute html =~ pending_media_item.title end + + test "shows 'Manually Ignored' column when other", %{conn: conn, source: source} do + _media_item = media_item_fixture(source_id: source.id, prevent_download: true, media_filepath: nil) + + {:ok, _view, html} = live_isolated(conn, MediaItemTableLive, session: create_session(source, "other")) + + assert html =~ "Manually Ignored?" + end end defp create_session(source, media_state \\ "pending") do