source: Klonkt/src/views/pages/authorize-interaction.ejs@ c0e00a2

main
Last change on this file since c0e00a2 was c69267f, checked in by Robin Genis <roboburr@…>, 2 months ago

style(fedi): unify all fediverse page widths to 640px (pixel-perfect tab bar)

timeline/following/replies/notifications/blocking wrappers were 600/640/560/620/580 ->
all 640px now, so the tab bar is identical width on every tab.

  • Property mode set to 100644
File size: 10.0 KB
RevLine 
[3d7312a]1<div class="auth-interact">
[7d932ce]2 <% if (typeof manage !== 'undefined' && manage) { %>
[9e5438e]3 <%- include('../partials/fedi-tabs', { active: 'reacties' }) %>
[7d932ce]4 <h1 class="auth-interact-title"><%= t('fedi.manage_title') %></h1>
[5b47619]5 <% if (!manage.length) { %>
6 <p class="auth-interact-note"><%= t('fedi.manage_empty') %></p>
7 <% } else { %>
8 <ul class="fedi-manage">
9 <% manage.forEach(function(m){ %>
10 <li class="fedi-manage-item">
11 <div class="fedi-manage-content"><%- m.content %></div>
12 <div class="fedi-manage-foot">
13 <span class="fedi-manage-meta"><% if (m.to_handle) { %>→ <%= m.to_handle %><% } %><% if (m.created_at && typeof formatDateTime === 'function') { %> · <%= formatDateTime(m.created_at) %><% } %></span>
[7d932ce]14 <form method="post" action="/fediverse/<%= m.id %>/delete" onsubmit="return confirm('<%= t('fedi.delete_confirm') %>')">
[5b47619]15 <button type="submit" class="fedi-del-btn"><%= t('comments.delete') %></button>
[7d932ce]16 </form>
17 </div>
[5b47619]18 </li>
19 <% }); %>
20 </ul>
21 <% } %>
22 <p class="auth-interact-note"><a href="/"><%= t('fedi.remote_back') %></a></p>
[0aa23cf]23 <% } else if (typeof liked !== 'undefined' && liked) { %>
24 <h1 class="auth-interact-title">★ <%= t('fedi.liked_title') %></h1>
25 <p class="auth-interact-note"><%= t('fedi.liked_done') %></p>
26 <p class="auth-interact-actions">
[2279f80]27 <% if (uri) { %><a class="btn" href="<%= uri %>" rel="nofollow noopener"><%= t('fedi.remote_view_original') %></a><% } %>
[0aa23cf]28 <a class="btn btn-primary" href="/"><%= t('fedi.remote_back') %></a>
29 </p>
[b6cdc3d]30 <% } else if (typeof boosted !== 'undefined' && boosted) { %>
31 <h1 class="auth-interact-title">🔁 <%= t('fedi.boosted_title') %></h1>
32 <p class="auth-interact-note"><%= t('fedi.boosted_done') %></p>
33 <p class="auth-interact-actions">
34 <% if (uri) { %><a class="btn" href="<%= uri %>" rel="nofollow noopener"><%= t('fedi.remote_view_original') %></a><% } %>
35 <a class="btn btn-primary" href="/"><%= t('fedi.remote_back') %></a>
36 </p>
[8ad1784]37 <% } else if (typeof followed !== 'undefined' && followed) { %>
38 <h1 class="auth-interact-title"><%= t('fedi.followed_title') %></h1>
39 <p class="auth-interact-note"><%= t('fedi.followed_done') %></p>
40 <p class="auth-interact-actions">
41 <% if (uri) { %><a class="btn" href="<%= uri %>" rel="nofollow noopener"><%= t('fedi.view_profile') %></a><% } %>
42 <a class="btn btn-primary" href="/"><%= t('fedi.remote_back') %></a>
43 </p>
[7d932ce]44 <% } else if (typeof sent !== 'undefined' && sent) { %>
[41a7637]45 <h1 class="auth-interact-title"><%= t('fedi.remote_sent_title') %></h1>
46 <p class="auth-interact-note"><%= t('fedi.remote_sent') %></p>
47 <p class="auth-interact-actions">
[2902320]48 <% if (uri) { %><a class="btn btn-primary" href="<%= uri %>" rel="nofollow noopener"><%= t('fedi.remote_view_original') %></a><% } %>
49 <a class="btn" href="/"><%= t('fedi.remote_back') %></a>
[41a7637]50 </p>
[8ad1784]51 <% } else if (typeof followTarget !== 'undefined' && followTarget) { %>
52 <h1 class="auth-interact-title"><%= t('fedi.follow_heading') %></h1>
53 <p class="auth-interact-meta">
54 <%= t('fedi.follow_intro') %>
55 <a href="<%= followTarget.actor_url %>" rel="nofollow noopener" target="_blank"><strong><%= followTarget.actor_name %></strong></a>
56 <span class="fedi-handle"><%= followTarget.actor_handle %></span>
57 </p>
58 <form method="post" action="/authorize_interaction/follow" class="auth-interact-form">
59 <input type="hidden" name="uri" value="<%= followTarget.actor_uri %>">
60 <div class="auth-interact-actions">
61 <button type="submit" class="btn btn-primary"><%= t('fedi.follow_btn') %></button>
62 <a href="/" class="btn"><%= t('comments.cancel') %></a>
63 </div>
64 </form>
65 <p class="auth-interact-note"><%= t('fedi.remote_as', { site: siteTitle }) %></p>
[41a7637]66 <% } else { %>
[3d7312a]67 <h1 class="auth-interact-title"><%= t('fedi.remote_title') %></h1>
68
69 <% if (!target) { %>
70 <p class="auth-interact-note"><%= t('fedi.remote_notfound') %></p>
71 <form method="get" action="/authorize_interaction" class="auth-interact-form">
72 <input type="url" name="uri" placeholder="https://…/een-post" value="<%= uri || '' %>" required>
73 <button type="submit" class="btn btn-primary"><%= t('fedi.remote_load') %></button>
74 </form>
75 <% } else { %>
76 <p class="auth-interact-meta">
77 <%= t('fedi.remote_replying_to') %>
78 <a href="<%= target.actor_url %>" rel="nofollow noopener" target="_blank"><strong><%= target.actor_name %></strong></a>
79 <span class="fedi-handle"><%= target.actor_handle %></span>
80 </p>
[2826bb97]81 <blockquote class="auth-interact-preview">
82 <% if (target.content) { %><div class="auth-interact-content"><%- target.content %></div>
83 <% } else if (target.preview) { %><%= target.preview %><% } %>
84 <% (target.images || []).forEach(function(im){ %>
85 <img class="auth-interact-img" src="<%= im %>" alt="" loading="lazy">
86 <% }); %>
87 </blockquote>
[b6cdc3d]88 <% if (target.url || uri) { %>
89 <a class="auth-view-src" href="<%= target.url || uri %>" target="_blank" rel="nofollow noopener">
90 <svg viewBox="0 0 24 24" width="17" height="17" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M7 17 17 7"/><path d="M7 7h10v10"/></svg>
91 <span><%= t('fedi.remote_view_original') %></span>
92 </a>
93 <% } %>
94 <div class="auth-interact-react">
95 <form method="post" action="/authorize_interaction/like">
96 <input type="hidden" name="uri" value="<%= uri %>">
97 <button type="submit" class="btn btn-primary auth-like-btn">★ <%= t('fedi.like_btn') %></button>
98 </form>
99 <form method="post" action="/authorize_interaction/boost">
100 <input type="hidden" name="uri" value="<%= uri %>">
101 <button type="submit" class="btn auth-boost-btn">🔁 <%= t('fedi.boost_btn') %></button>
102 </form>
103 </div>
[0aa23cf]104 <p class="auth-interact-or"><%= t('fedi.or_reply') %></p>
[2902320]105 <p class="auth-interact-where">💬 <%= t('fedi.reply_where') %></p>
[3d7312a]106 <form method="post" action="/authorize_interaction" class="auth-interact-form">
107 <input type="hidden" name="uri" value="<%= uri %>">
108 <textarea name="text" rows="4" required placeholder="<%= t('fedi.reply_ph') %>"></textarea>
109 <div class="auth-interact-actions">
[0aa23cf]110 <button type="submit" class="btn"><%= t('fedi.send') %></button>
[3d7312a]111 <a href="<%= uri %>" class="btn"><%= t('comments.cancel') %></a>
112 </div>
113 </form>
114 <p class="auth-interact-note"><%= t('fedi.remote_as', { site: siteTitle }) %></p>
115 <% } %>
[41a7637]116 <% } %>
[3d7312a]117</div>
118
119<style>
[c69267f]120 .auth-interact { max-width: 640px; margin: 2rem auto; padding: 0 1rem; }
[3d7312a]121 .auth-interact-title { margin: 0 0 1rem; }
122 .auth-interact-meta { color: var(--ink-soft, #888); margin: 0 0 .75rem; }
123 .auth-interact-preview {
124 margin: 0 0 1rem; padding: .75rem 1rem; border-left: 3px solid var(--accent, #888);
125 background: color-mix(in srgb, var(--ink, #000) 4%, transparent); border-radius: 0 12px 12px 0;
126 color: var(--ink, inherit);
127 }
128 .auth-interact-form { display: flex; flex-direction: column; gap: .75rem; }
129 .auth-interact-form textarea, .auth-interact-form input[type=url] {
130 width: 100%; box-sizing: border-box; padding: .6rem .8rem; font: inherit; resize: vertical;
131 border-radius: 12px; border: 1px solid color-mix(in srgb, var(--ink, #000) 18%, transparent);
132 background: var(--paper, #fff); color: var(--ink, #000);
133 }
134 .auth-interact-actions { display: flex; gap: .5rem; align-items: center; }
135 .auth-interact-note { color: var(--ink-soft, #999); font-size: .85rem; margin-top: 1rem; }
[2902320]136 .auth-interact-where { margin: .25rem 0 .85rem; padding: .6rem .8rem; font-size: .85rem; line-height: 1.5; border-radius: 10px; background: color-mix(in srgb, var(--accent, #888) 12%, transparent); color: var(--ink, inherit); }
[2826bb97]137 .auth-interact-content { line-height: 1.55; }
138 .auth-interact-content p { margin: .35rem 0; }
139 .auth-interact-content p:first-child { margin-top: 0; }
140 .auth-interact-img { max-width: 100%; height: auto; border-radius: 10px; margin: .5rem 0 0; display: block; }
141 .auth-interact-orig { margin: .75rem 0 0; font-size: .85rem; }
142 .auth-interact-orig a { color: var(--accent, #06c); }
[b6cdc3d]143 .auth-view-src { display: inline-flex; align-items: center; gap: .5rem; margin: 0 0 1.1rem; padding: .6rem 1rem;
144 border: 1px solid color-mix(in srgb, var(--accent, #888) 45%, transparent); border-radius: 12px;
145 background: color-mix(in srgb, var(--accent, #888) 10%, transparent); color: var(--accent, #06c);
146 text-decoration: none; font-weight: 600; font-size: .92rem; transition: background .15s, border-color .15s; }
147 .auth-view-src:hover { background: color-mix(in srgb, var(--accent, #888) 18%, transparent); border-color: var(--accent, #888); }
148 .auth-interact-react { display: flex; gap: .5rem; flex-wrap: wrap; margin: 0 0 .25rem; }
149 .auth-interact-react form { margin: 0; }
150 .auth-boost-btn { white-space: nowrap; }
[5b47619]151 .fedi-manage { list-style: none; padding: 0; margin: 1.25rem 0 1rem; display: flex; flex-direction: column; gap: .7rem; }
152 .fedi-manage-item { padding: .85rem 1rem; border-radius: 14px; background: color-mix(in srgb, var(--ink, #000) 4%, transparent); border: 1px solid color-mix(in srgb, var(--ink, #000) 9%, transparent); }
153 .fedi-manage-content { line-height: 1.5; overflow-wrap: anywhere; }
154 .fedi-manage-content p { margin: .15rem 0; }
155 .fedi-manage-content p:first-child { margin-top: 0; }
156 .fedi-manage-content p:last-child { margin-bottom: 0; }
157 .fedi-manage-foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .6rem; flex-wrap: wrap; }
158 .fedi-manage-meta { color: var(--ink-soft, #999); font-size: .8rem; }
159 .fedi-del-btn { border: 1px solid color-mix(in srgb, #d9534f 50%, transparent); background: color-mix(in srgb, #d9534f 12%, transparent); color: #e06b66; border-radius: 8px; padding: .3rem .75rem; font-size: .82rem; cursor: pointer; transition: background .15s ease; }
160 .fedi-del-btn:hover { background: color-mix(in srgb, #d9534f 24%, transparent); }
[3d7312a]161</style>
Note: See TracBrowser for help on using the repository browser.