diff options
author | Drew DeVault <sir@cmpwn.com> | 2020-10-22 11:36:26 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2020-10-22 11:36:26 -0400 |
commit | 8de661b3bb47eec32cfbfab52c404e9fd610e8e2 (patch) | |
tree | 8ac795e30226dccc9dafd9816ca81b2cd4991cdf | |
parent | 793f261b626be09c50c5b67b3dba56c97e0ce979 (diff) | |
download | alps-8de661b3bb47eec32cfbfab52c404e9fd610e8e2.tar.gz alps-8de661b3bb47eec32cfbfab52c404e9fd610e8e2.zip |
Hide caldav/carrdav in nav unless present
-rw-r--r-- | renderer.go | 11 | ||||
-rw-r--r-- | themes/alps/nav.html | 4 |
2 files changed, 15 insertions, 0 deletions
diff --git a/renderer.go b/renderer.go index a6b4118..4875745 100644 --- a/renderer.go +++ b/renderer.go @@ -26,6 +26,8 @@ type GlobalRenderData struct { Title string + HavePlugin func(name string) bool + // additional plugin-specific data Extra map[string]interface{} } @@ -74,6 +76,15 @@ func NewBaseRenderData(ctx *Context) *BaseRenderData { Path: strings.Split(ctx.Request().URL.Path, "/")[1:], Title: "Webmail", URL: ctx.Request().URL, + + HavePlugin: func(name string) bool { + for _, plugin := range ctx.Server.plugins { + if plugin.Name() == name { + return true + } + } + return false + }, } if ctx.Session != nil { diff --git a/themes/alps/nav.html b/themes/alps/nav.html index 1678434..d14a862 100644 --- a/themes/alps/nav.html +++ b/themes/alps/nav.html @@ -6,18 +6,22 @@ class="active" {{ end }} >Email</a> + {{ if call .GlobalData.HavePlugin "caldav" }} <a href="/calendar" {{ if eq $page "calendar" }} class="active" {{ end }} >Calendar</a> + {{ end }} + {{ if call .GlobalData.HavePlugin "carddav" }} <a href="/contacts" {{ if eq $page "contacts" }} class="active" {{ end }} >Contacts</a> + {{ end }} <div> <span>{{ .GlobalData.Username }}</span> <a href="/settings">Settings</a> |