diff --git a/web/templates/_base.html b/web/templates/_base.html index 8fd42844c8..6ad6e054ee 100644 --- a/web/templates/_base.html +++ b/web/templates/_base.html @@ -13,6 +13,8 @@ Graph & Console Status Databases + {{ define "user_dashboard_link" }}{{ end }} + {{ template "user_dashboard_link" .}} Help diff --git a/web/web.go b/web/web.go index 07542d914c..d5375677a0 100644 --- a/web/web.go +++ b/web/web.go @@ -75,12 +75,15 @@ func (w WebService) ServeForever() error { return http.ListenAndServe(*listenAddress, exp.DefaultCoarseMux) } -func getTemplate(name string) (t *template.Template, err error) { - if *useLocalAssets { - return template.ParseFiles("web/templates/_base.html", fmt.Sprintf("web/templates/%s.html", name)) - } +func getLocalTemplate(name string) (*template.Template, error) { + return template.ParseFiles( + "web/templates/_base.html", + fmt.Sprintf("web/templates/%s.html", name), + ) +} - t = template.New("_base") +func getEmbeddedTemplate(name string) (*template.Template, error) { + t := template.New("_base") file, err := blob.GetFile(blob.TemplateFiles, "_base.html") if err != nil { @@ -96,6 +99,26 @@ func getTemplate(name string) (t *template.Template, err error) { } t.Parse(string(file)) + return t, nil +} + + +func getTemplate(name string) (t *template.Template, err error) { + if *useLocalAssets { + t, err = getLocalTemplate(name) + } else { + t, err = getEmbeddedTemplate(name) + } + + if err != nil { + return + } + + if *userAssetsPath != "" { + // replace "user_dashboard_link" template + t.Parse(`{{define "user_dashboard_link"}}User Dashboard{{end}}`) + } + return }