From e0771c095b10c64cfcead55ca9431cb4223afc44 Mon Sep 17 00:00:00 2001 From: Erik Brakkee Date: Mon, 29 Jul 2024 20:02:08 +0200 Subject: [PATCH] split up in separate pages. --- cmd/converge/fileserver.go | 59 ----------------------------------- cmd/converge/pagehandler.go | 8 +++-- pkg/templates/about.templ | 6 ++++ pkg/templates/downloads.templ | 7 +++++ pkg/templates/usage.templ | 7 +++++ 5 files changed, 26 insertions(+), 61 deletions(-) delete mode 100644 cmd/converge/fileserver.go diff --git a/cmd/converge/fileserver.go b/cmd/converge/fileserver.go deleted file mode 100644 index 9854559..0000000 --- a/cmd/converge/fileserver.go +++ /dev/null @@ -1,59 +0,0 @@ -package main - -import ( - "converge/pkg/templates" - "net/http" - "os" - "path/filepath" - "strings" -) - -type FileHandlerFilter struct { - dir string - fileHandler http.Handler -} - -func NewFileHandler(dir string) *FileHandlerFilter { - handler := FileHandlerFilter{ - dir: dir, - fileHandler: http.FileServer(http.Dir(dir)), - } - return &handler -} - -func (handler FileHandlerFilter) ServeHTTP(w http.ResponseWriter, r *http.Request) { - contextPath := r.URL.Path - path := filepath.Join(handler.dir, contextPath) - fileInfo, err := os.Stat(path) - if err == nil && fileInfo.IsDir() { - contextPath = filepath.Join(contextPath, "index.html") - } - - if !strings.HasSuffix(contextPath, ".html") { - handler.fileHandler.ServeHTTP(w, r) - return - } - - w.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate") - w.Header().Set("Pragma", "no-cache") - w.Header().Set("Expires", "0") - - secure := "" - if r.TLS == nil { - secure = "" - } else { - secure = "s" - } - for _, header := range []string{"X-Forwarded-Proto", "X-Scheme", "X-Forwarded-Scheme"} { - values := r.Header.Values(header) - for _, value := range values { - if strings.ToLower(value) == "https" { - secure = "s" - } - } - } - username, _ := os.LookupEnv("CONVERGE_USERNAME") - - templates.Index(secure, r.Host, username).Render( - r.Context(), w) -} diff --git a/cmd/converge/pagehandler.go b/cmd/converge/pagehandler.go index 6b5c9aa..4e441ac 100644 --- a/cmd/converge/pagehandler.go +++ b/cmd/converge/pagehandler.go @@ -29,8 +29,12 @@ func pageHandler(w http.ResponseWriter, r *http.Request) { fallthrough case "/": fallthrough - case "/index.html": - templates.Index(secure, r.Host, username).Render(r.Context(), w) + case "index.html": + templates.AboutTab().Render(r.Context(), w) + case "usage.html": + templates.UsageTab(secure, r.URL.Host, username).Render(r.Context(), w) + case "downloads.html": + templates.DownloadsTab().Render(r.Context(), w) default: http.NotFound(w, r) } diff --git a/pkg/templates/about.templ b/pkg/templates/about.templ index 951b0e8..900c240 100644 --- a/pkg/templates/about.templ +++ b/pkg/templates/about.templ @@ -42,3 +42,9 @@ templ About() { } + +templ AboutTab() { + @BasePage() { + @About() + } +} diff --git a/pkg/templates/downloads.templ b/pkg/templates/downloads.templ index bcdf5b0..9efabc9 100644 --- a/pkg/templates/downloads.templ +++ b/pkg/templates/downloads.templ @@ -36,4 +36,11 @@ templ Downloads() { +} + + +templ DownloadsTab() { + @BasePage() { + @Downloads() + } } \ No newline at end of file diff --git a/pkg/templates/usage.templ b/pkg/templates/usage.templ index d904714..0599b9a 100644 --- a/pkg/templates/usage.templ +++ b/pkg/templates/usage.templ @@ -120,3 +120,10 @@ templ Usage(secure string, host string, username string) { } + + +templ UsageTab(secure string, host string, username string) { + @BasePage() { + @Usage(secure, host, username) + } +}