@@ -793,6 +807,37 @@ const loadMembers = async () => {
isLoading.value = false
}
}
+// ...existing code...
+const sortMode = ref('name')
+
+const sortedMembers = computed(() => {
+ if (!members.value) return []
+ // Filtere den Admin-Account heraus
+ const arr = members.value.filter(m => m.email !== 'admin@harheimertc.de')
+ if (sortMode.value === 'name') {
+ return arr.sort((a, b) => {
+ const an = (a.firstName || '') + (a.lastName || '')
+ const bn = (b.firstName || '') + (b.lastName || '')
+ return an.localeCompare(bn, 'de', { sensitivity: 'base' })
+ })
+ } else if (sortMode.value === 'lastname') {
+ return arr.sort((a, b) => {
+ const an = (a.lastName || '') + (a.firstName || '')
+ const bn = (b.lastName || '') + (b.firstName || '')
+ return an.localeCompare(bn, 'de', { sensitivity: 'base' })
+ })
+ } else if (sortMode.value === 'birthday') {
+ return arr.sort((a, b) => {
+ const ad = a.geburtsdatum ? new Date(a.geburtsdatum) : new Date(0)
+ const bd = b.geburtsdatum ? new Date(b.geburtsdatum) : new Date(0)
+ return ad.getMonth() !== bd.getMonth()
+ ? ad.getMonth() - bd.getMonth()
+ : ad.getDate() - bd.getDate()
+ })
+ }
+ return arr
+})
+// ...existing code...
const openAddModal = () => {
editingMember.value = null
@@ -913,6 +958,14 @@ const formatDate = (dateString) => {
minute: '2-digit'
})
}
+}
+const formatBirthdate = (dateString) => {
+ if (!dateString) return ''
+ const date = new Date(dateString)
+ if (isNaN(date.getTime())) return ''
+ // Zeige nur Tag und Monat
+ return date.toLocaleDateString('de-DE', { day: '2-digit', month: '2-digit' })
+}
// Bulk import functions
const triggerBulkFileInput = () => {