source: Klonkt/src/views/pages/auth-login.ejs@ 70679063

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

fix: download toggle without page reload + clear explanation page on Google admin login

1) Admin→Audio: the "download-for-email" toggle (⬇) was a form POST with redirect →

full page reload on every click (player + scroll reset). Now AJAX via the existing
/admin/audio/api/:id (accepts downloadable), button state updated in-place, no
reload. (Old POST route stays as an unused fallback.)

2) /auth/login did not show the query error (error:null) → message only appeared in

the URL. Now ?error= is rendered, and the "Google address belongs to an admin"
case gets its own clear explanation block (gerr=admin): why it is rejected + the
two paths (admin = password, fan = different Google account).

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

  • Property mode set to 100644
File size: 3.1 KB
Line 
1<div class="container auth-page">
2 <h1>Inloggen</h1>
3 <% if (typeof success !== 'undefined' && success) { %><div class="alert alert-success"><%= success %></div><% } %>
4 <% if (typeof gerr !== 'undefined' && gerr === 'admin') { %>
5 <div class="auth-notice">
6 <div class="auth-notice-icon">🔐</div>
7 <h2 class="auth-notice-title">Dit is een beheerders-account</h2>
8 <p>Je logde in met Google, maar dit e-mailadres hoort bij de <strong>beheerder</strong> van deze site.
9 Inloggen met Google is alleen voor luisteraars/fans — beheerders gebruiken altijd hun wachtwoord
10 (zo kan een Google-login nooit per ongeluk beheerrechten geven).</p>
11 <ul class="auth-notice-list">
12 <li><strong>Ben je de beheerder?</strong> Log hieronder in met je <strong>gebruikersnaam + wachtwoord</strong>.</li>
13 <li><strong>Wil je als fan inloggen?</strong> Gebruik een <strong>ander Google-account</strong> (niet je beheerdersadres).</li>
14 </ul>
15 </div>
16 <% } else if (error) { %><div class="alert alert-error"><%= error %></div><% } %>
17
18 <form method="post" action="/auth/login" class="auth-form">
19 <% if (typeof next !== 'undefined' && next) { %>
20 <input type="hidden" name="next" value="<%= next %>">
21 <% } %>
22 <label>
23 <span>Gebruikersnaam of e-mail</span>
24 <input type="text" name="username" value="<%= username %>" required autofocus autocomplete="username">
25 </label>
26 <label>
27 <span>Wachtwoord</span>
28 <input type="password" name="password" required autocomplete="current-password">
29 </label>
30 <button type="submit" class="btn btn-primary">Inloggen</button>
31 <p class="auth-link auth-link-muted"><a href="/auth/reset-request">Wachtwoord vergeten?</a></p>
32 </form>
33
34 <% if (googleReady) { %>
35 <div class="auth-divider"><span>of als luisteraar</span></div>
36 <a class="btn btn-google" href="/auth/google<%= (typeof next !== 'undefined' && next) ? '?next=' + encodeURIComponent(next) : '' %>">
37 <svg class="g-icon" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true">
38 <path fill="#4285F4" d="M17.64 9.2c0-.64-.06-1.25-.16-1.84H9v3.48h4.84a4.14 4.14 0 0 1-1.8 2.72v2.26h2.92c1.7-1.57 2.68-3.88 2.68-6.62z"/>
39 <path fill="#34A853" d="M9 18c2.43 0 4.47-.8 5.96-2.18l-2.92-2.26c-.8.54-1.84.86-3.04.86-2.34 0-4.32-1.58-5.03-3.7H.96v2.33A9 9 0 0 0 9 18z"/>
40 <path fill="#FBBC05" d="M3.97 10.72a5.4 5.4 0 0 1 0-3.44V4.95H.96a9 9 0 0 0 0 8.1l3.01-2.33z"/>
41 <path fill="#EA4335" d="M9 3.58c1.32 0 2.5.45 3.44 1.35l2.58-2.58A9 9 0 0 0 .96 4.95l3.01 2.33C4.68 5.16 6.66 3.58 9 3.58z"/>
42 </svg>
43 <span>Inloggen met Google</span>
44 </a>
45 <% } %>
46</div>
47
48<style>
49 .auth-notice { border: 1px solid rgba(128,128,128,.28); border-radius: 14px; padding: 18px 20px; margin-bottom: 18px; background: rgba(128,128,128,.06); }
50 .auth-notice-icon { font-size: 26px; }
51 .auth-notice-title { font-size: 17px; margin: 4px 0 8px; }
52 .auth-notice p { margin: 0 0 10px; line-height: 1.55; opacity: .9; }
53 .auth-notice-list { margin: 0; padding-left: 18px; line-height: 1.6; }
54 .auth-notice-list li { margin: 4px 0; }
55</style>
Note: See TracBrowser for help on using the repository browser.