source: Klonkt/src/views/pages/my-site.ejs@ 69815b2

main
Last change on this file since 69815b2 was 4885eab, checked in by roboburr <roboburr@…>, 3 months ago

feat(i18n phase 6): remaining public + other pages translated (NL/EN/DE)

post-edit, account, newsletter, download, press kit /pers, fan-gate, link-in-bio,
my-site, password-reset (2), artists directory, auth-login Google error map,
user/hub-home/circle-feed+post/viewer-blocked/home/favourites/changelog/404/
type/tag/archive/prutter (inbox+conversation). embed-player skipped (no t
in that standalone route). 1026 view-keys cross-checked → 0 missing.

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

  • Property mode set to 100644
File size: 4.9 KB
Line 
1<div class="container admin-page">
2 <p><a href="/" class="btn">&larr; <%= t('myst.overview') %></a></p>
3 <h1><%= t('myst.title') %></h1>
4 <p class="admin-tagline"><%= mySite.title %></p>
5
6 <nav class="admin-quick-links" aria-label="<%= t('myst.quick_links_aria') %>">
7 <a href="/user/<%= mySite.slug %>/posts/new" class="btn">✍️ <%= t('myst.new_post') %></a>
8 <a href="/admin/sites/<%= mySite.slug %>/edit" class="btn">🎨 <%= t('myst.appearance') %></a>
9 <a href="/user/<%= mySite.slug %>/admin/comments" class="btn">💬 <%= t('myst.comments') %></a>
10 <a href="/user/<%= mySite.slug %>" class="btn">👁️ <%= t('myst.view_site') %></a>
11 <a href="/account" class="btn">👤 <%= t('myst.account') %></a>
12 </nav>
13
14 <div class="admin-stats">
15 <div class="stat-card"><div class="stat-num"><%= mine.posts %></div><div class="stat-label"><%= t('myst.posts') %></div></div>
16 <div class="stat-card"><div class="stat-num"><%= mine.published %></div><div class="stat-label"><%= t('myst.published') %></div></div>
17 </div>
18
19 <% if (typeof posts !== 'undefined' && posts && posts.length) { %>
20 <% var _drafts = posts.filter(function(p){ return p.isDraft; }).length; %>
21 <%
22 var _lblBadge = t('myst.draft_badge');
23 var _lblUntitled = t('myst.untitled');
24 var _lblEdit = t('myst.edit');
25 var _lblView = t('myst.view');
26 %>
27 <h2 class="ms-posts-title"><%= t('myst.posts') %><% if (_drafts) { %> <span class="pl-draftcount"><%= _drafts === 1 ? t('myst.draft_count_one', { n: _drafts }) : t('myst.draft_count_many', { n: _drafts }) %></span><% } %></h2>
28 <ul class="post-admin-list">
29 <% posts.forEach(function(p) { %>
30 <li class="pal-row<%= p.isDraft ? ' is-draft' : '' %>">
31 <a class="pal-title" href="<%= p.editUrl %>">
32 <% if (p.isDraft) { %><span class="pal-badge"><%= _lblBadge %></span><% } %>
33 <span class="pal-name"><%= p.title || _lblUntitled %></span>
34 </a>
35 <span class="pal-actions">
36 <a class="pal-link" href="<%= p.editUrl %>"><%= _lblEdit %></a>
37 <% if (!p.isDraft) { %><a class="pal-link" href="<%= p.viewUrl %>"><%= _lblView %></a><% } %>
38 </span>
39 </li>
40 <% }); %>
41 </ul>
42 <% } %>
43</div>
44
45<style>
46.admin-page { max-width: 1000px; margin: 3rem auto; padding: 0 1rem; }
47.admin-page h1 { font-family: var(--font-display, serif); font-size: 2rem; margin: 0 0 0.25rem; }
48.admin-tagline { color: var(--ink-muted); margin: 0 0 2rem; }
49.admin-quick-links {
50 display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
51 gap: 0.5rem; margin: 0 0 1.5rem; padding: 0;
52}
53.admin-quick-links .btn { justify-content: center; padding: 0.7rem 0.9rem; font-weight: 600; text-align: center; }
54.admin-quick-links .btn:hover { background: color-mix(in srgb, var(--accent) 8%, var(--paper-2)); border-color: var(--accent); }
55.admin-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 0.75rem; }
56.stat-card { background: var(--paper-2); border: 1px solid var(--rule); border-radius: 8px; padding: 1rem 1.25rem; text-align: center; }
57.stat-num { font-size: 2rem; font-weight: 700; color: var(--accent); line-height: 1; font-family: var(--font-display, serif); }
58.stat-label { color: var(--ink-muted); font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.05em; margin-top: 0.25rem; }
59
60/* Posts/concepten-lijst */
61.ms-posts-title { font-family: var(--font-display, serif); font-size: 1.4rem; margin: 2rem 0 0.75rem; }
62.pl-draftcount { font-family: var(--font-ui, system-ui); font-size: 0.8rem; font-weight: 700; color: var(--accent); background: color-mix(in srgb, var(--accent) 14%, transparent); padding: 0.1rem 0.55rem; border-radius: 99px; vertical-align: middle; }
63.post-admin-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.4rem; }
64.pal-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.7rem 0.9rem; border: 1px solid var(--rule); border-radius: 10px; background: var(--paper-2); transition: border-color 120ms; }
65.pal-row:hover { border-color: var(--accent); }
66.pal-row.is-draft { border-left: 3px solid var(--accent); }
67.pal-title { display: inline-flex; align-items: center; gap: 0.6rem; min-width: 0; color: var(--ink); text-decoration: none; font-weight: 600; }
68.pal-title:hover { color: var(--accent); }
69.pal-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
70.pal-badge { flex-shrink: 0; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--accent); background: color-mix(in srgb, var(--accent) 14%, transparent); padding: 0.1rem 0.5rem; border-radius: 99px; }
71.pal-actions { display: flex; gap: 0.75rem; flex-shrink: 0; }
72.pal-link { color: var(--ink-muted); font-size: 0.85rem; text-decoration: none; white-space: nowrap; }
73.pal-link:hover { color: var(--accent); text-decoration: underline; }
74</style>
Note: See TracBrowser for help on using the repository browser.