Add INBOX unread count on mailbox/message pages
This commit is contained in:
parent
0a9c246794
commit
9a7acd2791
3 changed files with 40 additions and 13 deletions
|
@ -66,6 +66,7 @@ func registerRoutes(p *alps.GoPlugin) {
|
|||
type MailboxRenderData struct {
|
||||
alps.BaseRenderData
|
||||
Mailbox *MailboxStatus
|
||||
Inbox *MailboxStatus
|
||||
Mailboxes []MailboxInfo
|
||||
Messages []IMAPMessage
|
||||
PrevPage, NextPage int
|
||||
|
@ -96,7 +97,7 @@ func handleGetMailbox(ctx *alps.Context) error {
|
|||
|
||||
var mailboxes []MailboxInfo
|
||||
var msgs []IMAPMessage
|
||||
var mbox *MailboxStatus
|
||||
var mbox, inbox *MailboxStatus
|
||||
var total int
|
||||
err = ctx.Session.DoIMAP(func(c *imapclient.Client) error {
|
||||
var err error
|
||||
|
@ -114,6 +115,13 @@ func handleGetMailbox(ctx *alps.Context) error {
|
|||
if mbox, err = getMailboxStatus(c, mboxName); err != nil {
|
||||
return err
|
||||
}
|
||||
if mboxName == "INBOX" {
|
||||
inbox = mbox
|
||||
} else {
|
||||
if inbox, err = getMailboxStatus(c, "INBOX"); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
|
@ -149,6 +157,7 @@ func handleGetMailbox(ctx *alps.Context) error {
|
|||
return ctx.Render(http.StatusOK, "mailbox.html", &MailboxRenderData{
|
||||
BaseRenderData: *alps.NewBaseRenderData(ctx).WithTitle(title),
|
||||
Mailbox: mbox,
|
||||
Inbox: inbox,
|
||||
Mailboxes: mailboxes,
|
||||
Messages: msgs,
|
||||
PrevPage: prevPage,
|
||||
|
@ -207,6 +216,7 @@ type MessageRenderData struct {
|
|||
alps.BaseRenderData
|
||||
Mailboxes []MailboxInfo
|
||||
Mailbox *MailboxStatus
|
||||
Inbox *MailboxStatus
|
||||
Message *IMAPMessage
|
||||
Part *IMAPPartNode
|
||||
View interface{}
|
||||
|
@ -233,7 +243,7 @@ func handleGetPart(ctx *alps.Context, raw bool) error {
|
|||
var mailboxes []MailboxInfo
|
||||
var msg *IMAPMessage
|
||||
var part *message.Entity
|
||||
var mbox *MailboxStatus
|
||||
var mbox, inbox *MailboxStatus
|
||||
err = ctx.Session.DoIMAP(func(c *imapclient.Client) error {
|
||||
var err error
|
||||
if mailboxes, err = listMailboxes(c); err != nil {
|
||||
|
@ -245,6 +255,13 @@ func handleGetPart(ctx *alps.Context, raw bool) error {
|
|||
if mbox, err = getMailboxStatus(c, mboxName); err != nil {
|
||||
return err
|
||||
}
|
||||
if mboxName == "INBOX" {
|
||||
inbox = mbox
|
||||
} else {
|
||||
if inbox, err = getMailboxStatus(c, "INBOX"); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
|
@ -306,6 +323,7 @@ func handleGetPart(ctx *alps.Context, raw bool) error {
|
|||
WithTitle(msg.Envelope.Subject),
|
||||
Mailboxes: mailboxes,
|
||||
Mailbox: mbox,
|
||||
Inbox: inbox,
|
||||
Message: msg,
|
||||
Part: msg.PartByPath(partPath),
|
||||
View: view,
|
||||
|
|
|
@ -5,18 +5,22 @@
|
|||
<aside>
|
||||
<!-- the logo image, dimensions 200x32 may be present or not -->
|
||||
<a href="/compose" class="new">Compose Mail</a>
|
||||
{{$current := .Mailbox}}
|
||||
{{range .Mailboxes}}
|
||||
<a href="{{.URL}}"
|
||||
{{ if eq $current.Name .Name }}class="active"{{ end }}>
|
||||
<a href="{{.URL}}" {{ if eq $.Mailbox.Name .Name }}class="active"{{ end }}>
|
||||
{{ if eq .Name "INBOX" }}
|
||||
Inbox
|
||||
{{else}}
|
||||
{{.Name}}
|
||||
{{end}}
|
||||
{{ if eq $current.Name .Name }}
|
||||
{{ if $current.Unseen }}({{ $current.Unseen }}){{ end }}
|
||||
{{ else }}
|
||||
{{ .Name }}
|
||||
{{ end }}
|
||||
|
||||
{{ $unseen := 0 }}
|
||||
{{ if eq .Name "INBOX" }}
|
||||
{{ $unseen = $.Inbox.Unseen }}
|
||||
{{ end }}
|
||||
{{ if eq .Name $.Mailbox.Name }}
|
||||
{{ $unseen = $.Mailbox.Unseen }}
|
||||
{{ end }}
|
||||
{{ if $unseen }}({{ $unseen }}){{ end }}
|
||||
</a>
|
||||
{{end}}
|
||||
</aside>
|
||||
|
|
|
@ -32,7 +32,6 @@
|
|||
<aside>
|
||||
<!-- the logo image, dimensions 200x32 may be present or not -->
|
||||
<a href="/compose" class="new">Compose Mail</a>
|
||||
{{$current := .Mailbox}}
|
||||
{{range .Mailboxes}}
|
||||
<a href="{{.URL}}"
|
||||
{{ if eq $current.Name .Name }}class="active"{{ end }}>
|
||||
|
@ -41,9 +40,15 @@
|
|||
{{else}}
|
||||
{{.Name}}
|
||||
{{end}}
|
||||
{{ if eq $current.Name .Name }}
|
||||
{{ if $current.Unseen }}({{ $current.Unseen }}){{ end }}
|
||||
|
||||
{{ $unseen := 0 }}
|
||||
{{ if eq .Name "INBOX" }}
|
||||
{{ $unseen = $.Inbox.Unseen }}
|
||||
{{ end }}
|
||||
{{ if eq .Name $.Mailbox.Name }}
|
||||
{{ $unseen = $.Mailbox.Unseen }}
|
||||
{{ end }}
|
||||
{{ if $unseen }}({{ $unseen }}){{ end }}
|
||||
</a>
|
||||
{{end}}
|
||||
</aside>
|
||||
|
|
Loading…
Reference in a new issue