Changeset 520c993 in Klonkt
- Timestamp:
- 08/20/2026 02:46:09 AM (3 weeks ago)
- Branches:
- main
- Children:
- bc9ef3b, c581e5e
- Parents:
- 88838bc
- git-author:
- Robin <roboburr@…> (08/20/2026 02:42:45 AM)
- git-committer:
- Robin <roboburr@…> (08/20/2026 02:46:09 AM)
- Files:
-
- 7 edited
-
src/assets/css/style.css (modified) (1 diff)
-
src/config/database.js (modified) (1 diff)
-
src/routes/admin-sites.js (modified) (2 diffs)
-
src/services/i18n.js (modified) (3 diffs)
-
src/views/pages/admin-site-edit.ejs (modified) (1 diff)
-
src/views/shell.ejs (modified) (3 diffs)
-
test/feed-alt-view.test.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/assets/css/style.css
r88838bc r520c993 2549 2549 .feed-reader .read-post:last-child .read-anker { scroll-snap-align: none; } 2550 2550 2551 /* ELK BERICHT EEN EIGEN SCHERM, als de site dat wil (Instellingen -> Weergave). 2552 Aan: een kort bericht vult het scherm en je ziet het volgende pas na een snap. 2553 Uit (standaard): de stroom is bericht na bericht, zonder lege ruimte eronder. 2554 Dit stond eerst vast op AAN, is toen vast op UIT gezet omdat een kort bericht 2555 een halve pagina leegte gaf onder "Replies and reactions", en is nu een keuze 2556 -- want welke van de twee prettiger leest hangt af van wat je schrijft. */ 2557 body[data-reader-pages="1"] .feed-reader .read-post { min-height: 100svh; } 2558 2551 2559 /* Een lijn tussen twee berichten: zonder grens is een stroom een lange brij. */ 2552 2560 .feed-reader .read-post + .read-post { border-top: 1px solid color-mix(in srgb, currentColor 12%, transparent); } -
src/config/database.js
r88838bc r520c993 209 209 // het is een mediaquery, dus geen resize-afhandeling en geen flikkering. 210 210 ensureColumn('sites', 'feed_alt_view', "TEXT DEFAULT 'reader'"); // reader | timeline | auto 211 // Krijgt elk bericht in Lezen zijn EIGEN scherm? Aan betekent min-height:100svh 212 // per bericht: een kort bericht vult dan het scherm en je ziet het volgende 213 // pas na een snap. Uit is de stroom zoals hij nu is, bericht na bericht zonder 214 // lege ruimte. Stond eerst vast op AAN, is toen vast op UIT gezet omdat een 215 // kort bericht een halve pagina leegte gaf; nu is het een keuze. 216 ensureColumn('sites', 'reader_full_page', 'INTEGER DEFAULT 0'); 211 217 ensureColumn('sites', 'show_search', 'INTEGER DEFAULT 1'); 212 218 ensureColumn('sites', 'show_archive_link', 'INTEGER DEFAULT 1'); -
src/routes/admin-sites.js
r88838bc r520c993 371 371 enable_audio_player = ?, 372 372 approve_followers = ?, 373 feed_view_default = ?, feed_view_switch = ?, feed_alt_view = ?, 373 feed_view_default = ?, feed_view_switch = ?, feed_alt_view = ?, reader_full_page = ?, 374 374 show_search = ?, show_archive_link = ?, 375 375 custom_css = ?, custom_head_html = ?, custom_foot_html = ?, … … 396 396 f.feed_view_switch ? 1 : 0, 397 397 feedAlt, 398 f.reader_full_page ? 1 : 0, 398 399 f.show_search ? 1 : 0, 399 400 f.show_archive_link ? 1 : 0, -
src/services/i18n.js
r88838bc r520c993 33 33 'switch.solo': 'Solo', 34 34 'switch.circle': 'Cirkels', 35 'switch.grid': 'Grid', 'switch.reader': 'Lezen', 'switch.timeline': 'Tijdlijn', 'read.to_top': 'Terug naar boven', 'read.pinned': 'Vastgepind', 35 'switch.grid': 'Grid', 'switch.reader': 'Lezen', 'switch.timeline': 'Tijdlijn', 'read.to_top': 'Terug naar boven', 'read.pinned': 'Vastgepind', 'asite.reader_full_page': 'Lezen: elk bericht een eigen scherm', 36 36 'asite.feed_alt': 'Tweede weergave', 'asite.feed_alt_reader': 'Lezen', 'asite.feed_alt_timeline': 'Tijdlijn', 'asite.feed_alt_auto': 'Lezen op mobiel, Tijdlijn op desktop', 37 37 'switch.reader_solo_only': 'Lezen kan alleen in Solo — in de cirkel staan berichten van anderen', … … 1049 1049 'switch.solo': 'Solo', 1050 1050 'switch.circle': 'Circles', 1051 'switch.grid': 'Grid', 'switch.reader': 'Reader', 'switch.timeline': 'Timeline', 'read.to_top': 'Back to top', 'read.pinned': 'Pinned', 1051 'switch.grid': 'Grid', 'switch.reader': 'Reader', 'switch.timeline': 'Timeline', 'read.to_top': 'Back to top', 'read.pinned': 'Pinned', 'asite.reader_full_page': 'Reader: one screen per post', 1052 1052 'asite.feed_alt': 'Second view', 'asite.feed_alt_reader': 'Reader', 'asite.feed_alt_timeline': 'Timeline', 'asite.feed_alt_auto': 'Reader on mobile, Timeline on desktop', 1053 1053 'switch.reader_solo_only': 'Reader is Solo only — a circle shows other people\u2019s posts', … … 2056 2056 'switch.solo': 'Solo', 2057 2057 'switch.circle': 'Zirkel', 2058 'switch.grid': 'Raster', 'switch.reader': 'Lesen', 'switch.timeline': 'Zeitleiste', 'read.to_top': 'Nach oben', 'read.pinned': 'Angeheftet', 2058 'switch.grid': 'Raster', 'switch.reader': 'Lesen', 'switch.timeline': 'Zeitleiste', 'read.to_top': 'Nach oben', 'read.pinned': 'Angeheftet', 'asite.reader_full_page': 'Lesen: ein Bildschirm pro Beitrag', 2059 2059 'asite.feed_alt': 'Zweite Ansicht', 'asite.feed_alt_reader': 'Lesen', 'asite.feed_alt_timeline': 'Zeitleiste', 'asite.feed_alt_auto': 'Lesen mobil, Zeitleiste am Desktop', 2060 2060 'switch.reader_solo_only': 'Lesen gibt es nur in Solo — im Zirkel stehen Beitr\u00e4ge anderer', -
src/views/pages/admin-site-edit.ejs
r88838bc r520c993 218 218 <span><%= t('asite.feed_switch') %></span> 219 219 </label> 220 <%# Alleen van toepassing op Lezen: geeft elk bericht daar een eigen scherm. %> 221 <label class="cb"> 222 <input type="checkbox" name="reader_full_page" value="1" <%= site.reader_full_page ? 'checked' : '' %>> 223 <span><%= t('asite.reader_full_page') %></span> 224 </label> 220 225 <label class="cb"> 221 226 <input type="checkbox" name="show_search" value="1" <%= site.show_search ? 'checked' : '' %>> -
src/views/shell.ejs
r88838bc r520c993 222 222 223 223 <!-- v9 stylesheet (full palette system) --> 224 <link rel="stylesheet" href="/assets/css/style.css?v=8 2">224 <link rel="stylesheet" href="/assets/css/style.css?v=83"> 225 225 <script> 226 226 /* iOS safe-area, built by hand. env(safe-area-inset-top) resolves to 0 on this iOS in … … 345 345 </head> 346 346 347 <body class="<%= bodyClass || 'on-home' %> has-bottom-tab" data-js="chrome<%= (typeof pageJs !== 'undefined' && pageJs) ? ' ' + pageJs : '' %>" data-feed-view="<%- _e(safeSite.feed_view_default === 'grid' ? 'grid' : (["timeline","auto"].indexOf(safeSite.feed_alt_view) >= 0 ? safeSite.feed_alt_view : "reader")) %>" data-feed-alt="<%- _e(["timeline","auto"].indexOf(safeSite.feed_alt_view) >= 0 ? safeSite.feed_alt_view : "reader") %>" data- grid-cols="3" data-site-base="<%- _e((typeof siteUrlBase !== 'undefined' && siteUrlBase) ? siteUrlBase : '') %>">347 <body class="<%= bodyClass || 'on-home' %> has-bottom-tab" data-js="chrome<%= (typeof pageJs !== 'undefined' && pageJs) ? ' ' + pageJs : '' %>" data-feed-view="<%- _e(safeSite.feed_view_default === 'grid' ? 'grid' : (["timeline","auto"].indexOf(safeSite.feed_alt_view) >= 0 ? safeSite.feed_alt_view : "reader")) %>" data-feed-alt="<%- _e(["timeline","auto"].indexOf(safeSite.feed_alt_view) >= 0 ? safeSite.feed_alt_view : "reader") %>" data-reader-pages="<%- safeSite.reader_full_page ? 1 : 0 %>" data-grid-cols="3" data-site-base="<%- _e((typeof siteUrlBase !== 'undefined' && siteUrlBase) ? siteUrlBase : '') %>"> 348 348 349 349 <% if (typeof isViewer !== 'undefined' && isViewer) { %> … … 505 505 // Eén nummer voor de hele map. Te vaak bumpen kost één download; te weinig 506 506 // bumpen kost een bugfix die nooit aankomt. 507 var MOD_V = 2 0;507 var MOD_V = 21; 508 508 509 509 // name -> 1 (aan het laden) of de module-namespace (geladen). Een module -
test/feed-alt-view.test.js
r88838bc r520c993 102 102 // op; valt er een test om, dan hangt de hele suite. Zo overkwam het me bij de 103 103 // controleproef -- de test die de fout moest aantonen, hing erop. 104 // ── Elk bericht een eigen scherm in Lezen (Robin, 20-8) ───────────────────── 105 // Zelfde reden als hierboven om door de ECHTE route te gaan: dit voegt een 106 // kolom toe aan dezelfde UPDATE, en juist daar ging het eerder mis. 107 test('de nieuwe kolom staat standaard uit', () => { 108 const s = siteVan('proef'); 109 assert.equal(s.reader_full_page, 0, 'bestaande sites veranderen niet van gedrag'); 110 }); 111 112 test('aanzetten werkt, en de buren schuiven niet mee', async () => { 113 await post('/admin/sites/proef/save', { 114 title: 'Proef', feed_alt_view: 'timeline', feed_view_default: 'grid', 115 feed_view_switch: '1', reader_full_page: '1', show_search: '1', show_archive_link: '1', 116 }); 117 const s = siteVan('proef'); 118 assert.equal(s.reader_full_page, 1); 119 // De kolommen rond de nieuwe in de UPDATE. Zet je de kolom er wel bij en de 120 // waarde niet, dan schuift alles erna een plek op en is dit het eerste dat 121 // omvalt. 122 assert.equal(s.feed_alt_view, 'timeline', 'de kolom ervoor'); 123 assert.equal(s.show_search, 1, 'de kolom erna'); 124 assert.equal(s.show_archive_link, 1, 'en die daarachter'); 125 assert.equal(s.feed_view_switch, 1); 126 }); 127 128 test('en weer uit', async () => { 129 await post('/admin/sites/proef/save', { title: 'Proef', feed_alt_view: 'reader', feed_view_default: 'reader' }); 130 assert.equal(siteVan('proef').reader_full_page, 0, 'een niet-aangevinkt vakje zet hem uit'); 131 }); 132 104 133 test.after(() => { server.closeAllConnections?.(); server.close(); });
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)