view_role_detail_page.gno
1.27 Kb Β· 45 lines
1package basedao
2
3import (
4 "gno.land/p/demo/svg"
5 "gno.land/p/moul/md"
6 "gno.land/p/nt/avl/v0"
7 "gno.land/p/nt/ufmt/v0"
8)
9
10func (d *DAOPrivate) RoleDetailPageView(path string, name string) string {
11 return d.RoleDetailHeaderView() +
12 d.RoleDetailView(path, name)
13}
14
15func (d *DAOPrivate) RoleDetailHeaderView() string {
16 name := d.GetProfileString(d.Realm.Address(), "DisplayName", "DAO")
17 s := ""
18 s += md.H1(ufmt.Sprintf("%s - Role Detail π", name))
19 s += ufmt.Sprintf("\n--------------------------------\n")
20 return s
21}
22
23func (d *DAOPrivate) RoleDetailView(path string, name string) string {
24 info := d.Members.RoleInfo(name)
25 memberCount := d.Members.CountMembersWithRole(name)
26 roleMembers := d.Members.GetMembersWithRole(name)
27 var roleMembersTree = avl.NewTree()
28 for _, member := range roleMembers {
29 roleMembersTree.Set(member, struct{}{})
30 }
31
32 s := ""
33 s += md.H2(ufmt.Sprintf("Name - %s π", info.Name))
34 s += md.H2(ufmt.Sprintf("Color - %s %s", info.Color, d.RoleColoredChip(name, &svg.Canvas{
35 Width: 24,
36 Height: 24,
37 })))
38 s += md.H2("Description π")
39 s += md.Paragraph(info.Description)
40 s += md.H2(ufmt.Sprintf("Members π₯ (%d)", memberCount))
41 s += d.RenderMembersTable(path, roleMembersTree)
42 s += ufmt.Sprintf("\n--------------------------------\n")
43
44 return s
45}