diff --git a/src/js/setupdns.js b/src/js/setupdns.js index 1b55fda1c..8c74a05e5 100644 --- a/src/js/setupdns.js +++ b/src/js/setupdns.js @@ -47,6 +47,7 @@ app.controller('SetupDNSController', ['$scope', '$http', '$timeout', 'Client', f { name: 'AWS Route53', value: 'route53' }, { name: 'Cloudflare (DNS only)', value: 'cloudflare' }, { name: 'Digital Ocean', value: 'digitalocean' }, + { name: 'Gandi LiveDNS', value: 'gandi' }, { name: 'Google Cloud DNS', value: 'gcdns' }, { name: 'Wildcard', value: 'wildcard' }, { name: 'Manual (not recommended)', value: 'manual' }, @@ -60,6 +61,7 @@ app.controller('SetupDNSController', ['$scope', '$http', '$timeout', 'Client', f secretAccessKey: '', gcdnsKey: { keyFileName: '', content: '' }, digitalOceanToken: '', + gandiApiKey: '', provider: 'route53' }; @@ -120,6 +122,8 @@ app.controller('SetupDNSController', ['$scope', '$http', '$timeout', 'Client', f } } else if (provider === 'digitalocean') { data.token = $scope.dnsCredentials.digitalOceanToken; + } else if (provider === 'gandi') { + data.token = $scope.dnsCredentials.gandiApiKey; } else if (provider === 'cloudflare') { data.email = $scope.dnsCredentials.cloudflareEmail; data.token = $scope.dnsCredentials.cloudflareToken; @@ -167,6 +171,7 @@ app.controller('SetupDNSController', ['$scope', '$http', '$timeout', 'Client', f if (status.adminFqdn) return waitForDnsSetup(); if (status.provider === 'digitalocean') $scope.dnsCredentials.provider = 'digitalocean'; + if (status.provider === 'gandi') $scope.dnsCredentials.provider = 'gandi'; if (status.provider === 'gcp') $scope.dnsCredentials.provider = 'gcdns'; if (status.provider === 'ami') { // remove route53 on ami diff --git a/src/setupdns.html b/src/setupdns.html index 9baebfb8f..e1ae62d01 100644 --- a/src/setupdns.html +++ b/src/setupdns.html @@ -100,6 +100,13 @@ {{ explicitZone ? explicitZone : (dnsCredentials.domain | zoneName) }} must be hosted on DigitalOcean. + +
+ +
+ {{ explicitZone ? explicitZone : (dnsCredentials.domain | zoneName) }} must be hosted on Gandi LiveDNS. +
+
diff --git a/src/views/domains.html b/src/views/domains.html index 0d9cf9cd3..226cddec9 100644 --- a/src/views/domains.html +++ b/src/views/domains.html @@ -47,6 +47,12 @@
+ +
+ + +
+
@@ -69,6 +75,10 @@ This domain must be hosted on DigitalOcean.

+

+ This domain must be hosted on Gandi LiveDNS. +

+

This domain must be hosted on Cloudflare.

diff --git a/src/views/domains.js b/src/views/domains.js index fc6bc125d..97e838cb0 100644 --- a/src/views/domains.js +++ b/src/views/domains.js @@ -16,6 +16,7 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat { name: 'AWS Route53', value: 'route53' }, { name: 'Cloudflare (DNS only)', value: 'cloudflare' }, { name: 'Digital Ocean', value: 'digitalocean' }, + { name: 'Gandi LiveDNS', value: 'gandi' }, { name: 'Google Cloud DNS', value: 'gcdns' }, { name: 'Wildcard', value: 'wildcard' }, { name: 'Manual (not recommended)', value: 'manual' }, @@ -28,6 +29,7 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat case 'route53': return 'AWS Route53'; case 'cloudflare': return 'Cloudflare (DNS only)'; case 'digitalocean': return 'Digital Ocean'; + case 'gandi': return 'Gandi LiveDNS'; case 'gcdns': return 'Google Cloud'; case 'manual': return domain.config.wildcard ? 'Wildcard' : 'Manual'; case 'noop': return 'No-op'; @@ -64,6 +66,7 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat secretAccessKey: '', gcdnsKey: { keyFileName: '', content: '' }, digitalOceanToken: '', + gandiApiKey: '', cloudflareToken: '', cloudflareEmail: '', provider: 'route53', @@ -93,6 +96,7 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat }); } $scope.domainConfigure.digitalOceanToken = domain.provider === 'digitalocean' ? domain.config.token : ''; + $scope.domainConfigure.gandiApiKey = domain.provider === 'gandi' ? domain.config.token : ''; $scope.domainConfigure.cloudflareToken = domain.provider === 'cloudflare' ? domain.config.token : ''; $scope.domainConfigure.cloudflareEmail = domain.config.email; @@ -142,6 +146,8 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat } } else if (provider === 'digitalocean') { data.token = $scope.domainConfigure.digitalOceanToken; + } else if (provider === 'gandi') { + data.token = $scope.domainConfigure.gandiApiKey; } else if (provider === 'cloudflare') { data.token = $scope.domainConfigure.cloudflareToken; data.email = $scope.domainConfigure.cloudflareEmail; @@ -192,6 +198,7 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat $scope.domainConfigure.gcdnsKey.keyFileName = ''; $scope.domainConfigure.gcdnsKey.content = ''; $scope.domainConfigure.digitalOceanToken = ''; + $scope.domainConfigure.gandiApiKey = ''; $scope.domainConfigure.cloudflareToken = ''; $scope.domainConfigure.cloudflareEmail = '';