Changeset eacd3d6 in Klonkt


Ignore:
Timestamp:
06/26/2026 05:17:09 PM (2 months ago)
Author:
Robin Genis <roboburr@…>
Branches:
main
Children:
c745659
Parents:
cf4cf27
Message:

feat(admin): Solo/Circles mode selector at top of settings + fix premium text

Replace the Fediverse on/off checkbox with a Solo / Circles mode selector (radio cards,
.set-opt) moved to the top of /admin/settings — Solo = ActivityPub off (standalone, no
comments), Circles = ap on (federate + circle feed). Route reads mode=solo|cirkels.
Premium card no longer lists removed modules (Hub mode, Prutter DMs) → real features.

Location:
src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/routes/admin-settings.js

    rcf4cf27 reacd3d6  
    167167});
    168168
    169 // Fediverse (ActivityPub) on/off. Off = no federation + no fediverse reactions.
     169// Site mode: Solo (ap off → no federation, no comments) or Circles (ap on).
     170// Driven by a radio (mode=solo|cirkels); legacy ap_enabled checkbox still accepted.
    170171router.post('/ap', requireGod, (req, res) => {
    171   setSetting('ap_enabled', req.body.ap_enabled ? '1' : '0');
    172   res.redirect('/admin/settings?success=' + encodeURIComponent('Fediverse-instelling opgeslagen'));
     172  let enabled;
     173  if (typeof req.body.mode !== 'undefined') enabled = req.body.mode === 'solo' ? '0' : '1';
     174  else enabled = req.body.ap_enabled ? '1' : '0';
     175  setSetting('ap_enabled', enabled);
     176  res.redirect('/admin/settings?success=' + encodeURIComponent('Modus opgeslagen'));
    173177});
    174178
  • src/services/i18n.js

    rcf4cf27 reacd3d6  
    167167    'aset.manage_circle': 'Beheer je cirkel',
    168168    'aset.premium': 'Premium (Patreon)',
    169     'aset.premium_help_1': 'Ontgrendel de premium-modules (Hub-modus, Statistieken, Fan-login, Prutter-DMs) met je',
     169    'aset.premium_help_1': 'Ontgrendel de premium-modules (nieuwsbrief, downloads, statistieken, EPK, link-in-bio, agenda) met je',
    170170    'aset.premium_lifetime': '$16-lifetime',
    171171    'aset.premium_help_2': 'Patreon-steun. De app en alle updates blijven gratis.',
     
    191191    'aset.fediverse': 'Fediverse (ActivityPub)',
    192192    'aset.fediverse_help': 'Laat je site meedoen met de fediverse: mensen op Mastodon (of een andere Klonkt) kunnen je volgen, liken en reageren — en die reacties verschijnen onder je posts. Zet je dit uit, dan federeert je site niet en zijn er geen reacties (een rustige, op zichzelf staande blog).',
    193     'aset.fediverse_toggle': 'Fediverse aan (volgen, liken, reageren)',
     193    'aset.fediverse_toggle': 'Fediverse aan (volgen, liken, reageren)', 'aset.mode': 'Modus', 'aset.mode_help': 'Kies hoe je site werkt.', 'aset.mode_solo': 'Solo', 'aset.mode_solo_help': 'Een op zichzelf staande blog — geen fediverse, geen reacties. Rustig en privé.', 'aset.mode_cirkels': 'Cirkels', 'aset.mode_cirkels_help': 'Doe mee met de fediverse (ActivityPub): mensen op Mastodon of een andere Klonkt kunnen je volgen, liken en reageren, en je kunt een cirkel van sites volgen.',
    194194    'aset.email_smtp': 'E-mail (SMTP)',
    195195    'aset.smtp_help_1': 'Nodig om de',
     
    11791179    'aset.manage_circle': 'Manage your circle',
    11801180    'aset.premium': 'Premium (Patreon)',
    1181     'aset.premium_help_1': 'Unlock the premium modules (Hub mode, Statistics, Fan login, Prutter DMs) with your',
     1181    'aset.premium_help_1': 'Unlock the premium modules (newsletter, downloads, statistics, press kit, link-in-bio, show agenda) with your',
    11821182    'aset.premium_lifetime': '$16 lifetime',
    11831183    'aset.premium_help_2': 'Patreon support. The app and all updates stay free.',
     
    12031203    'aset.fediverse': 'Fediverse (ActivityPub)',
    12041204    'aset.fediverse_help': 'Let your site join the fediverse: people on Mastodon (or another Klonkt) can follow, like and reply — and those replies show up under your posts. Turn this off and your site does not federate and has no comments (a quiet, standalone blog).',
    1205     'aset.fediverse_toggle': 'Fediverse on (follow, like, comment)',
     1205    'aset.fediverse_toggle': 'Fediverse on (follow, like, comment)', 'aset.mode': 'Mode', 'aset.mode_help': 'Choose how your site works.', 'aset.mode_solo': 'Solo', 'aset.mode_solo_help': 'A standalone blog — no fediverse, no comments. Quiet and self-contained.', 'aset.mode_cirkels': 'Circles', 'aset.mode_cirkels_help': 'Join the fediverse (ActivityPub): people on Mastodon or another Klonkt can follow, like and reply, and you can follow a circle of sites.',
    12061206    'aset.email_smtp': 'Email (SMTP)',
    12071207    'aset.smtp_help_1': 'Needed to',
     
    21902190    'aset.manage_circle': 'Deinen Kreis verwalten',
    21912191    'aset.premium': 'Premium (Patreon)',
    2192     'aset.premium_help_1': 'Schalte die Premium-Module (Hub-Modus, Statistiken, Fan-Login, Prutter-DMs) mit deiner',
     2192    'aset.premium_help_1': 'Schalte die Premium-Module (Newsletter, Downloads, Statistiken, EPK, Link-in-Bio, Termine) mit deiner',
    21932193    'aset.premium_lifetime': '$16-Lifetime',
    21942194    'aset.premium_help_2': 'Patreon-Unterstützung frei. Die App und alle Updates bleiben kostenlos.',
     
    22142214    'aset.fediverse': 'Fediverse (ActivityPub)',
    22152215    'aset.fediverse_help': 'Lass deine Seite am Fediverse teilnehmen: Leute auf Mastodon (oder einem anderen Klonkt) können dir folgen, liken und antworten — und diese Antworten erscheinen unter deinen Beiträgen. Schaltest du das aus, föderiert deine Seite nicht und hat keine Kommentare (ein ruhiger, eigenständiger Blog).',
    2216     'aset.fediverse_toggle': 'Fediverse an (Folgen, Liken, Kommentieren)',
     2216    'aset.fediverse_toggle': 'Fediverse an (Folgen, Liken, Kommentieren)', 'aset.mode': 'Modus', 'aset.mode_help': 'Wähle, wie deine Site funktioniert.', 'aset.mode_solo': 'Solo', 'aset.mode_solo_help': 'Ein eigenständiger Blog — kein Fediverse, keine Kommentare. Ruhig und in sich geschlossen.', 'aset.mode_cirkels': 'Kreise', 'aset.mode_cirkels_help': 'Mach beim Fediverse mit (ActivityPub): Leute auf Mastodon oder einem anderen Klonkt können dir folgen, liken und antworten, und du kannst einem Kreis von Sites folgen.',
    22172217    'aset.email_smtp': 'E-Mail (SMTP)',
    22182218    'aset.smtp_help_1': 'Erforderlich, um den',
  • src/views/pages/admin-settings.ejs

    rcf4cf27 reacd3d6  
    55  <% if (success) { %><div class="alert alert-success"><%= success %></div><% } %>
    66  <% if (typeof error !== 'undefined' && error) { %><div class="alert alert-error"><%= error %></div><% } %>
     7
     8  <%# ── Mode: Solo or Cirkels (ActivityPub) — the primary, top-of-page choice ── %>
     9  <section class="set-card set-card--mode" style="margin-top:1rem">
     10    <h2><%= t('aset.mode') %></h2>
     11    <p class="set-help"><%= t('aset.mode_help') %></p>
     12    <form method="post" action="/admin/settings/ap" class="set-form">
     13      <label class="set-opt">
     14        <input type="radio" name="mode" value="solo" <%= (typeof apEnabledSetting !== 'undefined' && !apEnabledSetting) ? 'checked' : '' %>>
     15        <span><strong><%= t('aset.mode_solo') %></strong><small><%= t('aset.mode_solo_help') %></small></span>
     16      </label>
     17      <label class="set-opt">
     18        <input type="radio" name="mode" value="cirkels" <%= (typeof apEnabledSetting === 'undefined' || apEnabledSetting) ? 'checked' : '' %>>
     19        <span><strong><%= t('aset.mode_cirkels') %></strong><small><%= t('aset.mode_cirkels_help') %></small></span>
     20      </label>
     21      <div class="set-actions"><button type="submit" class="btn btn-primary"><%= t('aset.save') %></button></div>
     22    </form>
     23  </section>
    724
    825  <%# ── Default language for visitors ── %>
     
    8198  </section>
    8299  <% } %>
    83 
    84   <%# Fediverse (ActivityPub) on/off. Off = no federation + no fediverse reactions,
    85       which (since native comments were removed) means no comments at all. %>
    86   <section class="set-card" style="margin-top:1rem">
    87     <h2><%= t('aset.fediverse') %></h2>
    88     <p class="set-help"><%= t('aset.fediverse_help') %></p>
    89     <form method="post" action="/admin/settings/ap" class="set-form">
    90       <label class="set-toggle" style="display:flex;align-items:center;gap:.6rem;cursor:pointer">
    91         <input type="checkbox" name="ap_enabled" value="1" <%= (typeof apEnabledSetting === 'undefined' || apEnabledSetting) ? 'checked' : '' %>>
    92         <span><%= t('aset.fediverse_toggle') %></span>
    93       </label>
    94       <div class="set-actions"><button type="submit" class="btn btn-primary"><%= t('aset.save') %></button></div>
    95     </form>
    96   </section>
    97100
    98101  <%# E-mail / SMTP — required for sending newsletters, notify-mails and password resets. %>
Note: See TracChangeset for help on using the changeset viewer.