Changeset 70e9147 in Klonkt
- Timestamp:
- 08/19/2026 06:15:33 PM (3 weeks ago)
- Branches:
- main
- Children:
- 70dbef4
- Parents:
- 8501ee8
- git-author:
- Bart <bart@…> (08/19/2026 05:39:25 PM)
- git-committer:
- Bart <bart@…> (08/19/2026 06:15:33 PM)
- Location:
- src
- Files:
-
- 6 edited
-
routes/admin-sites.js (modified) (1 diff)
-
services/i18n.js (modified) (6 diffs)
-
views/pages/admin-site-edit.ejs (modified) (1 diff)
-
views/partials/shared-styles.ejs (modified) (1 diff)
-
views/partials/view-switcher.ejs (modified) (2 diffs)
-
views/shell.ejs (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/routes/admin-sites.js
r8501ee8 r70e9147 260 260 f.require_login_to_comment ? 1 : 0, 261 261 (f.enable_audio_player !== undefined ? (f.enable_audio_player ? 1 : 0) : 1), 262 f.feed_view_default === ' timeline' ? 'timeline' : 'grid',262 f.feed_view_default === 'grid' ? 'grid' : 'reader', 263 263 ); 264 264 -
src/services/i18n.js
r8501ee8 r70e9147 33 33 'switch.solo': 'Solo', 34 34 'switch.circle': 'Cirkels', 35 'switch.timeline': 'Tijdlijn',36 35 'switch.grid': 'Grid', 'switch.reader': 'Lezen', 37 36 'postnav.newer': 'Nieuwer', … … 306 305 'asite.feed_view': 'Feed-weergave', 307 306 'asite.feed_default': 'Standaardweergave voor de homepage', 308 'asite.feed_ timeline': 'Tijdlijn (chronologische lijst)',307 'asite.feed_reader': 'Lezen (hele berichten, één per scherm)', 309 308 'asite.feed_grid': 'Grid (kaarten)', 310 309 'asite.feed_switch': 'Tijdlijn ↔ grid-schakelaar boven de feed tonen', … … 1048 1047 'switch.solo': 'Solo', 1049 1048 'switch.circle': 'Circles', 1050 'switch.timeline': 'Timeline',1051 1049 'switch.grid': 'Grid', 'switch.reader': 'Reader', 1052 1050 'postnav.newer': 'Newer', … … 1313 1311 'asite.feed_view': 'Feed display', 1314 1312 'asite.feed_default': 'Default view for the homepage', 1315 'asite.feed_ timeline': 'Timeline (chronological list)',1313 'asite.feed_reader': 'Reader (whole posts, one per screen)', 1316 1314 'asite.feed_grid': 'Grid (cards)', 1317 1315 'asite.feed_switch': 'Show timeline ↔ grid switch above the feed', … … 2054 2052 'switch.solo': 'Solo', 2055 2053 'switch.circle': 'Zirkel', 2056 'switch.timeline': 'Zeitleiste',2057 2054 'switch.grid': 'Raster', 'switch.reader': 'Lesen', 2058 2055 'postnav.newer': 'Neuer', … … 2319 2316 'asite.feed_view': 'Feed-Anzeige', 2320 2317 'asite.feed_default': 'Standardansicht für die Startseite', 2321 'asite.feed_ timeline': 'Zeitstrahl (chronologische Liste)',2318 'asite.feed_reader': 'Lesen (ganze Beiträge, einer pro Bildschirm)', 2322 2319 'asite.feed_grid': 'Raster (Karten)', 2323 2320 'asite.feed_switch': 'Umschalter Zeitstrahl ↔ Raster über dem Feed anzeigen', -
src/views/pages/admin-site-edit.ejs
r8501ee8 r70e9147 199 199 <span><%= t('asite.feed_default') %></span> 200 200 <select name="feed_view_default"> 201 <option value=" timeline" <%= (site.feed_view_default || 'timeline') === 'timeline' ? 'selected' : '' %>><%= t('asite.feed_timeline') %></option>201 <option value="reader" <%= site.feed_view_default !== 'grid' ? 'selected' : '' %>><%= t('asite.feed_reader') %></option> 202 202 <option value="grid" <%= site.feed_view_default === 'grid' ? 'selected' : '' %>><%= t('asite.feed_grid') %></option> 203 203 </select> -
src/views/partials/shared-styles.ejs
r8501ee8 r70e9147 98 98 (the click-handler then navigates to the feed in that view). The 99 99 body-class switches client-side on HTMX-nav, so this works without a reload too. */ 100 body.on-post[data-feed-view=" timeline"] .view-switch-btn[data-view="timeline"],100 body.on-post[data-feed-view="reader"] .view-switch-btn[data-view="reader"], 101 101 body.on-post[data-feed-view="grid"] .view-switch-btn[data-view="grid"], 102 102 body.on-post[data-grid-cols="2"] .grid-cols-btn[data-cols="2"], -
src/views/partials/view-switcher.ejs
r8501ee8 r70e9147 40 40 <% } %> 41 41 <div class="view-switcher" role="tablist" aria-label="Weergave"> 42 <button type="button" class="view-switch-btn" data-view="timeline" role="tab" 42 <% if (_leesbaar) { %> 43 <%# Lezen is de standaardweergave sinds Tijdlijn weg is: hele berichten, 44 één per scherm. De chronologische lijst bestaat nog wel als opmaak 45 (.feed-timeline, ook op de cirkel en het archief), maar is geen KEUZE 46 meer -- daar was Lezen de betere vorm van. %> 47 <button type="button" class="view-switch-btn" data-view="reader" role="tab" 43 48 aria-selected="<%= (!_neutral && !(typeof site !== 'undefined' && site && site.feed_view_default === 'grid')) ? 'true' : 'false' %>"> 44 <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">< line x1="8" y1="6" x2="21" y2="6"/><line x1="8" y1="12" x2="21" y2="12"/><line x1="8" y1="18" x2="21" y2="18"/><line x1="3" y1="6" x2="3.01" y2="6"/><line x1="3" y1="12" x2="3.01" y2="12"/><line x1="3" y1="18" x2="3.01" y2="18"/></svg>45 <span><%= t('switch. timeline') %></span>49 <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"/><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"/></svg> 50 <span><%= t('switch.reader') %></span> 46 51 </button> 52 <% } %> 47 53 <button type="button" class="view-switch-btn" data-view="grid" role="tab" 48 54 aria-selected="<%= (!_neutral && (typeof site !== 'undefined' && site && site.feed_view_default === 'grid')) ? 'true' : 'false' %>"> … … 50 56 <span><%= t('switch.grid') %></span> 51 57 </button> 52 <% if (_leesbaar) { %>53 <%# Lezen is een gewone derde weergave: dezelfde berichten, andere vorm.54 Dus een <button> met data-view, net als de andere twee -- dan doen de55 gedelegeerde klik, localStorage en syncAria in shell.ejs hun werk al. %>56 <button type="button" class="view-switch-btn" data-view="reader" role="tab"57 aria-selected="false">58 <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"/><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"/></svg>59 <span><%= t('switch.reader') %></span>60 </button>61 <% } %>62 58 </div> 63 59 <% if (!_neutral) { %> -
src/views/shell.ejs
r8501ee8 r70e9147 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 || 'timeline') %>" 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' : 'reader') %>" data-grid-cols="3" data-site-base="<%- _e((typeof siteUrlBase !== 'undefined' && siteUrlBase) ? siteUrlBase : '') %>"> 348 348 349 349 <% if (typeof isViewer !== 'undefined' && isViewer) { %> … … 550 550 try { 551 551 var v = localStorage.getItem('pcms-feed-view'); 552 if (v === 'timeline' || v === 'grid' || v === 'reader') body.dataset.feedView = v; 552 // 'timeline' bestaat niet meer als keuze, maar staat nog in de localStorage 553 // van iedereen die hier eerder was. Zonder deze vertaling zou zo iemand een 554 // weergave houden die nergens meer een knop heeft: de pil helemaal grijs, en 555 // een feed die niet is wat hij koos. Lezen is waar Tijdlijn in opging. 556 if (v === 'timeline') v = 'reader'; 557 if (v === 'grid' || v === 'reader') body.dataset.feedView = v; 553 558 var c = parseInt(localStorage.getItem('pcms-grid-cols'), 10); 554 559 if (c === 2 || c === 3 || c === 4) body.dataset.gridCols = String(c); … … 567 572 // is -- de lezer ziet nergens meer waar hij is. De VOORKEUR blijft staan: 568 573 // terug op de eigen feed is Lezen weer actief. 569 var _view = String(body.dataset.feedView || ' timeline');570 if (!/^[a-z]+$/.test(_view)) _view = ' timeline';571 if (!document.querySelector('.view-switch-btn[data-view="' + _view + '"]')) _view = ' timeline';574 var _view = String(body.dataset.feedView || 'reader'); 575 if (!/^[a-z]+$/.test(_view)) _view = 'reader'; 576 if (!document.querySelector('.view-switch-btn[data-view="' + _view + '"]')) _view = 'reader'; 572 577 document.querySelectorAll('.view-switch-btn').forEach(function(b) { 573 578 b.setAttribute('aria-selected', (_onFeed && b.dataset.view === _view) ? 'true' : 'false'); … … 606 611 if (sw) { 607 612 var view = sw.dataset.view; 613 // EEN KEUZE MOET TERUG KUNNEN. Op de cirkel is Grid de enige knop (Lezen 614 // bestaat daar niet, want dat zijn berichten van anderen), en een knop die 615 // al actief is doet normaal niets -- dan zit je in Grid zonder weg terug. 616 // Is dit de enige knop op deze pagina en staat hij al aan, dan brengt hij 617 // je terug naar de standaard, en dat is daar de gewone lijst. 618 if (document.querySelectorAll('.view-switch-btn').length === 1 619 && sw.getAttribute('aria-selected') === 'true') { 620 view = 'reader'; 621 } 608 622 body.dataset.feedView = view; 609 623 try { localStorage.setItem('pcms-feed-view', view); } catch(_) {}
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)