diff --git a/components/MannschaftenUebersicht.vue b/components/MannschaftenUebersicht.vue
index 23d8f55..2bcbf7c 100644
--- a/components/MannschaftenUebersicht.vue
+++ b/components/MannschaftenUebersicht.vue
@@ -102,7 +102,7 @@
diff --git a/pages/mannschaften/index.vue b/pages/mannschaften/index.vue
index 676323c..027be06 100644
--- a/pages/mannschaften/index.vue
+++ b/pages/mannschaften/index.vue
@@ -6,8 +6,27 @@
-
- Unsere aktiven Mannschaften in der Saison {{ selectedSeasonLabel }}
+
+ Unsere aktiven Mannschaften in der Saison
+
+
@@ -37,6 +56,7 @@ import { computed } from 'vue'
import MannschaftenUebersicht from '~/components/MannschaftenUebersicht.vue'
const route = useRoute()
+const router = useRouter()
const getCurrentSeasonSlug = () => {
const now = new Date()
@@ -46,18 +66,37 @@ const getCurrentSeasonSlug = () => {
return `${String(startYear).slice(-2)}--${String(endYear).slice(-2)}`
}
-const selectedSeason = computed(() => {
- const value = String(route.query.season || '').trim()
- return /^\d{2}--\d{2}$/.test(value) ? value : getCurrentSeasonSlug()
+const currentSeason = getCurrentSeasonSlug()
+const { data: seasonsResult } = await useFetch('/api/mannschaften/seasons')
+
+const seasons = computed(() => {
+ const availableSeasons = Array.isArray(seasonsResult.value?.seasons)
+ ? seasonsResult.value.seasons
+ : []
+
+ return [...new Set([currentSeason, ...availableSeasons])]
+ .filter(season => /^\d{2}--\d{2}$/.test(season))
+ .sort()
+ .reverse()
})
-const selectedSeasonLabel = computed(() => {
- const match = String(selectedSeason.value || '').match(/^(\d{2})--(\d{2})$/)
- return match ? `20${match[1]}/${match[2]}` : selectedSeason.value
+const selectedSeason = computed({
+ get() {
+ const value = String(route.query.season || '').trim()
+ return seasons.value.includes(value) ? value : currentSeason
+ },
+ set(value) {
+ const season = seasons.value.includes(value) ? value : currentSeason
+ router.replace({ query: { ...route.query, season } })
+ }
})
+const formatSeasonLabel = (season) => {
+ const match = String(season || '').match(/^(\d{2})--(\d{2})$/)
+ return match ? `20${match[1]}/${match[2]}` : season
+}
+
useHead({
title: 'Mannschaften - Harheimer TC',
})
-