Files
hcrb/public/js/login.js
T
2026-10-10 13:54:33 +02:00

35 lines
1.0 KiB
JavaScript

import { $, api, renderHeader, renderFooter } from './common.js';
renderHeader('login');
renderFooter();
// Nur Pfade auf dieser Seite zulassen (kein Weiterleiten auf fremde Seiten)
function nextUrl() {
const next = new URLSearchParams(location.search).get('next') || '';
return next.startsWith('/') && !next.startsWith('//') && !next.startsWith('/\\') ? next : '/kalender';
}
const { user } = await api('GET', '/me');
if (user) location.replace(nextUrl());
$('#login-form').addEventListener('submit', async (e) => {
e.preventDefault();
const error = $('#login-error');
const button = e.target.querySelector('button');
error.hidden = true;
button.disabled = true;
try {
await api('POST', '/login', { username: $('#login-user').value, password: $('#login-password').value });
location.replace(nextUrl());
} catch (err) {
error.textContent = err.message;
error.hidden = false;
$('#login-password').value = '';
$('#login-password').focus();
} finally {
button.disabled = false;
}
});
$('#login-user').focus();