Search Apps Documentation Source Content File Folder Download Copy Actions Download

view_config_page.gno

1.63 Kb · 52 lines
 1package basedao
 2
 3import (
 4	"gno.land/p/nt/ufmt/v0"
 5	"gno.land/p/samcrew/daokit"
 6)
 7
 8func (d *DAOPrivate) ConfigPageView() string {
 9	return d.ConfigHeaderView() +
10		d.ConfigRolesView() +
11		d.ConfigResourcesView()
12}
13
14func (d *DAOPrivate) ConfigHeaderView() string {
15	name := d.GetProfileString(d.Realm.Address(), "DisplayName", "DAO")
16	s := ""
17	s += ufmt.Sprintf("# %s - Config ⚙️\n\n", name)
18	s += ufmt.Sprintf("\n--------------------------------\n")
19	return s
20}
21
22func (d *DAOPrivate) ConfigRolesView() string {
23	roles := d.Members.GetRoles()
24	s := ""
25	s += ufmt.Sprintf("## Roles 🎭\n\n")
26	s += ufmt.Sprintf("| **Color** | **Name** | **Description** |\n")
27	s += ufmt.Sprintf("|-----------|----------|-----------------|\n")
28	for _, role := range roles {
29		info := d.Members.RoleInfo(role)
30		s += ufmt.Sprintf("| %s %s | %s | %s |\n", info.Color, d.RoleColoredChip(role), d.RenderRoleLink(role), info.Description)
31	}
32	s += ufmt.Sprintf("\n--------------------------------\n")
33	return s
34}
35
36func (d *DAOPrivate) ConfigResourcesView() string {
37	s := ""
38	s += ufmt.Sprintf("## Resources 📦\n\n")
39	i := 1
40	d.Core.Resources.Tree.Iterate("", "", func(key string, value interface{}) bool {
41		resource := value.(*daokit.Resource)
42		s += ufmt.Sprintf("- **Resource #%d: %s**\n\n", i, key)
43		// TODO: add doc to handler and print here
44		s += ufmt.Sprintf("  - **Name:** %s\n", resource.DisplayName)
45		s += ufmt.Sprintf("  - **Description:** %s\n", resource.Description)
46		s += ufmt.Sprintf("  - **Condition:** %s\n\n", d.RenderWithRolesLinks(resource.Condition.Render()))
47		i += 1
48		return false
49	})
50	s += ufmt.Sprintf("\n--------------------------------\n")
51	return s
52}