feat: Paket 1 - Token-based invites, event & deadline management with live countdown, printable distribution sheet
This commit is contained in:
+21
-56
@@ -1,16 +1,14 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}Anmelden – Schmankerl{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container narrow">
|
||||
|
||||
<div class="login-box">
|
||||
<div class="login-header">
|
||||
<div class="login-icon">🥨</div>
|
||||
<h1>Anmeldung erforderlich</h1>
|
||||
<h1>Anmeldung</h1>
|
||||
<p class="login-sub">
|
||||
Portal: <strong>{{ tenant.name if tenant else 'Schmankerl' }}</strong>
|
||||
Portal: <strong>{{ tenant.name }}</strong>
|
||||
</p>
|
||||
<div class="privacy-note">
|
||||
🔒 Aus Datenschutzgründen (DSGVO) sind Bestelllisten und Teilnehmerdaten nur für angemeldete Teammitglieder sichtbar.
|
||||
@@ -18,13 +16,18 @@
|
||||
</div>
|
||||
|
||||
{% if error %}
|
||||
<div class="alert-danger">{{ error }}</div>
|
||||
{% endif %}
|
||||
{% if success %}
|
||||
<div class="alert-success">{{ success }}</div>
|
||||
<div class="alert-error">
|
||||
{{ error }}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<!-- 1-Click Demo Login Box (For easy review & testing) -->
|
||||
{% if success %}
|
||||
<div class="alert-success">
|
||||
{{ success }}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<!-- 1-Click Demo Login Box -->
|
||||
<div class="demo-login-card">
|
||||
<h3>🚀 1-Klick Demo-Zugang</h3>
|
||||
<p class="card-hint">Wähle eine Rolle zum sofortigen Ausprobieren:</p>
|
||||
@@ -46,14 +49,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Tab Navigation -->
|
||||
<div class="auth-tabs">
|
||||
<button class="auth-tab active" id="tabLoginBtn" onclick="switchAuthTab('login')">Anmelden</button>
|
||||
<button class="auth-tab" id="tabRegisterBtn" onclick="switchAuthTab('register')">Neu registrieren</button>
|
||||
</div>
|
||||
|
||||
<!-- Login Form -->
|
||||
<form action="/login" method="POST" id="formLogin" class="auth-form">
|
||||
<form action="/login" method="POST" id="formLogin" class="auth-form" style="margin-top: 1.5rem;">
|
||||
<div class="input-group">
|
||||
<label for="login_email">E-Mail-Adresse</label>
|
||||
<input type="email" id="login_email" name="email" required placeholder="name@firma.de">
|
||||
@@ -65,49 +62,17 @@
|
||||
<button type="submit" class="btn-submit">Anmelden</button>
|
||||
</form>
|
||||
|
||||
<!-- Register Form (Hidden by default) -->
|
||||
<form action="/register" method="POST" id="formRegister" class="auth-form" style="display: none;">
|
||||
<div class="input-group">
|
||||
<label for="reg_first_name">Vorname</label>
|
||||
<input type="text" id="reg_first_name" name="first_name" required placeholder="z. B. Anna">
|
||||
<div class="invite-notice-card">
|
||||
<div class="invite-icon">✉️</div>
|
||||
<div>
|
||||
<strong>Neu im Team?</strong><br>
|
||||
<small class="text-muted">
|
||||
Registrierungen sind nur auf Einladung möglich. Wende dich an deinen Team-Organisator, um einen persönlichen Einladungslink zu erhalten.
|
||||
</small>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<label for="reg_last_name">Nachname</label>
|
||||
<input type="text" id="reg_last_name" name="last_name" required placeholder="z. B. Huber">
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<label for="reg_email">E-Mail-Adresse</label>
|
||||
<input type="email" id="reg_email" name="email" required placeholder="anna@firma.de">
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<label for="reg_password">Passwort festlegen</label>
|
||||
<input type="password" id="reg_password" name="password" required minlength="6" placeholder="Mindestens 6 Zeichen">
|
||||
</div>
|
||||
<button type="submit" class="btn-submit">Konto erstellen & anmelden</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function switchAuthTab(tab) {
|
||||
const loginForm = document.getElementById('formLogin');
|
||||
const regForm = document.getElementById('formRegister');
|
||||
const loginBtn = document.getElementById('tabLoginBtn');
|
||||
const regBtn = document.getElementById('tabRegisterBtn');
|
||||
|
||||
if (tab === 'login') {
|
||||
loginForm.style.display = 'block';
|
||||
regForm.style.display = 'none';
|
||||
loginBtn.classList.add('active');
|
||||
regBtn.classList.remove('active');
|
||||
} else {
|
||||
loginForm.style.display = 'none';
|
||||
regForm.style.display = 'block';
|
||||
loginBtn.classList.remove('active');
|
||||
regBtn.classList.add('active');
|
||||
}
|
||||
}
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
Reference in New Issue
Block a user