package templates
import (
_ "embed"
"html/template"
"mime/multipart"
"strconv"
"strings"
"sync"
"github.com/rs/zerolog/log"
)
var funcMap = template.FuncMap{
"year": func(s int) string {
if s == 0 {
return ""
}
return strconv.Itoa(s)
},
"join": func(s []string) string {
if len(s) == 0 {
return ""
} else {
return strings.Join(s, ",")
}
},
"filename": func(h *multipart.FileHeader) string {
if h != nil {
return h.Filename
}
return ""
},
}
//go:embed form.html.tpl
var form string
var GetUploadForm = sync.OnceValue[*template.Template](func() *template.Template {
tmpl, err := template.New("uploadForm").Funcs(funcMap).Parse(form)
if err != nil {
log.Err(err).Msg("unable to parse upload form")
return nil
}
return tmpl
})