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 @@
Stammvertreter wählen
-
+
@@ -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) {