2021-10-26 20:58:02 +00:00
|
|
|
<template>
|
|
|
|
<card v-if="caldavEnabled" :title="$t('user.settings.caldav.title')">
|
|
|
|
<p>
|
|
|
|
{{ $t('user.settings.caldav.howTo') }}
|
|
|
|
</p>
|
|
|
|
<div class="field has-addons no-input-mobile">
|
|
|
|
<div class="control is-expanded">
|
|
|
|
<input type="text" v-model="caldavUrl" class="input" readonly/>
|
|
|
|
</div>
|
|
|
|
<div class="control">
|
|
|
|
<x-button
|
|
|
|
@click="copy(caldavUrl)"
|
|
|
|
:shadow="false"
|
|
|
|
v-tooltip="$t('misc.copy')"
|
|
|
|
icon="paste"
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<p>
|
2021-12-12 18:01:51 +01:00
|
|
|
<a :href="CALDAV_DOCS" rel="noreferrer noopener nofollow" target="_blank">
|
2021-10-26 20:58:02 +00:00
|
|
|
{{ $t('user.settings.caldav.more') }}
|
|
|
|
</a>
|
|
|
|
</p>
|
|
|
|
</card>
|
|
|
|
</template>
|
|
|
|
|
2021-12-12 18:01:51 +01:00
|
|
|
<script lang="ts" setup>
|
2021-10-26 20:58:02 +00:00
|
|
|
import copy from 'copy-to-clipboard'
|
2021-12-12 18:01:51 +01:00
|
|
|
import {computed} from 'vue'
|
|
|
|
import {useI18n} from 'vue-i18n'
|
|
|
|
import {useStore} from 'vuex'
|
|
|
|
|
2021-10-26 20:58:02 +00:00
|
|
|
import {CALDAV_DOCS} from '@/urls'
|
2021-12-12 18:01:51 +01:00
|
|
|
import {useTitle} from '@/composables/useTitle'
|
|
|
|
|
|
|
|
const store = useStore()
|
|
|
|
const {t} = useI18n()
|
|
|
|
|
|
|
|
useTitle(() => `${t('user.settings.caldav.title')} - ${t('user.settings.title')}`)
|
2021-10-26 20:58:02 +00:00
|
|
|
|
2021-12-12 18:01:51 +01:00
|
|
|
const caldavUrl = computed(() => `${store.getters['config/apiBase']}/dav/principals/${store.state.auth.info.username}/`)
|
|
|
|
const caldavEnabled = computed(() => store.state.config.caldavEnabled)
|
2021-10-26 20:58:02 +00:00
|
|
|
</script>
|