Differences From
Artifact [cb3a66bab9]:
1 1 -- vim: ft=terra
2 2 local terra
3 -render_compose(co: &lib.srv.convo, edit: &lib.store.post)
3 +render_compose(co: &lib.srv.convo, edit: &lib.store.post, acc: &lib.str.acc)
4 4 var target, tgtlen = co:getv('to')
5 5 var form: data.view.compose
6 + form = data.view.compose {
7 + handle = co.who.handle;
8 + circles = ''; -- TODO: list user's circles, rooms, and saved aclexps
9 + }
6 10 if edit == nil then
7 - form = data.view.compose {
8 - content = lib.coalesce(target, '');
9 - acl = lib.trn(target == nil, 'all', 'mentioned'); -- TODO default acl setting?
10 - handle = co.who.handle;
11 - circles = ''; -- TODO: list user's circles, rooms, and saved aclexps
12 - }
11 + form.content = lib.coalesce(target, '')
12 + form.acl = lib.trn(target == nil, 'all', 'mentioned') -- TODO default acl setting?
13 + else
14 + form.content = lib.coalesce(edit.body, '')
15 + form.acl = edit.acl
13 16 end
17 + if acc ~= nil then form:append(acc) return end
18 +
14 19 var cotxt = form:tostr() defer cotxt:free()
15 20
16 - var doc = data.view.docskel {
17 - instance = co.srv.cfg.instance;
21 + var doc = [lib.srv.convo.page] {
18 22 title = lib.str.plit 'compose';
19 23 body = cotxt;
20 24 class = lib.str.plit 'compose';
21 - navlinks = co.navbar;
25 + cache = true;
22 26 }
23 27
24 - var hdrs = array(
25 - lib.http.header { 'Content-Type', 'text/html; charset=UTF-8' }
26 - )
27 - doc:send(co.con,200,[lib.mem.ptr(lib.http.header)] {ct = 1, ptr = &hdrs[0]})
28 + co:stdpage(doc)
28 29 end
29 30
30 31 return render_compose