feat(tui): expose HTTP method and accepted status codes in monitor form

DB fields existed but were never surfaced in the TUI. Adds an HTTP
Settings form group with method select (7 methods) and accepted
codes input, visible only for HTTP monitors.
This commit is contained in:
2026-05-15 15:42:51 -04:00
parent 4ebba64ba1
commit 9e5bb74c5c
+26
View File
@@ -24,6 +24,8 @@ type siteFormData struct {
Name string Name string
SiteType string SiteType string
URL string URL string
Method string
AcceptedCodes string
Interval string Interval string
AlertID string AlertID string
CheckSSL bool CheckSSL bool
@@ -278,6 +280,8 @@ func (m Model) viewSitesTab() string {
func (m *Model) initSiteHuhForm() tea.Cmd { func (m *Model) initSiteHuhForm() tea.Cmd {
m.siteFormData = &siteFormData{ m.siteFormData = &siteFormData{
SiteType: "http", SiteType: "http",
Method: "GET",
AcceptedCodes: "200-299",
Interval: "60", Interval: "60",
Threshold: "7", Threshold: "7",
Retries: "0", Retries: "0",
@@ -303,6 +307,8 @@ func (m *Model) initSiteHuhForm() tea.Cmd {
m.siteFormData.Description = site.Description m.siteFormData.Description = site.Description
m.siteFormData.IgnoreTLS = site.IgnoreTLS m.siteFormData.IgnoreTLS = site.IgnoreTLS
m.siteFormData.GroupID = strconv.Itoa(site.ParentID) m.siteFormData.GroupID = strconv.Itoa(site.ParentID)
m.siteFormData.Method = site.Method
m.siteFormData.AcceptedCodes = site.AcceptedCodes
break break
} }
} }
@@ -432,6 +438,24 @@ func (m *Model) initSiteHuhForm() tea.Cmd {
).Title("Connection").WithHideFunc(func() bool { ).Title("Connection").WithHideFunc(func() bool {
return m.siteFormData.SiteType == "group" return m.siteFormData.SiteType == "group"
}), }),
huh.NewGroup(
huh.NewSelect[string]().Title("HTTP Method").
Options(
huh.NewOption("GET", "GET"),
huh.NewOption("POST", "POST"),
huh.NewOption("PUT", "PUT"),
huh.NewOption("PATCH", "PATCH"),
huh.NewOption("DELETE", "DELETE"),
huh.NewOption("HEAD", "HEAD"),
huh.NewOption("OPTIONS", "OPTIONS"),
).Value(&m.siteFormData.Method),
huh.NewInput().Title("Accepted Status Codes").
Placeholder("200-299").
Description("Ranges (200-299) and singles (301) separated by commas").
Value(&m.siteFormData.AcceptedCodes),
).Title("HTTP Settings").WithHideFunc(func() bool {
return m.siteFormData.SiteType != "http"
}),
huh.NewGroup( huh.NewGroup(
huh.NewConfirm().Title("Monitor SSL Certificate?"). huh.NewConfirm().Title("Monitor SSL Certificate?").
Value(&m.siteFormData.CheckSSL), Value(&m.siteFormData.CheckSSL),
@@ -503,6 +527,8 @@ func (m *Model) submitSiteForm() {
Description: d.Description, Description: d.Description,
IgnoreTLS: d.IgnoreTLS, IgnoreTLS: d.IgnoreTLS,
ParentID: groupID, ParentID: groupID,
Method: d.Method,
AcceptedCodes: d.AcceptedCodes,
} }
if m.editID > 0 { if m.editID > 0 {