123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- <template>
- <div class="section">
- <h2>{{ $t('dav', 'Calendar server') }}</h2>
- <!-- Can use v-html as:
- - $t passes the translated string through DOMPurify.sanitize,
- - replacement strings are not user-controlled. -->
- <!-- eslint-disable-next-line vue/no-v-html -->
- <p class="settings-hint" v-html="hint" />
- <p>
- <input
- id="caldavSendInvitations"
- v-model="sendInvitations"
- type="checkbox"
- class="checkbox">
- <label for="caldavSendInvitations">
- {{ $t('dav', 'Send invitations to attendees') }}
- </label>
- <br>
- <!-- Can use v-html as:
- - $t passes the translated string through DOMPurify.sanitize,
- - replacement strings are not user-controlled. -->
- <!-- eslint-disable-next-line vue/no-v-html -->
- <em v-html="sendInvitationsHelpText" />
- </p>
- <p>
- <input
- id="caldavGenerateBirthdayCalendar"
- v-model="generateBirthdayCalendar"
- type="checkbox"
- class="checkbox">
- <label for="caldavGenerateBirthdayCalendar">
- {{ $t('dav', 'Automatically generate a birthday calendar') }}
- </label>
- <br>
- <em>
- {{ $t('dav', 'Birthday calendars will be generated by a background job.') }}
- </em>
- <br>
- <em>
- {{ $t('dav', 'Hence they will not be available immediately after enabling but will show up after some time.') }}
- </em>
- </p>
- <p>
- <input
- id="caldavSendEventReminders"
- v-model="sendEventReminders"
- type="checkbox"
- class="checkbox">
- <label for="caldavSendEventReminders">
- {{ $t('dav', 'Send notifications for events') }}
- </label>
- <br>
- <!-- Can use v-html as:
- - $t passes the translated string through DOMPurify.sanitize,
- - replacement strings are not user-controlled. -->
- <!-- eslint-disable-next-line vue/no-v-html -->
- <em v-html="sendEventRemindersHelpText" />
- <br>
- <em>
- {{ $t('dav', 'Notifications are sent via background jobs, so these must occur often enough.') }}
- </em>
- </p>
- <p>
- <input
- id="caldavSendEventRemindersPush"
- v-model="sendEventRemindersPush"
- type="checkbox"
- class="checkbox"
- :disabled="!sendEventReminders">
- <label for="caldavSendEventRemindersPush">
- {{ $t('dav', 'Enable notifications for events via push') }}
- </label>
- </p>
- </div>
- </template>
-
- <script>
- import axios from '@nextcloud/axios'
- import { generateUrl } from '@nextcloud/router'
-
- export default {
- name: 'CalDavSettings',
- computed: {
- hint() {
- const translated = this.$t(
- 'dav',
- 'Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}.',
- )
- return translated
- .replace('{calendarappstoreopen}', '<a target="_blank" href="../apps/office/calendar">')
- .replace('{calendardocopen}', '<a target="_blank" :href="userSyncCalendarsUrl" rel="noreferrer noopener">')
- .replace(/\{linkclose\}/g, '</a>')
- },
- sendInvitationsHelpText() {
- const translated = this.$t('dav', 'Please make sure to properly set up {emailopen}the email server{linkclose}.')
- return translated
- .replace('{emailopen}', '<a href="../admin#mail_general_settings">')
- .replace('{linkclose}', '</a>')
- },
- sendEventRemindersHelpText() {
- const translated = this.$t('dav', 'Please make sure to properly set up {emailopen}the email server{linkclose}.')
- return translated
- .replace('{emailopen}', '<a href="../admin#mail_general_settings">')
- .replace('{linkclose}', '</a>')
- },
- },
- watch: {
- generateBirthdayCalendar(value) {
- const baseUrl = value ? '/apps/dav/enableBirthdayCalendar' : '/apps/dav/disableBirthdayCalendar'
- axios.post(generateUrl(baseUrl))
- },
- sendInvitations(value) {
- OCP.AppConfig.setValue(
- 'dav',
- 'sendInvitations',
- value ? 'yes' : 'no'
- )
- },
- sendEventReminders(value) {
- OCP.AppConfig.setValue('dav', 'sendEventReminders', value ? 'yes' : 'no')
- },
- sendEventRemindersPush(value) {
- OCP.AppConfig.setValue('dav', 'sendEventRemindersPush', value ? 'yes' : 'no')
- },
- },
- }
- </script>
|