From: Sebastian Harl Date: Wed, 26 Nov 2014 21:10:00 +0000 (+0100) Subject: Don't return an HTTP error status if a handler fails. X-Git-Url: https://git.tokkee.org/?p=sysdb%2Fwebui.git;a=commitdiff_plain;h=a5bd496870d741fbe629826a06f3578175fec00e Don't return an HTTP error status if a handler fails. This might confuse browsers and, more importantly, now we re-populate the query input field with the user's query in case it failed. --- diff --git a/server/server.go b/server/server.go index 6b3f8d0..c0f449c 100644 --- a/server/server.go +++ b/server/server.go @@ -182,19 +182,22 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { return } r.ParseForm() - page, err := f(req, s) + p, err := f(req, s) if err != nil { - s.badrequest(w, fmt.Errorf("Error: %v", err)) - return + p = &page{ + Content: "
" + + html(fmt.Sprintf("Error: %v", err)) + + "
", + } } - page.Query = r.FormValue("query") - if page.Title == "" { - page.Title = "SysDB - The System Database" + p.Query = r.FormValue("query") + if p.Title == "" { + p.Title = "SysDB - The System Database" } var buf bytes.Buffer - err = s.main.Execute(&buf, page) + err = s.main.Execute(&buf, p) if err != nil { s.internal(w, err) return