feat: replace success modal with non-blocking toast notification
All checks were successful
Code Analysis and Production Deploy / analyze (push) Successful in 5m10s
Code Analysis and Production Deploy / deploy-production (push) Has been skipped
Code Analysis and Production Deploy / deploy-test (push) Successful in 2m14s

feat: add global event listener for mannschaften updates in Navigation component

feat: notify app of mannschaften changes after CSV save and handle visibility changes

refactor: remove unused anlagen page

fix: update CmsMannschaften reference in sportbetrieb page for reactivity

fix: enhance authentication token retrieval in passkey API endpoints

feat: implement refresh session and access token generation for Android clients in passkey login

fix: unify token retrieval method across passkey API endpoints

feat: add MediaTypes utility for JSON content type in Android app

feat: create PasskeyRepository for handling passkey authentication and registration in Android app

feat: add validated text field and rich text components for Android UI

feat: implement newsletter subscription and unsubscription screens in Android app

feat: create public pages including Impressum with dynamic content loading
This commit is contained in:
Torsten Schulz (local)
2026-05-28 08:33:28 +02:00
parent e033d716dd
commit 0528334eb4
37 changed files with 1297 additions and 364 deletions

View File

@@ -1,14 +0,0 @@
<template>
<div class="min-h-screen">
<Facilities />
</div>
</template>
<script setup>
import Facilities from '~/components/Facilities.vue'
useHead({
title: 'Anlagen - Harheimer TC',
})
</script>

View File

@@ -33,7 +33,7 @@
<!-- Tab Content -->
<div>
<CmsTermine v-if="activeTab === 'termine'" />
<CmsMannschaften v-if="activeTab === 'mannschaften'" />
<CmsMannschaften ref="cmsMannschaftenRef" v-if="activeTab === 'mannschaften'" />
<CmsSpielplaene v-if="activeTab === 'spielplaene'" />
</div>
</div>
@@ -41,7 +41,7 @@
</template>
<script setup>
import { ref } from 'vue'
import { ref, watch } from 'vue'
import CmsTermine from '~/components/cms/CmsTermine.vue'
import CmsMannschaften from '~/components/cms/CmsMannschaften.vue'
import CmsSpielplaene from '~/components/cms/CmsSpielplaene.vue'
@@ -56,6 +56,13 @@ useHead({
})
const activeTab = ref('termine')
const cmsMannschaftenRef = ref(null)
watch(activeTab, (v) => {
if (v === 'mannschaften' && cmsMannschaftenRef?.value?.loadMannschaften) {
try { cmsMannschaftenRef.value.loadMannschaften() } catch (e) { /* no-op */ }
}
})
const tabs = [
{ id: 'termine', label: 'Termine' },