From c00849a154d248ac511be401b61d9895f9513bd6 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Sun, 31 Aug 2025 15:02:57 +0200 Subject: [PATCH] =?UTF-8?q?Verbessert=20die=20Mitgliederansicht=20in=20Clu?= =?UTF-8?q?bView.vue,=20indem=20aktive=20Mitglieder=20nach=20Nachnamen=20u?= =?UTF-8?q?nd=20Vornamen=20sortiert=20angezeigt=20werden.=20F=C3=BCgt=20Ge?= =?UTF-8?q?schlechtssymbole=20und=20-bezeichnungen=20hinzu,=20um=20die=20D?= =?UTF-8?q?arstellung=20zu=20optimieren.=20Implementiert=20neue=20Methoden?= =?UTF-8?q?=20zur=20Geschlechtslabelierung=20und=20-symbolisierung=20sowie?= =?UTF-8?q?=20entsprechende=20CSS-Klassen=20f=C3=BCr=20eine=20ansprechende?= =?UTF-8?q?re=20Benutzeroberfl=C3=A4che.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/views/ClubView.vue | 57 +++++++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 2 deletions(-) diff --git a/frontend/src/views/ClubView.vue b/frontend/src/views/ClubView.vue index ef2691a..867b5b8 100644 --- a/frontend/src/views/ClubView.vue +++ b/frontend/src/views/ClubView.vue @@ -8,8 +8,13 @@

Mitglieder

-
@@ -64,6 +69,40 @@ export default { if (response.status === 200) { alert('Zugriff wurde angefragt'); } + }, + labelGender(g) { + const v = (g || 'unknown'); + if (v === 'male') return 'Männlich'; + if (v === 'female') return 'Weiblich'; + if (v === 'diverse') return 'Divers'; + return 'Unbekannt'; + }, + genderSymbol(g) { + const v = (g || 'unknown'); + if (v === 'male') return '♂'; + if (v === 'female') return '♀'; + if (v === 'diverse') return '⚧'; + return ''; + } + }, + computed: { + ...mapGetters(['isAuthenticated', 'currentClub', 'clubs']), + displayedMembers() { + const members = Array.isArray(this.club.members) ? this.club.members : []; + const onlyActive = members.filter(m => m && (m.active === true)); + return onlyActive.sort((a, b) => { + const lnA = (a.lastName || '').toLowerCase(); + const lnB = (b.lastName || '').toLowerCase(); + if (lnA && !lnB) return -1; + if (!lnA && lnB) return 1; + if (lnA && lnB) { + const cmp = lnA.localeCompare(lnB, 'de-DE'); + if (cmp !== 0) return cmp; + } + const fnA = (a.firstName || '').toLowerCase(); + const fnB = (b.firstName || '').toLowerCase(); + return fnA.localeCompare(fnB, 'de-DE'); + }); } }, async mounted() { @@ -83,4 +122,18 @@ ul { padding: 0; margin: 0; } + +.members { margin-top: .25rem; } +.member-item { padding: .15rem 0; } +.gender-symbol, .gender-name { background: transparent; border: none; } +.gender-name.gender-male { color: #1a73e8; } +.gender-name.gender-female { color: #d81b60; } +.gender-name.gender-diverse { color: #6a1b9a; } +.gender-name.gender-unknown { color: #444; } +.gender-symbol.gender-male { color: #1a73e8; } +.gender-symbol.gender-female { color: #d81b60; } +.gender-symbol.gender-diverse { color: #6a1b9a; } +.gender-symbol.gender-unknown { color: #444; } +.gender-symbol { margin-right: .35rem; opacity: .9; font-size: 1.05em; display: inline-block; width: 1.1em; text-align: center; } +.is-test { font-style: italic; }