From a5bd496870d741fbe629826a06f3578175fec00e Mon Sep 17 00:00:00 2001 From: Sebastian Harl Date: Wed, 26 Nov 2014 22:10:00 +0100 Subject: [PATCH] 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. --- server/server.go | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) 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 -- 2.30.2