aboutsummaryrefslogtreecommitdiff
path: root/frontend
diff options
context:
space:
mode:
Diffstat (limited to 'frontend')
-rw-r--r--frontend/renderer.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/frontend/renderer.go b/frontend/renderer.go
new file mode 100644
index 0000000..5673860
--- /dev/null
+++ b/frontend/renderer.go
@@ -0,0 +1,33 @@
1package frontend
2
3import (
4 "html/template"
5 "net/http"
6)
7
8// Renderer rendert Seiten.
9type Renderer struct {
10 templates *template.Template
11}
12
13// New erstellt einen neuen Renderer und sucht alle Templates aus dem gegebenen pfad.
14func New(path string) *Renderer {
15 r := &Renderer{
16 template.Must(template.ParseGlob(path + "/*")),
17 }
18
19 return r
20}
21
22// RenderPage rendert eine bestimmte Seite (basierend auf dem Template-Namen) und den gegebenen Daten.
23func (r *Renderer) RenderPage(name string, w http.ResponseWriter, data map[string]interface{}) {
24 err := r.templates.ExecuteTemplate(w, name, data)
25 if err != nil {
26 http.Error(w, err.Error(), http.StatusInternalServerError)
27 }
28}
29
30// RenderLoginPage zeigt die Loginseite an.
31func (r *Renderer) RenderLoginPage(w http.ResponseWriter, data map[string]interface{}) {
32 r.RenderPage("login", w, data)
33}