diff options
author | Robin Jarry <robin@jarry.cc> | 2023-02-03 00:01:26 +0100 |
---|---|---|
committer | Robin Jarry <robin@jarry.cc> | 2023-02-20 14:44:37 +0100 |
commit | 87e3d4bafa9f1b8e91172c135644783de548e35b (patch) | |
tree | f41ed64a68f2e57cccb64b326a0095d1d140cb8b /lib/state | |
parent | a5df5c30b62aae0b2f9d54e6f40fab76999c565b (diff) | |
download | aerc-87e3d4bafa9f1b8e91172c135644783de548e35b.tar.gz |
templates: add message counts for specific folders
Change the {{.Recent}}, {{.Unread}} and {{.Exists}} template fields to
take an arbitrary number of folder names as arguments. If no folder name
is specified, these return the counts for all folders.
Signed-off-by: Robin Jarry <robin@jarry.cc>
Acked-by: Tim Culverhouse <tim@timculverhouse.com>
Diffstat (limited to 'lib/state')
-rw-r--r-- | lib/state/templates.go | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/lib/state/templates.go b/lib/state/templates.go index fdf662c5..b199cf25 100644 --- a/lib/state/templates.go +++ b/lib/state/templates.go @@ -324,10 +324,13 @@ func (d *TemplateData) OriginalHeader(name string) string { return text } -func (d *TemplateData) rue() (int, int, int) { +func (d *TemplateData) rue(folders ...string) (int, int, int) { var recent, unread, exists int if d.getRUEcount != nil { - for _, dir := range d.folders { + if len(folders) == 0 { + folders = d.folders + } + for _, dir := range folders { r, u, e := d.getRUEcount(dir) recent += r unread += u @@ -337,17 +340,17 @@ func (d *TemplateData) rue() (int, int, int) { return recent, unread, exists } -func (d *TemplateData) Recent() int { - r, _, _ := d.rue() +func (d *TemplateData) Recent(folders ...string) int { + r, _, _ := d.rue(folders...) return r } -func (d *TemplateData) Unread() int { - _, u, _ := d.rue() +func (d *TemplateData) Unread(folders ...string) int { + _, u, _ := d.rue(folders...) return u } -func (d *TemplateData) Exists() int { - _, _, e := d.rue() +func (d *TemplateData) Exists(folders ...string) int { + _, _, e := d.rue(folders...) return e } |