diff --git a/dashboard/src/models/DomainsModel.js b/dashboard/src/models/DomainsModel.js index d0170a420..18455e63d 100644 --- a/dashboard/src/models/DomainsModel.js +++ b/dashboard/src/models/DomainsModel.js @@ -31,7 +31,7 @@ function prettyProviderName(provider) { return tmp ? tmp.name : provider; }; -function filterForProvider(provider, config) { +function filterConfigForProvider(provider, config) { let props = []; switch (provider) { case 'route53': @@ -149,7 +149,7 @@ function create() { return [null, result.body]; }, async add(domain, zoneName, provider, config, fallbackCertificate, tlsConfig) { - const data = { domain, provider, config: filterForProvider(provider, config), tlsConfig }; + const data = { domain, provider, config: filterConfigForProvider(provider, config), tlsConfig }; if (zoneName) data.zoneName = zoneName; if (fallbackCertificate) data.fallbackCertificate = fallbackCertificate; @@ -164,7 +164,7 @@ function create() { return [null]; }, async update(domain, zoneName, provider, config, fallbackCertificate, tlsConfig) { - const data = { provider, config: filterForProvider(provider, config), tlsConfig }; + const data = { provider, config: filterConfigForProvider(provider, config), tlsConfig }; if (zoneName) data.zoneName = zoneName; if (fallbackCertificate) data.fallbackCertificate = fallbackCertificate; @@ -247,6 +247,7 @@ function create() { export default { create, createEmptyConfig, + filterConfigForProvider, prettyProviderName, providers, }; diff --git a/dashboard/src/views/SetupView.vue b/dashboard/src/views/SetupView.vue index 2c25de468..0dca3be49 100644 --- a/dashboard/src/views/SetupView.vue +++ b/dashboard/src/views/SetupView.vue @@ -3,6 +3,7 @@ import { ref, onMounted, useTemplateRef } from 'vue'; import { Spinner, Button, SingleSelect, FormGroup, TextInput } from 'pankow'; import { redirectIfNeeded } from '../utils.js'; +import DomainsModel from '../models/DomainsModel.js'; import ProvisionModel from '../models/ProvisionModel.js'; import DomainProviderForm from '../components/DomainProviderForm.vue'; @@ -26,7 +27,7 @@ const instanceId = ref(''); const setupToken = ref(''); const zoneName = ref(''); const provider = ref(''); -const dnsConfig = ref({}); +const dnsConfig = ref(DomainsModel.createEmptyConfig()); const tlsProvider = ref('letsencrypt-prod-wildcard'); const showAdvanced = ref(false); const ipv4Provider = ref('generic'); @@ -80,7 +81,7 @@ async function onSubmit() { domain: domain.value, zoneName: zoneName.value, provider: provider.value, - config: dnsConfig.value, + config: DomainsModel.filterConfigForProvider(provider.value, dnsConfig.value), tlsConfig: { provider: tlsProvider.value.replace('-wildcard', ''), wildcard: tlsProvider.value.indexOf('-wildcard') !== -1 ? true : false,