package main import ( "html/template" "net/http" ) type AdminPageParams struct { Hosts map[string]string Claims OidcClams Alerts []Alert IpAddresses map[string][]string LogoutUrl 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 }