docker.videokonverter/video-konverter/app/templates/tv/login.html
data 4f151de78c feat: VideoKonverter v4.2 - TV Admin-Center, HLS-Streaming, Startseiten-Rubriken
- TV Admin-Center (/tv-admin): HLS-Settings, Session-Monitoring, User-Verwaltung
- HLS-Streaming: ffmpeg .ts-Segmente, hls.js, GPU VAAPI, SIGSTOP/SIGCONT
- Startseite: Rubriken (Weiterschauen, Neu, Serien, Filme, Schon gesehen)
- User-Settings: Startseiten-Rubriken konfigurierbar, Watch-Threshold
- UI: Amber/Gold Accent-Farbe, Focus-Ring-Fix, Player-Buttons einheitlich
- Cache-Busting: ?v= Timestamp auf allen CSS/JS Includes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 17:57:48 +01:00

75 lines
2.9 KiB
HTML

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="theme-color" content="#0f0f0f">
<link rel="stylesheet" href="/static/tv/css/tv.css?v={{ v }}">
<title>Login - VideoKonverter TV</title>
</head>
<body class="login-body">
<!-- Lade-Spinner (verhindert Flash des Login-Formulars) -->
<div class="login-loader" id="login-loader">
<div class="login-spinner"></div>
</div>
<div class="login-container" id="login-container" style="display:none">
<div class="login-card">
<h1 class="login-title">VideoKonverter</h1>
<p class="login-subtitle">TV-Streaming</p>
{% if error %}
<div class="login-error">{{ error }}</div>
{% endif %}
<form method="POST" action="/tv/login" class="login-form">
<div class="login-field">
<label for="username">Benutzername</label>
<input type="text" id="username" name="username"
autocomplete="username"
data-focusable required>
</div>
<div class="login-field">
<label for="password">Passwort</label>
<input type="password" id="password" name="password"
autocomplete="current-password"
data-focusable required>
</div>
<div class="login-field login-remember">
<label class="settings-check">
<input type="checkbox" name="remember" data-focusable>
Angemeldet bleiben
</label>
</div>
<button type="submit" class="login-btn" data-focusable>
Anmelden
</button>
</form>
</div>
</div>
<script>
// Pruefen ob Browser Felder vorausgefuellt hat -> automatisch absenden
var _autoAttempts = 0;
var _autoInterval = setInterval(function() {
_autoAttempts++;
var u = document.getElementById('username');
var p = document.getElementById('password');
if (u && p && u.value && p.value) {
clearInterval(_autoInterval);
document.querySelector('.login-form').submit();
return;
}
if (_autoAttempts >= 5) {
clearInterval(_autoInterval);
// Kein Auto-Fill -> Formular anzeigen
document.getElementById('login-loader').style.display = 'none';
var container = document.getElementById('login-container');
container.style.display = '';
container.style.animation = 'fadeIn 0.3s ease';
if (u) u.focus();
}
}, 200);
</script>
</body>
</html>