Files
FEDEO/frontend/pages/settings/emailaccounts/[mode]/[[id]].vue
2026-01-06 12:09:31 +01:00

137 lines
2.4 KiB
Vue

<script setup lang="ts">
const route = useRoute()
const mode = route.params.mode
const itemInfo = ref({})
const setup = async () => {
if(mode === "create") {
} else {
itemInfo.value = await useNuxtApp().$api(`/api/email/accounts/${route.params.id}`)
}
}
setup()
const createAccount = async () => {
const res = await useNuxtApp().$api(`/api/email/accounts`, {
method: "POST",
body: itemInfo.value,
})
if(res.success) {
navigateTo("/settings/emailaccounts")
}
}
const saveAccount = async () => {
const res = await useNuxtApp().$api(`/api/email/accounts/${route.params.id}`, {
method: "POST",
body: itemInfo.value,
})
if(res.success) {
navigateTo("/settings/emailaccounts")
}
}
</script>
<template>
<UDashboardNavbar :title="`E-Mail Konto ${mode === 'create' ? 'erstellen' : 'bearbeiten'}`">
<template #right>
<UButton
v-if="mode === 'create'"
@click="createAccount"
>
Erstellen
</UButton>
<UButton
v-if="mode === 'edit'"
@click="saveAccount"
>
Speichern
</UButton>
</template>
</UDashboardNavbar>
<UForm class="w-2/3 mx-auto mt-5">
<UFormGroup
label="E-Mail Adresse"
>
<UInput
v-model="itemInfo.email"
/>
</UFormGroup>
<UFormGroup
label="Passwort"
>
<UInput
type="password"
v-model="itemInfo.password"
placeholder="********"
/>
</UFormGroup>
<UDivider> IMAP </UDivider>
<UFormGroup
label="IMAP Host"
>
<UInput
v-model="itemInfo.imap_host"
/>
</UFormGroup>
<UFormGroup
label="IMAP Port"
>
<UInput
type="number"
v-model="itemInfo.imap_port"
/>
</UFormGroup>
<UFormGroup
label="IMAP SSL"
>
<UToggle
v-model="itemInfo.imap_ssl"
/>
</UFormGroup>
<UDivider> SMTP </UDivider>
<UFormGroup
label="SMTP Host"
>
<UInput
v-model="itemInfo.smtp_host"
/>
</UFormGroup>
<UFormGroup
label="SMTP Port"
>
<UInput
type="number"
v-model="itemInfo.smtp_port"
/>
</UFormGroup>
<UFormGroup
label="SMTP SSL"
>
<UToggle
v-model="itemInfo.smtp_ssl"
/>
</UFormGroup>
</UForm>
</template>
<style scoped>
</style>