diff options
author | Matthew Lemon <y@yulqen.org> | 2024-04-18 11:06:32 +0100 |
---|---|---|
committer | Matthew Lemon <y@yulqen.org> | 2024-04-18 11:06:32 +0100 |
commit | 20560419614e22fbb58567cdb0b88b54caf679f4 (patch) | |
tree | 163df44f07907d865b363db3bc198287ebd3d25f /cmd/web/templates.go | |
parent | 435742cede199e3c85b5e2eb5a42ccbee4906a05 (diff) |
Adds code from ded-go-core - no database
D2S test app code removed (nginx error).
Adds all go code from `ded-go-core` using the basic Gov.UK UI for a test
page for DED.
Diffstat (limited to '')
-rw-r--r-- | cmd/web/templates.go | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/cmd/web/templates.go b/cmd/web/templates.go new file mode 100644 index 0000000..845fe25 --- /dev/null +++ b/cmd/web/templates.go @@ -0,0 +1,48 @@ +package main + +import ( + "html/template" + "path/filepath" + + "github.com/defencedigital/ded-web/internal/models" +) + +// TODO: At the moment we are using a struct will have fields for all the data +// we will need. Not sure whether this is good or bad at the moment. +type templateData struct { + Operations []models.Operation + Organisations []models.Organisation + Persons []models.Person +} + +func newTemplateCache() (map[string]*template.Template, error) { + cache := map[string]*template.Template{} + + // get a slice of filepaths match the pattern for our page templates + // e.g. [ui/html/pages/home.tmpl.html ui/html/pages/view.tmpl.html] + pages, err := filepath.Glob("./ui/html/pages/*.html") + if err != nil { + return nil, err + } + + // loop through the page filepaths one by one + for _, page := range pages { + // extract "home.tmp.html" from the full filepath. + name := filepath.Base(page) + + files := []string{ + "./ui/html/base.tmpl.html", + "./ui/html/partials/nav.tmpl.html", + page, + } + + ts, err := template.ParseFiles(files...) + if err != nil { + return nil, err + } + + cache[name] = ts + } + + return cache, nil +} |