Changeset ad6f62a in Klonkt for src/routes


Ignore:
Timestamp:
07/25/2026 08:09:19 AM (7 weeks ago)
Author:
Robin <roboburr@โ€ฆ>
Branches:
main
Children:
c66cbb4
Parents:
e62f65d
Message:

Guardian 2: zwaai-badge in Berichten + snelle antwoorden (item 3 af)

De ontvangende ward ziet een zwaai nu als zodanig: in Berichten staat "X ๐Ÿ‘‹
zwaaide naar je" met snelle-antwoord-knoppen (Wat leuk! / Bel me even / ๐Ÿ‘‹ Terug).
Zo kan het kind terugreageren zonder ooit te publiceren: het antwoord is een prive
direct-note terug naar de guardian (zelfde shaer:wave-leg, cross-instance met
retry). Alleen zichtbaar op een echte zwaai (ap_mentions.wave) en alleen als je
mag schrijven (canMutate).

Changed files:
src/services/ActivityPubService.js

  • getNotifications: mention draagt nu wave + actorUri mee

src/views/partials/msg-item.ejs

  • zwaai-label + quick-reply-formulier (3 voorgebakken knoppen)

src/routes/posts.js

  • POST /messages/quick-reply: canned prive-note terug naar de zwaaier

src/views/pages/messages.ejs

  • success-melding wave_sent

src/services/i18n.js

  • msg.waved_at_you / wave_r1 / wave_r2 / wave_back / wave_sent (nl/en/de)

remarks: npm test 167/167; quick-reply auth-gated (requireSiteManager). Hiermee is
item 3 (DM/zwaai) rond: guardian zwaait, ward ziet het en antwoordt met een tik,
niemand publiceert.

-robo
Co-Authored-By: Claude Opus 4.8 <noreply@โ€ฆ>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/routes/posts.js

    re62f65d rad6f62a  
    972972  res.redirect(back + '?error=guardianship');
    973973});
     974// A ward answers a guardian's wave without publishing: a canned private note
     975// back to the sender (FEP-633c ยง5, shaer:wave reply). Same direct-note leg.
     976router.post('/messages/quick-reply', requireSiteManager, express.urlencoded({ extended: false }), async (req, res) => {
     977  const site = res.locals.site;
     978  const back = `${res.locals.siteUrlBase || ''}/messages`;
     979  const to = String(req.body.to || '').trim();
     980  const text = String(req.body.text || '').trim().slice(0, 200);
     981  if (!site || !/^https?:\/\//i.test(to) || !text) return res.redirect(back + '?error=quickreply');
     982  try {
     983    const r = await ActivityPubService.deliverDirectNote(site, { recipients: [to], text, wave: true });
     984    if (r) return res.redirect(back + '?success=wave_sent');
     985  } catch { /* fall through */ }
     986  res.redirect(back + '?error=quickreply');
     987});
     988
    974989router.get('/fediverse', requireSiteManager, (req, res) => res.redirect(`${res.locals.siteUrlBase || ''}/messages`));
    975990
Note: See TracChangeset for help on using the changeset viewer.