diff options
-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> |