source: Klonkt/src/views/pages/guardian.ejs@ 72ec6a4

main
Last change on this file since 72ec6a4 was 72ec6a4, checked in by Robin <roboburr@…>, 6 weeks ago

Hub-modus en guardian-lite eruit

Robins besluit (31-7): een instance is een eigenaar. Twee dingen weg.

HUB-MODUS was al dood: getTenancy() gaf sinds 24-6 hardcoded 'solo'
terug, dus elke tenancy === 'hub'-tak was onbereikbaar. Nu ook echt
verwijderd: getTenancy/setTenancy zelf, de /user/:slug-routing in
resolveSite, de hub-takken in admin, zoeken, audio, posts (neighbours
en related over alle sites), download, en de push-prefix. In de views
verdwijnen de hub-tagline, de hub-navigatie, de sites- en
users-tabellen (die kwamen alleen in hub-modus gevuld en verwezen nu
naar locals die niemand meer meegeeft), de eigenaar-toewijzing bij een
site, de /user/-slugprefix, het hub-brandblok en de hub-thuisknop.

GUARDIAN-LITE was de laatste multi-user-rest: /guardian/invite gaf een
link waarmee iemand via /guardian/join een echte user plus een site met
guardian_only=1 aanmaakte. Dat zette andermans wachtwoordhash, sessie
en PRIVATE actor-sleutel in jouw database, waardoor een verhuizing of
export nooit netjes kon (shaer-qw6q). Routes, formulier, kolom en
uitnodigingstabel zijn weg. Het guardian-DASHBOARD blijft: dat is
FEP-633c en werkt voor guardians met een eigen Klonkt. Bestaande
installaties houden kolom en tabel ongebruikt; nieuwe krijgen ze niet.

Changed files:
src/services/SettingsService.js

  • getTenancy/setTenancy verwijderd; kop herschreven

src/middleware/site.js, src/middleware/render.js

  • /user/:slug-routing weg; tenancy en hubTitle uit de locals

src/routes/admin.js, admin-settings.js, audio.js, download.js,
src/routes/posts.js, search.js

  • hub-takken en hub-queries weg; postNeighbors zonder isHub

src/services/ActivityPubService.js

  • pushPrefix is nu gewoon ; getTenancy-import weg

src/routes/guardian.js

  • /invite en /join verwijderd (dashboard blijft), imports opgeschoond

src/config/database.js

  • guardian_only-kolom en ap_guardian_invites-tabel niet meer aangemaakt

src/views/pages/admin.ejs, admin-users.ejs, admin-site-edit.ejs,
src/views/pages/guardian.ejs, partials/topnav.ejs, chrome.ejs, bottom-tab.ejs

  • alle hub-takken en de uitnodigingsknop weg

remarks: 320 regels weg, 63 erbij. Suite 372 groen; alle 85 templates
compileren; en met een wegwerp-kopie van de database daadwerkelijk
gedraaid en ingelogd: /, /admin, /admin/users, /admin/sites,
/admin/settings, /admin/sites/demo/edit, /admin/media en /guardian
geven alle 200 zonder fouten in het log, en /guardian/invite en
/guardian/join geven nu 404.

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

  • Property mode set to 100644
File size: 4.3 KB
Line 
1<!DOCTYPE html>
2<html lang="<%= lang %>">
3<head>
4 <meta charset="utf-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1">
6 <title><%= t('guardian.app_name') %></title>
7 <link rel="manifest" href="/guardian/manifest.webmanifest">
8 <link rel="icon" href="/guardian/icon.svg" type="image/svg+xml">
9 <meta name="theme-color" content="#ff6b35">
10 <link rel="stylesheet" href="/guardian/app.css">
11</head>
12<body>
13 <header class="g-head">
14 <span class="g-buoy">🛟</span>
15 <div class="g-head-txt">
16 <h1><%= t('guardian.app_name') %></h1>
17 <p class="g-sub"><%= t('guardian.tagline') %></p>
18 </div>
19 <% if (sites.length > 1) { %>
20 <select id="site-picker" aria-label="<%= t('guardian.acting_as') %>">
21 <% for (const s of sites) { %>
22 <option value="<%= s.slug %>" <%= s.slug === state.site ? 'selected' : '' %>>@<%= s.slug %></option>
23 <% } %>
24 </select>
25 <% } else { %>
26 <span class="g-me" title="<%= t('guardian.acting_as') %>">@<%= state.site %></span>
27 <% } %>
28</header>
29
30 <main>
31 <!-- 1. Hulpverzoeken, uitgelicht over alle wards heen. Dat is waar dit voor
32 bestaat, en het moet opvallen zonder dat je eerst een kind opent.
33 De volledige geschiedenis per kind staat in dat kind zijn paneel. -->
34 <section id="help-section">
35 <div class="g-sec-head">
36 <h2><%= t('guardian.help_title') %></h2>
37 <span id="help-count" class="g-badge" hidden></span>
38 </div>
39 <p class="g-sec-sub"><%= t('guardian.help_sub') %></p>
40 <div id="help-list" class="g-list"></div>
41 <p id="help-empty" class="g-empty"><%= t('guardian.help_empty') %></p>
42 </section>
43
44 <!-- 2. Nieuwe ward adopteren. -->
45 <section id="adopt-section">
46 <div class="g-sec-head"><h2><%= t('guardian.adopt_title') %></h2></div>
47 <p class="g-sec-sub"><%= t('guardian.adopt_sub') %></p>
48 <form id="adopt-form" autocomplete="off">
49 <input id="adopt-handle" type="text" inputmode="email" autocomplete="off"
50 placeholder="@kind@server.eu" aria-label="<%= t('guardian.adopt_label') %>">
51 <button type="submit" id="adopt-btn"><%= t('guardian.adopt_btn') %></button>
52 </form>
53 <p id="adopt-msg" class="g-msg" hidden></p>
54 </section>
55
56 <!-- 3. Verzonden aanvragen (nog niet beantwoord). -->
57 <section id="pending-section" hidden>
58 <div class="g-sec-head"><h2><%= t('guardian.pending_title') %></h2></div>
59 <p class="g-sec-sub"><%= t('guardian.pending_sub') %></p>
60 <div id="pending-list" class="g-list"></div>
61 </section>
62
63 <!-- 4. Mijn wards. Elk kind is een regel die opent naar een paneel met
64 alles over dat kind: instellingen, volgverzoeken, hulpvragen en
65 recente berichten. Een guardian denkt per kind, niet per functie. -->
66 <section id="wards-section">
67 <div class="g-sec-head"><h2><%= t('guardian.wards_title') %></h2></div>
68 <div id="wards-list" class="g-list"></div>
69 <p id="wards-empty" class="g-empty"><%= t('guardian.wards_empty') %></p>
70 </section>
71
72 <!-- 4b. Even afwezig (FEP-633c 3.6.1): de verantwoordelijke handeling.
73 Wie zich afmeldt telt niet mee in de besluiten, en een enkel
74 antwoord brengt je meteen terug. Alleen zichtbaar met wards. -->
75 <section id="away-section" hidden>
76 <div class="g-sec-head"><h2><%= t('guardian.away_title') %></h2></div>
77 <p class="g-sec-sub"><%= t('guardian.away_sub') %></p>
78 <div class="g-away-row">
79 <button id="away-week" class="quiet small"><%= t('guardian.away_week') %></button>
80 <button id="away-month" class="quiet small"><%= t('guardian.away_month') %></button>
81 </div>
82 <p id="away-msg" class="g-msg" hidden></p>
83 </section>
84
85 <!-- 5. Meldingen. -->
86 <section id="push-section">
87 <div class="g-sec-head"><h2><%= t('guardian.push_title') %></h2></div>
88 <p class="g-sec-sub"><%= t('guardian.push_sub') %></p>
89 <button id="push-toggle" class="quiet" data-on-label="<%= t('guardian.push_off') %>"
90 data-off-label="<%= t('guardian.push_on') %>"><%= t('guardian.push_on') %></button>
91 <p id="push-msg" class="g-msg" hidden></p>
92 </section>
93 </main>
94
95 <script type="application/json" id="guardian-state"><%- JSON.stringify(state) %></script>
96 <script src="/guardian/app.js" defer></script>
97</body>
98</html>
Note: See TracBrowser for help on using the repository browser.