all repos — elgit @ e70b90b4b86f672eb9ccf9a768e083edef73395e

fork of legit: web frontend for git, written in go

de-duplicate error page

Alan Pearce
commit

e70b90b4b86f672eb9ccf9a768e083edef73395e

parent

cfea2a3ba078b13b46a99963953175f6d1c16ff1

3 files changed, 22 insertions(+), 19 deletions(-)

changed files
M routes/template.goroutes/template.go
@@ -16,22 +16,27 @@ "github.com/russross/blackfriday/v2"
) func (d *deps) Write404(w http.ResponseWriter) { - w.WriteHeader(http.StatusNotFound) - data := templates.PageData{ - Meta: d.c.Meta, - } - if err := templates.NotFoundPage(data).Render(w); err != nil { - log.Printf("404 template: %s", err) - } + d.WriteError(w, templates.Error{ + Code: http.StatusNotFound, + Message: "nothing like that here.", + }) } func (d *deps) Write500(w http.ResponseWriter) { - w.WriteHeader(http.StatusInternalServerError) + d.WriteError(w, templates.Error{ + Code: http.StatusInternalServerError, + Message: "something broke!", + }) +} + +func (d *deps) WriteError(w http.ResponseWriter, err templates.Error) { + w.WriteHeader(err.Code) data := templates.PageData{ - Meta: d.c.Meta, + Meta: d.c.Meta, + Error: &err, } if err := templates.ErrorPage(data).Render(w); err != nil { - log.Printf("500 template: %s", err) + log.Printf("error template: %s", err) } }
M templates/errors.gotemplates/errors.go
@@ -5,18 +5,10 @@ g "alin.ovh/gomponents"
. "alin.ovh/gomponents/html" ) -func NotFoundPage(data PageData) g.Node { - return Page(data, []g.Node{ - Main( - H3(g.Text("404 — nothing like that here.")), - ), - }) -} - func ErrorPage(data PageData) g.Node { return Page(data, []g.Node{ Main( - H3(g.Text("500 — something broke!")), + H3(g.Textf("%d — %s", data.Error.Code, data.Error.Message)), ), }) }
M templates/page.gotemplates/page.go
@@ -11,6 +11,11 @@ c "alin.ovh/gomponents/components"
. "alin.ovh/gomponents/html" ) +type Error struct { + Code int + Message string +} + type PageData struct { Meta config.Meta DisplayName string
@@ -32,6 +37,7 @@ Branches any
Log bool Servername string Gomod bool + Error *Error } func RenderHead(data PageData) []g.Node {