Move custom nameserver checkbox into the shared domain config component

This commit is contained in:
Johannes Zellner
2025-10-10 16:30:36 +02:00
parent 2fdb3668e2
commit f7e073c857
4 changed files with 13 additions and 7 deletions
+1 -4
View File
@@ -151,12 +151,9 @@ defineExpose({
<TextInput id="domainInput" v-model="domain" placeholder="example.com" :readonly="editing ? true : undefined" required />
</FormGroup>
<DomainProviderForm v-model:provider="provider" v-model:dns-config="dnsConfig" v-model:tls-provider="tlsProvider" v-model:zone-name="zoneName" :domain="domain" :show-advanced="showAdvanced" />
<DomainProviderForm v-model:provider="provider" v-model:dns-config="dnsConfig" v-model:tls-provider="tlsProvider" v-model:zone-name="zoneName" v-model:custom-nameservers="customNameservers" :domain="domain" :show-advanced="showAdvanced" />
<div v-show="showAdvanced">
<Checkbox v-model="customNameservers" :label="$t('domains.domainDialog.customNameservers')" />
<!-- custom certificate -->
<div v-if="tlsProvider === 'fallback'">
<label>{{ $t('domains.domainDialog.fallbackCertCustomCert') }}</label>
<p v-html="$t('domains.domainDialog.fallbackCertCustomCertInfo', { customCertLink: 'https://docs.cloudron.io/certificates/#custom-certificates' })"></p>
@@ -28,6 +28,7 @@ const provider = defineModel('provider');
const dnsConfig = defineModel('dnsConfig');
const tlsProvider = defineModel('tlsProvider');
const zoneName = defineModel('zoneName');
const customNameservers = defineModel('customNameservers');
const tlsProviders = [
{ name: 'Let\'s Encrypt Prod', value: 'letsencrypt-prod' },
@@ -311,6 +312,9 @@ function onGcdnsFileInputChange(event) {
<TextInput id="zoneNameInput" v-model="zoneName" />
</FormGroup>
<Checkbox v-if="showAdvanced" v-model="customNameservers" :label="$t('domains.domainDialog.customNameservers')" />
<FormGroup v-if="showAdvanced">
<label>Certificate Provider <sup><a href="https://docs.cloudron.io/certificates/#certificate-providers" class="help" target="_blank"><i class="fa fa-question-circle"></i></a></sup></label>
<SingleSelect v-model="tlsProvider" :options="tlsProviders" option-key="value" option-label="name"/>
+5 -1
View File
@@ -90,7 +90,10 @@ function filterConfigForProvider(provider, config) {
break;
}
const ret = {};
const ret = {
customNameservers: !!config.customNameservers,
};
for (const p of props) ret[p] = config[p];
return ret;
}
@@ -110,6 +113,7 @@ function createEmptyConfig() {
credentials: { client_email: '', private_key: '' },
customerNumber: '',
defaultProxyStatus: false,
customNameservers: false,
email: '',
endpoint: '',
password: '',
+3 -2
View File
@@ -31,8 +31,9 @@ const setupToken = ref('');
const zoneName = ref('');
const provider = ref('');
const dnsConfig = ref(DomainsModel.createEmptyConfig());
const tlsProvider = ref('letsencrypt-prod-wildcard');
const tlsProvider = ref('letsenc-prod-wildcard');
const showAdvanced = ref(false);
const customNameservers = ref(false);
const ipv4Provider = ref('generic');
const ipv4Address = ref('');
const ipv4Interface = ref('');
@@ -200,7 +201,7 @@ onMounted(async () => {
<small class="helper-text">Apps will be installed on subdomains of this domain. The dashboard will be available on the <b>my{{ domain ? `.${domain}` : '' }}</b> subdomain. You can add more domains later.</small>
</FormGroup>
<DomainProviderForm :disabled="busy" v-model:provider="provider" v-model:dns-config="dnsConfig" v-model:tls-provider="tlsProvider" v-model:zone-name="zoneName" :domain="domain" :show-advanced="showAdvanced" />
<DomainProviderForm :disabled="busy" v-model:provider="provider" v-model:dns-config="dnsConfig" v-model:tls-provider="tlsProvider" v-model:zone-name="zoneName" v-model:custom-nameservers="customNameservers" :domain="domain" :show-advanced="showAdvanced" />
<div v-show="showAdvanced">
<!-- IPv4 provider -->