Write a form-error page's status only after it renders (closes #128)
check / check (push) Successful in 4m7s
check / check (push) Successful in 4m7s
The login form and the webhook create and edit forms set their 400 or 409 with WriteHeader before calling renderTemplate, so a template failure there answered with that status instead of 500. A variant of renderTemplate now takes the status and writes it only once the page has rendered into the buffer; renderTemplate sends 200 through it. Model: opus-5-5
This commit is contained in:
@@ -350,12 +350,12 @@ func (h *Handlers) HandleSourceCreateSubmit() http.HandlerFunc {
|
||||
retentionStr := r.PostFormValue("retention_days")
|
||||
|
||||
if name == "" {
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
h.renderTemplate(
|
||||
h.renderTemplateStatus(
|
||||
w, r, "sources_new.html",
|
||||
newSourceFormData(
|
||||
"Name is required", name, description,
|
||||
),
|
||||
http.StatusBadRequest,
|
||||
)
|
||||
|
||||
return
|
||||
@@ -365,13 +365,13 @@ func (h *Handlers) HandleSourceCreateSubmit() http.HandlerFunc {
|
||||
retentionStr, database.DefaultRetentionDays,
|
||||
)
|
||||
if retErr != nil {
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
h.renderTemplate(
|
||||
h.renderTemplateStatus(
|
||||
w, r, "sources_new.html",
|
||||
newSourceFormData(
|
||||
retentionErrorMessage(retErr),
|
||||
name, description,
|
||||
),
|
||||
http.StatusBadRequest,
|
||||
)
|
||||
|
||||
return
|
||||
@@ -644,8 +644,7 @@ func (h *Handlers) applyWebhookEdit(
|
||||
tmplKeyError: "Name is required",
|
||||
}
|
||||
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
h.renderTemplate(w, r, "source_edit.html", data)
|
||||
h.renderTemplateStatus(w, r, "source_edit.html", data, http.StatusBadRequest)
|
||||
|
||||
return
|
||||
}
|
||||
@@ -665,8 +664,7 @@ func (h *Handlers) applyWebhookEdit(
|
||||
tmplKeyError: retentionErrorMessage(retErr),
|
||||
}
|
||||
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
h.renderTemplate(w, r, "source_edit.html", data)
|
||||
h.renderTemplateStatus(w, r, "source_edit.html", data, http.StatusBadRequest)
|
||||
|
||||
return
|
||||
}
|
||||
@@ -703,8 +701,7 @@ func (h *Handlers) applyWebhookEdit(
|
||||
"it, then save again.",
|
||||
}
|
||||
|
||||
w.WriteHeader(http.StatusConflict)
|
||||
h.renderTemplate(w, r, "source_edit.html", data)
|
||||
h.renderTemplateStatus(w, r, "source_edit.html", data, http.StatusConflict)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user