Changeset b109a29 in Klonkt for src/routes/posts.js


Ignore:
Timestamp:
07/16/2026 08:02:27 PM (8 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
010e073
Parents:
87d2787
git-author:
Robin <roboburr@…> (07/16/2026 07:56:26 PM)
git-committer:
Robin <roboburr@…> (07/16/2026 08:02:27 PM)
Message:

Feature: Connect page merges following + followers into one view

/connect combines who you follow (ap_following) and who follows you
(ap_followers) into a single list keyed by actor_uri, each with a direction
badge (following →, follower ←, mutual ↔) and, for accounts we deliver to, a
light 'last delivery' line. Failing/never-reached followers move into a
collapsed 'Unreachable' section at the bottom with the remove action, keeping
the main list clean. The two Following/Followers tabs collapse into one
'Connect' tab; the old routes redirect to /connect so links keep working.
i18n NL/EN/DE. Verified locally: merge/direction/unreachable logic + render.

Co-Authored-By: Claude Opus 4.8 <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/routes/posts.js

    r87d2787 rb109a29  
    827827
    828828// Volgend — manage the accounts you follow (+ per-account auto-boost toggles).
    829 router.get('/following', requireSiteManager, (req, res) => {
    830   const site = res.locals.site;
    831   const following = site ? ActivityPubService.listFollowing(site.slug) : [];
    832   renderPage(req, res, 'pages/following', {
    833     pageTitle: 'Volgend', bodyClass: 'on-special',
    834     following,
     829// Connect = who you follow + who follows you, merged into one page with direction
     830// (following →, follower ←, mutual ↔) and per-account delivery health. Replaces the
     831// separate Following/Followers pages, which redirect here so old links keep working.
     832router.get('/connect', requireSiteManager, (req, res) => {
     833  const site = res.locals.site;
     834  const connections = site ? ActivityPubService.listConnections(site.slug) : [];
     835  renderPage(req, res, 'pages/connect', {
     836    pageTitle: 'Connect', bodyClass: 'on-special',
     837    connections,
    835838    success: req.query.success || null, error: req.query.error || null,
    836839  });
    837840});
    838 
    839 // Followers (remote AP actors following us) + per-account delivery health, so dead
    840 // accounts (never/last-delivered long ago) can be pruned after a manual check.
    841 router.get('/followers', requireSiteManager, (req, res) => {
    842   const site = res.locals.site;
    843   const followers = site ? ActivityPubService.listFollowers(site.slug) : [];
    844   renderPage(req, res, 'pages/followers', {
    845     pageTitle: 'Volgers', bodyClass: 'on-special',
    846     followers,
    847     success: req.query.success || null, error: req.query.error || null,
    848   });
    849 });
     841router.get('/following', requireSiteManager, (req, res) => res.redirect(`${res.locals.siteUrlBase || ''}/connect`));
     842router.get('/followers', requireSiteManager, (req, res) => res.redirect(`${res.locals.siteUrlBase || ''}/connect`));
    850843
    851844router.post('/followers/:id/remove', requireSiteManager, (req, res) => {
    852845  const site = res.locals.site;
    853846  const base = res.locals.siteUrlBase || '';
    854   if (!site) return res.redirect(`${base}/followers`);
     847  if (!site) return res.redirect(`${base}/connect`);
    855848  const ok = ActivityPubService.removeFollower(site.slug, parseInt(req.params.id, 10) || 0);
    856   return res.redirect(`${base}/followers?` + (ok
     849  return res.redirect(`${base}/connect?` + (ok
    857850    ? 'success=' + encodeURIComponent('Volger verwijderd')
    858851    : 'error=' + encodeURIComponent('Volger niet gevonden')));
Note: See TracChangeset for help on using the changeset viewer.