Added column and UI for apprise server

This commit is contained in:
Kieran Eglin 2024-04-05 09:53:44 -07:00
parent f84727b97e
commit a1444b69db
No known key found for this signature in database
GPG key ID: 193984967FCF432D
6 changed files with 37 additions and 10 deletions

View file

@ -9,7 +9,8 @@ defmodule Pinchflat.Settings.Setting do
@allowed_fields [ @allowed_fields [
:onboarding, :onboarding,
:pro_enabled, :pro_enabled,
:yt_dlp_version :yt_dlp_version,
:apprise_server
] ]
@required_fields ~w( @required_fields ~w(
@ -21,6 +22,7 @@ defmodule Pinchflat.Settings.Setting do
field :onboarding, :boolean, default: true field :onboarding, :boolean, default: true
field :pro_enabled, :boolean, default: false field :pro_enabled, :boolean, default: false
field :yt_dlp_version, :string field :yt_dlp_version, :string
field :apprise_server, :string
end end
@doc false @doc false

View file

@ -247,6 +247,7 @@ defmodule PinchflatWeb.CoreComponents do
attr :label_suffix, :string, default: nil attr :label_suffix, :string, default: nil
attr :value, :any attr :value, :any
attr :help, :string, default: nil attr :help, :string, default: nil
attr :html_help, :boolean, default: false
attr :type, :string, attr :type, :string,
default: "text", default: "text",
@ -298,7 +299,7 @@ defmodule PinchflatWeb.CoreComponents do
<%= @label %> <%= @label %>
<span :if={@label_suffix} class="text-xs text-bodydark"><%= @label_suffix %></span> <span :if={@label_suffix} class="text-xs text-bodydark"><%= @label_suffix %></span>
</label> </label>
<.help :if={@help}><%= @help %></.help> <.help :if={@help}><%= if @html_help, do: Phoenix.HTML.raw(@help), else: @help %></.help>
<.error :for={msg <- @errors}><%= msg %></.error> <.error :for={msg <- @errors}><%= msg %></.error>
</div> </div>
""" """
@ -325,7 +326,7 @@ defmodule PinchflatWeb.CoreComponents do
</label> </label>
</div> </div>
</section> </section>
<.help :if={@help}><%= @help %></.help> <.help :if={@help}><%= if @html_help, do: Phoenix.HTML.raw(@help), else: @help %></.help>
<.error :for={msg <- @errors}><%= msg %></.error> <.error :for={msg <- @errors}><%= msg %></.error>
</div> </div>
""" """
@ -356,7 +357,7 @@ defmodule PinchflatWeb.CoreComponents do
> >
</div> </div>
</div> </div>
<.help :if={@help}><%= @help %></.help> <.help :if={@help}><%= if @html_help, do: Phoenix.HTML.raw(@help), else: @help %></.help>
<.error :for={msg <- @errors}><%= msg %></.error> <.error :for={msg <- @errors}><%= msg %></.error>
</div> </div>
</div> </div>
@ -387,7 +388,7 @@ defmodule PinchflatWeb.CoreComponents do
</select> </select>
<%= render_slot(@inner_block) %> <%= render_slot(@inner_block) %>
</div> </div>
<.help :if={@help}><%= @help %></.help> <.help :if={@help}><%= if @html_help, do: Phoenix.HTML.raw(@help), else: @help %></.help>
<.error :for={msg <- @errors}><%= msg %></.error> <.error :for={msg <- @errors}><%= msg %></.error>
</div> </div>
""" """
@ -411,7 +412,7 @@ defmodule PinchflatWeb.CoreComponents do
]} ]}
{@rest} {@rest}
><%= Phoenix.HTML.Form.normalize_value("textarea", @value) %></textarea> ><%= Phoenix.HTML.Form.normalize_value("textarea", @value) %></textarea>
<.help :if={@help}><%= @help %></.help> <.help :if={@help}><%= if @html_help, do: Phoenix.HTML.raw(@help), else: @help %></.help>
<.error :for={msg <- @errors}><%= msg %></.error> <.error :for={msg <- @errors}><%= msg %></.error>
</div> </div>
""" """
@ -438,7 +439,7 @@ defmodule PinchflatWeb.CoreComponents do
]} ]}
{@rest} {@rest}
/> />
<.help :if={@help}><%= @help %></.help> <.help :if={@help}><%= if @html_help, do: Phoenix.HTML.raw(@help), else: @help %></.help>
<.error :for={msg <- @errors}><%= msg %></.error> <.error :for={msg <- @errors}><%= msg %></.error>
</div> </div>
""" """

View file

@ -18,7 +18,7 @@ defmodule PinchflatWeb.Settings.SettingController do
setting = Settings.record() setting = Settings.record()
case Settings.update_setting(setting, setting_params) do case Settings.update_setting(setting, setting_params) do
{:ok, setting} -> {:ok, _} ->
conn conn
|> put_flash(:info, "Settings updated successfully.") |> put_flash(:info, "Settings updated successfully.")
|> redirect(to: ~p"/settings") |> redirect(to: ~p"/settings")

View file

@ -10,4 +10,11 @@ defmodule PinchflatWeb.Settings.SettingHTML do
attr :action, :string, required: true attr :action, :string, required: true
def setting_form(assigns) def setting_form(assigns)
def apprise_server_help do
url = "https://github.com/caronc/apprise/wiki/URLBasics"
classes = "underline decoration-bodydark decoration-1 hover:decoration-white"
~s(Server endpoint for Apprise notifications when new media is found. See <a href="#{url}" class="#{classes}" target="_blank">Apprise docs</a> for more information)
end
end end

View file

@ -4,10 +4,18 @@
</.error> </.error>
<h3 class="mt-8 text-2xl text-black dark:text-white"> <h3 class="mt-8 text-2xl text-black dark:text-white">
TODO TEXT Notification Settings
</h3> </h3>
<.input field={f[:pro_enabled]} type="toggle" label="Pro Enabled" help="Just for testing" /> <.input
field={f[:apprise_server]}
type="text"
label="Apprise Server"
help={apprise_server_help()}
html_help={true}
inputclass="font-mono text-sm"
placeholder="https://discordapp.com/api/webhooks/{WebhookID}/{WebhookToken}"
/>
<.button class="my-10 sm:mb-7.5 w-full sm:w-auto" rounding="rounded-lg">Save Settings</.button> <.button class="my-10 sm:mb-7.5 w-full sm:w-auto" rounding="rounded-lg">Save Settings</.button>
</.simple_form> </.simple_form>

View file

@ -0,0 +1,9 @@
defmodule Pinchflat.Repo.Migrations.AddAppriseServersToSettings do
use Ecto.Migration
def change do
alter table(:settings) do
add :apprise_server, :string
end
end
end