Skip to content

Commit 4d917e2

Browse files
committed
update template
1 parent 717efe4 commit 4d917e2

2 files changed

Lines changed: 25 additions & 1 deletion

File tree

assets/index.html.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
{{#if session.memberships}}
1717
<p>Your memberships:</p>
1818
<ul>
19-
{{#each session.memberships as |teams org|}}
19+
{{#each_team session.memberships as |teams org|}}
2020
<li>{{org}}
2121
<ul>
2222
{{#each teams as |team|}}

templates.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main
22

33
import (
44
"fmt"
5+
"sort"
56

67
"github.com/akerl/github-auth-lambda/session"
78

@@ -28,6 +29,7 @@ func loadTemplate(name string) error {
2829
if err != nil {
2930
return fmt.Errorf("template failed to parse (%s): %s", tplFile, err)
3031
}
32+
templates[name].RegisterHelper("each_team", eachTeamHelper)
3133
return nil
3234
}
3335

@@ -79,3 +81,25 @@ func execTemplate(name string, req events.Request) (string, error) {
7981
page, err := tpl.Exec(ctx)
8082
return page, err
8183
}
84+
85+
func eachTeamHelper(memberships map[string][]string, options *Options) string {
86+
result := ""
87+
88+
orgCount := len(memberships)
89+
orgs := make([]string, orgCount)
90+
idx := 0
91+
for key := range memberships {
92+
orgs[i] = key
93+
idx++
94+
}
95+
sort.Strings(orgs)
96+
97+
for idx, key := range orgs {
98+
val = memberships[key]
99+
sort.Strings(val)
100+
data := options.newIterDataFrame(orgCount, idx, key)
101+
result += options.evalBlock(val, val, key)
102+
}
103+
104+
return result
105+
}

0 commit comments

Comments
 (0)