Files
researchChat/public/login.html
T

73 lines
3.1 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Research Agent – Anmeldung</title>
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/icons/icon-192.png">
<meta name="theme-color" content="#0f172a">
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = { darkMode: 'class' };
document.documentElement.classList.add('dark');
</script>
</head>
<body class="dark:bg-slate-950 bg-slate-100 dark:text-slate-100 text-slate-900 min-h-screen flex items-center justify-center p-4">
<div class="w-full max-w-sm">
<div class="dark:bg-slate-900 bg-white rounded-2xl shadow-xl p-8 border dark:border-slate-800 border-slate-200">
<div class="text-center mb-6">
<div class="text-4xl mb-2">🔎</div>
<h1 class="text-xl font-bold">Research Agent</h1>
<p class="text-sm text-slate-500 dark:text-slate-400 mt-1">Dein Web-Researcher, überall erreichbar</p>
</div>
<form id="loginForm" class="space-y-4">
<div>
<label class="block text-sm font-medium mb-1" for="name">Dein Name</label>
<input id="name" type="text" required placeholder="z.B. Nico" autocomplete="name"
class="w-full px-3 py-2 rounded-lg border dark:bg-slate-800 dark:border-slate-700 border-slate-300 focus:outline-none focus:ring-2 focus:ring-blue-500">
</div>
<div>
<label class="block text-sm font-medium mb-1" for="password">Passwort</label>
<input id="password" type="password" required autocomplete="current-password"
class="w-full px-3 py-2 rounded-lg border dark:bg-slate-800 dark:border-slate-700 border-slate-300 focus:outline-none focus:ring-2 focus:ring-blue-500">
</div>
<p id="error" class="hidden text-sm text-red-500"></p>
<button type="submit"
class="w-full py-2.5 rounded-lg bg-blue-600 hover:bg-blue-700 text-white font-semibold transition">
Anmelden
</button>
</form>
<p class="text-xs text-center text-slate-400 mt-6">
Läuft auf deinem eigenen Server · DeepSeek v4 Flash
</p>
</div>
</div>
<script>
const form = document.getElementById('loginForm');
const error = document.getElementById('error');
const nameField = document.getElementById('name');
const passwordField = document.getElementById('password');
form.addEventListener('submit', async (e) => {
e.preventDefault();
error.classList.add('hidden');
const res = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name: nameField.value, password: passwordField.value }),
});
if (res.ok) {
location.href = '/';
} else {
const data = await res.json().catch(() => ({}));
error.textContent = data.error || 'Anmeldung fehlgeschlagen';
error.classList.remove('hidden');
}
});
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/sw.js').catch(() => {});
}
</script>
</body>
</html>