Changeset 8afbdd6 in Klonkt for src/views/pages/account.ejs
- Timestamp:
- 06/14/2026 06:07:51 PM (3 months ago)
- Branches:
- main
- Children:
- c869272
- Parents:
- b94c08e
- File:
-
- 1 edited
-
src/views/pages/account.ejs (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/views/pages/account.ejs
rb94c08e r8afbdd6 12 12 <% if (error) { %><div class="ax-flash ax-flash-err"><%= error %></div><% } %> 13 13 14 <% if (isViewer) { %> 15 <div class="ax-viewer-note" role="note"> 16 <span class="ax-viewer-ico" aria-hidden="true">👁️</span> 17 <div> 18 <strong>Kijker-modus</strong> 19 <span>Dit is een demo-account. Je kunt alles bekijken, maar niets wijzigen — ook geen foto of bio.</span> 20 </div> 21 </div> 22 <% } %> 23 14 24 <%# ── PROFILE ────────────────────────────────────────────── %> 15 25 <section class="ax-card"> … … 17 27 18 28 <div class="ax-profile-id"> 19 <form action="/account/avatar" method="post" enctype="multipart/form-data" class="ax-avatar-form"> 20 <label class="ax-avatar-wrap" title="Klik om je foto te wijzigen"> 21 <span class="ax-profile-avatar"> 22 <% if (account.avatar_url) { %> 23 <img src="<%= account.avatar_url %>" alt=""> 24 <% } else { %> 25 <span><%= account.username.charAt(0).toUpperCase() %></span> 26 <% } %> 27 </span> 28 <span class="ax-avatar-edit" aria-hidden="true"> 29 <svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"/><circle cx="12" cy="13" r="4"/></svg> 30 </span> 31 <input type="file" name="avatar" accept="image/jpeg,image/png,image/webp,image/gif" onchange="this.form.submit()" hidden> 32 </label> 33 </form> 29 <% if (canMutate) { %> 30 <form action="/account/avatar" method="post" enctype="multipart/form-data" class="ax-avatar-form"> 31 <label class="ax-avatar-wrap" title="Klik om je foto te wijzigen"> 32 <span class="ax-profile-avatar"> 33 <% if (account.avatar_url) { %> 34 <img src="<%= account.avatar_url %>" alt=""> 35 <% } else { %> 36 <span><%= account.username.charAt(0).toUpperCase() %></span> 37 <% } %> 38 </span> 39 <span class="ax-avatar-edit" aria-hidden="true"> 40 <svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"/><circle cx="12" cy="13" r="4"/></svg> 41 </span> 42 <input type="file" name="avatar" accept="image/jpeg,image/png,image/webp,image/gif" onchange="this.form.submit()" hidden> 43 </label> 44 </form> 45 <% } else { %> 46 <span class="ax-profile-avatar ax-profile-avatar-static"> 47 <% if (account.avatar_url) { %> 48 <img src="<%= account.avatar_url %>" alt=""> 49 <% } else { %> 50 <span><%= account.username.charAt(0).toUpperCase() %></span> 51 <% } %> 52 </span> 53 <% } %> 34 54 <div class="ax-profile-meta"> 35 55 <div class="ax-profile-name"><%= account.username %></div> … … 38 58 <div class="ax-profile-joined">Lid sinds <%= formatDate(account.created_at) %></div> 39 59 <% } %> 40 <% if (account.avatar_url ) { %>60 <% if (account.avatar_url && canMutate) { %> 41 61 <form action="/account/avatar/remove" method="post" class="ax-avatar-remove"> 42 62 <button type="submit" class="ax-linkbtn">Foto verwijderen</button> … … 46 66 </div> 47 67 48 <form action="/account/profile" method="post" class="ax-form ax-form-bio"> 49 <label class="ax-field"> 50 <span>Bio</span> 51 <textarea name="bio" rows="3" maxlength="500" placeholder="Een korte regel over jezelf"><%= account.bio || '' %></textarea> 52 </label> 53 <div class="ax-form-actions"> 54 <button type="submit" class="ax-btn ax-btn-primary">Bio opslaan</button> 55 </div> 56 </form> 68 <% if (canMutate) { %> 69 <form action="/account/profile" method="post" class="ax-form ax-form-bio"> 70 <label class="ax-field"> 71 <span>Bio</span> 72 <textarea name="bio" rows="3" maxlength="500" placeholder="Een korte regel over jezelf"><%= account.bio || '' %></textarea> 73 </label> 74 <div class="ax-form-actions"> 75 <button type="submit" class="ax-btn ax-btn-primary">Bio opslaan</button> 76 </div> 77 </form> 78 <% } else { %> 79 <div class="ax-form ax-form-bio"> 80 <label class="ax-field"> 81 <span>Bio</span> 82 <textarea rows="3" disabled placeholder="Geen bio"><%= account.bio || '' %></textarea> 83 </label> 84 </div> 85 <% } %> 57 86 </section> 58 87 59 88 <%# ── WACHTWOORD ────────────────────────────────────────── %> 89 <%# In kijker-modus geen wachtwoord-sectie (niets te wijzigen). %> 90 <% if (canMutate) { %> 60 91 <% if (hasPassword) { %> 61 92 <section class="ax-card"> … … 87 118 </section> 88 119 <% } %> 120 <% } %> 89 121 90 122 </div> … … 107 139 .ax-flash-ok { background: rgba(40,160,90,.15); color: #2a9d5e; border: 1px solid rgba(40,160,90,.3); } 108 140 .ax-flash-err { background: rgba(200,60,60,.15); color: #c33; border: 1px solid rgba(200,60,60,.3); } 141 142 /* ─── Kijker-modus notice ──────────────────────────────────────── */ 143 .ax-viewer-note { 144 display: flex; align-items: flex-start; gap: 0.75rem; 145 padding: 0.85rem 1rem; margin-bottom: 1rem; 146 border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--rule)); 147 border-left: 3px solid var(--accent); 148 border-radius: 10px; 149 background: color-mix(in srgb, var(--accent) 8%, var(--paper)); 150 } 151 .ax-viewer-ico { font-size: 1.1rem; line-height: 1.4; } 152 .ax-viewer-note strong { display: block; font-size: 0.92rem; } 153 .ax-viewer-note span { color: var(--ink-muted, var(--ink-soft)); font-size: 0.85rem; } 154 .ax-profile-avatar-static { flex-shrink: 0; } 155 .ax-form-bio textarea:disabled { opacity: 0.7; cursor: default; } 109 156 110 157 /* ─── Cards ────────────────────────────────────────────────────── */
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)