UI: Email-Dropdown im Header mit Org-Name und Lizenztyp

- Klick auf Email öffnet Dropdown mit Organisation und Lizenzinfo
- Org-Name und Lizenz-Badge nicht mehr direkt sichtbar im Header
- Dropdown schliesst bei Klick ausserhalb
- Barrierefreie ARIA-Attribute

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Dieser Commit ist enthalten in:
claude-dev
2026-03-05 19:00:31 +01:00
Ursprung 32f0281a96
Commit 46cbf94a49
3 geänderte Dateien mit 97 neuen und 37 gelöschten Zeilen

Datei anzeigen

@@ -433,33 +433,35 @@ const App = {
this._currentUsername = user.email;
document.getElementById('header-user').textContent = user.email;
// Org-Name anzeigen
// Dropdown-Daten befuellen
const orgNameEl = document.getElementById('header-org-name');
if (orgNameEl && user.org_name) {
orgNameEl.textContent = user.org_name;
orgNameEl.title = user.org_name;
}
if (orgNameEl) orgNameEl.textContent = user.org_name || '-';
// Lizenz-Badge anzeigen
const badgeEl = document.getElementById('header-license-badge');
if (badgeEl) {
const licInfoEl = document.getElementById('header-license-info');
if (licInfoEl) {
const licenseLabels = {
trial: 'Trial',
annual: 'Annual',
annual: 'Jahreslizenz',
permanent: 'Permanent',
expired: 'Abgelaufen',
unknown: 'Unbekannt'
};
const status = user.read_only ? 'expired' : (user.license_status || 'unknown');
const cssClass = user.read_only ? 'license-expired'
: user.license_type === 'trial' ? 'license-trial'
: user.license_type === 'annual' ? 'license-annual'
: user.license_type === 'permanent' ? 'license-permanent'
: 'license-unknown';
const label = user.read_only ? 'Abgelaufen'
: licenseLabels[user.license_type] || licenseLabels[user.license_status] || 'Unbekannt';
badgeEl.textContent = label;
badgeEl.className = 'header-license-badge ' + cssClass;
: licenseLabels[user.license_type] || user.license_status || '-';
licInfoEl.textContent = label;
}
// Dropdown Toggle
const userBtn = document.getElementById('header-user-btn');
const userDropdown = document.getElementById('header-user-dropdown');
if (userBtn && userDropdown) {
userBtn.addEventListener('click', (e) => {
e.stopPropagation();
const isOpen = userDropdown.classList.toggle('open');
userBtn.setAttribute('aria-expanded', isOpen);
});
document.addEventListener('click', () => {
userDropdown.classList.remove('open');
userBtn.setAttribute('aria-expanded', 'false');
});
}
// Warnung bei abgelaufener Lizenz