Files
crank/apps/ui/js/login.js
T
2026-04-12 11:23:10 +03:00

55 lines
1.5 KiB
JavaScript

(function() {
function tKey(key) {
return window.t ? t(key) : key;
}
function showError(message) {
var errorElement = document.getElementById('login-error');
errorElement.style.display = 'block';
errorElement.textContent = message;
}
function hideError() {
var errorElement = document.getElementById('login-error');
errorElement.style.display = 'none';
}
function initLoginPage() {
window.CrankAuth.guardLoginPage().catch(function(error) {
if (window.CrankDiagnostics && typeof window.CrankDiagnostics.report === 'function') {
window.CrankDiagnostics.report('guard-login-page', error, 'login');
}
});
document.getElementById('login-form').addEventListener('submit', async function(event) {
event.preventDefault();
var email = document.getElementById('email').value.trim();
var password = document.getElementById('password').value;
if (!email || !password) {
showError(tKey('login.error.required'));
return;
}
hideError();
try {
await window.CrankAuth.login(email, password);
} catch (error) {
if (error && error.status === 401) {
showError(tKey('login.error.invalid'));
return;
}
showError(tKey('login.error.generic'));
}
});
}
if (window.CrankDiagnostics && typeof window.CrankDiagnostics.bootstrap === 'function') {
window.CrankDiagnostics.bootstrap('login', initLoginPage);
return;
}
document.addEventListener('DOMContentLoaded', initLoginPage);
}());