aboutsummaryrefslogtreecommitdiff
path: root/handlers.go
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2019-12-10 17:36:21 +0100
committerSimon Ser <contact@emersion.fr>2019-12-10 17:36:21 +0100
commit3748b4413e6962654162625a3e57ade91defb71b (patch)
tree29e9eabe6122dd5ba06c3df50863b748e0e01566 /handlers.go
parentedf738f23d96efdd2c96146d430301a3128cb8e9 (diff)
downloadalps-3748b4413e6962654162625a3e57ade91defb71b.tar.gz
alps-3748b4413e6962654162625a3e57ade91defb71b.zip
Introduce GlobalRenderData and RenderData
GlobalRenderData contains some global metadata that can be obtained from any template. RenderData is a base type for template data. It contains a Global field with global metadata and an Extra field for plugins.
Diffstat (limited to 'handlers.go')
-rw-r--r--handlers.go15
1 files changed, 8 insertions, 7 deletions
diff --git a/handlers.go b/handlers.go
index 4e127b4..de324fa 100644
--- a/handlers.go
+++ b/handlers.go
@@ -17,11 +17,11 @@ import (
)
type MailboxRenderData struct {
+ RenderData
Mailbox *imap.MailboxStatus
Mailboxes []*imap.MailboxInfo
Messages []imapMessage
PrevPage, NextPage int
- Extra map[string]interface{}
}
func handleGetMailbox(ectx echo.Context) error {
@@ -67,17 +67,18 @@ func handleGetMailbox(ectx echo.Context) error {
}
return ctx.Render(http.StatusOK, "mailbox.html", &MailboxRenderData{
+ RenderData: *NewRenderData(ctx),
Mailbox: mbox,
Mailboxes: mailboxes,
Messages: msgs,
PrevPage: prevPage,
NextPage: nextPage,
- Extra: make(map[string]interface{}),
})
}
func handleLogin(ectx echo.Context) error {
ctx := ectx.(*context)
+
username := ctx.FormValue("username")
password := ctx.FormValue("password")
if username != "" && password != "" {
@@ -93,7 +94,7 @@ func handleLogin(ectx echo.Context) error {
return ctx.Redirect(http.StatusFound, "/mailbox/INBOX")
}
- return ctx.Render(http.StatusOK, "login.html", nil)
+ return ctx.Render(http.StatusOK, "login.html", NewRenderData(ctx))
}
func handleLogout(ectx echo.Context) error {
@@ -105,12 +106,12 @@ func handleLogout(ectx echo.Context) error {
}
type MessageRenderData struct {
+ RenderData
Mailbox *imap.MailboxStatus
Message *imapMessage
Body string
PartPath string
MailboxPage int
- Extra map[string]interface{}
}
func handleGetPart(ctx *context, raw bool) error {
@@ -172,18 +173,18 @@ func handleGetPart(ctx *context, raw bool) error {
}
return ctx.Render(http.StatusOK, "message.html", &MessageRenderData{
+ RenderData: *NewRenderData(ctx),
Mailbox: mbox,
Message: msg,
Body: body,
PartPath: partPathString,
MailboxPage: int(mbox.Messages-msg.SeqNum) / messagesPerPage,
- Extra: make(map[string]interface{}),
})
}
type ComposeRenderData struct {
+ RenderData
Message *OutgoingMessage
- Extra map[string]interface{}
}
func handleCompose(ectx echo.Context) error {
@@ -281,7 +282,7 @@ func handleCompose(ectx echo.Context) error {
}
return ctx.Render(http.StatusOK, "compose.html", &ComposeRenderData{
+ RenderData: *NewRenderData(ctx),
Message: &msg,
- Extra: make(map[string]interface{}),
})
}