54 lines
2.0 KiB
Vue
54 lines
2.0 KiB
Vue
<template>
|
|
<page-layout>
|
|
<template #right>
|
|
<f-save-button form="preventionform"></f-save-button>
|
|
</template>
|
|
|
|
<setting-layout v-if="loaded">
|
|
<form id="preventionform" class="grow p-6" @submit.prevent="submit">
|
|
<div class="col-span-full text-gray-100 mb-3">
|
|
<p class="text-sm">Hier kannst du Einstellungen zu Prävention setzen.</p>
|
|
</div>
|
|
<ui-tabs v-model="active" class="mt-2" :entries="tabs"></ui-tabs>
|
|
<div v-if="active === 0">
|
|
<f-editor v-if="active === 0" id="formmail" v-model="data.formmail" label="E-Mail für Veranstaltungs-TN"></f-editor>
|
|
</div>
|
|
<div v-if="active === 1" class="grid gap-6">
|
|
<f-switch id="active" v-model="data.active" name="active" label="Regelmäßig an Präventionsunterlagen erinnern"></f-switch>
|
|
<div class="flex gap-6">
|
|
<f-text id="weeks" v-model="data.weeks" label="Vor Ablauf X Wochen vorher erinnern" type="number" />
|
|
<f-text id="fresh_remember_interval" v-model="data.freshRememberInterval" label="Bei Ablauf alle X Wochen erinnern" type="number" />
|
|
</div>
|
|
<f-editor v-if="active === 1" id="yearlymail" v-model="data.yearlymail" label="Jährliche Präventions-Erinnerung"></f-editor>
|
|
</div>
|
|
</form>
|
|
</setting-layout>
|
|
</page-layout>
|
|
</template>
|
|
|
|
<script lang="js" setup>
|
|
import { ref } from 'vue';
|
|
import { useApiIndex } from '../../composables/useApiIndex.js';
|
|
import SettingLayout from '../setting/Layout.vue';
|
|
|
|
const tabs = [
|
|
{ title: 'für Veranstaltungen' },
|
|
{ title: 'Jährlich' },
|
|
];
|
|
const active = ref(0);
|
|
|
|
const { axios, data, reload } = useApiIndex('/api/prevention', 'prevention');
|
|
const loaded = ref(false);
|
|
|
|
async function load() {
|
|
await reload();
|
|
loaded.value = true;
|
|
}
|
|
|
|
async function submit() {
|
|
await axios.post('/api/prevention', { ...data.value });
|
|
}
|
|
|
|
load();
|
|
</script>
|