[Housekeeping] Bump Phoenix LiveView to 1.0.0 (#495)

* bumped liveview to 1.0.0

* Converted interpolation to new syntax
This commit is contained in:
Kieran
2024-12-06 10:37:15 -08:00
committed by GitHub
parent 0fb971dd0a
commit a5b65061f0
34 changed files with 157 additions and 135 deletions
@@ -1,6 +1,6 @@
<div class="mb-6 flex gap-3 flex-row items-center">
<h2 class="text-title-md2 font-bold text-black dark:text-white ml-4">
Editing "<%= StringUtils.truncate(@media_item.title, 35) %>"
Editing "{StringUtils.truncate(@media_item.title, 35)}"
</h2>
</div>
@@ -4,7 +4,7 @@
<.icon name="hero-arrow-left" class="w-10 h-10 hover:dark:text-white" />
</.link>
<h2 class="text-title-md2 font-bold text-black dark:text-white ml-4">
<%= StringUtils.truncate(@media_item.title, 35) %>
{StringUtils.truncate(@media_item.title, 35)}
</h2>
</div>
@@ -31,8 +31,8 @@
<.media_preview media_item={@media_item} />
</div>
<aside class="mt-4">
<h2 class="text-xl mb-2"><%= @media_item.title %></h2>
<div>Uploaded: <%= DateTime.to_date(@media_item.uploaded_at) %></div>
<h2 class="text-xl mb-2">{@media_item.title}</h2>
<div>Uploaded: {DateTime.to_date(@media_item.uploaded_at)}</div>
<div>
<span :if={URI.parse(@media_item.original_url).scheme =~ "http"}>
<.subtle_link href={@media_item.original_url} target="_blank">Open Original</.subtle_link>
@@ -58,7 +58,7 @@
<section>
<strong>Source:</strong>
<.subtle_link href={~p"/sources/#{@media_item.source_id}"}>
<%= @media_item.source.custom_name %>
{@media_item.source.custom_name}
</.subtle_link>
<.list_items_from_map map={Map.from_struct(@media_item)} />
</section>
@@ -68,10 +68,10 @@
<%= if match?([_|_], @media_item.tasks) do %>
<.table rows={@media_item.tasks} table_class="text-black dark:text-white">
<:col :let={task} label="Worker">
<%= task.job.worker %>
{task.job.worker}
</:col>
<:col :let={task} label="State">
<%= task.job.state %>
{task.job.state}
</:col>
<:col :let={task} label="Scheduled At">
<.datetime_in_zone datetime={task.job.scheduled_at} />
@@ -3,7 +3,7 @@
<.icon name="hero-arrow-left" class="w-10 h-10 hover:dark:text-white" />
</.link>
<h2 class="text-title-md2 font-bold text-black dark:text-white ml-4">
Editing "<%= @media_profile.name %>"
Editing "{@media_profile.name}"
</h2>
</div>
@@ -16,11 +16,11 @@
<.table rows={@media_profiles} table_class="text-black dark:text-white">
<:col :let={media_profile} label="Name">
<.subtle_link href={~p"/media_profiles/#{media_profile.id}"}>
<%= media_profile.name %>
{media_profile.name}
</.subtle_link>
</:col>
<:col :let={media_profile} label="Preferred Resolution">
<%= media_profile.preferred_resolution %>
{media_profile.preferred_resolution}
</:col>
<:col :let={media_profile} label="Sources">
<.subtle_link href={~p"/media_profiles/#{media_profile.id}/#tab-sources"}>
@@ -6,7 +6,9 @@
<ul class="list-disc list-inside ml-2 md:ml-5">
<li>
Liquid-style:
<.inline_code>/{{ channel }}/{{ title }} - {{ id }}.{{ ext }}</.inline_code>
<.inline_code>
{"/#{double_brace("channel")}/#{double_brace("title")} - #{double_brace("id")}.#{double_brace("ext")}"}
</.inline_code>
</li>
<li>
<code class="text-sm">yt-dlp</code>-style
@@ -17,7 +19,7 @@
</li>
<li>
Any bare words:
<.inline_code>/videos/1080p/{{ id }}.{{ ext }}</.inline_code>
<.inline_code>{"/videos/1080p/#{double_brace("id")}.#{double_brace("ext")}"}</.inline_code>
</li>
</ul>
<p class="my-2">
@@ -25,7 +27,7 @@
<em>any</em>
single-word <code class="text-sm">yt-dlp</code>
option can be used as liquid-style and it's automatically made filepath-safe. For example, the
<.inline_code>{{ duration }}</.inline_code>
<.inline_code>{double_brace("duration")}</.inline_code>
option is translated to
<.inline_code>%(duration)S</.inline_code>
</p>
@@ -33,12 +35,14 @@
<strong>Major 🔑:</strong>
these syntaxes can be mixed and matched freely! I prefer to use liquid-style and bare words
but I'll include <code class="text-sm">yt-dlp</code>-style when I need more control. For example:
<.inline_code>/1080p/{{ channel }}/{{ title }}-(%(subtitles.en.-1.ext)s).{{ ext }}</.inline_code>
<.inline_code>
{"/1080p/#{double_brace("channel")}/#{double_brace("title")}-(%(subtitles.en.-1.ext)s).#{double_brace("ext")}"}
</.inline_code>
</p>
<p class="my-2">
<strong>NOTE:</strong>
Your template <em>must</em>
end with an extension option (<.inline_code>.{{ ext }}</.inline_code>
end with an extension option (<.inline_code>.{double_brace("ext")}</.inline_code>
or
<.inline_code>.%(ext)S</.inline_code>).
Downloading won't work as expected without it.
@@ -59,21 +63,21 @@
<h3 class="text-lg font-bold my-2">Media Center Custom Aliases</h3>
<ul class="list-disc list-inside mb-4 ml-2 md:ml-5 max-w-prose">
<li :for={{k, v} <- media_center_custom_output_template_options()} class="mt-1">
<.inline_code>{{ <%= k %> }}</.inline_code>
<span :if={v}>- <%= html_escape({:safe, v}) %></span>
<.inline_code>{double_brace(k)}</.inline_code>
<span :if={v}>- {html_escape({:safe, v})}</span>
</li>
</ul>
<h3 class="text-lg font-bold mb-2">Other Custom Aliases</h3>
<ul class="list-disc list-inside mb-4 ml-2 md:ml-5 max-w-prose">
<li :for={{k, v} <- other_custom_output_template_options()} class="mt-1">
<.inline_code>{{ <%= k %> }}</.inline_code>
<span :if={v}>- <%= html_escape({:safe, v}) %></span>
<.inline_code>{double_brace(k)}</.inline_code>
<span :if={v}>- {html_escape({:safe, v})}</span>
</li>
</ul>
<h3 class="text-lg font-bold mb-2">Common Options</h3>
<ul class="list-disc list-inside ml-2 md:ml-5">
<li :for={opt <- common_output_template_options()} class="mt-1">
<.inline_code>{{ <%= opt %> }}</.inline_code>
<.inline_code>{double_brace(opt)}</.inline_code>
</li>
</ul>
</section>
@@ -4,7 +4,7 @@
<.icon name="hero-arrow-left" class="w-10 h-10 hover:dark:text-white" />
</.link>
<h2 class="text-title-md2 font-bold text-black dark:text-white ml-2">
<%= @media_profile.name %>
{@media_profile.name}
</h2>
</div>
@@ -33,10 +33,10 @@
<.table rows={@sources} table_class="text-black dark:text-white">
<:col :let={source} label="Name">
<.subtle_link href={~p"/sources/#{source.id}"}>
<%= source.custom_name || source.collection_name %>
{source.custom_name || source.collection_name}
</.subtle_link>
</:col>
<:col :let={source} label="Type"><%= source.collection_type %></:col>
<:col :let={source} label="Type">{source.collection_type}</:col>
<:col :let={source} label="Should Download?">
<.icon name={if source.download_media, do: "hero-check", else: "hero-x-mark"} />
</:col>
@@ -17,7 +17,7 @@ defmodule PinchflatWeb.Pages.PageHTML do
})
~H"""
<.localized_number number={@num} /> <%= @suffix %>
<.localized_number number={@num} /> {@suffix}
"""
end
end
@@ -30,21 +30,21 @@ defmodule Pinchflat.Pages.HistoryTableLive do
<.table rows={@records} table_class="text-white">
<:col :let={media_item} label="Title">
<.subtle_link href={~p"/sources/#{media_item.source_id}/media/#{media_item}"}>
<%= StringUtils.truncate(media_item.title, 35) %>
{StringUtils.truncate(media_item.title, 35)}
</.subtle_link>
</:col>
<:col :let={media_item} label="Upload Date">
<%= DateTime.to_date(media_item.uploaded_at) %>
{DateTime.to_date(media_item.uploaded_at)}
</:col>
<:col :let={media_item} label="Indexed At">
<%= format_datetime(media_item.inserted_at) %>
{format_datetime(media_item.inserted_at)}
</:col>
<:col :let={media_item} label="Downloaded At">
<%= format_datetime(media_item.media_downloaded_at) %>
{format_datetime(media_item.media_downloaded_at)}
</:col>
<:col :let={media_item} label="Source">
<.subtle_link href={~p"/sources/#{media_item.source_id}"}>
<%= StringUtils.truncate(media_item.source.custom_name, 35) %>
{StringUtils.truncate(media_item.source.custom_name, 35)}
</.subtle_link>
</:col>
</.table>
@@ -42,13 +42,13 @@
<div class="rounded-sm border shadow-default border-strokedark bg-boxdark mt-4 p-5">
<span class="text-2xl font-medium mb-4">Media History</span>
<section class="mt-6">
<%= live_render(@conn, Pinchflat.Pages.HistoryTableLive) %>
{live_render(@conn, Pinchflat.Pages.HistoryTableLive)}
</section>
</div>
<div class="rounded-sm border shadow-default border-strokedark bg-boxdark mt-4 p-5">
<span class="text-2xl font-medium mb-4">Active Tasks</span>
<section class="mt-6 min-h-80">
<%= live_render(@conn, Pinchflat.Pages.JobTableLive) %>
{live_render(@conn, Pinchflat.Pages.JobTableLive)}
</section>
</div>
@@ -19,18 +19,18 @@ defmodule Pinchflat.Pages.JobTableLive do
<div class="max-w-full overflow-x-auto">
<.table rows={@tasks} table_class="text-white">
<:col :let={task} label="Task">
<%= worker_to_task_name(task.job.worker) %>
{worker_to_task_name(task.job.worker)}
</:col>
<:col :let={task} label="Subject">
<.subtle_link href={task_to_link(task)}>
<%= StringUtils.truncate(task_to_record_name(task), 35) %>
{StringUtils.truncate(task_to_record_name(task), 35)}
</.subtle_link>
</:col>
<:col :let={task} label="Attempt No.">
<%= task.job.attempt %>
{task.job.attempt}
</:col>
<:col :let={task} label="Started At">
<%= format_datetime(task.job.attempted_at) %>
{format_datetime(task.job.attempted_at)}
</:col>
</.table>
</div>
@@ -14,7 +14,7 @@ defmodule PinchflatWeb.Searches.SearchHTML do
~H"""
<%= for fragment <- @split_string do %>
<%= render_fragment(fragment) %>
{render_fragment(fragment)}
<% end %>
"""
end
@@ -1,6 +1,6 @@
<div class="mb-6 flex gap-3 flex-row items-center justify-between">
<h2 class="text-title-md2 font-bold text-black dark:text-white">
Results for "<%= StringUtils.truncate(@search_term, 50) %>"
Results for "{StringUtils.truncate(@search_term, 50)}"
</h2>
</div>
@@ -11,7 +11,7 @@
<.table rows={@search_results} table_class="text-black dark:text-white">
<:col :let={result} label="Title">
<.subtle_link href={~p"/sources/#{result.source_id}/media/#{result.id}"}>
<%= StringUtils.truncate(result.title, 35) %>
{StringUtils.truncate(result.title, 35)}
</.subtle_link>
</:col>
<:col :let={result} label="Excerpt">
@@ -19,11 +19,11 @@
</span>
</section>
<%= live_render(
{live_render(
@conn,
Pinchflat.Settings.AppriseServerLive,
session: %{"value" => f[:apprise_server].value}
) %>
)}
</section>
<section class="mt-8">
@@ -3,7 +3,7 @@
<.icon name="hero-arrow-left" class="w-10 h-10 hover:dark:text-white" />
</.link>
<h2 class="text-title-md2 font-bold text-black dark:text-white ml-4">
Editing "<%= @source.custom_name %>"
Editing "{@source.custom_name}"
</h2>
</div>
@@ -12,7 +12,7 @@
<div class="rounded-sm border border-stroke bg-white shadow-default dark:border-strokedark dark:bg-boxdark">
<div class="max-w-full overflow-x-auto">
<div class="flex flex-col gap-10 min-w-max">
<%= live_render(@conn, PinchflatWeb.Sources.IndexTableLive) %>
{live_render(@conn, PinchflatWeb.Sources.IndexTableLive)}
</div>
</div>
</div>
@@ -13,7 +13,7 @@ defmodule PinchflatWeb.Sources.IndexTableLive do
<.table rows={@sources} table_class="text-white">
<:col :let={source} label="Name">
<.subtle_link href={~p"/sources/#{source.id}"}>
<%= StringUtils.truncate(source.custom_name || source.collection_name, 35) %>
{StringUtils.truncate(source.custom_name || source.collection_name, 35)}
</.subtle_link>
</:col>
<:col :let={source} label="Pending">
@@ -36,7 +36,7 @@ defmodule PinchflatWeb.Sources.IndexTableLive do
</:col>
<:col :let={source} label="Media Profile">
<.subtle_link href={~p"/media_profiles/#{source.media_profile_id}"}>
<%= source.media_profile.name %>
{source.media_profile.name}
</.subtle_link>
</:col>
<:col :let={source} label="Enabled?">
@@ -48,14 +48,14 @@ defmodule PinchflatWeb.Sources.MediaItemTableLive do
<.table rows={@records} table_class="text-white">
<:col :let={media_item} label="Title">
<.subtle_link href={~p"/sources/#{@source.id}/media/#{media_item.id}"}>
<%= StringUtils.truncate(media_item.title, 50) %>
{StringUtils.truncate(media_item.title, 50)}
</.subtle_link>
</:col>
<: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>
<:col :let={media_item} label="Upload Date">
<%= DateTime.to_date(media_item.uploaded_at) %>
{DateTime.to_date(media_item.uploaded_at)}
</:col>
<: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" />
@@ -4,7 +4,7 @@
<.icon name="hero-arrow-left" class="w-10 h-10 hover:dark:text-white" />
</.link>
<h2 class="text-title-md2 font-bold text-black dark:text-white ml-4">
<%= @source.custom_name %>
{@source.custom_name}
</h2>
</div>
@@ -29,7 +29,7 @@
<section>
<strong>Media Profile:</strong>
<.subtle_link href={~p"/media_profiles/#{@source.media_profile_id}"}>
<%= @source.media_profile.name %>
{@source.media_profile.name}
</.subtle_link>
</section>
@@ -37,34 +37,34 @@
</div>
</:tab>
<:tab title="Pending" id="pending">
<%= live_render(
{live_render(
@conn,
PinchflatWeb.Sources.MediaItemTableLive,
session: %{"source_id" => @source.id, "media_state" => "pending"}
) %>
)}
</:tab>
<:tab title="Downloaded" id="downloaded">
<%= live_render(
{live_render(
@conn,
PinchflatWeb.Sources.MediaItemTableLive,
session: %{"source_id" => @source.id, "media_state" => "downloaded"}
) %>
)}
</:tab>
<:tab title="Other" id="other">
<%= live_render(
{live_render(
@conn,
PinchflatWeb.Sources.MediaItemTableLive,
session: %{"source_id" => @source.id, "media_state" => "other"}
) %>
)}
</:tab>
<:tab title="Tasks" id="tasks">
<%= if match?([_|_], @pending_tasks) do %>
<.table rows={@pending_tasks} table_class="text-black dark:text-white">
<:col :let={task} label="Worker">
<%= task.job.worker %>
{task.job.worker}
</:col>
<:col :let={task} label="State">
<%= task.job.state %>
{task.job.state}
</:col>
<:col :let={task} label="Scheduled At">
<.datetime_in_zone datetime={task.job.scheduled_at} />