aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2020-10-22 11:36:26 -0400
committerDrew DeVault <sir@cmpwn.com>2020-10-22 11:36:26 -0400
commit8de661b3bb47eec32cfbfab52c404e9fd610e8e2 (patch)
tree8ac795e30226dccc9dafd9816ca81b2cd4991cdf
parent793f261b626be09c50c5b67b3dba56c97e0ce979 (diff)
downloadalps-8de661b3bb47eec32cfbfab52c404e9fd610e8e2.tar.gz
alps-8de661b3bb47eec32cfbfab52c404e9fd610e8e2.zip
Hide caldav/carrdav in nav unless present
-rw-r--r--renderer.go11
-rw-r--r--themes/alps/nav.html4
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>