- 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/views
- Files:
-
- 4 edited
-
pages/admin-site-edit.ejs (modified) (1 diff)
-
partials/shared-styles.ejs (modified) (1 diff)
-
partials/view-switcher.ejs (modified) (2 diffs)
-
shell.ejs (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
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)