From 88c2ae7099473c372a190a9c84191ed958577161 Mon Sep 17 00:00:00 2001 From: Spitap Date: Fri, 17 Mar 2023 11:32:26 +0100 Subject: [PATCH] Revert to old navbar layout, Improved provider creation --- frontend/src/api/imap_migration/providers.js | 3 + .../imap_migration/ProviderAssociatedForm.vue | 29 ++- .../imap_migration/ProviderCreationForm.vue | 9 +- .../imap_migration/ProviderGeneralForm.vue | 4 + frontend/src/components/layout/BaseNavBar.vue | 149 ------------- .../src/components/layout/ExtensionNavBar.vue | 154 -------------- frontend/src/components/layout/Navbar.vue | 201 ++++++++++++++---- .../src/components/layout/SettingsDrawer.vue | 86 -------- modoboa/imap_migration/api/v2/serializers.py | 19 ++ modoboa/imap_migration/api/v2/viewsets.py | 11 +- 10 files changed, 222 insertions(+), 443 deletions(-) delete mode 100644 frontend/src/components/layout/BaseNavBar.vue delete mode 100644 frontend/src/components/layout/ExtensionNavBar.vue delete mode 100644 frontend/src/components/layout/SettingsDrawer.vue diff --git a/frontend/src/api/imap_migration/providers.js b/frontend/src/api/imap_migration/providers.js index e191d6814..afe123257 100644 --- a/frontend/src/api/imap_migration/providers.js +++ b/frontend/src/api/imap_migration/providers.js @@ -23,5 +23,8 @@ export default { }, checkProvider (params) { return repository.post(`/${resource}/check_connection/`, params) + }, + checkAssociatedDomain (params) { + return repository.post(`/${resource}/check_associated_domain/`, params) } } diff --git a/frontend/src/components/imap_migration/ProviderAssociatedForm.vue b/frontend/src/components/imap_migration/ProviderAssociatedForm.vue index 527e4a8e0..b57b027df 100644 --- a/frontend/src/components/imap_migration/ProviderAssociatedForm.vue +++ b/frontend/src/components/imap_migration/ProviderAssociatedForm.vue @@ -19,7 +19,7 @@ +import providerApi from '@/api/imap_migration/providers' + export default { props: ['value'], data () { @@ -70,6 +72,13 @@ export default { } }, methods: { + reset () { + this.domains = [] + this.domain = { + initialdomain: '', + new_domain: '' + } + }, async validateForm () { return await this.$refs.observer.validate() }, @@ -78,13 +87,19 @@ export default { }, async addDomain () { if (await this.validateForm()) { - this.domains.push({ - name: this.domain.initialdomain, - new_domain: this.domain.new_domain + providerApi.checkAssociatedDomain(this.domain).then(response => { + if (response.status === 200) { + this.domains.push({ + name: this.domain.initialdomain, + new_domain: this.domain.new_domain + }) + this.$emit('input', this.domains) + this.$refs.initialdomainField.reset() + this.$refs.newdomainField.reset() + } + }).catch(error => { + this.$refs.observer.setErrors(error.response.data) }) - this.$emit('input', this.domains) - this.$refs.initialdomainField.reset() - this.$refs.newdomainField.reset() } }, removeDomain (index) { diff --git a/frontend/src/components/imap_migration/ProviderCreationForm.vue b/frontend/src/components/imap_migration/ProviderCreationForm.vue index d955d2f22..10346414e 100644 --- a/frontend/src/components/imap_migration/ProviderCreationForm.vue +++ b/frontend/src/components/imap_migration/ProviderCreationForm.vue @@ -1,8 +1,10 @@