Changeset 70e9147 in Klonkt for src/views/shell.ejs


Ignore:
Timestamp:
08/19/2026 06:15:33 PM (3 weeks ago)
Author:
Bart <bart@…>
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)
Message:

Lezen vervangt Tijdlijn: twee keuzes solo, één in de cirkel

De chronologische lijst was de standaardweergave en Lezen de nieuwkomer; nu
andersom, en Tijdlijn verdwijnt als KEUZE. De opmaak zelf blijft bestaan
(.feed-timeline draagt nog het archief, de cirkel en de postpagina) -- alleen
kies je er niet meer voor, want voor hele berichten was Lezen de betere vorm.

Solo: Lezen | Grid. Cirkel: alleen Grid, want Lezen bestaat daar niet (dat zijn
berichten van anderen, van hun servers).

TWEE DINGEN DIE STIL KAPOT WAREN GEGAAN als ik alleen de knop had weggehaald:

  • Wie hier eerder was heeft 'timeline' in zijn localStorage staan. Zonder vertaling houdt die bezoeker een weergave waar geen knop meer bij hoort: de pil helemaal grijs en een feed die niet is wat hij ooit koos. 'timeline' leest nu als 'reader'. Hetzelfde geldt voor sites met feed_view_default='timeline' in de database -- die worden bij het lezen naar reader vertaald, zonder migratie: alles wat geen 'grid' is, is lezen.
  • Op de cirkel is Grid nu de ENIGE knop, en een knop die al actief is doet normaal niets. Dan zit je in Grid zonder weg terug. Is er één knop en staat hij aan, dan brengt hij je nu terug naar de standaard -- daar is dat de gewone lijst.

Nagelopen in de browser: solo toont Lezen|Grid met Lezen actief, een site die
nog 'timeline' opgeslagen heeft rendert als reader, en de cirkelknop gaat aan,
uit, aan.

Co-Authored-By: Claude Opus 5 <claude@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/views/shell.ejs

    r8501ee8 r70e9147  
    345345</head>
    346346
    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 : '') %>">
    348348
    349349<% if (typeof isViewer !== 'undefined' && isViewer) { %>
     
    550550  try {
    551551    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;
    553558    var c = parseInt(localStorage.getItem('pcms-grid-cols'), 10);
    554559    if (c === 2 || c === 3 || c === 4) body.dataset.gridCols = String(c);
     
    567572    // is -- de lezer ziet nergens meer waar hij is. De VOORKEUR blijft staan:
    568573    // 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';
    572577    document.querySelectorAll('.view-switch-btn').forEach(function(b) {
    573578      b.setAttribute('aria-selected', (_onFeed && b.dataset.view === _view) ? 'true' : 'false');
     
    606611    if (sw) {
    607612      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      }
    608622      body.dataset.feedView = view;
    609623      try { localStorage.setItem('pcms-feed-view', view); } catch(_) {}
Note: See TracChangeset for help on using the changeset viewer.