Changeset 297c77d in Klonkt for src/routes/posts.js


Ignore:
Timestamp:
06/26/2026 02:14:00 PM (2 months ago)
Author:
Robin Genis <roboburr@…>
Branches:
main
Children:
c27c945
Parents:
1ecbf71
Message:

refactor(fedi): English URL paths + equal-width tabs + back-to-site in top nav

  • Renamed all fediverse routes to English: /tijdlijn->/timeline, /volgend->/following, /meldingen->/notifications, /blokkeren->/blocking (+ all sub-routes, form actions, redirects, links, RESERVED_SLUGS). UI labels stay i18n.
  • fedi-tabs: all 5 tabs share the content width equally (flex:1) and always fit (ellipsis) instead of varying widths.
  • Moved 'back to site' from a big in-content button into the top nav (like admin pages), via on-special; removed the in-content button. Archive link hidden on fedi pages too.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/routes/posts.js

    r1ecbf71 r297c77d  
    8585  'tag', 'type', 'user', 'users', 'artiesten', 'leden', 'favorieten', 'feed.xml', 'atom.xml', 'sitemap.xml',
    8686  'manifest.webmanifest', 'sw.js', 'favicon.ico', 'favicon.svg', 'assets',
    87   'authorize_interaction', 'fediverse', 'tijdlijn', 'meldingen', 'blokkeren',
     87  'authorize_interaction', 'fediverse', 'timeline', 'following', 'notifications', 'blocking',
    8888]);
    8989
     
    597597}
    598598
    599 router.get('/tijdlijn', requireSiteManager, (req, res) => {
     599router.get('/timeline', requireSiteManager, (req, res) => {
    600600  const site = res.locals.site;
    601601  const timeline = (site ? ActivityPubService.getTimeline(site.slug, 60) : [])
     
    609609
    610610// Volgend — manage the accounts you follow (+ per-account auto-boost toggles).
    611 router.get('/volgend', requireSiteManager, (req, res) => {
     611router.get('/following', requireSiteManager, (req, res) => {
    612612  const site = res.locals.site;
    613613  const following = site ? ActivityPubService.listFollowing(site.slug) : [];
    614   renderPage(req, res, 'pages/volgend', {
     614  renderPage(req, res, 'pages/following', {
    615615    pageTitle: 'Volgend', bodyClass: 'on-special',
    616616    following,
     
    619619});
    620620
    621 router.post('/tijdlijn/follow', requireSiteManager, async (req, res) => {
     621router.post('/timeline/follow', requireSiteManager, async (req, res) => {
    622622  const site = res.locals.site;
    623623  const handle = (req.body.handle || '').toString();
     
    632632    } catch (e) { q = 'error=' + encodeURIComponent('Volgen mislukt'); }
    633633  }
    634   res.redirect('/volgend?' + q);
    635 });
    636 
    637 router.post('/tijdlijn/unfollow', requireSiteManager, async (req, res) => {
     634  res.redirect('/following?' + q);
     635});
     636
     637router.post('/timeline/unfollow', requireSiteManager, async (req, res) => {
    638638  const site = res.locals.site;
    639639  const actorUri = (req.body.actor_uri || '').toString();
    640640  if (site && actorUri) { try { await ActivityPubService.unfollowActor(site, actorUri); } catch (e) { /* ignore */ } }
    641   res.redirect('/volgend?success=' + encodeURIComponent('Ontvolgd'));
     641  res.redirect('/following?success=' + encodeURIComponent('Ontvolgd'));
    642642});
    643643
    644644// Toggle "Featured" (show this account's posts in your Cirkel) on an account you follow.
    645 router.post('/tijdlijn/autoboost', requireSiteManager, (req, res) => {
     645router.post('/timeline/autoboost', requireSiteManager, (req, res) => {
    646646  const site = res.locals.site;
    647647  const actorUri = (req.body.actor_uri || '').toString();
    648648  if (site && actorUri) ActivityPubService.setAutoBoost(site.slug, actorUri, !!req.body.auto_boost);
    649   res.redirect('/volgend?success=' + encodeURIComponent(req.body.auto_boost ? 'Uitgelicht ✨' : 'Niet meer uitgelicht'));
    650 });
    651 
    652 router.post('/tijdlijn/like', requireSiteManager, async (req, res) => {
     649  res.redirect('/following?success=' + encodeURIComponent(req.body.auto_boost ? 'Uitgelicht ✨' : 'Niet meer uitgelicht'));
     650});
     651
     652router.post('/timeline/like', requireSiteManager, async (req, res) => {
    653653  const site = res.locals.site;
    654654  if (site) { try { await ActivityPubService.sendInteraction(site, 'like', (req.body.note || '').toString(), (req.body.author || '').toString()); } catch (e) { /* ignore */ } }
    655   res.redirect('/tijdlijn?success=' + encodeURIComponent('Geliket ⭐'));
    656 });
    657 
    658 router.post('/tijdlijn/boost', requireSiteManager, async (req, res) => {
     655  res.redirect('/timeline?success=' + encodeURIComponent('Geliket ⭐'));
     656});
     657
     658router.post('/timeline/boost', requireSiteManager, async (req, res) => {
    659659  const site = res.locals.site;
    660660  const note = (req.body.note || '').toString();
     
    663663    ActivityPubService.markBoosted(site.slug, note); // also surface it in the Cirkel (mixed by date)
    664664  }
    665   res.redirect('/tijdlijn?success=' + encodeURIComponent('Geboost 🔁'));
     665  res.redirect('/timeline?success=' + encodeURIComponent('Geboost 🔁'));
    666666});
    667667
    668668// Unboost (retract): send Undo(Announce) + clear the local flag.
    669 router.post('/tijdlijn/unboost', requireSiteManager, async (req, res) => {
     669router.post('/timeline/unboost', requireSiteManager, async (req, res) => {
    670670  const site = res.locals.site;
    671671  const note = (req.body.note || '').toString();
     
    674674    ActivityPubService.unmarkBoosted(site.slug, note);
    675675  }
    676   res.redirect('/tijdlijn?success=' + encodeURIComponent('Boost ingetrokken'));
     676  res.redirect('/timeline?success=' + encodeURIComponent('Boost ingetrokken'));
    677677});
    678678
    679679// Notifications inbox (new followers + replies/likes/boosts on your posts).
    680 router.get('/meldingen', requireSiteManager, (req, res) => {
     680router.get('/notifications', requireSiteManager, (req, res) => {
    681681  const site = res.locals.site;
    682682  const items = site ? ActivityPubService.getNotifications(site.slug, 80) : [];
     
    688688
    689689// Blocking / defederation (owner-only).
    690 router.get('/blokkeren', requireSiteManager, (req, res) => {
     690router.get('/blocking', requireSiteManager, (req, res) => {
    691691  const site = res.locals.site;
    692692  const blocks = site ? ActivityPubService.listBlocks(site.slug) : [];
     
    694694});
    695695
    696 router.post('/blokkeren/add', requireSiteManager, async (req, res) => {
     696router.post('/blocking/add', requireSiteManager, async (req, res) => {
    697697  const site = res.locals.site;
    698698  let q = 'success=' + encodeURIComponent('Geblokkeerd');
     
    705705  }
    706706  const ref = req.get('Referer') || '';
    707   res.redirect((ref.includes('/tijdlijn') ? '/tijdlijn?' : '/blokkeren?') + q);
    708 });
    709 
    710 router.post('/blokkeren/remove', requireSiteManager, (req, res) => {
     707  res.redirect((ref.includes('/timeline') ? '/timeline?' : '/blocking?') + q);
     708});
     709
     710router.post('/blocking/remove', requireSiteManager, (req, res) => {
    711711  const site = res.locals.site;
    712712  if (site) { try { ActivityPubService.unblock(site, (req.body.target || '').toString()); } catch (e) { /* ignore */ } }
    713   res.redirect('/blokkeren?success=' + encodeURIComponent('Deblokkeerd'));
     713  res.redirect('/blocking?success=' + encodeURIComponent('Deblokkeerd'));
    714714});
    715715
Note: See TracChangeset for help on using the changeset viewer.