+1
appview/pages/pages.go
+1
appview/pages/pages.go
+8
-4
appview/pages/templates/knot.html
+8
-4
appview/pages/templates/knot.html
···
17
17
<dl class="grid grid-cols-[auto_1fr] gap-x-4 dark:text-gray-200">
18
18
<dt class="font-bold">opened by</dt>
19
19
<dd>
20
-
@{{ .Registration.ByDid }}
20
+
<span>
21
+
{{ index $.DidHandleMap .Registration.ByDid }} <span class="text-gray-500 dark:text-gray-400 font-mono">{{ .Registration.ByDid }}</span>
22
+
</span>
21
23
{{ if eq $.LoggedInUser.Did $.Registration.ByDid }}
22
24
<span class="text-xs bg-blue-100 dark:bg-blue-900 text-blue-800 dark:text-blue-200 px-2 py-1 rounded ml-2">you</span>
23
25
{{ end }}
···
57
59
<div id="member-list" class="flex flex-col gap-4">
58
60
{{ range $.Members }}
59
61
<div class="inline-flex items-center gap-4">
60
-
{{ i "user" "w-3 h-3 dark:text-gray-300" }}
61
-
<a href="/{{.}}" class="text-gray-900 dark:text-white">{{.}}</a>
62
+
{{ i "user" "w-4 h-4 dark:text-gray-300" }}
63
+
<a href="/{{index $.DidHandleMap .}}" class="text-gray-900 dark:text-white">{{index $.DidHandleMap .}}
64
+
<span class="text-gray-500 dark:text-gray-400 font-mono">{{.}}</span>
65
+
</a>
62
66
</div>
63
67
{{ else }}
64
68
<p class="text-gray-500 dark:text-gray-400">No members have been added yet.</p>
···
91
95
</form>
92
96
</section>
93
97
{{ end }}
94
-
{{ end }}
98
+
{{ end }}
+4
-2
appview/pages/templates/knots.html
+4
-2
appview/pages/templates/knots.html
···
36
36
<div class="flex flex-col gap-1">
37
37
<div class="inline-flex items-center gap-4">
38
38
{{ i "git-branch" "w-3 h-3 dark:text-gray-300" }}
39
-
<p class="font-bold dark:text-white">{{ .Domain }}</p>
39
+
<a href="/knots/{{ .Domain }}">
40
+
<p class="font-bold dark:text-white">{{ .Domain }}</p>
41
+
</a>
40
42
</div>
41
43
<p class="text-sm text-gray-500 dark:text-gray-400">owned by {{ .ByDid }}</p>
42
44
<p class="text-sm text-gray-500 dark:text-gray-400">registered {{ .Registered | timeFmt }}</p>
···
83
85
</div>
84
86
</section>
85
87
</div>
86
-
{{ end }}
88
+
{{ end }}
+16
appview/state/state.go
+16
appview/state/state.go
···
420
420
}
421
421
}
422
422
423
+
var didsToResolve []string
424
+
for _, m := range members {
425
+
didsToResolve = append(didsToResolve, m)
426
+
}
427
+
didsToResolve = append(didsToResolve, reg.ByDid)
428
+
resolvedIds := s.resolver.ResolveIdents(r.Context(), didsToResolve)
429
+
didHandleMap := make(map[string]string)
430
+
for _, identity := range resolvedIds {
431
+
if !identity.Handle.IsInvalidHandle() {
432
+
didHandleMap[identity.DID.String()] = fmt.Sprintf("@%s", identity.Handle.String())
433
+
} else {
434
+
didHandleMap[identity.DID.String()] = identity.DID.String()
435
+
}
436
+
}
437
+
423
438
ok, err := s.enforcer.IsServerOwner(user.Did, domain)
424
439
isOwner := err == nil && ok
425
440
426
441
p := pages.KnotParams{
427
442
LoggedInUser: user,
443
+
DidHandleMap: didHandleMap,
428
444
Registration: reg,
429
445
Members: members,
430
446
IsOwner: isOwner,