diff --git a/server/ui/utils.go b/server/ui/utils.go index c8ac170..71b847c 100644 --- a/server/ui/utils.go +++ b/server/ui/utils.go @@ -1,6 +1,8 @@ package ui import ( + "net/http" + "net/url" "strings" "github.com/gin-gonic/gin" @@ -10,6 +12,7 @@ type baseResponse struct { Context *gin.Context Login string Authorized bool + BaseURL string } func (br baseResponse) Rel(path string, tail ...string) string { @@ -30,5 +33,21 @@ func base(gctx *gin.Context) baseResponse { Authorized: gctx.GetBool(ctxAuthorized), Context: gctx, Login: gctx.GetString(ctxLogin), + BaseURL: getProto(gctx.Request) + "://" + gctx.Request.Host, } } + +func getProto(req *http.Request) string { + return extractScheme(req.Header.Get("Origin"), extractScheme(req.Header.Get("Referer"), "https")) +} + +func extractScheme(guess, fallback string) string { + if guess == "" { + return fallback + } + u, err := url.Parse(guess) + if err != nil { + return fallback + } + return u.Scheme +} diff --git a/templates/unit-info.html b/templates/unit-info.html index 745bc1a..d5992ac 100644 --- a/templates/unit-info.html +++ b/templates/unit-info.html @@ -57,8 +57,7 @@
API endpoint
- - + {{$.BaseURL}}/api/{{.Unit.Name}}/
{{- end}} @@ -154,9 +153,22 @@ {{end}} {{if .QueryToken.Enable}}
Query token
-
in - {{.QueryToken.GetParam}} - param +
+
+ + in + {{.QueryToken.GetParam}} + param + + +
+
{{end}} {{if .HeaderToken.Enable}}