diff options
author | Drew DeVault <sir@cmpwn.com> | 2020-05-13 10:46:35 -0400 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2020-05-13 17:00:47 +0200 |
commit | 3d1f278fae716b37fa6a4b8bdf52d21dba371cc5 (patch) | |
tree | ea5080e7bd7fd6ef0710e31b8350516369a58d53 /renderer.go | |
parent | 1cf95af41ea24ab76cba8a0761d349b65c08c294 (diff) | |
download | alps-3d1f278fae716b37fa6a4b8bdf52d21dba371cc5.tar.gz alps-3d1f278fae716b37fa6a4b8bdf52d21dba371cc5.zip |
Use context-appropriate title for mbox/msg view
Diffstat (limited to 'renderer.go')
-rw-r--r-- | renderer.go | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/renderer.go b/renderer.go index 3379233..a6b4118 100644 --- a/renderer.go +++ b/renderer.go @@ -17,13 +17,15 @@ const themesDir = "themes" // GlobalRenderData contains data available in all templates. type GlobalRenderData struct { Path []string - URL *url.URL + URL *url.URL LoggedIn bool // if logged in Username string + Title string + // additional plugin-specific data Extra map[string]interface{} } @@ -67,22 +69,29 @@ type RenderData interface { // // other fields... // } func NewBaseRenderData(ctx *Context) *BaseRenderData { - global := GlobalRenderData{Extra: make(map[string]interface{})} + global := GlobalRenderData{ + Extra: make(map[string]interface{}), + Path: strings.Split(ctx.Request().URL.Path, "/")[1:], + Title: "Webmail", + URL: ctx.Request().URL, + } if ctx.Session != nil { global.LoggedIn = true global.Username = ctx.Session.username } - global.URL = ctx.Request().URL - global.Path = strings.Split(global.URL.Path, "/")[1:] - return &BaseRenderData{ GlobalData: global, Extra: make(map[string]interface{}), } } +func (brd *BaseRenderData) WithTitle(title string) *BaseRenderData { + brd.GlobalData.Title = title + return brd +} + type renderer struct { logger echo.Logger defaultTheme string |