<.form
for={@form}
id="check-form"
phx-target={@myself}
phx-change="validate"
phx-submit="save"
>
{if @action == :edit, do: "Edit Service Check", else: "Add Service Check"}
<.icon name="hero-x-mark" class="h-6 w-6" />
Check Type
<.input
field={@form[:check_type]}
type="select"
options={[
{"HTTP/HTTPS Check", "http"},
{"TCP Port Check", "tcp"},
{"DNS Check", "dns"},
{"SSL Certificate Check", "ssl"}
]}
phx-change="change_type"
phx-target={@myself}
disabled={@action == :edit}
/>
<.input
field={@form[:name]}
type="text"
label="Check Name"
placeholder="e.g., Web Server Check"
/>
<%= case @selected_type do %>
<% "http" -> %>
{render_http_fields(assigns)}
<% "tcp" -> %>
{render_tcp_fields(assigns)}
<% "dns" -> %>
{render_dns_fields(assigns)}
<% "ssl" -> %>
{render_ssl_fields(assigns)}
<% _ -> %>
Select a check type to configure
<% end %>
<.input
field={@form[:interval_seconds]}
type="number"
label="Interval (seconds)"
/>
<.input field={@form[:timeout_ms]} type="number" label="Timeout (ms)" />
<.button
type="submit"
phx-disable-with={if @action == :edit, do: "Saving...", else: "Creating..."}
>
{if @action == :edit, do: "Save Changes", else: "Create Check"}
Cancel