From d031b5ff3bf749c37e4b9015d4d5c127d899382e Mon Sep 17 00:00:00 2001 From: Alexander Baryshnikov Date: Tue, 8 Dec 2020 18:16:20 +0800 Subject: [PATCH] ui: generate query tokens URL, remove JS --- server/ui/utils.go | 19 +++++++++++++++++++ templates/unit-info.html | 22 +++++++++++++++++----- 2 files changed, 36 insertions(+), 5 deletions(-) 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 + +
    + {{range .QueryToken.Tokens}} +
  • + {{$.BaseURL}}/api/{{$.Unit.Name}}/?{{$.Unit.Authorization.QueryToken.GetParam}}={{.}} +
  • + {{end}} +
+
+
{{end}} {{if .HeaderToken.Enable}}