Differences From
Artifact [79b6da76d7]:
35 35 body:free()
36 36 else [invoker] end
37 37 end
38 38 end
39 39 end
40 40
41 41 local terra
42 -render_conf([co], [path])
42 +render_conf([co], [path], notify: pstr)
43 43 var menu: lib.str.acc menu:init(64):lpush('<hr>') defer menu:free()
44 44
45 45 -- build menu
46 46 do var p = co.who.rights.powers
47 47 if p.config() then menu:lpush '<a href="/conf/srv">server settings</a>' end
48 48 if p.rebrand() then menu:lpush '<a href="/conf/brand">instance branding</a>' end
49 49 if p.censor() then menu:lpush '<a href="/conf/censor">badthink alerts</a>' end
................................................................................
58 58 var mptr = pstr { ptr = menu.buf, ct = menu.sz }
59 59 if menu.sz <= 4 then mptr.ct = 0 end -- 🙄
60 60 var pg = data.view.conf {
61 61 menu = mptr;
62 62 panel = panel;
63 63 }
64 64
65 - var pgt = pg:tostr() defer pgt:free()
65 + var pgt: pstr
66 + if notify:ref() then
67 + var fnpg: lib.str.acc
68 + fnpg:compose('<div class="flashmsg">', notify, '</div>')
69 + pg:append(&fnpg)
70 + pgt = fnpg:finalize()
71 + else pgt = pg:tostr() end
72 + defer pgt:free()
73 +
66 74 co:stdpage([lib.srv.convo.page] {
67 75 title = 'configure'; body = pgt;
68 76 class = lib.str.plit 'conf';
69 77 cache = false;
70 78 })
71 79
72 80 if panel.ct ~= 0 then panel:free() end
73 81 end
74 82
75 83 return render_conf