Add config system for training, trainer, membership and impressum with CMS editor

This commit is contained in:
Torsten Schulz (local)
2025-10-21 16:44:31 +02:00
parent 2b4db04ea1
commit d5a181e0c8
96 changed files with 1140 additions and 4600 deletions

View File

@@ -16,22 +16,24 @@
</p>
</div>
<div>
<div v-if="config">
<h2 class="text-xl font-display font-bold text-gray-900 mb-2">Kontakt</h2>
<p class="text-gray-700">
Telefon: 06101-4992227<br />
E-Mail: j.dichmann@gmx.de<br />
Telefon: {{ config.vorstand.vorsitzender.telefon }}<br />
E-Mail: <a :href="`mailto:${config.vorstand.vorsitzender.email}`" class="text-primary-600 hover:underline">{{ config.vorstand.vorsitzender.email }}</a><br />
Internet: www.harheimertc.de
</p>
</div>
<div>
<div v-if="config">
<h2 class="text-xl font-display font-bold text-gray-900 mb-2">Vertretungsberechtigter Vorstand</h2>
<p class="text-gray-700">
Roger Dichmann, Vorsitzender<br />
Jürgen Kratz, Stellvertreter des Vorsitzenden<br />
Olaf Nüßlein, Kassenwart<br />
Jürgen Dichmann, Schriftführer
<span v-if="config.vorstand.vorsitzender.vorname">{{ config.vorstand.vorsitzender.vorname }} {{ config.vorstand.vorsitzender.nachname }}, Vorsitzender<br /></span>
<span v-if="config.vorstand.stellvertreter.vorname">{{ config.vorstand.stellvertreter.vorname }} {{ config.vorstand.stellvertreter.nachname }}, Stellvertreter<br /></span>
<span v-if="config.vorstand.kassenwart.vorname">{{ config.vorstand.kassenwart.vorname }} {{ config.vorstand.kassenwart.nachname }}, Kassenwart<br /></span>
<span v-if="config.vorstand.schriftfuehrer.vorname">{{ config.vorstand.schriftfuehrer.vorname }} {{ config.vorstand.schriftfuehrer.nachname }}, Schriftführer<br /></span>
<span v-if="config.vorstand.sportwart.vorname">{{ config.vorstand.sportwart.vorname }} {{ config.vorstand.sportwart.nachname }}, Sportwart<br /></span>
<span v-if="config.vorstand.jugendwart.vorname">{{ config.vorstand.jugendwart.vorname }} {{ config.vorstand.jugendwart.nachname }}, Jugendwart</span>
</p>
</div>
@@ -68,12 +70,20 @@
</div>
</div>
<div>
<h2 class="text-xl font-display font-bold text-gray-900 mb-2">Verantwortlich für den Inhalt</h2>
<div v-if="config">
<h2 class="text-xl font-display font-bold text-gray-900 mb-2">Verantwortlich für den Inhalt nach § 55 Abs. 2 RStV</h2>
<p class="text-gray-700">
Roger Dichmann<br />
Reginastr. 46<br />
60437 Frankfurt
{{ config.vorstand.vorsitzender.vorname }} {{ config.vorstand.vorsitzender.nachname }}<br />
<span v-if="config.vorstand.vorsitzender.strasse">{{ config.vorstand.vorsitzender.strasse }}<br /></span>
<span v-if="config.vorstand.vorsitzender.plz">{{ config.vorstand.vorsitzender.plz }} {{ config.vorstand.vorsitzender.ort }}</span>
</p>
</div>
<div v-if="config">
<h2 class="text-xl font-display font-bold text-gray-900 mb-2">Verantwortlich für die Website</h2>
<p class="text-gray-700">
{{ config.website.verantwortlicher.vorname }} {{ config.website.verantwortlicher.nachname }}<br />
E-Mail: <a :href="`mailto:${config.website.verantwortlicher.email}`" class="text-primary-600 hover:underline">{{ config.website.verantwortlicher.email }}</a>
</p>
</div>
@@ -115,8 +125,24 @@
</template>
<script setup>
import { ref, onMounted } from 'vue'
import { FileText, Eye } from 'lucide-vue-next'
const config = ref(null)
const loadConfig = async () => {
try {
const response = await $fetch('/api/config')
config.value = response.config
} catch (error) {
console.error('Fehler beim Laden der Config:', error)
}
}
onMounted(() => {
loadConfig()
})
useHead({
title: 'Impressum - Harheimer TC',
})