Changeset d988fa0 in Klonkt for src/views/pages
- Timestamp:
- 06/24/2026 03:23:01 PM (3 months ago)
- Branches:
- main
- Children:
- 00f669b
- Parents:
- 914eb9f
- File:
-
- 1 edited
-
src/views/pages/timeline.ejs (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/views/pages/timeline.ejs
r914eb9f rd988fa0 45 45 <% media.filter(function(m){ return !m.type || /^image\//.test(m.type); }).forEach(function(m){ %><img class="tl-media" src="<%= m.url %>" alt="" loading="lazy"><% }); %> 46 46 <% if (p.url) { %><p class="tl-orig"><a href="<%= p.url %>" target="_blank" rel="nofollow noopener"><%= t('tl.view_original') %></a></p><% } %> 47 <div class="tl-actions"> 48 <form method="post" action="/tijdlijn/like" class="tl-act-form"><input type="hidden" name="note" value="<%= p.id %>"><input type="hidden" name="author" value="<%= p.author_uri %>"><button type="submit" class="tl-act" title="<%= t('fedi.likes') %>">⭐</button></form> 49 <form method="post" action="/tijdlijn/boost" class="tl-act-form"><input type="hidden" name="note" value="<%= p.id %>"><input type="hidden" name="author" value="<%= p.author_uri %>"><button type="submit" class="tl-act" title="<%= t('fedi.boosts') %>">🔁</button></form> 50 <button type="button" class="tl-act fedi-remote-reply-btn" data-fedi-uri="<%= p.id %>" data-fedi-ph="<%= t('fedi.remote_ph') %>" title="<%= t('fedi.remote_reply') %>">↩</button> 51 </div> 47 52 </div> 48 53 </li> … … 82 87 .tl-orig { margin: .5rem 0 0; font-size: .82rem; } 83 88 .tl-orig a { color: var(--accent, #06c); } 89 .tl-actions { display: flex; gap: .35rem; margin-top: .55rem; } 90 .tl-act-form { margin: 0; } 91 .tl-act { background: none; border: 1px solid color-mix(in srgb, var(--ink, #000) 14%, transparent); border-radius: 999px; padding: .2rem .6rem; cursor: pointer; font-size: .9rem; color: var(--ink-soft, #888); } 92 .tl-act:hover { color: var(--ink, #000); border-color: color-mix(in srgb, var(--accent, #888) 50%, transparent); } 84 93 </style> 94 95 <script> 96 (function(){ 97 if (window.__fediRemoteWired) return; window.__fediRemoteWired = true; 98 var current = null, currentBtn = null; 99 function close(){ if (current) { current.remove(); current = null; currentBtn = null; } } 100 function go(raw, uri){ var d=(raw||'').trim().replace(/^@?[^@\s]*@/,'').replace(/^https?:\/\//i,'').replace(/\/.*$/,'').trim(); if(d) location.href='https://'+d+'/authorize_interaction?uri='+encodeURIComponent(uri||''); } 101 function place(f, b){ var r=b.getBoundingClientRect(); f.style.top=(r.bottom+window.scrollY+6)+'px'; f.style.left=Math.max(8, Math.min(r.left+window.scrollX, window.scrollX+window.innerWidth-340))+'px'; } 102 document.addEventListener('click', function(e){ 103 if (e.target.closest && e.target.closest('.fedi-remote-cancel')) { close(); return; } 104 if (current && e.target.closest && e.target.closest('.fedi-remote-form')) return; 105 var b = e.target.closest && e.target.closest('.fedi-remote-reply-btn'); 106 if (b) { 107 e.preventDefault(); 108 if (currentBtn === b) { close(); return; } 109 close(); 110 var f = document.createElement('form'); f.className='fedi-remote-form'; f.dataset.uri = b.getAttribute('data-fedi-uri')||''; 111 f.innerHTML = '<input type="text" autocomplete="off" spellcheck="false"><button type="submit" class="btn btn-primary fedi-remote-go" aria-label="ok">→</button><button type="button" class="fedi-remote-cancel" aria-label="x">×</button>'; 112 f.querySelector('input').placeholder = b.getAttribute('data-fedi-ph') || '@name@server.social'; 113 document.body.appendChild(f); place(f, b); current=f; currentBtn=b; f.querySelector('input').focus(); 114 return; 115 } 116 if (current) close(); 117 }); 118 document.addEventListener('submit', function(e){ var f=e.target.closest && e.target.closest('.fedi-remote-form'); if(!f) return; e.preventDefault(); go(f.querySelector('input').value, f.dataset.uri); }); 119 document.addEventListener('keydown', function(e){ if (e.key === 'Escape') close(); }); 120 window.addEventListener('scroll', close, true); 121 })(); 122 </script>
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)