summaryrefslogtreecommitdiff
path: root/app/controllers/dashboard
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-04-17 16:20:27 -0600
committermo khan <mo@mokhan.ca>2025-04-17 16:20:27 -0600
commit49a8ef7441ac9355a7a8e4890f0a1c9004571f37 (patch)
treed939c2465bb31113468ef3e9562befc291495019 /app/controllers/dashboard
parent1a1da99c2bde90bfd0cb78ddca5276deed10bdc5 (diff)
refactor: move html template to a separate file
Diffstat (limited to 'app/controllers/dashboard')
-rw-r--r--app/controllers/dashboard/controller.go51
-rw-r--r--app/controllers/dashboard/dto.go9
-rw-r--r--app/controllers/dashboard/show.html.tmpl27
3 files changed, 50 insertions, 37 deletions
diff --git a/app/controllers/dashboard/controller.go b/app/controllers/dashboard/controller.go
index b0477ba..26b182f 100644
--- a/app/controllers/dashboard/controller.go
+++ b/app/controllers/dashboard/controller.go
@@ -2,10 +2,11 @@ package dashboard
import (
"html/template"
+ "io/ioutil"
"net/http"
+ "github.com/xlgmokha/x/pkg/log"
"github.com/xlgmokha/x/pkg/x"
- "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/domain"
"gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/key"
)
@@ -30,44 +31,20 @@ func (c *Controller) Show(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
w.Header().Add("Content-Type", "text/html")
- const tpl = `
-<!doctype html>
-<html lang="en">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <meta name="color-scheme" content="light dark">
- <title>SparkleLab - {{.Title}}</title>
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.min.css">
- </head>
- <body>
- <main class="container">
- <nav>
- <ul>
- <li><strong>SparkleLab</strong></li>
- </ul>
- <ul>
- <li><a href="/session/new">Login</a></li>
- </ul>
- </nav>
- {{range .Sparkles}}
- <div>{{ . }}</div>
- {{else}}
- <div><strong>No Sparkles</strong></div>
- {{end}}
- </main>
- </body>
-</html>`
+ b, err := ioutil.ReadFile("show.html.tmpl")
+ if err != nil {
+ log.WithFields(r.Context(), log.Fields{"error": err})
+ w.WriteHeader(http.StatusInternalServerError)
+ return
+ }
- t := x.Must(template.New("show").Parse(tpl))
- data := struct {
- Title string
- CurrentUser *domain.User
- Sparkles []string
- }{
- Title: "SparkleLab",
+ t := template.Must(template.New("show").Parse(string(b)))
+ if err := t.Execute(w, &ViewDashboardDTO{
CurrentUser: currentUser,
Sparkles: []string{},
+ }); err != nil {
+ log.WithFields(r.Context(), log.Fields{"error": err})
+ w.WriteHeader(http.StatusInternalServerError)
+ return
}
- t.Execute(w, data)
}
diff --git a/app/controllers/dashboard/dto.go b/app/controllers/dashboard/dto.go
new file mode 100644
index 0000000..4243adc
--- /dev/null
+++ b/app/controllers/dashboard/dto.go
@@ -0,0 +1,9 @@
+package dashboard
+
+import "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/domain"
+
+type ViewDashboardDTO struct {
+ CurrentUser *domain.User
+ Sparkles []string
+ Title string
+}
diff --git a/app/controllers/dashboard/show.html.tmpl b/app/controllers/dashboard/show.html.tmpl
new file mode 100644
index 0000000..5293117
--- /dev/null
+++ b/app/controllers/dashboard/show.html.tmpl
@@ -0,0 +1,27 @@
+<!doctype html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <meta name="color-scheme" content="light dark">
+ <title>SparkleLab</title>
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.min.css">
+ </head>
+ <body>
+ <main class="container">
+ <nav>
+ <ul>
+ <li><strong>SparkleLab</strong></li>
+ </ul>
+ <ul>
+ <li><a href="/session/new">Login</a></li>
+ </ul>
+ </nav>
+ {{range .Sparkles}}
+ <div>{{ . }}</div>
+ {{else}}
+ <div><strong>No Sparkles</strong></div>
+ {{end}}
+ </main>
+ </body>
+</html>