* WIP - moved plugs; set up a new token-protected route plug * Added a route_token column to settings model * Hooked up token_protected_route plug to database * Hooked up new OPML route to UI; turned RSS and OPML feed buttons into links * Docs, tests * Added a note about the phoenix bug
102 lines
3.3 KiB
Text
102 lines
3.3 KiB
Text
<.button_dropdown text="Actions" class="justify-center w-full sm:w-50">
|
|
<:option>
|
|
<.link href={rss_feed_url(@conn, @source)} x-data="{ copied: false }" x-on:click={~s"
|
|
$event.preventDefault();
|
|
copyWithCallbacks(
|
|
'#{rss_feed_url(@conn, @source)}',
|
|
() => copied = true,
|
|
() => copied = false
|
|
)
|
|
"}>
|
|
Copy RSS Feed
|
|
<span x-show="copied" x-transition.duration.150ms><.icon name="hero-check" class="ml-2 h-4 w-4" /></span>
|
|
</.link>
|
|
</:option>
|
|
<:option>
|
|
<span x-data="{ copied: false }" x-on:click={~s"
|
|
copyWithCallbacks(
|
|
String.raw`#{Jason.Formatter.pretty_print(Phoenix.json_library().encode!(@source))}`,
|
|
() => copied = true,
|
|
() => copied = false
|
|
)
|
|
"}>
|
|
Copy JSON
|
|
<span x-show="copied" x-transition.duration.150ms><.icon name="hero-check" class="ml-2 h-4 w-4" /></span>
|
|
</span>
|
|
</:option>
|
|
<:option>
|
|
<.link href={~p"/sources/new?template_id=#{@source}"} method="get">
|
|
Use as Template
|
|
</.link>
|
|
</:option>
|
|
<:option>
|
|
<div class="h-px w-full bg-bodydark2"></div>
|
|
</:option>
|
|
<:option :if={@source.download_media}>
|
|
<.link
|
|
href={~p"/sources/#{@source}/force_download_pending"}
|
|
method="post"
|
|
data-confirm="Are you sure you want to force a download of all pending media items? This isn't normally needed."
|
|
>
|
|
Download Pending
|
|
</.link>
|
|
</:option>
|
|
<:option :if={@source.download_media}>
|
|
<.link
|
|
href={~p"/sources/#{@source}/force_redownload"}
|
|
method="post"
|
|
data-confirm="Are you sure you want to re-download all currently downloaded media items? This doesn't upgrade your media, but will download any missing files if your settings have changed. This isn't normally needed."
|
|
>
|
|
Redownload Existing
|
|
</.link>
|
|
</:option>
|
|
<:option>
|
|
<.link
|
|
href={~p"/sources/#{@source}/force_index"}
|
|
method="post"
|
|
data-confirm="Are you sure you want to force an index of this source? This isn't normally needed."
|
|
>
|
|
Force Index
|
|
</.link>
|
|
</:option>
|
|
<:option>
|
|
<.link
|
|
href={~p"/sources/#{@source}/force_metadata_refresh"}
|
|
method="post"
|
|
data-confirm="Are you sure you want to refresh this source's metadata?"
|
|
>
|
|
Refresh Metadata
|
|
</.link>
|
|
</:option>
|
|
<:option>
|
|
<.link
|
|
href={~p"/sources/#{@source}/sync_files_on_disk"}
|
|
method="post"
|
|
data-confirm="Are you sure you want to sync files? This will update media items if their files have been deleted. File addition or moves are not detected. This isn't normally needed."
|
|
>
|
|
Sync Files on Disk
|
|
</.link>
|
|
</:option>
|
|
<:option>
|
|
<div class="h-px w-full bg-bodydark2"></div>
|
|
</:option>
|
|
<:option>
|
|
<.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."
|
|
>
|
|
Delete Source
|
|
</.link>
|
|
</:option>
|
|
<:option>
|
|
<.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"
|
|
>
|
|
Delete Source + Files
|
|
</.link>
|
|
</:option>
|
|
</.button_dropdown>
|