50 lines
966 B
Go
50 lines
966 B
Go
package ui
|
|
|
|
import (
|
|
_ "embed"
|
|
"net/http"
|
|
"strings"
|
|
)
|
|
|
|
//go:embed LICENSE
|
|
var license string
|
|
|
|
//go:embed LICENSE.logo
|
|
var licenseLogo string
|
|
|
|
var licenseHtml string
|
|
var licenseLogoHtml string
|
|
|
|
func textToHtml(text string) string {
|
|
return strings.ReplaceAll(text, "\n", "<br/>")
|
|
}
|
|
|
|
func init() {
|
|
licenseHtml = textToHtml(license)
|
|
licenseLogoHtml = textToHtml(licenseLogo)
|
|
}
|
|
|
|
func PageHandler(w http.ResponseWriter, r *http.Request) {
|
|
access := getConvergeAccess(r)
|
|
|
|
switch r.URL.Path {
|
|
case "":
|
|
fallthrough
|
|
case "/":
|
|
fallthrough
|
|
case "index.html":
|
|
AboutTab().Render(r.Context(), w)
|
|
// TODO use contexts later.
|
|
case "usage.html":
|
|
UsageTab(access).Render(r.Context(), w)
|
|
case "downloads.html":
|
|
DownloadsTab().Render(r.Context(), w)
|
|
case "sessions.html":
|
|
SessionsTab(nil, nil, access.Location).Render(r.Context(), w)
|
|
case "license.html":
|
|
LicenseTab(licenseHtml, licenseLogoHtml).Render(r.Context(), w)
|
|
default:
|
|
http.NotFound(w, r)
|
|
}
|
|
}
|