Changeset 9e5438e in Klonkt for src/views


Ignore:
Timestamp:
06/26/2026 01:50:51 PM (2 months ago)
Author:
Robin Genis <roboburr@…>
Branches:
main
Children:
5e3be97
Parents:
8334d27
Message:

feat(fedi): unify Timeline/Following/Replies/Notifications/Blocking under one tabbed Fediverse section

Shared responsive fedi-tabs bar (5 tabs + back-to-site) on all fediverse pages, with
htmx nav so switching tabs swaps #pcms-main (feels like one page; URL stays bookmarkable
per tab; tab bar scrolls horizontally on narrow screens). Added a 'Fediverse' entry to
the user dropdown + mobile sheet (-> /tijdlijn), removed the separate Timeline nav icon
(kept the notification bell). Replaced the old 2-tab tl-tabs (removed). i18n nav.fediverse
+ tl.tab_replies (nl/en/de).

Co-Authored-By: Claude <noreply@…>

Location:
src/views
Files:
1 added
1 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • src/views/pages/authorize-interaction.ejs

    r8334d27 r9e5438e  
    11<div class="auth-interact">
    22  <% if (typeof manage !== 'undefined' && manage) { %>
     3    <%- include('../partials/fedi-tabs', { active: 'reacties' }) %>
    34    <h1 class="auth-interact-title"><%= t('fedi.manage_title') %></h1>
    45    <% if (!manage.length) { %>
  • src/views/pages/blocks.ejs

    r8334d27 r9e5438e  
    11<div class="bl-wrap">
     2  <%- include('../partials/fedi-tabs', { active: 'blokkeren' }) %>
    23  <h1 class="bl-title"><%= t('blk.title') %></h1>
    34  <p class="bl-lead"><%= t('blk.lead') %></p>
  • src/views/pages/fedi-notifications.ejs

    r8334d27 r9e5438e  
    11<div class="nt-wrap">
    2   <p class="fedi-back"><a class="btn btn-primary" href="/"><%= t('nav.back_to_site') %></a></p>
     2  <%- include('../partials/fedi-tabs', { active: 'meldingen' }) %>
    33  <h1 class="nt-title"><%= t('notif.title') %></h1>
    44  <% if (!items || !items.length) { %>
  • src/views/pages/timeline.ejs

    r8334d27 r9e5438e  
    11<div class="tl-wrap">
    2   <p class="fedi-back"><a class="btn btn-primary" href="/"><%= t('nav.back_to_site') %></a></p>
     2  <%- include('../partials/fedi-tabs', { active: 'feed' }) %>
    33  <h1 class="tl-title"><%= t('tl.title') %></h1>
    44  <p class="tl-lead"><%= t('tl.lead') %></p>
    5   <%- include('../partials/tl-tabs', { active: 'feed' }) %>
    65  <% if (typeof success !== 'undefined' && success) { %><div class="alert alert-success"><%= success %></div><% } %>
    76  <% if (typeof error !== 'undefined' && error) { %><div class="alert alert-error"><%= error %></div><% } %>
  • src/views/pages/volgend.ejs

    r8334d27 r9e5438e  
    11<div class="tl-wrap">
     2  <%- include('../partials/fedi-tabs', { active: 'following' }) %>
    23  <h1 class="tl-title"><%= t('tl.title') %></h1>
    34  <p class="tl-lead"><%= t('tl.lead') %></p>
    4   <%- include('../partials/tl-tabs', { active: 'following' }) %>
    55  <% if (typeof success !== 'undefined' && success) { %><div class="alert alert-success"><%= success %></div><% } %>
    66  <% if (typeof error !== 'undefined' && error) { %><div class="alert alert-error"><%= error %></div><% } %>
  • src/views/partials/profile-sheet.ejs

    r8334d27 r9e5438e  
    6767        <a href="/tijdlijn" class="profile-sheet-item" role="menuitem" data-close-sheet
    6868           hx-get="/tijdlijn?partial=1" hx-target="#pcms-main" hx-swap="innerHTML" hx-push-url="/tijdlijn" hx-indicator="#pcms-loading">
    69           <svg class="psi-icon" 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>
    70           <span class="psi-label"><%= t('tl.title') %></span>
     69          <svg class="psi-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="18" cy="5" r="3"/><circle cx="6" cy="12" r="3"/><circle cx="18" cy="19" r="3"/><line x1="8.59" y1="13.51" x2="15.42" y2="17.49"/><line x1="15.41" y1="6.51" x2="8.59" y2="10.49"/></svg>
     70          <span class="psi-label"><%= t('nav.fediverse') %></span>
    7171          <svg class="psi-chev" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="9 18 15 12 9 6"/></svg>
    7272        </a>
  • src/views/partials/topnav.ejs

    r8334d27 r9e5438e  
    9797          </div>
    9898        </details>
    99       <% } %>
    100 
    101       <% if (user && typeof canManageFedi !== 'undefined' && canManageFedi) { %>
    102         <a class="nav-btn" href="/tijdlijn" aria-label="<%= t('tl.title') %>" title="<%= t('tl.title') %>"
    103            hx-get="/tijdlijn?partial=1" hx-target="#pcms-main" hx-swap="innerHTML" hx-push-url="/tijdlijn" hx-indicator="#pcms-loading">
    104           <svg class="icon" 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>
    105         </a>
    10699      <% } %>
    107100
     
    162155                </a>
    163156              <% } %>
     157              <% if (typeof canManageFedi !== 'undefined' && canManageFedi) { %>
     158                <a href="/tijdlijn" role="menuitem" class="udi"
     159                   hx-get="/tijdlijn?partial=1" hx-target="#pcms-main" hx-swap="innerHTML"
     160                   hx-push-url="/tijdlijn" hx-indicator="#pcms-loading">
     161                  <svg class="udi-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="18" cy="5" r="3"/><circle cx="6" cy="12" r="3"/><circle cx="18" cy="19" r="3"/><line x1="8.59" y1="13.51" x2="15.42" y2="17.49"/><line x1="15.41" y1="6.51" x2="8.59" y2="10.49"/></svg>
     162                  <span><%= t('nav.fediverse') %></span>
     163                </a>
     164              <% } %>
    164165            </div>
    165166            <div class="user-dropdown-divider" aria-hidden="true"></div>
Note: See TracChangeset for help on using the changeset viewer.