Launcher: Shorten long url inside app instance tooltip
Change-Id: If80b8a4a519745101056e34c3535543a6c8a78d2
diff --git a/core/installer/welcome/launcher.go b/core/installer/welcome/launcher.go
index 8619459..3dd70b9 100644
--- a/core/installer/welcome/launcher.go
+++ b/core/installer/welcome/launcher.go
@@ -22,11 +22,12 @@
var files embed.FS
type AppLauncherInfo struct {
- Id string
- Name string
- Icon template.HTML
- Help []HelpDocumentRendered
- Url string
+ Id string
+ Name string
+ Icon template.HTML
+ Help []HelpDocumentRendered
+ URL string
+ DisplayURL string
}
type HelpDocumentRendered struct {
@@ -54,11 +55,12 @@
continue
}
ret = append(ret, AppLauncherInfo{
- Id: a.Id,
- Name: a.AppId,
- Icon: template.HTML(a.Icon),
- Help: toMarkdown(a.Help),
- Url: a.URL,
+ Id: a.Id,
+ Name: a.AppId,
+ Icon: template.HTML(a.Icon),
+ Help: toMarkdown(a.Help),
+ URL: a.URL,
+ DisplayURL: shortenURL(a.URL, a.Env.Domain),
})
}
sort.Slice(ret, func(i, j int) bool {
@@ -81,14 +83,14 @@
type LauncherServer struct {
port int
- logoutUrl string
+ logoutURL string
appDirectory AppDirectory
homeTmpl *template.Template
}
func NewLauncherServer(
port int,
- logoutUrl string,
+ logoutURL string,
appDirectory AppDirectory,
) (*LauncherServer, error) {
tmpl, err := indexHTML.ReadFile("launcher-tmpl/launcher.html")
@@ -105,7 +107,7 @@
}
return &LauncherServer{
port,
- logoutUrl,
+ logoutURL,
appDirectory,
t,
}, nil
@@ -124,6 +126,10 @@
return cleanName
}
+func shortenURL(url, domain string) string {
+ return strings.Replace(url, domain, "..", 1)
+}
+
func getLoggedInUser(r *http.Request) (string, error) {
if user := r.Header.Get("X-User"); user != "" {
return user, nil
@@ -142,7 +148,7 @@
type homeHandlerData struct {
LoggedInUsername string
AllAppsInfo []AppLauncherInfo
- LogoutUrl string
+ LogoutURL string
}
func (s *LauncherServer) homeHandler(w http.ResponseWriter, r *http.Request) {
@@ -158,7 +164,7 @@
data := homeHandlerData{
LoggedInUsername: loggedInUsername,
AllAppsInfo: allAppsInfo,
- LogoutUrl: s.logoutUrl,
+ LogoutURL: s.logoutURL,
}
if err := s.homeTmpl.Execute(w, data); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)