summaryrefslogtreecommitdiffstats
path: root/src/components/AppNavigation/SettingsSection.vue
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/AppNavigation/SettingsSection.vue')
-rw-r--r--src/components/AppNavigation/SettingsSection.vue125
1 files changed, 0 insertions, 125 deletions
diff --git a/src/components/AppNavigation/SettingsSection.vue b/src/components/AppNavigation/SettingsSection.vue
deleted file mode 100644
index 2a33fd4a..00000000
--- a/src/components/AppNavigation/SettingsSection.vue
+++ /dev/null
@@ -1,125 +0,0 @@
-<!--
- - @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>
- -
- - @author John Molakvoæ <skjnldsv@protonmail.com>
- - @author Matthias Heinisch <nextcloud@matthiasheinisch.de>
- -
- - @license GNU AGPL version 3 or any later version
- -
- - This program is free software: you can redistribute it and/or modify
- - it under the terms of the GNU Affero General Public License as
- - published by the Free Software Foundation, either version 3 of the
- - License, or (at your option) any later version.
- -
- - This program is distributed in the hope that it will be useful,
- - but WITHOUT ANY WARRANTY; without even the implied warranty of
- - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- - GNU Affero General Public License for more details.
- -
- - You should have received a copy of the GNU Affero General Public License
- - along with this program. If not, see <http://www.gnu.org/licenses/>.
- -
- -->
-
-<template>
- <div>
- <SettingsSortContacts class="settings-section" />
- <CheckboxRadioSwitch :checked="enableSocialSync"
- :loading="enableSocialSyncLoading"
- :disabled="enableSocialSyncLoading"
- class="social-sync__checkbox"
- @update:checked="toggleSocialSync">
- <div class="social-sync__checkbox__label">
- <span>
- {{ t('contacts', 'Update avatars from social media') }}
- <em>{{ t('contacts', '(refreshed once per week)') }}</em>
- </span>
- </div>
- </CheckboxRadioSwitch>
- <div class="settings-addressbook-list__header">
- <span>{{ t('contacts', 'Address books') }}</span>
- </div>
- <ul id="addressbook-list">
- <SettingsAddressbook v-for="addressbook in addressbooks" :key="addressbook.id" :addressbook="addressbook" />
- </ul>
- <SettingsNewAddressbook :addressbooks="addressbooks" />
- <SettingsImportContacts :addressbooks="addressbooks"
- class="settings-section"
- @clicked="onClickImport"
- @file-loaded="onLoad" />
- </div>
-</template>
-
-<script>
-import axios from '@nextcloud/axios'
-import { generateUrl } from '@nextcloud/router'
-import { loadState } from '@nextcloud/initial-state'
-import SettingsAddressbook from './Settings/SettingsAddressbook'
-import SettingsNewAddressbook from './Settings/SettingsNewAddressbook'
-import SettingsImportContacts from './Settings/SettingsImportContacts'
-import SettingsSortContacts from './Settings/SettingsSortContacts'
-import CheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch'
-
-export default {
- name: 'SettingsSection',
- components: {
- SettingsAddressbook,
- SettingsNewAddressbook,
- SettingsImportContacts,
- SettingsSortContacts,
- CheckboxRadioSwitch,
- },
- data() {
- return {
- allowSocialSync: loadState('contacts', 'allowSocialSync') !== 'no',
- enableSocialSync: loadState('contacts', 'enableSocialSync') !== 'no',
- enableSocialSyncLoading: false,
- }
- },
- computed: {
- // store getters
- addressbooks() {
- return this.$store.getters.getAddressbooks
- },
- },
- methods: {
- onClickImport(event) {
- this.$emit('clicked', event)
- },
- async toggleSocialSync() {
- this.enableSocialSync = !this.enableSocialSync
- this.enableSocialSyncLoading = true
-
- // store value
- let setting = 'yes'
- this.enableSocialSync ? setting = 'yes' : setting = 'no'
- try {
- await axios.put(generateUrl('apps/contacts/api/v1/social/config/user/enableSocialSync'), {
- allow: setting,
- })
- } finally {
- this.enableSocialSyncLoading = false
- }
- },
- onLoad(event) {
- this.$emit('file-loaded', false)
- },
- },
-}
-</script>
-
-<style lang="scss" scoped>
-.social-sync__checkbox {
- margin-top: 5px;
-
- ::v-deep .checkbox-radio-switch__label {
- height: unset !important;
- }
-
- ::v-deep .checkbox-radio-switch__icon {
- width: 44px;
- flex-shrink: 0;
- flex-grow: 0;
- }
-}
-</style>