diff --git a/dashboard/src/components/DomainProviderForm.vue b/dashboard/src/components/DomainProviderForm.vue index bf17cf93e..9b8b46beb 100644 --- a/dashboard/src/components/DomainProviderForm.vue +++ b/dashboard/src/components/DomainProviderForm.vue @@ -4,7 +4,7 @@ import { useI18n } from 'vue-i18n'; const i18n = useI18n(); const t = i18n.t; -import { ref } from 'vue'; +import { ref, watch } from 'vue'; import { TextInput, InputGroup, MaskedInput, Button, FormGroup, Checkbox, SingleSelect } from '@cloudron/pankow'; import { ENDPOINTS_OVH } from '../constants.js'; import DomainsModel from '../models/DomainsModel.js'; @@ -53,15 +53,6 @@ function needsPort80(dnsProvider, tlsProvider) { (tlsProvider === 'letsencrypt-prod' || tlsProvider === 'letsencrypt-staging')); } -function setDefaultTlsProvider(p) { - // wildcard LE won't work without automated DNS - if (p === 'manual' || p === 'noop' || p === 'wildcard') { - tlsProvider.value = 'letsencrypt-prod'; - } else { - tlsProvider.value = 'letsencrypt-prod-wildcard'; - } -} - function resetFields() { dnsConfig.value.accessKeyId = ''; dnsConfig.value.accessKey = ''; @@ -86,10 +77,16 @@ function resetFields() { dnsConfig.value.username = ''; } -function onProviderChange(p) { - setDefaultTlsProvider(p); - resetFields(p); -} +watch(provider, (p) => { + resetFields(); + + // wildcard LE won't work without automated DNS + if (p === 'manual' || p === 'noop' || p === 'wildcard') { + tlsProvider.value = 'letsencrypt-prod'; + } else { + tlsProvider.value = 'letsencrypt-prod-wildcard'; + } +}); const gcdnsFileParseError = ref(''); function onGcdnsFileInputChange(event) { @@ -130,7 +127,7 @@ function onGcdnsFileInputChange(event) {