diff --git a/dashboard/src/components/DomainProviderForm.vue b/dashboard/src/components/DomainProviderForm.vue
new file mode 100644
index 000000000..11c1b9ccf
--- /dev/null
+++ b/dashboard/src/components/DomainProviderForm.vue
@@ -0,0 +1,330 @@
+
+
+
+
+
+ {{ $t('domains.domainDialog.provider') }}
+
+ {{ p.name }}
+
+
+
+
+
+ {{ $t('domains.domainDialog.route53AccessKeyId') }}
+
+
+
+ {{ $t('domains.domainDialog.route53SecretAccessKey') }}
+
+
+
+
+
+ {{ $t('domains.domainDialog.gcdnsServiceAccountKey') }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('domains.domainDialog.digitalOceanToken') }}
+
+
+
+
+
+ {{ $t('domains.domainDialog.gandiTokenType') }}
+
+ {{ $t('domains.domainDialog.gandiTokenTypeApiKey') }}
+ {{ $t('domains.domainDialog.gandiTokenTypePAT') }}
+
+
+
+ {{ $t('domains.domainDialog.gandiApiKey') }}
+
+
+
+
+
+ {{ $t('domains.domainDialog.goDaddyApiKey') }}
+
+
+
+ {{ $t('domains.domainDialog.goDaddyApiSecret') }}
+
+
+
+
+
+ {{ $t('domains.domainDialog.netcupCustomerNumber') }}
+
+
+
+ {{ $t('domains.domainDialog.netcupApiKey') }}
+
+
+
+ {{ $t('domains.domainDialog.netcupApiPassword') }}
+
+
+
+
+
+ {{ $t('domains.domainDialog.ovhEndpoint') }}
+
+ {{ endpoint.name }}
+
+
+
+ {{ $t('domains.domainDialog.ovhConsumerKey') }}
+
+
+
+ {{ $t('domains.domainDialog.ovhAppKey') }}
+
+
+
+ {{ $t('domains.domainDialog.ovhAppSecret') }}
+
+
+
+
+
+ {{ $t('domains.domainDialog.porkbunApikey') }}
+
+
+
+ {{ $t('domains.domainDialog.porkbunSecretapikey') }}
+
+
+
+
+
+ {{ $t('domains.domainDialog.cloudflareTokenType') }}
+
+ {{ $t('domains.domainDialog.cloudflareTokenTypeGlobalApiKey') }}
+ {{ $t('domains.domainDialog.cloudflareTokenTypeApiToken') }}
+
+
+
+ {{ $t('domains.domainDialog.cloudflareTokenTypeGlobalApiKey') }}
+ {{ $t('domains.domainDialog.cloudflareTokenTypeApiToken') }}
+
+
+
+ {{ $t('domains.domainDialog.cloudflareEmail') }}
+
+
+
+
+
+
+ {{ $t('domains.domainDialog.linodeToken') }}
+
+
+
+
+
+ {{ $t('domains.domainDialog.bunnyAccessKey') }}
+
+
+
+
+
+ {{ $t('domains.domainDialog.dnsimpleAccessToken') }}
+
+
+
+
+
+ {{ $t('domains.domainDialog.hetznerToken') }}
+
+
+
+
+
+ {{ $t('domains.domainDialog.vultrToken') }}
+
+
+
+
+
+ {{ $t('domains.domainDialog.deSecToken') }}
+
+
+
+
+
+ {{ $t('domains.domainDialog.nameComUsername') }}
+
+
+
+ {{ $t('domains.domainDialog.nameComApiToken') }}
+
+
+
+
+
+ {{ $t('domains.domainDialog.namecheapUsername') }}
+
+
+
+ {{ $t('domains.domainDialog.namecheapApiKey') }}
+
+
+
+
+
+
+ {{ $t('domains.domainDialog.inwxUsername') }}
+
+
+
+ {{ $t('domains.domainDialog.inwxPassword') }}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dashboard/src/views/ActivationView.vue b/dashboard/src/views/ActivationView.vue
index 754f7af2c..b351141f2 100644
--- a/dashboard/src/views/ActivationView.vue
+++ b/dashboard/src/views/ActivationView.vue
@@ -73,7 +73,7 @@ async function onOwnerSubmit() {
onMounted(async () => {
const [error, result] = await cloudronModel.provisionStatus();
- console.log(error, result)
+ if (error) return console.error(error);
if (redirectIfNeeded(result, 'activation')) return; // redirected to some other view...