mirror of
https://github.com/guyg1474/hcrb.git
synced 2026-10-15 23:13:28 +02:00
35 lines
1.0 KiB
JavaScript
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();
|