UX improvements v1 (#39)
* Removed collection_type user input instead inferring from yt-dlp response * Updated docs * Added delete buttons for source; Refactored the way deletion methods work * Update source to always run an initial index * Added deletion to the last models * Improved clarity around deletion operation * Improved task fetching and deletion methods * More tests
This commit is contained in:
@@ -87,12 +87,20 @@ defmodule PinchflatWeb.Sources.SourceController do
|
||||
end
|
||||
end
|
||||
|
||||
def delete(conn, %{"id" => id}) do
|
||||
def delete(conn, %{"id" => id} = params) do
|
||||
delete_files = Map.get(params, "delete_files", false)
|
||||
source = Sources.get_source!(id)
|
||||
{:ok, _source} = Sources.delete_source(source)
|
||||
{:ok, _source} = Sources.delete_source(source, delete_files: delete_files)
|
||||
|
||||
flash_message =
|
||||
if delete_files do
|
||||
"Source and files deleted successfully."
|
||||
else
|
||||
"Source deleted successfully. Files were not deleted."
|
||||
end
|
||||
|
||||
conn
|
||||
|> put_flash(:info, "Source deleted successfully.")
|
||||
|> put_flash(:info, flash_message)
|
||||
|> redirect(to: ~p"/sources")
|
||||
end
|
||||
|
||||
|
||||
@@ -24,11 +24,4 @@ defmodule PinchflatWeb.Sources.SourceHTML do
|
||||
{"Monthly", 30 * 24 * 60}
|
||||
]
|
||||
end
|
||||
|
||||
def friendly_collection_types do
|
||||
[
|
||||
{"Channel", "channel"},
|
||||
{"Playlist", "playlist"}
|
||||
]
|
||||
end
|
||||
end
|
||||
|
||||
@@ -72,5 +72,27 @@
|
||||
<p class="text-black dark:text-white">Nothing Here!</p>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<section class="flex flex-col md:flex-row items-center md:justify-around mt-10">
|
||||
<.link
|
||||
href={~p"/sources/#{@source}"}
|
||||
method="delete"
|
||||
data-confirm="Are you sure you want to delete this source (leaving files in place)? This cannot be undone."
|
||||
>
|
||||
<.button color="bg-meta-1" rounding="rounded-full">
|
||||
Delete Source
|
||||
</.button>
|
||||
</.link>
|
||||
<.link
|
||||
href={~p"/sources/#{@source}?delete_files=true"}
|
||||
method="delete"
|
||||
data-confirm="Are you sure you want to delete this source and it's files on disk? This cannot be undone."
|
||||
class="mt-5 md:mt-0"
|
||||
>
|
||||
<.button color="bg-meta-1" rounding="rounded-full">
|
||||
Delete Source and Files
|
||||
</.button>
|
||||
</.link>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -19,14 +19,12 @@
|
||||
label="Media Profile"
|
||||
/>
|
||||
|
||||
<.input field={f[:collection_type]} options={friendly_collection_types()} type="select" label="Source Type" />
|
||||
|
||||
<.input
|
||||
field={f[:index_frequency_minutes]}
|
||||
options={friendly_index_frequencies()}
|
||||
type="select"
|
||||
label="Index Frequency"
|
||||
help="The time between one index of this source finishing and the next one starting"
|
||||
help="Time between one index of this source finishing and the next one starting. Setting to 'Never' will still run an initial index but no subsequent ones"
|
||||
/>
|
||||
|
||||
<.input
|
||||
|
||||
Reference in New Issue
Block a user