BW Schützt - NAT-AS
Questionnaire Management
Sign in
Admin or supervisor account.
You must change your password before continuing.
Counselors use the mobile app.
import { navigate } from '../router.js'; import { isLoggedIn, showToast } from '../app.js'; import { apiGet, invalidateSessionCheck, apiUrl } from '../api.js'; const WEBSITE_ROLES = ['admin', 'supervisor']; function setFormBusy(formId, busy, busyLabel) { const form = document.getElementById(formId); if (!form) return; const btn = form.querySelector('button[type="submit"]'); if (!btn) return; if (!btn.dataset.defaultLabel) { btn.dataset.defaultLabel = btn.textContent.trim(); } btn.disabled = busy; btn.textContent = busy ? busyLabel : btn.dataset.defaultLabel; form.querySelectorAll('input').forEach((el) => { el.disabled = busy; }); } export async function loginPage() { if (isLoggedIn()) { try { const data = await apiGet('session'); if (data.success && data.valid && !data.mustChangePassword && WEBSITE_ROLES.includes(data.role)) { if (data.user) localStorage.setItem('qdb_user', data.user); if (data.role) localStorage.setItem('qdb_role', data.role); navigate('#/'); return; } } catch { invalidateSessionCheck(); } localStorage.removeItem('qdb_token'); localStorage.removeItem('qdb_user'); localStorage.removeItem('qdb_role'); invalidateSessionCheck(); } const app = document.getElementById('app'); app.innerHTML = `
Questionnaire Management
Admin or supervisor account.
You must change your password before continuing.
Counselors use the mobile app.