Differences From
Artifact [531b5ac1cf]:
1 1 -- vim: ft=terra
2 2 local pstr = lib.mem.ptr(int8)
3 3 local terra cs(s: rawstring)
4 4 return pstr { ptr = s, ct = lib.str.sz(s) }
5 5 end
6 6
7 7 local terra
8 -render_profile(co: &lib.srv.convo, actor: &lib.store.actor)
8 +render_profile(
9 + co: &lib.srv.convo,
10 + actor: &lib.store.actor,
11 + relationship: &lib.store.relationship
12 +): pstr
9 13 var aux: lib.str.acc
10 14 var followed = false -- FIXME
11 15 if co.aid ~= 0 and co.who.id == actor.id then
12 16 aux:compose('<a accesskey="a" class="button" href="/conf/profile?go=/@',actor.handle,'">alter</a>')
13 17 elseif co.aid ~= 0 then
14 - if not followed then
18 + if not relationship.rel.follow() then
15 19 aux:compose('<button accesskey="f" method="post" class="pos" name="act" value="follow">follow</button>')
16 - elseif followed then
20 + elseif relationship.rel.follow() then
17 21 aux:compose('<button accesskey="f" method="post" class="neg" name="act" value="unfollow">unfollow</button>')
18 22 end
19 23 aux:lpush('<a accesskey="h" class="button" href="/'):push(actor.xid,0):lpush('/chat">chat</a>')
20 24 if co.who.rights.powers:affect_users() and co.who:overpowers(actor) then
21 25 aux:lpush('<a accesskey="n" class="button" href="/'):push(actor.xid,0):lpush('/ctl">control</a>')
22 26 end
23 27 else
................................................................................
67 71 end
68 72
69 73 if co.who:outranks(actor) then
70 74 comments:lpush('<li style="--co:50">underling</li>')
71 75 elseif actor:outranks(co.who) then
72 76 comments:lpush('<li style="--co:-50">outranks you</li>')
73 77 end
78 +
79 + if relationship.recip.follow() then
80 + comments:lpush('<li style="--co:30">follows you</li>')
81 + end
74 82 end
75 83
76 84 var profile = data.view.profile {
77 85 nym = fullname;
78 86 bio = bio;
79 87 xid = cs(actor.xid);
80 88 avatar = cs(actor.avatar);