Changeset 1b4d5dd in Klonkt
- Timestamp:
- 06/16/2026 06:23:28 AM (3 months ago)
- Branches:
- main
- Children:
- f63cbc2
- Parents:
- a9e23f6
- Location:
- src
- Files:
-
- 2 added
- 4 edited
-
middleware/render.js (modified) (2 diffs)
-
routes/admin-patreon.js (added)
-
routes/admin-settings.js (modified) (2 diffs)
-
server.js (modified) (2 diffs)
-
services/PatreonService.js (added)
-
views/pages/admin-settings.ejs (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/middleware/render.js
ra9e23f6 r1b4d5dd 18 18 import { isViewer } from './auth.js'; 19 19 import { getSetting } from '../services/SettingsService.js'; 20 import { isPremium as isPremiumInstance, premiumEnabled } from '../services/PatreonService.js'; 20 21 import { PLATFORMS as PLATFORMS_CATALOG } from '../services/PlatformIcons.js'; 21 22 … … 77 78 isViewer: _isViewer, 78 79 canMutate: !_isViewer, 80 isPremium: isPremiumInstance(), 81 premiumEnabled: premiumEnabled(), 79 82 siteOwnerAvatar, 80 83 site: _site, -
src/routes/admin-settings.js
ra9e23f6 r1b4d5dd 22 22 import { requireGod } from '../middleware/auth.js'; 23 23 import { getTenancy, setTenancy, getSetting, setSetting } from '../services/SettingsService.js'; 24 import { entitlementStatus } from '../services/PatreonService.js'; 24 25 25 26 const router = express.Router(); … … 74 75 hubHeroImage: getSetting('hub_hero_image') || '', 75 76 hubHeroOverlay: clampOverlay(getSetting('hub_hero_overlay')), 77 premium: entitlementStatus(), 76 78 success: req.query.success || null, 77 79 error: req.query.error || null, -
src/server.js
ra9e23f6 r1b4d5dd 48 48 import adminCircleRoutes from './routes/admin-circle.js'; 49 49 import adminUpdatesRoutes from './routes/admin-updates.js'; 50 import adminPatreonRoutes from './routes/admin-patreon.js'; 50 51 import circleRoutes from './routes/circle.js'; 51 52 … … 239 240 app.use('/admin/circle', adminCircleRoutes); 240 241 app.use('/admin/updates', adminUpdatesRoutes); 242 app.use('/admin/patreon', adminPatreonRoutes); 241 243 app.use('/admin', adminRoutes); 242 244 app.use('/prutter', prutterRoutes); -
src/views/pages/admin-settings.ejs
ra9e23f6 r1b4d5dd 4 4 5 5 <% if (success) { %><div class="alert alert-success"><%= success %></div><% } %> 6 <% if (typeof error !== 'undefined' && error) { %><div class="alert alert-error"><%= error %></div><% } %> 6 7 7 8 <section class="set-card"> … … 37 38 </form> 38 39 </section> 40 41 <%# Premium (Patreon) — alleen zichtbaar als de self-hoster de premium-laag aanzet 42 (env KLONKT_PREMIUM_ENABLED=on). Standaard onzichtbaar; niets gegate. %> 43 <% if (premium && premium.enabled) { %> 44 <section class="set-card" style="margin-top:1rem"> 45 <h2>Premium (Patreon)</h2> 46 <p class="set-help">Ontgrendel de premium-modules (Hub-modus, Statistieken, Fan-login) 47 met je <strong>$10-lifetime</strong> Patreon-steun. De app en alle updates blijven gratis.</p> 48 <% if (premium.premium) { %> 49 <p class="set-help"><strong>✓ Premium actief.</strong> 50 <% if (premium.supportCents) { %>Lifetime-steun: $<%= (premium.supportCents/100).toFixed(2) %>.<% } %></p> 51 <a href="/admin/patreon/disconnect" class="btn">Patreon ontkoppelen</a> 52 <% } else if (premium.connected) { %> 53 <p class="set-help">Patreon gekoppeld, maar nog geen $10 lifetime<% if (premium.supportCents) { %> 54 (nu $<%= (premium.supportCents/100).toFixed(2) %>)<% } %>. Steun de campagne en koppel opnieuw.</p> 55 <a href="/admin/patreon/connect" class="btn btn-primary">Opnieuw koppelen</a> 56 <% } else { %> 57 <p class="set-help">Nog niet gekoppeld.</p> 58 <a href="/admin/patreon/connect" class="btn btn-primary">Koppel Patreon</a> 59 <% } %> 60 </section> 61 <% } %> 39 62 40 63 <% if (tenancy === 'hub') { %>
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)