From 2bcf6095ab2ae6634ab3f35a9a8e07f388d48472 Mon Sep 17 00:00:00 2001 From: Christian Heubaum Date: Wed, 7 Oct 2026 00:01:12 +0200 Subject: [PATCH] =?UTF-8?q?Stammvertreter-Auswahl=20als=20A=E2=80=93Z=20so?= =?UTF-8?q?rtiertes=20Dropdown?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Im Vertretungs-Dialog ersetzt ein Dropdown die Kachel-Auswahl; Sidebar- und Admin-Liste ebenfalls nach Name sortiert. Co-Authored-By: Claude Opus 5.5 --- admin.html | 2 +- index.html | 28 ++++++++++++---------------- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/admin.html b/admin.html index 117035d..4341eb4 100644 --- a/admin.html +++ b/admin.html @@ -471,7 +471,7 @@ function switchAdminTab(tab) { let _svAdminPhotoB64 = null; function renderSvList() { - const list = loadStammvertreter(); + const list = loadStammvertreter().sort((a, b) => (a.name || '').localeCompare(b.name || '', 'de', { sensitivity: 'base' })); const container = document.getElementById('admin-sv-list'); if (!list.length) { container.innerHTML = `
Noch keine Stammvertreter gespeichert.
`; diff --git a/index.html b/index.html index f6f2545..afd5b64 100644 --- a/index.html +++ b/index.html @@ -1734,7 +1734,7 @@ @@ -2133,10 +2133,14 @@ function deleteStammvertreter(svId) { renderStammvertreterSection(); } +function sortSvByName(list) { + return [...list].sort((a, b) => (a.name || '').localeCompare(b.name || '', 'de', { sensitivity: 'base' })); +} + function renderStammvertreterSection() { const container = document.getElementById('sv-list-container'); if (!container) return; - const list = loadStammvertreter(); + const list = sortSvByName(loadStammvertreter()); if (list.length === 0) { container.innerHTML = `
Noch keine gespeichert. → Admin öffnen zum Importieren aus anderen Chaptern.
`; return; @@ -2154,23 +2158,15 @@ function renderStammvertreterSection() { } function renderSvPicker() { - const list = loadStammvertreter(); + const list = sortSvByName(loadStammvertreter()); const picker = document.getElementById('sub-sv-picker'); - const container = document.getElementById('sub-sv-list'); - if (!picker || !container) return; + const select = document.getElementById('sub-sv-select'); + if (!picker || !select) return; if (list.length === 0) { picker.style.display = 'none'; return; } picker.style.display = ''; - container.innerHTML = ''; - list.forEach(sv => { - const photoHtml = sv.photoB64 - ? `` - : `
${getInitials(sv.name)}
`; - const card = document.createElement('div'); - card.style.cssText = 'display:flex;align-items:center;gap:7px;padding:6px 9px;background:#f8f9fa;border:1px solid var(--border);border-radius:8px;cursor:pointer;'; - card.innerHTML = `${photoHtml}
${escHtml(sv.name)}
${escHtml(sv.company||'')}
`; - card.onclick = () => pickStammvertreter(sv.id); - container.appendChild(card); - }); + select.innerHTML = '' + list.map(sv => + `` + ).join(''); } function pickStammvertreter(svId) {