- Timestamp:
- 08/06/2026 07:02:57 AM (5 weeks ago)
- Branches:
- main
- Children:
- 84ce988
- Parents:
- 99a7b40
- git-author:
- Robin <roboburr@…> (08/06/2026 07:02:56 AM)
- git-committer:
- Claude (agent) <aiclaude@…> (08/06/2026 07:02:57 AM)
- Location:
- src/views
- Files:
-
- 2 edited
-
pages/messages.ejs (modified) (2 diffs)
-
partials/msg-item.ejs (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/views/pages/messages.ejs
r99a7b40 r189e335 2 2 <%- include('../partials/fedi-tabs', { active: 'berichten' }) %> 3 3 <h1 class="msg-title"><%= t('msg.title') %></h1> 4 <% if (typeof success !== 'undefined' && success) { %><div class="alert alert-success"><%= success === 'guardian_accepted' ? t('msg.guard_accepted') : (success === 'guardian_rejected' ? t('msg.guard_rejected') : (success === 'wave_sent' ? t('msg.wave_sent') : success)) %></div><% } %>5 <% if (typeof error !== 'undefined' && error) { %><div class="alert alert-error"><%= error === 'guardianship' ? t('msg.guard_failed') : error%></div><% } %>4 <% if (typeof success !== 'undefined' && success) { %><div class="alert alert-success"><%= success === 'guardian_accepted' ? t('msg.guard_accepted') : (success === 'guardian_rejected' ? t('msg.guard_rejected') : (success === 'wave_sent' ? t('msg.wave_sent') : (success === 'reply_sent' ? t('msg.reply_sent') : success))) %></div><% } %> 5 <% if (typeof error !== 'undefined' && error) { %><div class="alert alert-error"><%= error === 'guardianship' ? t('msg.guard_failed') : (error === 'reply_empty' ? t('msg.reply_empty') : ((error === 'reply_failed' || error === 'reply_target') ? t('msg.reply_failed') : error)) %></div><% } %> 6 6 7 7 <%# FEP-633c: a pending guardianship offer is a special message: the kid … … 191 191 .msg-sub .msg-line { flex-wrap: wrap; } 192 192 193 /* De voet van een gesprek: antwoorden en zwaaien naast elkaar, ingeklapt. 194 Een open editor onder elk gesprek maakt de lijst weer onleesbaar -- precies 195 wat deze weergave moest oplossen. */ 196 .msg-thread-foot { display: flex; align-items: flex-start; gap: .5rem; margin-top: .5rem; flex-wrap: wrap; } 197 .msg-reply { flex: 1 1 12rem; min-width: 0; } 198 .msg-reply > summary { cursor: pointer; font-size: .82rem; color: var(--ink-soft, #888); } 199 .msg-reply[open] > summary { margin-bottom: .4rem; } 200 .msg-reply-form { min-width: 0; } 201 .msg-wave button { line-height: 1.2; } 202 193 203 @media (max-width: 560px) { 194 204 /* Op een telefoon is 40px avatar per bubbel puur verlies: de naam staat er -
src/views/partials/msg-item.ejs
r99a7b40 r189e335 30 30 <% (n.messages || []).forEach(function (m) { %><%- include('msg-item', { n: m, seen: _tseen, inThread: true }) %><% }); %> 31 31 </ul> 32 <%# Antwoorden vanuit de draad zelf. Ingeklapt, want een open editor 33 onder elk gesprek maakt de lijst onleesbaar -- juist het probleem 34 dat deze weergave moest oplossen. De route kiest het pad: een 35 draad aan een post krijgt een reply, een draad aan een persoon een 36 direct bericht. %> 37 <% var _rt = n.replyTo || {}; var _kan = canMutate && ((_rt.interactionId && _rt.postSlug) || _rt.actorUri); %> 38 <% if (_kan) { %> 39 <div class="msg-thread-foot"> 40 <details class="msg-reply"> 41 <summary><%= t('fedi.reply') %></summary> 42 <div class="msg-reply-form"> 43 <%- include('../partials/reply-editor', { 44 action: (typeof siteUrlBase !== 'undefined' ? siteUrlBase : '') + '/messages/reply', 45 hiddenFields: [ 46 { name: 'interaction_id', value: _rt.interactionId || '' }, 47 { name: 'post_slug', value: _rt.postSlug || '' }, 48 { name: 'to', value: _rt.actorUri || '' }, 49 ], 50 placeholder: t('fedi.reply_ph'), 51 submitLabel: t('fedi.reply'), 52 rows: 2, 53 }) %> 54 </div> 55 </details> 56 <%# De zwaai blijft een eigen knop: het is geen antwoord maar een 57 seintje (FEP-633c), en die twee horen niet op een hoop. %> 58 <% if (_rt.actorUri) { %> 59 <form method="post" action="<%= (typeof siteUrlBase !== 'undefined' ? siteUrlBase : '') %>/messages/quick-reply" class="msg-wave"> 60 <input type="hidden" name="to" value="<%= _rt.actorUri %>"> 61 <button class="btn small" name="text" value="👋" title="<%= t('msg.wave_back') %>">👋</button> 62 </form> 63 <% } %> 64 </div> 65 <% } %> 32 66 </li> 33 67 <% } else { %>
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)