aboutsummaryrefslogtreecommitdiffstats
path: root/apps/dav/src/views/ExampleContactSettings.vue
diff options
context:
space:
mode:
Diffstat (limited to 'apps/dav/src/views/ExampleContactSettings.vue')
-rw-r--r--apps/dav/src/views/ExampleContactSettings.vue160
1 files changed, 0 insertions, 160 deletions
diff --git a/apps/dav/src/views/ExampleContactSettings.vue b/apps/dav/src/views/ExampleContactSettings.vue
deleted file mode 100644
index d4d1c7d31d0..00000000000
--- a/apps/dav/src/views/ExampleContactSettings.vue
+++ /dev/null
@@ -1,160 +0,0 @@
-<!--
- - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
- - SPDX-License-Identifier: AGPL-3.0-or-later
--->
-
-<template>
- <NcSettingsSection id="exmaple-content"
- :name="$t('dav', 'Example Content')"
- class="example-content-setting"
- :description="$t('dav', 'Set example content to be created on new user first login.')">
- <div class="example-content-setting__contacts">
- <input id="enable-default-contact"
- v-model="enableDefaultContact"
- type="checkbox"
- class="checkbox"
- @change="updateEnableDefaultContact">
- <label for="enable-default-contact"> {{ $t('dav',"Default contact is added to the user's own address book on user's first login.") }} </label>
- <div v-if="enableDefaultContact" class="example-content-setting__contacts__buttons">
- <NcButton type="primary"
- class="example-content-setting__contacts__buttons__button"
- @click="toggleModal">
- <template #icon>
- <IconUpload :size="20" />
- </template>
- {{ $t('dav', 'Import contact') }}
- </NcButton>
- <NcButton type="secondary"
- class="example-content-setting__contacts__buttons__button"
- @click="resetContact">
- <template #icon>
- <IconRestore :size="20" />
- </template>
- {{ $t('dav', 'Reset to default contact') }}
- </NcButton>
- </div>
- </div>
- <NcDialog :open.sync="isModalOpen"
- :name="$t('dav', 'Import contacts')"
- :buttons="buttons">
- <div>
- <p>{{ $t('dav', 'Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?') }}</p>
- </div>
- </NcDialog>
- <input id="example-contact-import"
- ref="exampleContactImportInput"
- :disabled="loading"
- type="file"
- accept=".vcf"
- class="hidden-visually"
- @change="processFile">
- </NcSettingsSection>
-</template>
-<script>
-import axios from '@nextcloud/axios'
-import { generateUrl } from '@nextcloud/router'
-import { loadState } from '@nextcloud/initial-state'
-import { NcDialog, NcButton, NcSettingsSection } from '@nextcloud/vue'
-import { showError, showSuccess } from '@nextcloud/dialogs'
-import IconUpload from 'vue-material-design-icons/Upload.vue'
-import IconRestore from 'vue-material-design-icons/Restore.vue'
-import IconCancel from '@mdi/svg/svg/cancel.svg?raw'
-import IconCheck from '@mdi/svg/svg/check.svg?raw'
-
-const enableDefaultContact = loadState('dav', 'enableDefaultContact') === 'yes'
-
-export default {
- name: 'ExampleContactSettings',
- components: {
- NcDialog,
- NcButton,
- NcSettingsSection,
- IconUpload,
- IconRestore,
- },
- data() {
- return {
- enableDefaultContact,
- isModalOpen: false,
- loading: false,
- buttons: [
- {
- label: this.$t('dav', 'Cancel'),
- icon: IconCancel,
- callback: () => { this.isModalOpen = false },
- },
- {
- label: this.$t('dav', 'Import'),
- type: 'primary',
- icon: IconCheck,
- callback: () => { this.clickImportInput() },
- },
- ],
- }
- },
- methods: {
- updateEnableDefaultContact() {
- axios.put(generateUrl('apps/dav/api/defaultcontact/config'), {
- allow: this.enableDefaultContact ? 'yes' : 'no',
- }).catch(() => {
- this.enableDefaultContact = !this.enableDefaultContact
- showError(this.$t('dav', 'Error while saving settings'))
- })
- },
- toggleModal() {
- this.isModalOpen = !this.isModalOpen
- },
- clickImportInput() {
- this.$refs.exampleContactImportInput.click()
- },
- resetContact() {
- this.loading = true
- axios.put(generateUrl('/apps/dav/api/defaultcontact/contact'))
- .then(() => {
- showSuccess(this.$t('dav', 'Contact reset successfully'))
- })
- .catch((error) => {
- console.error('Error importing contact:', error)
- showError(this.$t('dav', 'Error while resetting contact'))
- })
- .finally(() => {
- this.loading = false
- })
- },
- processFile(event) {
- this.loading = true
-
- const file = event.target.files[0]
- const reader = new FileReader()
-
- reader.onload = async () => {
- this.isModalOpen = false
- try {
- await axios.put(generateUrl('/apps/dav/api/defaultcontact/contact'), { contactData: reader.result })
- showSuccess(this.$t('dav', 'Contact imported successfully'))
- } catch (error) {
- console.error('Error importing contact:', error)
- showError(this.$t('dav', 'Error while importing contact'))
- } finally {
- this.loading = false
- event.target.value = ''
- }
- }
- reader.readAsText(file)
- },
- },
-}
-</script>
-<style lang="scss" scoped>
-.example-content-setting{
- &__contacts{
- &__buttons{
- margin-top: 1rem;
- display: flex;
- &__button{
- margin-inline-end: 5px;
- }
- }
- }
-}
-</style>