%# Een object van een andere server: hoe het eruit ziet, en wat je ermee kunt. EEN PLEK, TWEE INGANGEN (de zoekbalk en /authorize_interaction). Dit stond alleen op die tweede pagina, en toen de zoekfunctie een URL leerde herkennen zou het een tweede render worden -- en daarmee een tweede plek waar een poort, een sanitizer of een knop vergeten kan worden. De formulieren posten dus ook vanaf de zoekpagina naar /authorize_interaction/..., want daar zit het werk en daar zit de rechtencontrole. Verwacht: target (uit resolveRemoteNote), uri, reacted {liked,boosted}. Optioneel: mayReply (false = alleen lezen en reageren, geen antwoordvenster), cancelUrl (waar Annuleren heen gaat, standaard het origineel), siteTitle. %> <% const _cancel = (typeof cancelUrl !== 'undefined' && cancelUrl) ? cancelUrl : uri; %>
<% if (target.content) { %><% if (target.url || uri) { %> <%= t('fedi.remote_view_original') %> <% } %> <% if (target.poll) { var _pl = target.poll; var _tot = _pl.options.reduce(function(s,o){return s+(o.count||0);},0); var _vn = (_pl.voters!=null?_pl.voters:_tot); %> <% if (!_pl.closed) { %> <% } else { %><%- target.content %><% } else if (target.preview) { %><%= target.preview %><% } %> <% (target.images || []).forEach(function(im){ %><% }); %>
<%= _vn %> <%= _vn === 1 ? t('poll.voter_one') : t('poll.voter_many') %> · <%= t('poll.closed') %><% if (_pl.multiple) { %> · <%= t('poll.multiple') %><% } %>
<%= t('fedi.or_reply') %>
💬 <%= t('fedi.reply_where') %>
<%= t('fedi.remote_as', { site: siteTitle }) %>