Files
DdnsClient/renderer.go
2021-02-05 23:57:51 +01:00

57 lines
985 B
Go

package main
import (
"html/template"
"net/http"
)
type AdminPageParams struct {
Hosts map[string]string
Email string
Profile string
Alerts []Alert
IpAddresses map[string][]string
}
type Alert struct {
Type string
Message string
}
type Renderer struct {
_template *template.Template
}
func (r *Renderer) RenderAdminPage(w http.ResponseWriter, params *AdminPageParams) {
r.renderPage(w, "adminpage.html", params)
}
func (r *Renderer) renderPage(w http.ResponseWriter, templateName string, params interface{}) {
err := r._template.ExecuteTemplate(w,templateName, params)
if err != nil {
text := "error in rendering template " + templateName + "\n" + err.Error()
http.Error(w, text , http.StatusInternalServerError)
}
}
func CreateRenderer(config *Config) (*Renderer, error) {
renderer := new(Renderer)
var err error
renderer._template, err = template.ParseGlob("resources/templates/*")
if err != nil {
return nil, err
}
return renderer, nil
}