<.link navigate={~p"/orgs/#{@organization.slug}/settings"} class="inline-flex items-center gap-1 text-sm text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-white" > <.icon name="hero-arrow-left" class="h-4 w-4" /> Back to Settings

Integrations

Connect third-party services to enhance your monitoring capabilities.

<.icon name={provider.icon} class="h-6 w-6 text-indigo-600 dark:text-indigo-400" />

{provider.name}

{provider.description}

<%= if integration = @integrations[provider.id] do %>
{if integration.enabled, do: "Enabled", else: "Disabled"} <%= if integration.last_synced_at do %> Last synced: {Calendar.strftime( integration.last_synced_at, "%Y-%m-%d %H:%M UTC" )} <% end %> <%= if integration.last_sync_status && integration.last_sync_status != "never" do %> "bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400" "partial" -> "bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-400" "failed" -> "bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400" _ -> "bg-gray-100 text-gray-600 dark:bg-gray-800 dark:text-gray-400" end ]}> {String.capitalize(integration.last_sync_status)} <% end %> <.link navigate={~p"/orgs/#{@organization.slug}/settings/integrations/preseem/devices"} class="text-sm text-blue-600 hover:text-blue-700 dark:text-blue-400 dark:hover:text-blue-300" > Manage Devices →
<% end %>
<%= if integration = @integrations[provider.id] do %> <% end %>
<%= if @configuring == provider.id do %>
<.form for={@form} id={"#{provider.id}-form"} phx-change="validate" phx-submit="save" >
<.input field={@form[:api_key]} type="password" label="API Key" placeholder="Enter your Preseem API key" autocomplete="off" value={get_credential(@integrations[provider.id], "api_key")} /> <.input field={@form[:base_url]} type="text" label="Base URL (optional)" placeholder="https://apidocs.preseem.com/model/v1" value={get_credential(@integrations[provider.id], "base_url")} /> <%= if @test_result do %>
"bg-green-50 dark:bg-green-900/20" {:error, _} -> "bg-red-50 dark:bg-red-900/20" end ]}>

"text-green-800 dark:text-green-200" {:error, _} -> "text-red-800 dark:text-red-200" end ]}> {elem(@test_result, 1)}

<% end %>
<% end %>